20260617 增加状态DB监控指标和Grafana面板

This commit is contained in:
yuyr 2026-06-17 20:45:37 +08:00
parent 56f0d10dc6
commit 68006467f7
2 changed files with 111 additions and 0 deletions

View File

@ -614,6 +614,94 @@
],
"title": "Max RSS Over Time",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "Prometheus"
},
"fieldConfig": {
"defaults": {
"unit": "bytes",
"decimals": 2
},
"overrides": []
},
"gridPos": {
"x": 0,
"y": 32,
"w": 24,
"h": 8
},
"id": 15,
"options": {
"legend": {
"calcs": [
"lastNotNull",
"max"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"expr": "ours_rp_state_db_size_bytes",
"legendFormat": "{{db}}",
"refId": "A"
}
],
"title": "State DB Size Over Time",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "Prometheus"
},
"fieldConfig": {
"defaults": {
"unit": "none",
"decimals": 0
},
"overrides": []
},
"gridPos": {
"x": 0,
"y": 40,
"w": 24,
"h": 8
},
"id": 16,
"options": {
"legend": {
"calcs": [
"lastNotNull",
"max"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"expr": "ours_rp_state_db_files",
"legendFormat": "{{db}}",
"refId": "A"
}
],
"title": "State DB File Count Over Time",
"type": "timeseries"
}
],
"refresh": "5s",

View File

@ -1435,6 +1435,24 @@ fn render_latest_metrics(writer: &mut PromWriter<'_>, instance: &str, latest: &L
&[label("instance", instance), label("path", path)],
stat.file_count as f64,
);
writer.gauge(
"ours_rp_state_db_size_bytes",
"Persistent state database size from latest run pathStats",
&[label("instance", instance), label("db", path)],
stat.total_size_bytes as f64,
);
writer.gauge(
"ours_rp_state_db_files",
"Persistent state database file count from latest run pathStats",
&[label("instance", instance), label("db", path)],
stat.file_count as f64,
);
writer.gauge(
"ours_rp_state_db_dirs",
"Persistent state database directory count from latest run pathStats",
&[label("instance", instance), label("db", path)],
stat.dir_count as f64,
);
}
}
@ -2296,6 +2314,11 @@ mod tests {
assert!(metrics.contains("ours_rp_cir_object_list_digest_present"));
assert!(metrics.contains("ours_rp_cir_reject_list_digest_present_by_source"));
assert!(metrics.contains("ours_rp_ccr_state_items"));
assert!(
metrics.contains(r#"ours_rp_state_db_size_bytes{instance="test",db="work-db"} 99"#)
);
assert!(metrics.contains(r#"ours_rp_state_db_files{instance="test",db="work-db"} 2"#));
assert!(metrics.contains(r#"ours_rp_state_db_dirs{instance="test",db="work-db"} 1"#));
assert!(
metrics.contains(r#"ours_rp_cir_objects_by_source{instance="test",source="fresh"} 2"#)
);