mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-10 06:52:55 +00:00
utils: log Sentry initialization (#11077)
## Problem We don't have any logging for Sentry initialization. This makes it hard to verify that it has been configured correctly. ## Summary of changes Log some basic info when Sentry has been initialized, but omit the public key (which allows submitting events). Also log when `SENTRY_DSN` isn't specified at all, and when it fails to initialize (which is supposed to panic, but we may as well).
This commit is contained in:
@@ -3,20 +3,24 @@ use std::env;
|
||||
|
||||
use sentry::ClientInitGuard;
|
||||
pub use sentry::release_name;
|
||||
use tracing::{error, info};
|
||||
|
||||
#[must_use]
|
||||
pub fn init_sentry(
|
||||
release_name: Option<Cow<'static, str>>,
|
||||
extra_options: &[(&str, &str)],
|
||||
) -> Option<ClientInitGuard> {
|
||||
let dsn = env::var("SENTRY_DSN").ok()?;
|
||||
let Ok(dsn) = env::var("SENTRY_DSN") else {
|
||||
info!("not initializing Sentry, no SENTRY_DSN given");
|
||||
return None;
|
||||
};
|
||||
let environment = env::var("SENTRY_ENVIRONMENT").unwrap_or_else(|_| "development".into());
|
||||
|
||||
let guard = sentry::init((
|
||||
dsn,
|
||||
sentry::ClientOptions {
|
||||
release: release_name,
|
||||
environment: Some(environment.into()),
|
||||
release: release_name.clone(),
|
||||
environment: Some(environment.clone().into()),
|
||||
..Default::default()
|
||||
},
|
||||
));
|
||||
@@ -25,5 +29,19 @@ pub fn init_sentry(
|
||||
scope.set_extra(key, value.into());
|
||||
}
|
||||
});
|
||||
|
||||
if let Some(dsn) = guard.dsn() {
|
||||
info!(
|
||||
"initialized Sentry for project {}, environment {}, release {} (using API {})",
|
||||
dsn.project_id(),
|
||||
environment,
|
||||
release_name.unwrap_or(Cow::Borrowed("None")),
|
||||
dsn.envelope_api_url(),
|
||||
);
|
||||
} else {
|
||||
// This should panic during sentry::init(), but we may as well cover it.
|
||||
error!("failed to initialize Sentry, invalid DSN");
|
||||
}
|
||||
|
||||
Some(guard)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user