目录
1.label标签概述
标签提供了时间序列的纬度,它们可以定义目标,并为时间序列提供上下文,但最重要的是结合指标名称,它们构成了时间序列的表示,如果它们改变了,那么时间序列的表示也会改变
标签的常见用例:
- 删除不必要的指标
- 从指标中删除敏感或不需要的标签
- 添加、编辑或修改指标的标签值或标签格式
记住有两个阶段我们可以重新命名。第一阶段是重新标记来自服务发现的目标。这对于将来自服务发现的元数
据标签的信息应用到您的度量上的标签非常有用。这是在作业内部的relabel_configs块中完成的。
第二个阶段是在刮刮(scape)之后,但在保存到存储系统之前。这使我们能够确定我们保存了哪些指标,删除
了哪些指标,以及这些指标将是什么样子。这是在我们的工作中的metric_relabel_configs块中完成的。
记住这两个阶段最简单的方法是: relabel_configs发生在刮刮之前,metric_relabel_configs 发生在刮刮之后。
2.label标签使用
2.1.删除标签中的一个metrics
1.修改配置文件
[root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml
- job_name: "docker"
static_configs:
- targets: ['192.168.81.220:8080','192.168.81.230:8080']
metric_relabel_configs:
- source_labels: [__name__]
regex: '(container_tasks_state|container_memory_failures_total)'
action: drop
注释: metric_relabel_configs: #metric配置
- source_labels: [__name__] #指定label标签,__name__属于内置label
regex: #要操作的metrics值,如果有多个regex则用分号隔开
action: #对刚刚选择metrics值做什么操作,drop为删除
2.加载配置文件
[root@prometheus-server ~]# curl -X POST http://localhost:9090/-/reload
level=info ts=2020-12-24T02:48:11.893Z caller=main.go:871 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
level=info ts=2020-12-24T02:48:11.940Z caller=main.go:902 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml totalDuration=46.269295ms remote_storage=2.019µs web_handler=485ns query_engine=918ns scrape=45.614675ms scrape_sd=39.94µs notify=7.858µs notify_sd=8.765µs rules=34.005µs
在prometheus页面查看配置是否生效
已经生效
查看对应的metrics监控指标是否删除
两个值已经删除
2.2.更新一个标签值
一个metric_relabel_configs:下可以跟多个source_labels对不同的标签进行操作
我们可以对一个标签的值进行替换,但是不是真的替换,而是将原来的值取出来后新增一个标签并赋予值
容器的进程都会有下图的一个输出,id=’/docker/…’
/docker/后面的就是容器的id,我们想要取出id在把id放到一个新标签container_id中
[root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml
- job_name: "docker"
static_configs:
- targets: ['192.168.81.220:8080','192.168.81.230:8080']
metric_relabel_configs:
- source_labels: [__name__]
regex: '(container_tasks_state|container_memory_failures_total)'
action: drop
- source_labels: [id]
regex: '/docker/([a-z0-9]+)'
replacement: '$1'
target_label: container_id
注释:
一个metric_relabel_configs下面可以包含多个source_labels
source_labels: [id] #对id标签进行操作
regex: '/docker/([a-z0-9]+)' #取出docker的id
replacement: '$1' #交给$1
target_label: container_id #传给新标签container_id作为标签值
加载配置
[root@prometheus-server ~]# curl -X POST http://localhost:9090/-/reload
level=info ts=2020-12-24T03:20:44.902Z caller=main.go:871 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
level=info ts=2020-12-24T03:20:44.909Z caller=main.go:902 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml totalDuration=7.767298ms remote_storage=2.08µs web_handler=409ns query_engine=991ns scrape=7.384473ms scrape_sd=45.265µs notify=9.69µs notify_sd=6.867µs rules=1.097µs
仅配置框中的即可
配置已经生效
查看是否增加新标签container_id
成功增加
2.3.删除一个标签
我们删除一个kernelVersion的标签,也就是内核版本的标签,这个不易暴露
我们可以根据cadvisor_version_info这个metrics值找到kernelVersion标签
[root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml
- job_name: "docker"
static_configs:
- targets: ['192.168.81.220:8080','192.168.81.230:8080']
metric_relabel_configs:
- source_labels: [__name__]
regex: '(container_tasks_state|container_memory_failures_total)'
action: drop
- source_labels: [id]
regex: '/docker/([a-z0-9]+)'
replacement: '$1'
target_label: container_id
- regex: 'kernelVersion'
action: labeldrop
注释:
- regex: 'kernelVersion' #填写要删除的标签
action: labeldrop #动作为标签删除
仅配置框中的即可
查看配置是否更新
已经删除