set up opentelemetry for metrics

Also adds an `allow_prometheus` option (disabled by default) to expose
a `/metrics` endpoint that returns Prometheus data.
This commit is contained in:
Charles Hall 2024-05-29 14:49:49 -07:00
parent 94fda7c875
commit a0b92c82e8
No known key found for this signature in database
GPG key ID: 7B8E0645816E07CF
5 changed files with 97 additions and 2 deletions

37
Cargo.lock generated
View file

@ -872,12 +872,15 @@ dependencies = [
"lru-cache",
"nix",
"num_cpus",
"once_cell",
"opentelemetry",
"opentelemetry-jaeger-propagator",
"opentelemetry-otlp",
"opentelemetry-prometheus",
"opentelemetry_sdk",
"parking_lot",
"phf",
"prometheus",
"rand",
"regex",
"reqwest",
@ -1662,6 +1665,19 @@ dependencies = [
"tonic",
]
[[package]]
name = "opentelemetry-prometheus"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e1a24eafe47b693cb938f8505f240dc26c71db60df9aca376b4f857e9653ec7"
dependencies = [
"once_cell",
"opentelemetry",
"opentelemetry_sdk",
"prometheus",
"protobuf",
]
[[package]]
name = "opentelemetry-proto"
version = "0.6.0"
@ -1925,6 +1941,21 @@ dependencies = [
"yansi",
]
[[package]]
name = "prometheus"
version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1"
dependencies = [
"cfg-if",
"fnv",
"lazy_static",
"memchr",
"parking_lot",
"protobuf",
"thiserror",
]
[[package]]
name = "prost"
version = "0.12.6"
@ -1948,6 +1979,12 @@ dependencies = [
"syn",
]
[[package]]
name = "protobuf"
version = "2.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
[[package]]
name = "quick-error"
version = "1.2.3"