我正在使用自定义python应用程序从Kafka到Prometheus使用各种量表指标。指标需要在几乎相同的时间(毫秒)内消耗。由于前三个立即被覆盖,因此我只能成功删除以下示例中的最后一个指标。
my_metric{labelA = "aaa", labelB = "111"} 8
my_metric{labelA = "aaa", labelB = "222"} 12
my_metric{labelA = "bbb", labelB = "111"} 7
**my_metric{labelA = "bbb", labelB = "222"} 15**
我可以通过为它们设置一个唯一的指标名称来废弃所有四个指标:
my_metric_aaa_111{labelA = "aaa", labelB = "111"} 8
但这似乎不是最佳实践,而且以后在Grafana中使用此类指标通常非常困难。
我还可以按顺序推送要废弃的指标,并降低Prometheus config中的废弃间隔,但这与解决方案的整体思想背道而驰。
除了我完全不知道的建议之外,在只有标签值不同的情况下,是否可以使Prometheus放弃相同的指标?我在此找到的唯一讨论没有答案:https://github.com/prometheus/pushgateway/issues/65。
如果无法实现上述要求,我以后可以在Prometheus / Grafana中以某种方式合并/合并/合并度量标准名称,以便能够根据其标签使用它们吗?意思是要删除上面示例中不必要的结尾_aaa_111
,以便将所有内容作为一个度量进行处理?
答案 0 :(得分:0)
您可以使用标签的组合或某些唯一值来更改Pushgateway作业名称。因此,普罗米修斯可以抓取您的所有指标,并且不会被其他指标覆盖。
在您的情况下,如果您将my_metric{labelA = "aaa", labelB = "111"} 8
导出到名为some_job_aaa_111
的作业中。
您可以测试手动推送一些指标:echo "my_metric{labelA = \"aaa\", labelB = \"111\"} 8" | curl --data-binary @- http://localhost:9091/metrics/job/some_job_aaa_111
在Prometheus Pushgateway中,您将看到下一个:
在Prometheus中,pushgateway作业会出现在您可以轻松忽略的标签中,例如Prometheus的下一个输出:
答案 1 :(得分:0)
另一种解决方案:使用scrape_interval
上的prometheus.yml
属性,使抓取操作更频繁地重复。如果您以分钟为单位,请将其转换为秒或毫秒,以避免出现竞争情况。
- job_name: 'pushgateway'
honor_labels: true
scrape_interval: 50ms
metrics_path: /metrics
static_configs:
- targets:
- localhost:9091
答案 2 :(得分:0)
在推入推向网关时,您还可以使用不同的分组键(看起来比具有相同的前缀和不同的工作名称后缀)