fix(metrics): 初始化时注册基线 counter 避免启动后渲染为空
- install_recorder 后立即以 absolute(0) 注册 MESSAGE_PROCESSING_ERRORS / AGENT_ITERATIONS / LLM_TOKENS_USED / TOOL_EXECUTION_TOTAL,确保首次 Prometheus 抓取即可见指标 - 新增测试验证初始化后 render 输出包含基线 counter
This commit is contained in:
parent
1cde659bb6
commit
5bc3f64ba2
@ -49,6 +49,7 @@ pub fn init_recorder() -> Option<PrometheusHandle> {
|
||||
let builder = PrometheusBuilder::new();
|
||||
match builder.install_recorder() {
|
||||
Ok(handle) => {
|
||||
register_baseline_counters();
|
||||
tracing::info!("Prometheus metrics recorder installed");
|
||||
Some(handle)
|
||||
}
|
||||
@ -61,6 +62,13 @@ pub fn init_recorder() -> Option<PrometheusHandle> {
|
||||
.clone()
|
||||
}
|
||||
|
||||
fn register_baseline_counters() {
|
||||
metrics::counter!(MESSAGE_PROCESSING_ERRORS).absolute(0);
|
||||
metrics::counter!(AGENT_ITERATIONS).absolute(0);
|
||||
metrics::counter!(LLM_TOKENS_USED).absolute(0);
|
||||
metrics::counter!(TOOL_EXECUTION_TOTAL).absolute(0);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// MetricsObserver — 桥接 ObserverEvent 到 metrics 宏
|
||||
// ============================================================================
|
||||
@ -156,3 +164,20 @@ pub fn default_observer() -> Arc<dyn Observer> {
|
||||
pub fn record_message_processing_error() {
|
||||
metrics::counter!(MESSAGE_PROCESSING_ERRORS).increment(1);
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn metrics_render_is_not_blank_right_after_init() {
|
||||
let Some(handle) = init_recorder() else {
|
||||
return;
|
||||
};
|
||||
let rendered = handle.render();
|
||||
assert!(
|
||||
rendered.contains(MESSAGE_PROCESSING_ERRORS),
|
||||
"expected baseline counters in render output, got: {rendered:?}"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user