prometheus relabel_configs 标签重写

目录

一 标签重写

二 标签重写规则:

三 action:

1 替换标签值:

2 创建或删除标签:

四 示例

1 添加标签:

2 热加载配置: 

3 删除标签: 

4 修改标签名称: 

5 替换标签:替换标签的键名与值 

6 批量匹配标签: 

7 指标重写 


一 标签重写

双下划线“__address__”的标签是系统默认标签,是不会显示在metrics里面的。

默认的标签是不显示的,需要鼠标放到label上才会显示。

__address__:当前Target实例的访问地址[host]:[port]
__scheme__:采集目标服务访问地址的HTTP Scheme,HTTP或者HTTPS
__metrics_path__:采集目标服务访问地址的访问路径
__param_:采集任务目标服务的中包含的请求参数
__name__: 此标签是标识指标名称的预留标签。

二 标签重写规则:

source_labels: [<labelname>,] # 原始标签,多个用分隔符分割
separator: ; # 分隔符,将source_labels的多个“值”进行连接
regex: (.+) # 使用正则去匹配source_labels中的标签
target_label: # regex规则匹配到的标签放到这里
replacement:  $1 # 对某一部分进行操作
action: replace # 执行的动作

三 action:

1 替换标签值:

replace: 根据 regex 的配置匹配 source_labels 标签的值(注意:多个 source_label 的值会按照 separator 进行拼接),并且将匹配到的值写入到 target_label 当中,如果有多个匹配组,则可以使用 ${1}, ${2} 确定写入的内容。如果没匹配到任何内容则不对 target_label 进行重新, 默认为 replace。
hashmod: 将 target_label 设置为关联的 source_label 的哈希模块

#删除指标:如:不想监控某个target可以用drop删除。
keep: 丢弃 source_labels 的值中没有匹配到 regex 正则表达式内容的 Target 实例
drop: 丢弃 source_labels 的值中匹配到 regex 正则表达式内容的 Target 实例

2 创建或删除标签:

labelmap: 改标签名称
labeldrop: 对 Target 标签进行过滤,会移除匹配过滤条件的所有标签
labelkeep: 对 Target 标签进行过滤,会移除不匹配过滤条件的所有标签

四 示例

1 添加标签:

  - job_name: 'prometheus'
    static_configs:
    - targets: [ 'localhost:9090']
      labels:
        env: 'prod' # 标签1
        __hostname__: 'localhost' # 标签2,不显示到metrics

2 热加载配置: 

curl -XPOST http://localhost:9090/-/reload

3 删除标签: 

- job_name: 'delete_label'
  relabel_configs:
  - regex: metadata_user_(.+)
    action: labeldrop

4 修改标签名称: 

    relabel_configs:
    - action: replace # 执行的动作为替换
      source_labels: [__meta_consul_node]
      target_label: hostname # 新的标签名称

5 替换标签:替换标签的键名与值 

  - job_name: 'elasticsearch'
    metrics_path: "/metrics"
    static_configs:
    - targets:
      - '10.32.238.22:9114'
      labels:
        service: elasticsearch # 新添加的标签
    relabel_configs:
    - action: replace # 执行的动作,默认就是这个值,可以省略不写。
      source_labels: [__address__] # 要替换的标签
      regex: '(.*)\:9114' # 正则匹配标签中的值,以备后面替换使用
      target_label:  'instance' # 替换后的标签名,instance=$1,target_label用于创建新标签
      replacement:   '$1' # 替换为正则匹配中的子模式的值,就是regex中的括号里的值

6 批量匹配标签: 

action: labelmap #根据 regex 去匹配 Target 实例所有标签的名称(注意是名称),并且将捕获到的内容作为为新的标签名称,regex 匹配到标签的的值作为新标签的值。
    relabel_configs:
    - action: labelmap
      regex: __meta_consul_(.+)
修改效果如下:匹配到的标签都成为新标签。
更多示例:
scriptjc.com/article/1228

参考文章:
http://www.51niux.com/?id=254

7 指标重写 

对抓取到的指标数据metrics的名称进行重写。

删除某个指标数据:这里删除的是某个指标,而不是指标中{}里面的标签。

metric_relabel_configs:
- source_labels:
  - __name__
  regex: "go_info.*"
  action: drop

一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。 5.Grafana:监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值