携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
1.label标签概述
标签提供了时间序列的纬度,他们可以定义目录,并为时间序列提供上下文,但最重要的是结合指标名称,他们构成了时间序列的表示,如果他们改变了,那么时间序列的表示也会改变
标签的常见用例:
- 删除不必要的指标
- 从指标中删除敏感或不需要的标签
- 添加、编辑或修改指标的标签或标签格式
记住有两个阶段我们可以重新命名。第一阶段是重新标记来自服务发现的目标。这对于将来自服务发现的元数
据标签的信息应用到您的度量上的标签非常有用。这是在作业内部的relabel_configs快中完成的。
第二个阶段是在刮刮(scape)之后,但在保存到存储系统之前。这使我们能够确定我们保存了那些指标,删除了那些指标,以及这些指标将是什么样子。这是在我们的工作中的metric_relabel_configs块中完成的。
记住这两个阶段最简单的方法是:relabel_configs发生在刮刮之前,metric_relebel_configs发生在刮刮之后。
2.label标签使用
2.1删除标签中的一个metrics
#修改配置文件
[root@192.168.100.146~]# vim /data/prometheus/prometheus.yml
- job_name: "docker"
static_configs:
- targets: ['192.168.100.147: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为删除
#重载配置文件
[root@192.168.100.146/data/prometheus]#curl -XPOST http://localhost:9090/-/reload
在prometheus页面查看配置是否生效
查看对应的metrics监控指标是否删除
2.2.更新一个标签值
一个metric_relabel_configs:下可以跟多个source_labels对不同的标签进行操作
我们可以对一个标签的值进行替换,但是,不是真的替换,而且将原来的值取出来后新增一个标签并赋予值
容器的进程都会有下图的一个输出,id='/docker/.....'
/docker/后面的就是容器的id,我们想要取出id在把id放到一个新标签container_id中
[root@192.168.100.146/data/prometheus]# vim prometheus.yml
- job_name: "docker"
static_configs:
- targets: ['192.168.100.147: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@192.168.100.146/data/prometheus]# curl -X POST http://localhost:9090/-/reload
level=info ts=2021-05-17T08:55:45.302Z caller=main.go:944 msg="Loading configuration file" filename=/data/prometheus/prometheus.yml
level=info ts=2021-05-17T08:55:45.362Z caller=main.go:975 msg="Completed loading of configuration file" filename=/data/prometheus/prometheus.yml totalDuration=60.482016ms remote_storage=3.726µs web_handler=621ns query_engine=1.974µs scrape=646.844µs scrape_sd=8.300646ms notify=20.933µs notify_sd=14.578µs rules=1.542µs
仅配置框中的即可
配置已经生效
查看是否增加新标签container_id
2.3.删除一个标签
我们删除一个kernelVersion的标签,也就是内核版本的标签,这个不易暴露
我们可以根据cadvisor_version_info这个metrics值找到kernelVersion标签
[root@192.168.100.146/data/prometheus]# vim prometheus.yml
- job_name: "docker"
static_configs: -
targets: ['192.168.100.147: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 #动作为标签删除
#重新加载
[root@192.168.100.146/data/prometheus]# curl -X POST http://localhost:9090/-/reload
level=info ts=2021-05-17T09:04:09.993Z caller=main.go:944 msg="Loading configuration file" filename=/data/prometheus/prometheus.yml
level=info ts=2021-05-17T09:04:10.091Z caller=main.go:975 msg="Completed loading of configuration file" filename=/data/prometheus/prometheus.yml totalDuration=98.031403ms remote_storage=3.36µs web_handler=752ns query_engine=1.432µs scrape=513.451µs scrape_sd=46.784µs notify=9.816µs notify_sd=9.692µs rules=1.417µs
仅配置框中的即可
查看配置是否更新
已经删除
cadvisor_version_info