From 57d6f1dcfaee219cd95d6f579560f6f80bd4a332 Mon Sep 17 00:00:00 2001 From: pierre Date: Thu, 20 Jul 2023 18:22:18 +0200 Subject: [PATCH] wip --- .../desktop/src-tauri/src/monitoring.rs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 nym-connect/desktop/src-tauri/src/monitoring.rs diff --git a/nym-connect/desktop/src-tauri/src/monitoring.rs b/nym-connect/desktop/src-tauri/src/monitoring.rs new file mode 100644 index 0000000000..8b9db2b175 --- /dev/null +++ b/nym-connect/desktop/src-tauri/src/monitoring.rs @@ -0,0 +1,40 @@ +use std::env; + +use anyhow::{Context, Result}; +use sentry::ClientInitGuard; + +// env var keys +const SENTRY_DSN_RUST: &str = "SENTRY_DSN_RUST"; +const SENTRY_DSN_JS: &str = "SENTRY_DSN_JS"; + +pub fn init() -> Result { + // if these env vars were set at compile time, use their value + if let Some(v) = option_env!("SENTRY_DSN_RUST") { + env::set_var(SENTRY_DSN_RUST, v); + } + if let Some(v) = option_env!("SENTRY_DSN_JS") { + env::set_var(SENTRY_DSN_JS, v); + } + + let dsn = env::var(SENTRY_DSN_RUST).context(format!("{} env var not set", SENTRY_DSN_RUST))?; + println!("using DSN {dsn}"); + let guard = sentry::init(( + dsn, + sentry::ClientOptions { + release: sentry::release_name!(), + sample_rate: 1.0, // TODO lower this in prod + traces_sample_rate: 1.0, + ..Default::default() // TODO add data scrubbing + // see https://docs.sentry.io/platforms/rust/data-management/sensitive-data/ + }, + )); + + sentry::configure_scope(|scope| { + scope.set_user(Some(sentry::User { + id: Some("nym".into()), + ..Default::default() + })); + }); + + Ok(guard) +}