prometheus标签

2023-05-16

004 标签

1. 作用

Prometheus中存储的数据为时间序列,是由Metric的名字和一系列的标签(键值对)唯一标识的, 不同的标签代表不同的时间序列,即 通过指定标签查询指定数据

指标+标签实现了查询条件的作用,可以指定不同的标签过滤不同的数据

2. Meta标签

被监控端纳入Prometheus时定义了一些元数据标签

在Prometheus所有的Target实例中都包含一些Metadata标签信息,可以通过targets页面查看实例的metadata标签的内容,例如:

  • address:当前Target实例的访问地址:
  • scheme:采集目标服务访问地址的HTTP Scheme,HTTP或者HTTPS
  • metrics_path:采集目标服务访问地址的访问路径
  • **_param :**采集任务目标服务的中包含的请求参数

除了这些默认的标签以外,还可以为Target添加自定义的标签。

元标签只是Prometheus使用,不会写入时序数据库中,在promql中无法查到

3. 自定义标签

自定义标签后,可以根据特定自定义标签实现多维度查询

- job_name: 'BJ Linux Server'
    basic_auth:
      username: prometheus
      password: 123456
    static_configs:
    - targets: ['192.168.179.99:9100']
      labels:
        idc: tongniu
        project: www
 
  - job_name: 'Shanghai Linux Server'
    basic_auth:
      username: prometheus
      password: 123456
    static_configs:
    - targets: ['192.168.179.99:9100']
      labels:
        idc: sss
        project: blog

![ ](https://img-blog.csdnimg.cn/22bcd2291c在这里插入图片描述

4. 重新标记标签

在这里插入图片描述

目的:为了更好的标识监控指标

重新标记的两个阶段:

  • relabel_configs : 在采集之前
  • metric_relabel_configs:在存储之前准备抓取指标数据时,可以使用relabel_configs添加一些标签、也可以只采集特定目标或过滤目标。 已经抓取到指标数据时,可以使用metric_relabel_configs做最后的重新标记和过滤。
  • 用途:
    • 动态生成新标签 根据已有的标签生成新标签
    • 过滤采集的Target
    • 删除不需要或者敏感标签
    • 添加新标签
  • action:重新标记标签动作
    • replace:默认,通过regex匹配source_label的值,使用replacement来引用表达式匹配的分组,分组使用$1,$2…引用(正则匹配,提取字段重新创建新标签,注意这里是创建新的标签)
    • keep:删除regex与连接不匹配的目标 source_labels , keep drop就是让Prometheus采集和不采集哪些目标
    • drop:删除regex与连接匹配的目标 source_labels
    • labeldrop:删除regex匹配的标签
    • labelkeep:删除regex不匹配的标签
    • labelmap:匹配regex所有标签名称,并将捕获的内容分组,用第一个分组内容作为新的标签名(使用正则提取出多个字段,使用匹配到的作为新标签名,但是标签的内容不会改变,相对于对原有标签换了个名字)

使用示例:

  • 重命名标签

场景:动态生成添加标签(对已有的标签重新标记)

- job_name: 'Linux Server'
    basic_auth:
      username: prometheus
      password: 123456
    static_configs:
    - targets: ['192.168.179.99:9100']
    metric_relabel_configs:
    - action: replace
      source_labels: ["instance"]
      regex: (.*):([0-9]+)  # 正则匹配标签值,( )分组
      replacement: $1       # 引用分组匹配的内容
      target_label: "ip"
  • 过滤Target

场景:选择采集的目标

- job_name: 'Linux Server'
    basic_auth:
      username: prometheus
      password: 123456
    static_configs:
    - targets: ['192.168.179.99:9100']
    relabel_configs:
    - action: drop
      regex: "192.168.179.99:9100"   # 正则匹配标签值
      source_labels: ["_address_"]

在target里面就没有192.168.179.99:9100这台机器

  • 删除标签

删除使用 labeldrop:在入库之前删除regex匹配的标签

- job_name: 'Linux Server'
    basic_auth:
      username: prometheus
      password: 123456
    static_configs:
    - targets: ['192.168.179.99:9100']
    relabel_configs:
    - action: labeldrop
      regex: "job"   #正则匹配标签名称
  • keep

Keep只有匹配的才会去采集数据,不匹配的就不采集。即pod的注解中声明了prometheus_io_scrape: true这个字段,那么就会把你纳入监控,如果没有声明就不会纳入监控。

  • replace

    处理监控pod连接的ip地址,api接口,还有协议都需要重新标记默认的字段

# 重命名采集目标协议
      - action: replace
        regex: (https?)
        source_labels:
        - __meta_kubernetes_service_annotation_prometheus_io_scheme
        target_label: __scheme__
      # 重命名采集目标指标URL路径
      - action: replace
        regex: (.+)
        source_labels:
        - __meta_kubernetes_service_annotation_prometheus_io_path
        target_label: __metrics_path__
      # 重命名采集目标地址
      - action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        source_labels:
        - __address__
        - __meta_kubernetes_service_annotation_prometheus_io_port
        target_label: __address__

就可以使用新的标签kubernetes_namespace在promql里面基于命名空间这个标签去查询了,因为 __meta_kubernetes_namespace这个标签是不会被存储的

生成命名空间标签  
 - action: replace
    source_labels:
    - __meta_kubernetes_namespace
    target_label: kubernetes_namespace

实际访问指标接口 https://NodeIP:10250/metrics/cadvisor 这个接口只能APISERVER访问,故此重新标记标签使用APISERVER代理访问

这个就是直接指定标签的值,也就是将采集的地址换为我指定的地址

# 修改NodeIP:10250为APIServerIP:6443
    - action: replace
      regex: (.*)
      source_labels: ["__address__"]  源标签配匹为address
      target_label: __address__
      replacement: 192.168.31.61:6443
  • labelmap
relabel_configs:
    # 将标签(.*)作为新标签名,原有值不变(新的标签名字会被入库查询)
    - action: labelmap
      regex: __meta_kubernetes_node_label_(.*)

(.) ,以其开头所有值匹配到,用这个匹配的值作为新的标签名字,新的标签名字就可以入库,就会被查询,因为元标签以下划线开头的是不会入库的,后面是用不了的/这样做的目的就是将后面(.)匹配的值作为一个新标签,并且将原有值赋予新标签,后面可以基于这个新标签查询数据了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

prometheus标签 的相关文章

随机推荐

  • Python隐形水印invisible-watermark教程

    隐形水印 xff0c 顾名思义 xff0c 在图片上打上肉眼不可见的水印 xff0c 但是通过特定的解码方式可以查看水印标识 invisible watermark xff0c 一个Python库 xff0c 实现对图片加上隐形水印 xff
  • 【学习笔记】JavaScript 寻找字串的方法:includes/indexOf/search/match

    在处理数据时 xff0c 查找字符串是一种常见的操作 xff0c JavaScript 提供不同的方法来搜索字符串 其中 xff0c 最常用的方法包括 xff1a search indexOf includes 和 match xff0c
  • SLAM学习笔记——从零搭建完整的gazebo多机仿真SLAM(一)

    文章目录 引言第一部分 搭建gazebo仿真环境使用gazebo的building editor搭建地图使用launch文件加载world文件 第二部分 放入你的机器人第三部分 启动SLAM第四部分 使用键盘控制构建地图并保存键盘控制机器人
  • Ubuntu apt-get 国内镜像源替换(新手必看,超详细!各种镜像源网站都有)

    点击名称即可进入对应网站 阿里云镜像开源镜像站 xff08 已经更换地址 xff09 阿里云镜像开源社区镜像站 xff08 新地址 xff09 网易开源镜像站 清华大学开源镜像站 中科大开源镜像站 1 首先进入开源镜像站获取相应连接 这里以
  • 各种通信协议整理

    一个做嵌入式的工程师 xff0c 无论是做硬件还是软件 xff0c 每天都在接触一些通信相关的名词 xff0c 若不认真整理这些概念 xff0c 就很可能会混淆或忘记具体的含义与区别 xff0c 因为最近正好在做项目用到了SPI协议传输数据
  • client-go开发示例

    1 查看 node列表 2 查看pod列表 3 service列表 4 获取sa列表 5 查看deploy列表 6 查看pv列表 7 查看PVC列表 8 查看ns列表 9 查看ingress列表 10 查看Secret列表 11 创建sec
  • Ceph部署

    1 简介 Ceph是一个高性能 可扩容的分布式存储系统 xff0c 它提供三大功能 xff1a 对象存储 xff1a 提供RESTful接口 xff0c 也提供多种编程语言绑定 兼容S3 Swift块存储 xff1a 由RBD提供 xff0
  • API 优先级和公平性(APF)

    1 概述 目前apiserver默认的限流方式太过简单 目前k8s缺少客户端业务请求隔离 xff0c 一个错误的客户端发送大量请求可能造成其他客户端请求异常 xff0c 也不支持突发流量 2 开启APF APF测试 开启APF xff0c
  • 十大经典排序算法总结(C语言版本)

    前言 xff1a 排序算法 是最经典的算法知识 xff0c 也是每个合格程序员应该需要掌握的知识点 考虑到排序算法通常代码简短 xff0c 逻辑思维强和应用范围广等特性 xff0c 排序算法题目便成为了面试中的常客 在面试中最常考的是快速排
  • Unicode、UTF-8、UTF-16 终于懂了

    计算机起源于美国 xff0c 上个世纪 xff0c 他们对英语字符与二进制位之间的关系做了统一规定 xff0c 并制定了一套字符编码规则 xff0c 这套编码规则被称为ASCII编码 ASCII 编码一共定义了128个字符的编码规则 xff
  • Prometheus 的优雅关闭

    1 方法1 xff1a 用 pgrep f prometheus 找到运行的 Prometheus 进程号 使用 kill TERM 1234 来关闭 2 方法2 需要通过 web enable lifecycle 参数开启 lifecyc
  • Ceph运维操作

    1 操控集群 1 1 UPSTART Ubuntu系统下 xff0c 基于ceph deploy部署集群后 xff0c 可以用这种方法来操控集群 列出节点上所有Ceph进程 xff1a start ceph all 启动节点上特定类型的Ce
  • k8s部署Ceph

    1 Helm部署 1 1 简介 为了将Ceph部署到K8S集群中 xff0c 可以利用ceph helm项目 目前此项目存在一些限制 xff1a public和cluster网络必须一样如果Storage的用户不是admin xff0c 你
  • Ceph性能调优

    1 最佳实践 1 1 基本 监控节点对于集群的正确运行非常重要 xff0c 应当为其分配独立的硬件资源 如果跨数据中心部署 xff0c 监控节点应该分散在不同数据中心或者可用性区域日志可能会让集群的吞吐量减半 理想情况下 xff0c 应该在
  • Ceph常见问题

    1 CephFS问题诊断 1 1 无法创建 创建新CephFS报错Error EINVAL pool rbd ssd already contains some objects Use an empty pool instead xff0c
  • 镜像仓库 Harbor 对接 MinIO 对象存储

    Harbor 的部署之前使用的存储是 NFS xff0c 虽然可以使用 rsync 43 inotify 做数据同步做解决单点问题 xff0c 但是 NFS 效率 性能有限 xff0c 没有对象存储那么强大 xff0c 所以一般使用对象存储
  • thanos prometheus 的高可用、长期存储二进制部署

    1 简介 http thanos io thanos 是具有长期存储功能的开源 高可用性 Prometheus的集群组件 全局查询视图 跨多个 Prometheus 服务器和集群查询指标 无限保留 使用对象存储扩展系统 xff0c 不限时间
  • prometheus基本介绍

    001 基本介绍 1 主要功能 多维数据模型 xff08 时序由metric名字和k v的labels构成 xff09 灵活的查询语句无依赖存储 xff0c 支持local和remote不同的模型采用http协议 xff0c 使用pull模
  • prometheus基本概念

    基本概念 1 数据模型 prometheus存储的是时序数据 xff0c 即按照相同时序 xff08 相同名字和标签 xff09 xff0c 以时间维度存储的连续数据集合 时序是由名字以及key value标签定义 xff0c 具有相同的名
  • prometheus标签

    004 标签 1 作用 Prometheus中存储的数据为时间序列 xff0c 是由Metric的名字和一系列的标签 键值对 唯一标识的 不同的标签代表不同的时间序列 xff0c 即 通过指定标签查询指定数据 指标 43 标签实现了查询条件