如果我们没有在Prometheus中为Thanos解释任何external_labels怎么办

问题描述

我想知道我们是否在Prometheus的thanos配置文件中不解释任何external_labels,会发生什么? 例如,我有2个Prometheuses,它们正在刮取相同的端点,因此它们的external_labels像这样: prometheus1:

global:
  external_labels:
    replica: 1

prometheus2:

global:
  external_labels:
    replica: 2

至此,我们知道将在对象存储中保存2种度量标准,即具有“副本= 1”标签和“副本= 2”标签的度量。
如果我从配置文件删除了external_labels,那么将在对象存储中保存多少个指标?

解决方法

我找到了答案。
基于此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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...