Skip to content

Replace telemetry backend with Devolutions OpenSearch#4561

Merged
Gabriel Dufresne (GabrielDuf) merged 11 commits intomainfrom
ReplaceTelemetry
Apr 8, 2026
Merged

Replace telemetry backend with Devolutions OpenSearch#4561
Gabriel Dufresne (GabrielDuf) merged 11 commits intomainfrom
ReplaceTelemetry

Conversation

@GabrielDuf
Copy link
Copy Markdown
Contributor

The telemetry backend has been migrated to Devolutions OpenSearch.
Events are now routed to telemetry2.devolutions.net, where they are organized into three indices: activity, package, and bundle.

@GabrielDuf Gabriel Dufresne (GabrielDuf) requested a review from a team as a code owner April 8, 2026 17:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates UniGetUI telemetry from the previous HTTP endpoints to Devolutions OpenSearch by introducing structured event payloads and posting them directly to telemetry2.devolutions.net, with app startup wiring to configure/init telemetry in both WinUI and Avalonia shells.

Changes:

  • Added OpenSearch credentials to the secrets-generation pipeline and configured telemetry initialization to use them at app startup.
  • Reworked TelemetryHandler to emit JSON events (activity/package/bundle) and send them to OpenSearch indices.
  • Wired package-operation success/failure hooks in Avalonia UI to emit the new telemetry events.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
src/UniGetUI/Services/Secrets.cs Adds OpenSearch secret accessors for WinUI build.
src/UniGetUI/Services/generate-secrets.ps1 Generates OpenSearch secrets into compiled C# for WinUI.
src/UniGetUI/App.xaml.cs Configures telemetry with OpenSearch secrets during component load.
src/UniGetUI.Interface.Telemetry/TelemetryHandler.cs Implements OpenSearch posting + new event schemas + source-gen JSON context.
src/UniGetUI.Interface.Telemetry/Events/TelemetryEventBase.cs Introduces shared telemetry event base schema.
src/UniGetUI.Interface.Telemetry/Events/UniGetUIActivityEvent.cs Adds activity event payload.
src/UniGetUI.Interface.Telemetry/Events/UniGetUIPackageEvent.cs Adds package event payload.
src/UniGetUI.Interface.Telemetry/Events/UniGetUIBundleEvent.cs Adds bundle event payload.
src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs Emits telemetry on update/uninstall operations in Avalonia.
src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs Emits telemetry for bundle-import installs.
src/UniGetUI.Avalonia/Views/SoftwarePages/InstalledPackagesPage.cs Emits telemetry on uninstall/reinstall flows.
src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml.cs Emits telemetry for details view + operations launched from details dialog.
src/UniGetUI.Avalonia/ViewModels/SoftwarePages/PackagesPageViewModel.cs Emits telemetry on install operations launched from package listing.
src/UniGetUI.Avalonia/Infrastructure/Secrets.cs Adds OpenSearch secret accessors for Avalonia build.
src/UniGetUI.Avalonia/Infrastructure/generate-secrets.sh Generates OpenSearch secrets into compiled C# for non-Windows Avalonia builds.
src/UniGetUI.Avalonia/Infrastructure/generate-secrets.ps1 Generates OpenSearch secrets into compiled C# for Windows Avalonia builds.
src/UniGetUI.Avalonia/Infrastructure/AvaloniaPackageOperationHelper.cs Emits telemetry for Background API-triggered update operations.
src/UniGetUI.Avalonia/Infrastructure/AvaloniaBootstrapper.cs Configures/initializes telemetry during Avalonia bootstrap.
src/UniGetUI.Avalonia/App.axaml.cs Switches to bootstrapper-driven initialization (and ensures loaders are loaded).
.github/workflows/build-release.yml Injects OpenSearch creds into CI environment for release builds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@GabrielDuf Gabriel Dufresne (GabrielDuf) merged commit 080c22e into main Apr 8, 2026
1 check passed
@GabrielDuf Gabriel Dufresne (GabrielDuf) deleted the ReplaceTelemetry branch April 8, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants