Expand description
SZ-ORM 可观测性模块
提供 Prometheus exporter、SLO 燃烧率监控等能力。
OTLP 导出由 sz-orm-tracing 的 otlp feature 提供(本模块不含 OTLP)。
§核心能力
§1. MetricsRegistry(默认启用)
统一的指标注册中心,支持 Counter / Gauge / Histogram 三种类型,
内置线程安全(RwLock),可通过 render() 输出 Prometheus 文本格式。
§2. Prometheus exporter
通过 start_metrics_server 在指定端口暴露 /metrics HTTP 端点,
供 Prometheus 拉取。基于 tokio::net::TcpListener 实现(不依赖 hyper)。
§3. SLO 燃烧率
基于 5m / 1h 两个窗口计算 SLO 燃烧率,支持多窗口告警。
§快速入门
use sz_orm_observability::{MetricsRegistry, MetricKind};
use std::time::Duration;
// 创建指标注册中心
let registry = MetricsRegistry::new();
// 注册指标
let counter = registry.register_counter("sz_orm_pool_acquires_total", "Total pool acquire calls");
let gauge = registry.register_gauge("sz_orm_pool_active_connections", "Current active connections");
let histogram = registry.register_histogram(
"sz_orm_query_duration_seconds",
"Query duration in seconds",
vec![0.001, 0.01, 0.1, 1.0, 10.0],
);
// 更新指标
counter.inc();
gauge.set(5.0);
histogram.observe(0.025);
// 输出 Prometheus 文本格式
let output = registry.render();
println!("{}", output);Re-exports§
pub use slo::SloBurnRate;pub use slo::SloConfig;pub use slo::SloMonitor;pub use summary::LabeledHistogram;pub use summary::PushSnapshot;pub use summary::PushgatewayConfig;pub use summary::PushgatewayExporter;pub use summary::Summary;
Modules§
Structs§
- Counter
- 计数器(单调递增)
- Gauge
- Gauge(可增可减)
- Histogram
- 直方图(延迟分布等)
- Metric
Meta - 指标元数据
- Metrics
Registry - 指标注册中心
Enums§
- Metric
Kind - 指标类型
Functions§
- start_
metrics_ server - 启动 Prometheus metrics HTTP server