Prometheus Label 标签管理
前言
在
prometheus监控体系中。标签label是一个极为重要的参数,考虑到要明智的使用标签,需要使用标准的标签对整个集群进行管理控制,特别是在复杂的环境中。
一些常见的标签操作案例:
- 重命名标签名
- 删除标签
- 过滤目标
特别注意的是,上列操作,只有两个阶段我们可以对标签进行操作:
- 第一阶段是重新标记来自服务发现的目标。
这对于服务发现的元数据标签的信息引用到度量上的标签费用游泳,这些将在
relabel_configs模块中完成。
- 第二阶段是在刮刮
scape之后,但在保存到存储系统之前。
这使我们能够确保我们保存了那些指标,删除了那些指标,以及这些指标将是什么样子,这些工作将在
metric_relabel_configs模块中完成
其实就是:在发生在 scape 之前 使用 relabel_configs,发生在 scape 之后 使用 metric_relabel_configs.
action:重新标签动作
replace:默认,通过regex匹配source_label的值,使用replacement来引用表达式匹配的分组keep:删除regex与连接不匹配的目标 source_labelsdrop:删除regex与连接匹配的目标 source_labelslabeldrop:删除regex匹配的标签labelkeep:删除regex不匹配的标签hashmod:设置target_label为modulus连接的哈希值source_labelslabelmap:匹配regex所有标签名称。然后复制匹配标签的值进行分组,replacement分组引用(${1},${2},…)替代
**relabel_configs **
relable_configs:
# 源标签
[ source_labels: '[' <labelname> [, ...] ']' ]
# 多个源标签时连接的分隔符
[ separator: <string> | default = ; ]
# 重新标记的标签
[ target_label: <labelname> ]
# 整则表达式匹配源标签的值
[ regex: <regex> | default = (.*) ]
# 用的少,占时略
[ modulus: <uint64> ]
# 替换正则表达式匹配的分组,分组引用 $1,$2,$3,....
[ replacement: <string> | default = $1 ]
# 基于正则表达式匹配执行的操作
[ action: <relabel_action> | default = replace ]
配置测试
删除metric值
测试基于 cAdvisor 监控容器 文章。
删除 container_tasks_state | container_memory_failures_total 这两个标签
在配置前先查看这两个标签的数据是正常的。
然后再进行配置:
编辑 prometheus.yml 文件,增加下来内容
[root@es01 config]# cat prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
metrics_path: '/metrics'
static_configs:
- targets: ['10.0.20.11:8080']
relabel_configs:
- source_labels: [__name__] # 匹配原标签的名字
separator: ',' # 分隔符,拥有就匹配原标签时,有多个标签,则用逗号 `,` 分割
regex: '(container_tasks_state|container_memory_failures_total)' # 匹配要删除的标签名称,如果有多个正则,用分号隔开`;`
action: drop # 匹配的动作
重新加载配置文件后测试
[root@es01 config]# /opt/prometheus-2.14/bin/promtool check config /opt/prometheus-2.14/config/prometheus.yml
Checking /opt/prometheus-2.14/config/prometheus.yml
SUCCESS: 0 rule files found
[root@es01 config]# curl -X POST http://10.0.20.11:9090/-/reload
重载配置文件完成后,稍等便宜,当再次查询的时候,会发现 container_tasks_state | container_memory_failures_total 这两个标签已无法查询到数据


更换
其实所谓的更换,是匹配到对应的标签内容后,再次增加一个key来对应匹配的值
测试
编辑 prometheus.yml 文件,增加下来内容
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
metrics_path: '/metrics'
static_configs:
- targets: ['10.0.20.11:8080']
relabel_configs:
- source_labels: [__name__]
separator: ','
regex: '(container_tasks_state|container_memory_failures_total)'
action: drop
- source_labels: [id] # 匹配原标签
regex: '/docker/([a-z0-9]+)' # 匹配对应的值
target_label: container_id # 新的标签的key值
replacement: '$1' # 替换的内容 value
action: replace # 动作为替换
重新加载配置文件后测试
[root@es01 config]# /opt/prometheus-2.14/bin/promtool check config /opt/prometheus-2.14/config/prometheus.yml
Checking /opt/prometheus-2.14/config/prometheus.yml
SUCCESS: 0 rule files found
[root@es01 config]# curl -X POST http://10.0.20.11:9090/-/reload

由此可以看出,已经新增了一个标签。
删除 Label 标签
在获取到的 metric 数据中的一些label,无用则可以通过匹配后删除
编辑 prometheus.yml 文件,增加下来内容
[root@es01 config]# cat prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
metrics_path: '/metrics'
static_configs:
- targets: ['10.0.20.11:8080']
relabel_configs:
- source_labels: [__name__]
separator: ','
regex: '(container_tasks_state|container_memory_failures_total)'
action: drop
- source_labels: [id]
regex: '/docker/([a-z0-9]+)'
target_label: container_id
replacement: '$1'
action: replace
- regex: 'kernelVersion' # 正则匹配标签
action: labeldrop # 执行动作删除匹配的标签
Prometheus Label 标签管理的更多相关文章
- Laravel大型项目系列教程(五)之文章和标签管理
一.前言 本节教程将大概完成文章和标签管理以及标签关联. 二.Let's go 1.文章管理 首先创建管理后台文章列表视图: $ php artisan generate:view admin.art ...
- WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展
一.前言.预览 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要是对文本 ...
- C#开发微信门户及应用(37)--微信公众号标签管理功能
微信公众号,仿照企业号的思路,增加了标签管理的功能,对关注的粉丝可以设置标签管理,实现更加方便的分组管理功能.开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建.查询.修改.删除等操作, ...
- HTML label标签的一点理解
label标签为input元素定义标注. label元素不呈现任何特殊效果.不过他为鼠标用户改进了可用性.如果你在label元素内点击文本就会触发此控件.就是说当用户选择该标签是,浏览器就会自动的将焦 ...
- [译]:Orchard入门——使用标签管理内容
原文链接:Organizing Content Using Tags 在Orchard中,内容项可以使用标签来分类,同时,通过格式为 ~/tags/tag-name 的url可以直接查看包含对应标签关 ...
- HTML <label> 标签
定义:<label> 标签为 input 元素定义标注(标记). 用法: label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label 元素内点击文本, ...
- label标签使用过程中遇到的问题
最近在做东西时候使用到了label标签,由于之前很少使用label标签,所以就遇到一个很奇怪的问题.什么问题呢?下面来看一个效果 <!DOCTYPE html> <html> ...
- git学习:多人协作,标签管理
多人协作: 查看远程库的信息, git remote 推送分支到远程库 git push origin master/dev 注意:master是主分支,时刻需要与远程同步 dev是开发分支,也需要与 ...
- 动易CMS之标签管理
一.如何添加一个标签 1.系统设置->模板标签管理->添加标签 2.输入标签名称,根据需要选择数据设置: sql语句则选择[系统数据库SQL查询] 3.添加参数 4.系统可以根据设置的条件 ...
随机推荐
- 《JavaScript设计模式与开发实践》-- 代理模式
详情个人博客:https://shengchangwei.github.io/js-shejimoshi-daili/ 代理模式 1.定义 代理模式:代理模式是为一个对象提供一个代用品或占位符,以便控 ...
- 作为一名程序员,你真正了解CDN技术吗?
本文导读: 物流仓库配送如何加速 静态资源文件部署方式 静态资源加速之CDN技术 解析过程中的名词解释 最后的总结 1.物流仓库配送如何加速 我们还是从生活中购物的例子来展开. 将时光倒回到几年前,在 ...
- 使用 Github + Hexo 从 0 搭建一个博客
最近有几位同学在公众号后台留言问我的博客站是怎么建站的,思来想去,还是写一篇从 0 开始吧. 前置准备 我们先聊一下前置准备,可能很多同学一听说要自己搭一个博客系统,直接就望而却步.不得有台服务器么, ...
- RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)
好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...
- FastJson稍微使用不当就会导致StackOverflow
GitHub 9.4k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 9.4k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 9.4k Star 的 ...
- P3043 [USACO12JAN]牛联盟(并查集+数学)
(m<n<=1e5,有重边) 题目表述有问题..... 给定一张图(不一定联通),每条边可以选择连接的两个点之一,剩余的点可以自己成对,问方案数. 一开始是真的被吓到了....觉得可写性极 ...
- egret开发方法(最笨的方法)
egret开发方法(最笨的方法)1 1个精灵1个对象名字 获取精灵设置属性也是直接获取对象设置属性 (不用想的少些代码 因为没有jquery好用) ps:如果要设置很多个精灵属性 那可以添加到数组 然 ...
- 201871010114-李岩松《面向对象程序设计(java)》第四周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- jdk 错误1316 指定账户已存在 与 jdk1.7安装和配置环境变量 与 jdk1.8与1.7版本的切换使用
问题: 安装JDK,提示错误信息:,指定的账号已存在. 原因: 安装JDK,相当于安装了一个软件,要使用系统的软件卸载功能卸载,不能只删除安装目录文件夹下的文件,如果只 ...
- MySQL每个分类的前几条记录
MySQL 获取所有分类和每个分类的前几条记录 比如有文章表 Article(Id,Category,InsertDate) 现在要用SQL找出每种类型中时间最新的前N个数据组成的集合 SELECT ...