- Add HTTP OTLP exporter (opentelemetry-otlp 0.31) via SdkTracerProvider + BatchSpanProcessor + tracing_opentelemetry layer - Add Prometheus /metrics handler via metrics-exporter-prometheus 0.13 - Replace slog with tracing throughout: HttpMetrics, TracingSpanMiddleware - Replace .init() with .try_init() to allow OTLP layer registration after init_tracing_subscriber() - otlp.rs: SpanExporter::builder().with_http().with_endpoint(), Resource::builder().with_service_name(), .with_attribute(KeyValue::new(...)) - prometheus_exporter.rs: install_recorder(), prometheus_handler(), spawn_http_metrics_poller()
21 lines
730 B
Rust
21 lines
730 B
Rust
//! Observability primitives: tracing subscriber, metrics, OTLP export.
|
|
//!
|
|
//! Call `observability::init_tracing_subscriber(level)` once at startup.
|
|
//! All services then use `tracing::info!`, `tracing::warn!`, etc. directly.
|
|
|
|
pub mod tracing_fmt;
|
|
pub mod tracing_init;
|
|
pub mod metrics_middleware;
|
|
pub mod prometheus_exporter;
|
|
pub mod otlp;
|
|
pub mod tracing_middleware;
|
|
|
|
pub use tracing_fmt::{init_tracing_subscriber, instance_id};
|
|
pub use metrics_middleware::{MetricsMiddleware, HttpMetrics};
|
|
pub use prometheus_exporter::{
|
|
install_recorder, prometheus_handler, spawn_http_metrics_poller,
|
|
HttpMetricsSnapshot, HttpSnapshotGuard,
|
|
};
|
|
pub use otlp::{init_otlp, OtelGuard};
|
|
pub use tracing_middleware::TracingSpanMiddleware;
|