From e92794a692563d7efd9ba788d384f04c1c16013b Mon Sep 17 00:00:00 2001 From: Vlad Lazar Date: Fri, 7 Mar 2025 18:30:45 +0100 Subject: [PATCH] pageserver: set up OTEL tracing infra when config says so --- pageserver/src/bin/pageserver.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pageserver/src/bin/pageserver.rs b/pageserver/src/bin/pageserver.rs index 36ca91c04a..e881e8bae3 100644 --- a/pageserver/src/bin/pageserver.rs +++ b/pageserver/src/bin/pageserver.rs @@ -21,7 +21,8 @@ use pageserver::deletion_queue::DeletionQueue; use pageserver::disk_usage_eviction_task::{self, launch_disk_usage_global_eviction_task}; use pageserver::metrics::{STARTUP_DURATION, STARTUP_IS_LOADING}; use pageserver::task_mgr::{ - BACKGROUND_RUNTIME, COMPUTE_REQUEST_RUNTIME, MGMT_REQUEST_RUNTIME, WALRECEIVER_RUNTIME, + BACKGROUND_RUNTIME, COMPUTE_REQUEST_RUNTIME, MGMT_REQUEST_RUNTIME, OTEL_RUNTIME, + WALRECEIVER_RUNTIME, }; use pageserver::tenant::{TenantSharedResources, mgr, secondary}; use pageserver::{ @@ -117,6 +118,21 @@ fn main() -> anyhow::Result<()> { logging::Output::Stdout, )?; + let otel_enablement = match &conf.tracing { + Some(cfg) => utils::logging::OtelEnablement::Enabled { + service_name: "pageserver".to_string(), + export_config: (&cfg.export_config).into(), + runtime: *OTEL_RUNTIME, + }, + None => utils::logging::OtelEnablement::Disabled, + }; + + let otel_guard = logging::init_otel_tracing(otel_enablement)?; + + if otel_guard.is_some() { + info!(?conf.tracing, "starting with OTEL tracing enabled"); + } + // mind the order required here: 1. logging, 2. panic_hook, 3. sentry. // disarming this hook on pageserver, because we never tear down tracing. logging::replace_panic_hook_with_tracing_panic_hook().forget();