如果我们不在 Prometheus 中为灭霸解释任何 external_labels 怎么办

Posted

技术标签:

【中文标题】如果我们不在 Prometheus 中为灭霸解释任何 external_labels 怎么办【英文标题】:what if we don't explain any external_labels in Prometheus for Thanos 【发布时间】:2021-01-19 01:08:05 【问题描述】:

我想知道如果我们在灭霸的 Prometheus 配置文件中不解释任何 external_labels,会发生什么? 例如,我有 2 个 Prometheuse,它们正在抓取同一个端点,所以它们的 external_labels 是这样的: 普罗米修斯1:

global:
  external_labels:
    replica: 1

普罗米修斯2:

global:
  external_labels:
    replica: 2

此时我们知道对象存储中会保存2种metrics,replica=1标签和replica=2标签的metrics。 如果我从配置文件中删除 external_labels,对象存储中会保存多少个指标?

【问题讨论】:

【参考方案1】:

我找到了答案。 基于这个doc,

每个 Prometheus 实例都必须有一组全局唯一的 识别标签。

如果你没有为你的 Prometheus 声明一个,TSDB 块将不会被上传到你的对象存储中,你会从 sidecar 收到这个错误:

level=warn ts=2020-10-03T17:00:14.826489487Z caller=sidecar.go:274 err="upload 01EKQPFYHW6R8TB48N07NSCH8P: empty external labels are not allowed for Thanos block." uploaded=0

【讨论】:

以上是关于如果我们不在 Prometheus 中为灭霸解释任何 external_labels 怎么办的主要内容,如果未能解决你的问题,请参考以下文章

灭霸 S3 配置

Grafana 过滤 Thanos 商店标签|格拉法纳普罗姆修斯灭霸

Prometheus监控运维实战十九: Thanos介绍

Prometheus 数据安全之 Basic 认证

如何在 grafana 变量中为 prometheus 数据源提供带有时间范围的 label_values?

如何在 Spring Boot 中为 prometheus 制作自己的指标