Pyroscope监控指标字典:关键术语与指标含义解析
一、核心术语解析
1.1 基础概念
| 术语 | 英文 | 定义 | 应用场景 |
|---|---|---|---|
| 火焰图 | Flame Graph | 基于栈追踪数据生成的可视化图表,用于展示程序调用关系和资源消耗占比 | 性能瓶颈定位、函数调用耗时分析 |
| 剖析数据 | Profile | 包含程序运行时栈追踪、CPU/内存消耗等性能数据的集合 | 持续性能监控、版本间性能对比 |
| 指标名称 | Metric Name | 用于标识监控指标的唯一字符串,需符合Prometheus命名规范 | 指标查询、告警规则配置 |
| 时间序列 | Time Series | 带有时间戳的指标数据序列,由指标名称和标签集唯一标识 | 趋势分析、历史数据回溯 |
1.2 架构组件
二、核心监控指标详解
2.1 指标导出器(Exporter)指标
| 指标名称 | 类型 | 标签 | 含义 | 单位 |
|---|---|---|---|---|
| pyroscope_metrics_exporter_client_request_duration_seconds | Histogram | route, status_code, tenant | 远程写入请求的持续时间分布 | 秒 |
| pyroscope_metrics_exporter_request_message_bytes_total | Counter | route, status_code, tenant | 发送的请求体总字节数 | 字节 |
| pyroscope_metrics_exporter_series_sent_total | Counter | tenant | 成功发送的时间序列数量 | 个 |
代码示例:指标定义实现
requestDuration: prometheus.NewHistogramVec(prometheus.HistogramOpts{
Namespace: "pyroscope",
Subsystem: "metrics_exporter",
Name: "client_request_duration_seconds",
Help: "Time (in seconds) spent on remote_write",
Buckets: instrument.DefBuckets,
}, []string{"route", "status_code", "tenant"})
2.2 查询服务(Querier)指标
| 指标名称 | 类型 | 标签 | 含义 | 单位 |
|---|---|---|---|---|
| frontend_client_request_duration_seconds | Histogram | - | 前端查询请求的响应时间分布 | 秒 |
| frontend_clients | Gauge | - | 当前活跃的前端查询客户端数量 | 个 |
| clients_metrics | Gauge | - | 客户端连接状态指标 | 1(活跃)/0(关闭) |
2.3 规则引擎(Ruler)指标
| 指标名称 | 类型 | 标签 | 含义 | 单位 |
|---|---|---|---|---|
| recording_rules_processing_duration | Gauge | rule_group, rule_name | 录制规则的执行耗时 | 秒 |
| recording_rules_eval_total | Counter | rule_group, rule_name, status | 规则评估总次数 | 次 |
三、指标使用实践
3.1 关键指标组合查询
CPU使用率异常排查
rate(pyroscope_profiles_cpu_usage_seconds_total[5m]) > 0.8
请求延迟告警规则
groups:
- name: query_alert
rules:
- alert: SlowQuery
expr: histogram_quantile(0.95, sum(rate(frontend_client_request_duration_seconds_bucket[5m])) by (le)) > 1
for: 3m
labels:
severity: warning
annotations:
summary: "慢查询告警"
description: "95%查询响应时间超过1秒"
3.2 指标监控最佳实践
- Counter类型指标:推荐使用
rate()函数计算增长率,如请求吞吐量趋势分析 - Gauge类型指标:关注瞬时值变化,如活跃连接数突增检测
- Histogram类型指标:结合
histogram_quantile()获取分位数,评估服务稳定性
四、常见问题解答
4.1 指标命名规范冲突
Q: 自定义指标名称时提示"invalid metric name"错误?
A: 需符合Prometheus命名规范:只能包含[a-zA-Z0-9_],且必须以字母开头。示例修正:
// 错误示例:包含连字符
rule.MetricName = "pyroscope-query-count"
// 正确示例:使用下划线
rule.MetricName = "pyroscope_query_count"
4.2 指标数据缺失排查流程
五、附录:指标速查表
| 组件 | 核心指标 | 告警阈值参考 |
|---|---|---|
| 数据摄入 | pyroscope_metrics_exporter_series_sent_total | 5分钟内下降>50% |
| 查询服务 | frontend_client_request_duration_seconds | P95>2秒 |
| 规则引擎 | recording_rules_processing_duration | 单规则执行>100ms |
使用提示:所有指标均遵循
pyroscope_{subsystem}_{metric_name}命名规范,可通过pyroscope_*通配符快速检索。完整指标列表请参考源代码pkg/metrics目录下的实现文件。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



