如何向Prometheus发送常规(标签、值)对?寻求合规方案
正确合规的方案:使用Gauge类型指标
你完全不需要用这种取巧的方式,Prometheus里的Gauge类型就是专门用来处理这种非单调、可任意变化的纯数值场景的,完全符合合规要求。
你的需求是按客户端划分,展示BitmapValue随时间的变化,正确的指标写法应该是把BitmapValue作为指标的数值,Name作为标签,而不是把BitmapValue也塞进标签里(这样既冗余又不符合指标设计规范),示例如下:
client_bitmap_value{Name="client1"} 1 client_bitmap_value{Name="client1"} 2 client_bitmap_value{Name="client2"} 8
为什么Gauge是正确选择?
Prometheus的四种指标类型各有适用场景:
- Counter:只能单调递增(或重置),适合统计请求数、错误数这类只会涨的指标,显然不适合你的BitmapValue场景
- Gauge:可以自由设置任意数值,支持增减变化,正好对应你需要的"纯数据标签/值对"需求,用来记录客户端的BitmapValue完全合规
- Histogram/Summary:用来统计数值的分布情况(比如请求耗时的分位数),对你的场景来说完全没必要
用这种方式上报后,在Grafana里只需要按Name标签分组,选择client_bitmap_value指标,就能轻松生成按客户端划分、Y轴为BitmapValue、X轴为时间的图表,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Kate
相关产品推荐
相关产品推荐

