当前位置: 首页 > 知识库问答 >
问题:

普罗米修斯(Prometheus)-在刮取之前覆盖具有不同标签的相同度量

寿卜鹰
2023-03-14

我正在使用自定义python应用程序使用从Kafka到普罗米修斯的各种度量标准。指标需要在相同的时间(毫秒)内消耗。我只能成功地从下面的示例中提取最后一个度量,因为前三个度量立即被覆盖。

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配置中的抓取间隔,但这与解决方案的整个想法背道而驰。

除了我完全不知道的建议之外,普罗米修斯是否可以在标签值不同的地方保留相同的度量标准?我在这里找到的唯一讨论没有答案:https://github.com/prometheus/pushgateway/issues/65.

如果无法实现上述功能,我能否稍后在Prometheus/Grafana中以某种方式合并/加入/合并度量名称,以便能够根据它们的标签与它们一起工作?意思是删除上面示例中不必要的结尾以将所有内容作为一个指标进行处理?

共有3个答案

皇甫雨石
2023-03-14

在推送到推送网关时,您还可以使用不同的分组键(并且看起来比为作业名称使用相同的前缀和不同的后缀更好)

呼延高超
2023-03-14

另一种解决方案:使用prometheus.yml上的scrape_interval属性使抓取操作更频繁地重复。如果您基于分钟,请将其转换为秒或毫秒以避免竞争条件。

- job_name: 'pushgateway'
  honor_labels: true
  scrape_interval: 50ms
  metrics_path: /metrics
  static_configs:
    - targets:
      - localhost:9091
别永年
2023-03-14

您可以使用标签组合或某些唯一值更改Push网关作业名称。因此prometheus可以抓取您的所有指标,并且它们不会被其他人覆盖。

在您的情况下,如果您将:my_metric{labelA="aaa", labelB="111"} 8导出到名为some_job_aaa_111的作业。

您可以手动测试推送某些指标:echo“my\u metric{labelA=\“aaa\”,labelB=\“111\”}8“\124; curl--数据二进制@-http://localhost:9091/metrics/job/some_job_aaa_111

在普罗米修斯pushgateway中,您将看到下一个:

在Prometheus中,推送网关作业变成了一个您可以轻松忽略的标签,例如Prometheus的下一个输出:

 类似资料:
  • 我正在使用stable/prometheus-operator图表部署prometheus。它安装在命名空间中。在命名空间中,我有一个运行的pod,名为,有三个副本。这个pod在端口9009上吐出度量标准(我已经通过执行k端口转发并验证localhost:9009中显示的度量标准来验证这一点)。我希望普罗米修斯操作员刮这些指标。因此,我将下面的配置添加到 然后,我使用下面的命令安装普罗米修斯:

  • 我正在将Spring Boot应用程序从Spring Boot 1(使用Prometheus Simpleclient)转换为Spring Boot 2(使用微米)。 我很难将我们在《春靴1》和《普罗米修斯》中的标签转换为千分尺的概念。例如(普罗米修斯): Micrometer的标签似乎与Prometheus的标签有些不同:所有的值都必须预先声明,不仅仅是键。 可以将普罗米修斯的标签与Spring

  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希

  • 如何在普罗米修斯查询中添加标签过滤器? KUBE_POD_INFO -->按命名空间测试筛选pod。 在这里,我想包括基于标签的过滤器以及。我在kube_pod_labels中有一个名为“label_source=”k8s“的标签。如何加入kube_pod_info和kube_pod_labels来应用标签筛选器?

  • 我试图解决一个问题,使总和和组查询普罗米修斯上的一个指标,其中的标签分配给度量值唯一的我的总和和和组的要求。 我有一个ElasticSearch索引的指标采样大小,其中索引名称被标记在指标上。索引是这样命名的,并放置在标签"index"中:

  • 我有以下计数器指标 如何计算最近2分钟内活动设备的数量,即2(设备id 3和4)?