Prometheus-刮刮之前会覆盖具有不同标签的相同指标

时间:2019-06-17 09:04:46

标签: python grafana prometheus

我正在使用自定义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,以便将所有内容作为一个度量进行处理?

3 个答案:

答案 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 jobs

在Prometheus中,pushgateway作业会出现在您可以轻松忽略的标签中,例如Prometheus的下一个输出:

Prometheus jobs

答案 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)

在推入推向网关时,您还可以使用不同的分组键(看起来比具有相同的前缀和不同的工作名称后缀)