Prometheus标签的使用说明

news2025/1/21 7:22:32

prometheus在处理数据指标的过程中,包括【抓取的生命周期】和【标签的生命周期】

默认情况下,当prometheus加载target实例完成后,这些target时候会包含一些默认的标签,这些标签将会告诉prometheus如何从target实例中获取监控数据

       发生在采集样本数据之前,对Target实例的标签进行重写的机制在Prometheus被称为Relabeling。Prometheus允许用户在采集任务设置中通过relabel_configs来添加自定义的Relabeling过程

      Prometheus 从数据源拉取数据后,会对原始数据进行编辑;其中 metric_relabel_configs是 Prometheus 在保存数据前的最后一步标签重新编辑(relabel_configs)。哪怕你将 metric_relabel_configs模块放在 job_name模块的最前端,Prometheus 解析编辑文件后,也会将 metric_relabel_configs放在最后。metric_relabel_configs 模块和 relabel_config 模块很相似。metric_relabel_configs一个很常用的用途:将监控不需要的数据,直接丢掉,不在Prometheus 中保存。

系统默认使用的标签

  1. __address__:当前Target实例的访问地址[host]:[port]
  2. __scheme__:采集目标服务访问地址的HTTP Scheme,HTTP或者HTTPS
  3. __metrics_path__:采集目标服务访问地址的访问路径
  4. __param_:采集任务目标服务的中包含的请求参数
  5. __name__: 此标签是标识指标名称的预留标签。
  6. job:target的job标签设置为配置文件里的job_name的值

prometheus 允许在采集之前对任何目标及其标签进行修改操作

  • 重命名标签名
  • 删除标签
  • 过滤标签

action  标签的动作

    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 实例

             创建或删除标签

     labelmap: #根据 regex 去匹配 Target 实例所有标签的名称(注意是名称),并且将捕获到的                           内容作为为新的标签名称,regex 匹配到标签的的值作为新标签的值。

     labeldrop: 对 Target 标签进行过滤,会移除匹配过滤条件的所有标签

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

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 ]

 一、 replace  不指定action的动作就是 replace

以下三种写法都是一种意思   把addr = IP(IP为__address__值中的ip地址)
relabel_configs:
      - source_labels: [ '__address__' ]
        target_label:  'addr'
        replacement: 'localhost'


 relabel_configs:
      - source_labels: [ '__address__' ]
        target_label:  'addr'
        #regex: "(.*):.*"     #如果只是取$1,那么这句话跟下面的意思一样
        regex: "(.*):(.*)"
        replacement: $1

relabel_configs:
    - action: replace
      source_labels: [ '__address__' ]
      regex: "(.*):(.*)"
      replacement: $1
      target_label:  'addr'

  

 - 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中的括号里的值

 

二、keep

只采集 172.19.1.21这台主机的指标
relabel_configs:
    - separator: ;
      source_labels: [ '__address__']
      regex: '172.19.1.21:.*'                     
      action: keep
不采集172.19.1.21这台主机的指标
 relabel_configs:
    - action: drop
      source_labels: ['__address__']
     regex: '172.19.1.21:.*'
 

三、labelmap 标签名替换

- job_name: 'node_exporter'
    static_configs:
    - targets: ['172.19.1.21:9100','172.19.1.22:9100','172.19.1.23:9100']
      labels:
        env: 'test'
        zone: 'shanghai'
        label_name: 'Test_label'
        label_value: 'za'
        __host__: 'master_abc'
    relabel_configs:
    - source_labels: [ '__host___']
      regex: 'label_(.+)'
      replacement: $1
      action: labelmap

效果如下

四、根据hashmod来选择采集哪些target

  当relabel_config设置为hashmod时,Prometheus会根据modulus的值作为系数,计算source_labels值的hash值。

relabel_configs:
    - source_labels: [ '__address__']
      modulus: 8              # 根据当前Target实例__address__的值以8作为系数,这样每个Target实例都会包含一个新的标签_tmp_hash_value,并且该值的范围在1~10之间
      target_label: _tmp_bash_value
      action: hashmod

效果如下

这个时候就可以利用_tmp_hash_value这个临时标签做任何标签处理了,如下对_tmp_bash_value=3的实例drop

 relabel_configs:
      - source_labels: [ '__address__' ]
        modulus: 8
        target_label: _tmp_hash_value
        action: hashmod
      - source_labels: [ '_tmp_hash_value' ]
        regex: "^3$"
        action: drop


    relabel_configs:
      - source_labels: [ '__address__' ]
        modulus: 8
        target_label: _tmp_hash_value
        action: hashmod
      - source_labels: [ '_tmp_hash_value' ]
        regex: "(^1$|^9$)"
        action: keep
 

五、labeldrop使用

- job_name: 'node_exporter'
    static_configs:
    - targets: ['172.19.1.21:9100','172.19.1.22:9100','172.19.1.23:9100']
      labels:
        env: 'test'
        zone: 'shanghai'
        label_name: 'Test_label'
        label_value: 'za'
        __host__: 'master_abc'
    relabel_configs:
    - regex: "label(.+)"
      action: labeldrop

metric_relabel_configs对拉取数据的操作

1、删除不需要的metrics

    删除以node_cpu_开头的所有metrics
    metric_relabel_configs:
    - source_labels: [__name__]
      separator: ;
      regex: node_cpu_(.+)
      replacement: $1
      action: drop

 修改指标(metrics)中标签(label)

让metric标签中的container_label_io_kubernetes_pod_name这个标签的值赋给新的标签pod_name
    metric_relabel_configs:pod_name
    - source_labels: ['container_label_io_kubernetes_pod_name'] 
      regex: (.+) 
      replacement: $1 
      target_label: pod_name
      action: replace

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161156.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【3】Linux多节点部署KubeSphere|最简单的安装方法

目录 步骤1&#xff1a;准备三台服务器 步骤2&#xff1a;下载KubeKey 步骤3&#xff1a;创建集群 1. 创建示例配置文件 2. 编辑配置文件 3. 使用配置文件创建集群 4. 验证安装 步骤1&#xff1a;准备三台服务器 4c8g (master)8c16g * 2 (worker)centos7.9内网互通每个机…

Tiktok的发展趋势以及政策支持,你了解多少?

武汉瑞卡迪电子商务有限公司&#xff1a;为了方便大家的阅读&#xff0c;这篇文章将分为以下几个板块&#xff1a; 1、Tiktok的基本介绍 2、Tiktok的发展趋势以及政策支持 3、新手运营Tiktok的方法 4、Tiktok引流的方法 一、Tiktok的基本介绍 TikTok TikTok国际版&#xf…

express 1.1安装express And 1.2创建项目

目录 1.1安装express 1.2.1 创建项目 &#xff08;1&#xff09;使用vscode&#xff0c;可以快速创建项目&#xff0c;vscode把终端聚合在了一起&#xff0c;打开vscode终端 &#xff08;2&#xff09;进入工作目录 &#xff08;3&#xff09;执行创建命令 &#xff08;4&…

MySQL必知必会_SELECT部分

最近在读MySQL必知必会&#xff0c;关于这本书打算写点读后感&#xff0c;大概是两篇博客的体量。 其实对于测试岗来说&#xff0c;不管是面试还是实际工作中&#xff0c;最重要的自然当属SELECT。 下面我把书里关于SELECT的知识点简单记一下吧。 首先在MySQL中其实是不区分…

【MySQL】第二部分 MySQL的启动和登录

【MySQL】第二部分 MySQL的启动和登录 文章目录【MySQL】第二部分 MySQL的启动和登录2. MySQL的启动和登录2.1 服务的启动与停止2.2 客户端登录查看版本信息退出登录2.3 演示命令行的使用总结2. MySQL的启动和登录 2.1 服务的启动与停止 MySQL的安装就不过多介绍了,大家可以去…

OpenSceneGraph纹理API开发指南【OSG】

前面的教程中&#xff0c;我们用彩虹的所有颜色画了一个正方形。然而&#xff0c;还有另一种成为纹理映射的技术&#xff0c;将光栅二维图像应用于三维几何。在这种情况下&#xff0c;效果不是针对几何体的顶点&#xff0c;而是通过栅格化场景更改获得的所有像素的数据。这种技…

好雨科技加入龙蜥 完成与 Anolis OS 兼容适配

近日&#xff0c;北京好雨科技有限公司&#xff08;以下简称“好雨科技”&#xff09;签署了 CLA&#xff08;Contributor License Agreement&#xff0c;贡献者许可协议&#xff09; &#xff0c;正式加入龙蜥社区&#xff08;OpenAnolis&#xff09;。好雨科技成立于 2015 年…

bug总是多不如看一看,前端写完代码进行的自测流程减少bug重复反工,提高开发效率。

提测标准&#xff1a;修改bug前要熟知之前的操作逻辑以及涉及其代码的周边逻辑&#xff0c;修改bug后的操作逻辑和测试确认&#xff0c;检测其它周边逻辑。至少需要另外1个开发进行交叉测试必要时进行代码Code Review&#xff08;代码规范&#xff0c;主要逻辑&#xff0c;复杂…

服务器SMTP邮件设置

服务器SMTP邮件设置 在服务器设置登录验证时需要绑定一个自动收发邮件的服务器进行验证 这时候就要对STMP进行配置&#xff0c;如下 填写的主机为邮件对应的主机 腾讯QQ邮箱 POP3&#xff1a;pop.qq.com SMTP&#xff1a;smtp.qq.com IMAP&#xff1a;imap.qq.com 端口&…

1.13

周报 完善案例 ​ this.$nextTick(function () {this.$refs.input.focus()})}​ //点击编辑直接获取焦点 this.$refs.input.focus() //但是这种写法 由于input是用v-show控制的 所以执行了上面代码 改变了isEdit值 但是不会立马去重新解析模板 input框还没有出来 //将handleed…

算法第十期——DFS(深度优先搜索)的剪枝优化

目录 DFS:剪枝 DFS:有哪些剪枝方法 DFS例题一&#xff1a;剪格子 【思路】 DFS例题二&#xff1a;路径之谜 【样例分析】 DFS例题三&#xff1a;四阶幻方 【思路】 【做法一】 【做法二】 DFS例题三&#xff1a;分考场 【样例分析】 【思路】 DFS习题 DFS:剪…

TPM零知识学习十一 —— tpm全安装流程复盘(下)

接前一篇文章《TPM零知识学习十 —— tpm全安装流程复盘&#xff08;中&#xff09;》&#xff0c;链接为&#xff1a; TPM零知识学习十 —— tpm全安装流程复盘&#xff08;中&#xff09;_蓝天居士的博客-CSDN博客 五、TPM模拟器做成服务 本步骤前导步骤参见 《TPM零知识学…

Docker——网络配置

目录 本次目标&#xff1a; 一、Docker网络配置 1.bridge模式(默认模式) 2.host模式 二、bridge模式 三、host模式 网络模式与数据卷容器挂载的操作 四、如何创建自定义网络 本次目标&#xff1a; Docker网络配置Docker部署SpringCloud项目 一、Docker网络配置 Dock…

蓝牙耳机啥牌子音质好?听音乐最好的蓝牙耳机分享

现如今&#xff0c;蓝牙耳机越来越成为外出携带设备使用频率最高的数码产品之一。随着技术的进步&#xff0c;蓝牙耳机在音质上的表现也受到了很多人的关注。在这&#xff0c;我来给大家介绍四款音质很不错的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱蓝牙耳机 售价…

SpringBoot+Vue项目医护人员排班系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

Unity3d VFX 采用skinned mesh sampling(蒙皮采样)发射粒子效果时fbx模型是否优化(Optimized)带来的问题记录

前言&问题 如题的问题困扰了很久&#xff0c;最近终于在机缘巧合下解决了&#xff0c;这里特此记录分享一下&#xff0c;可能会对此有问题的朋友有点引导。 之前在弄一个通过摄像头/或视频识别人物的肢体动作并同步的功能&#xff1a; 详细功能可以去B站查看一下。https…

python学习 --- 列表基础

目录 一、列表的创建 1、使用中括号 2、使用中括号和内置函数list() 二、列表的特点 三、获取列表中元素 1、获取列表中指定元素的索引-index() 2、获取列表中单个元素 3、获取列表中多个元素-切片 四、列表元素的查询和遍历 1、判断指定元素在列表中是否存在 2、遍历…

为什么使用 golang http包 会把 linux 句柄打满?

最近工作的时候一个接入服务需要测性能测试&#xff0c;万万没想到测出了一个把 linux 句柄打满的问题 具体是什么问题呢&#xff0c;我们一起来看看 正常操作 项目中&#xff0c;有一些 http 请求是这样写的&#xff1a; 请求 https 的地址&#xff0c;为了绕过 tls &…

【论文精读】基于流序列的基于残差图卷积网络的匿名网络流量识别

Flow Sequence-Based Anonymity Network Traffic Identification with Residual Graph Convolutional Networks 基于流序列的基于残差图卷积网络的匿名网络流量识别 摘要 从网络流量中识别匿名服务是网络管理和安全的关键任务。 目前&#xff0c;一些基于深度学习的工作已经…

JavaScript 事件案例

文章目录JavaScript 事件案例统计输入字符数量验证输入内容搜索框复选框的全选和反选下拉列表自定义鼠标右键菜单ctrlenter发送消息规定范围内拖拽元素两元素碰撞切换图片内容滚动条鼠标滚动缩放图片JavaScript 事件案例 统计输入字符数量 <!DOCTYPE html> <html>…