Expose process metrics on Linux (#5342)

This commit is contained in:
Quentin Gliech
2025-12-16 13:31:42 +01:00
committed by GitHub
4 changed files with 38 additions and 0 deletions

33
Cargo.lock generated
View File

@@ -3170,6 +3170,7 @@ dependencies = [
"mas-tower",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-instrumentation-process",
"opentelemetry-instrumentation-tokio",
"opentelemetry-jaeger-propagator",
"opentelemetry-otlp",
@@ -4133,6 +4134,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"
@@ -4659,6 +4671,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"

View File

@@ -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]

View File

@@ -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

View File

@@ -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(())