Skip to main content

Crate sz_orm_observability

Crate sz_orm_observability 

Source
Expand description

SZ-ORM 可观测性模块

提供 Prometheus exporter、OTLP exporter、SLO 燃烧率监控等能力, 与 sz-orm-tracing 配合形成完整的可观测性闭环。

§核心能力

§1. MetricsRegistry(默认启用)

统一的指标注册中心,支持 Counter / Gauge / Histogram 三种类型, 内置线程安全(RwLock),可通过 render() 输出 Prometheus 文本格式。

§2. Prometheus exporter(feature = “prometheus”)

在指定端口暴露 /metrics HTTP 端点,供 Prometheus 拉取。

§3. OTLP exporter(feature = “otlp”)

通过 OpenTelemetry OTLP 协议将 traces 导出到 Collector。

§4. 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;

Modules§

slo
SLO 燃烧率监控

Structs§

Counter
计数器(单调递增)
Gauge
Gauge(可增可减)
Histogram
直方图(延迟分布等)
MetricMeta
指标元数据
MetricsRegistry
指标注册中心

Enums§

MetricKind
指标类型