feat(telemetry): Implement structured telemetry logging and reporting

Adds comprehensive client-side telemetry capabilities for usage, errors, and performance metrics. This includes integrating OpenTelemetry standards into both the frontend (Svelte) and backend (Tauri/Rust) layers to capture events, spans, and system resource utilization.

The implementation ensures that all collected data is privacy-filtered by design, explicitly excluding sensitive information like repository paths, credentials, source code, or email addresses from being logged.

- Updates README with detailed SigNoz telemetry guide
- Adds process metrics collection (CPU/Memory) in Rust backend
- Exposes `setTelemetryEnabled` state management to the frontend
This commit is contained in:
Christoph Brandau
2026-07-21 23:40:39 +02:00
parent 5c9f67700b
commit cae8390b54
12 changed files with 728 additions and 135 deletions
+7 -1
View File
@@ -2,6 +2,7 @@
mod badge;
mod git;
mod telemetry;
use badge::set_sync_badge;
use git::{
@@ -24,6 +25,7 @@ use git::{
unstage_files, update_remote,
};
use tauri::Manager;
use telemetry::{emit_frontend_log, emit_frontend_span, set_telemetry_enabled};
struct ConsoleLogger;
@@ -78,6 +80,7 @@ fn close_splashscreen(app: tauri::AppHandle) -> Result<(), String> {
#[tokio::main]
async fn main() {
init_console_logging();
telemetry::init();
if let Some(result) = run_sequence_editor_if_requested() {
if let Err(error) = result {
eprintln!("{error}");
@@ -193,7 +196,10 @@ async fn main() {
cred_save,
cred_delete,
set_sync_badge,
close_splashscreen
close_splashscreen,
set_telemetry_enabled,
emit_frontend_log,
emit_frontend_span
])
.run(tauri::generate_context!())
.expect("error while running tauri application");