Expose process metrics on Linux

This commit is contained in:
Quentin Gliech
2025-12-10 16:45:48 +01:00
parent 73b9628202
commit 4a79fdc5be
4 changed files with 39 additions and 0 deletions

33
Cargo.lock generated
View File

@@ -3170,6 +3170,7 @@ dependencies = [
"mas-tower",
"opentelemetry",
"opentelemetry-http",
"opentelemetry-instrumentation-process",
"opentelemetry-jaeger-propagator",
"opentelemetry-otlp",
"opentelemetry-prometheus-text-exporter",
@@ -4132,6 +4133,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-jaeger-propagator"
version = "0.31.0"
@@ -4648,6 +4660,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-jaeger-propagator]
version = "0.31.0"
[workspace.dependencies.opentelemetry-otlp]

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-jaeger-propagator.workspace = true
opentelemetry-otlp.workspace = true
opentelemetry-prometheus-text-exporter.workspace = true

View File

@@ -61,6 +61,9 @@ 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")?;
let handle = ::tokio::runtime::Handle::current();
self::tokio::observe(handle.metrics());