diff --git a/Cargo.lock b/Cargo.lock index d16f9e4d0..de210bc28 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3170,6 +3170,7 @@ dependencies = [ "mas-tower", "opentelemetry", "opentelemetry-http", + "opentelemetry-instrumentation-process", "opentelemetry-instrumentation-tokio", "opentelemetry-jaeger-propagator", "opentelemetry-otlp", @@ -4135,6 +4136,17 @@ dependencies = [ "reqwest", ] +[[package]] +name = "opentelemetry-instrumentation-process" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a81f1738bbdcf58eae20bd85ab0973f9c1f700ba37789e3253dc4e7ba61855c" +dependencies = [ + "opentelemetry", + "opentelemetry-semantic-conventions", + "procfs", +] + [[package]] name = "opentelemetry-instrumentation-tokio" version = "0.1.2" @@ -4661,6 +4673,27 @@ dependencies = [ "yansi", ] +[[package]] +name = "procfs" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" +dependencies = [ + "bitflags", + "procfs-core", + "rustix", +] + +[[package]] +name = "procfs-core" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" +dependencies = [ + "bitflags", + "hex", +] + [[package]] name = "prost" version = "0.14.1" diff --git a/Cargo.toml b/Cargo.toml index d245e8820..8642cadda 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -401,6 +401,8 @@ features = ["trace", "metrics"] [workspace.dependencies.opentelemetry-http] version = "0.31.0" features = ["reqwest"] +[workspace.dependencies.opentelemetry-instrumentation-process] +version = "0.1.2" [workspace.dependencies.opentelemetry-instrumentation-tokio] version = "0.1.2" [workspace.dependencies.opentelemetry-jaeger-propagator] diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index a7daaf3cc..5341a15f9 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -57,6 +57,7 @@ tracing-subscriber.workspace = true tracing-opentelemetry.workspace = true opentelemetry.workspace = true opentelemetry-http.workspace = true +opentelemetry-instrumentation-process.workspace = true opentelemetry-instrumentation-tokio.workspace = true opentelemetry-jaeger-propagator.workspace = true opentelemetry-otlp.workspace = true diff --git a/crates/cli/src/telemetry.rs b/crates/cli/src/telemetry.rs index 02836854a..101a00d5a 100644 --- a/crates/cli/src/telemetry.rs +++ b/crates/cli/src/telemetry.rs @@ -59,6 +59,8 @@ pub fn setup(config: &TelemetryConfig) -> anyhow::Result<()> { init_tracer(&config.tracing).context("Failed to configure traces exporter")?; init_meter(&config.metrics).context("Failed to configure metrics exporter")?; + opentelemetry_instrumentation_process::init() + .context("Failed to configure process instrumentation")?; opentelemetry_instrumentation_tokio::observe_current_runtime(); Ok(())