sz-orm-observability 3.5.0

SZ-ORM 可观测性模块:Prometheus exporter (TcpListener) + SLO 燃烧率 + Grafana 仪表盘模板;OTLP 导出请使用 sz-orm-tracing 的 otlp feature
Documentation

SZ-ORM 可观测性模块

提供 Prometheus exporter、SLO 燃烧率监控等能力。 OTLP 导出由 sz-orm-tracingotlp 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);