运维别卷系列 - 云原生监控平台 之 03.prometheus label 实践

文章目录

    • @[toc]
    • label 简介
    • 自定义标签
    • relabel_configs
      • regex
      • relabel_action
    • metric_relabel_configs
      • 两者的区别
    • 实践

label 简介

  • label 对于 Prometheus 来说,属于数据处理的方式,Prometheus 是通过指定的 label 来查询数据

  • Prometheus 的 target 中实例,都会包含一些默认的 metadata label,比如基于 kubernetes 服务发现的会有类似 __meta_kubernetes_namespace="monitor" 这种 label

  • 下面就是上次咱们基于 kubernetes_sd_configs 服务发现加入的 node-exporter,可以看到,Prometheus 注入了这些 metadata label,这些是不会显示在 /metrics 页面里面的

在这里插入图片描述

自定义标签

针对于 Prometheus 联邦集群,自定义标签就可以很好的去区分环境,也可以细化查询的维度

  • 比如我基于之前的 Prometheus 配置文件,给 Prometheus 增加了一个 label
- job_name: prometheusmetrics_path: '/metrics'static_configs:- targets: ['prometheus-svc:9090']labels:env: study

可以从 target 里面看到我们增加的 label

在这里插入图片描述

graph 里面也可以指定我们自定义的 label 来查询数据(这里因为就一个 Prometheus,就演示一下效果)

在这里插入图片描述

relabel_configs

relabel_configs

  • Relabeling is a powerful tool to dynamically rewrite the label set of a target before it gets scraped. Multiple relabeling steps can be configured per scrape configuration. They are applied to the label set of each target in order of their appearance in the configuration file.
  • 重新标记是一个强大的工具,可以在目标被抓取之前动态重写目标的标签集。每个抓取配置可以配置多个重新标记步骤。它们将按照它们在配置文件中的出现顺序应用于每个目标的标签集。
  • Initially, aside from the configured per-target labels, a target’s job label is set to the job_name value of the respective scrape configuration. The __address__ label is set to the : address of the target. After relabeling, the instance label is set to the value of __address__ by default if it was not set during relabeling. The __scheme__ and __metrics_path__ labels are set to the scheme and metrics path of the target respectively. The __param_ label is set to the value of the first passed URL parameter called .
  • 最初,除了配置的每个目标标签外,目标的 job 标签设置为相应抓取配置的 job_name 值。__address__ 标签设置为目标的 <host>:<port> 地址。重新标记后,如果在重新标记期间未设置 instance 标签,则默认设置为 __address__ 值。__scheme____metrics_path__ 标签分别设置为目标的方案和指标路径。__param_ 标签设置为第一个传递的 URL 参数的值,称为 <name>
  • The __scrape_interval__ and __scrape_timeout__ labels are set to the target’s interval and timeout. This is experimental and could change in the future.
  • __scrape_interval____scrape_timeout__ 标签设置为目标的间隔和超时。这是实验性的,将来可能会改变。
  • Additional labels prefixed with __meta_ may be available during the relabeling phase. They are set by the service discovery mechanism that provided the target and vary between mechanisms.
  • 在重新标记阶段,可以使用以 __meta_ 为前缀的其他标签。它们由提供目标的服务发现机制设置,并且因机制而异。
  • Labels starting with __ will be removed from the label set after target relabeling is completed.
  • 目标重新标记完成后,将从标签集中删除以 __ 开头的标签。
  • If a relabeling step needs to store a label value only temporarily (as the input to a subsequent relabeling step), use the __tmp label name prefix. This prefix is guaranteed to never be used by Prometheus itself.
  • 如果重新标记步骤只需要临时存储标签值(作为后续重新标记步骤的输入),请使用 __tmp 标签名称前缀。这个前缀保证永远不会被 Prometheus 本身使用。

regex

  • <regex> 是任何有效的 RE2 正则表达式。
  • replacekeepdroplabelmaplabeldroplabelkeep 操作需要它。
  • 正则表达式锚定在两端。要取消锚定正则表达式,请使用 .*<regex>.*

relabel_action

重新标记操作有以下几个

  • replace:将 regex 与连接的 source_labels 匹配。然后,将 target_label 设置为 replacement,将 replacement 中的匹配组引用 (${1}${2}, …) 替换为其值。如果 regex 不匹配,则不进行替换。
  • lowercase:将连接的 source_labels 映射到其小写字母。
  • uppercase:将连接的 source_labels 映射到其大写字母。
  • keep:丢弃 regex 与连接的 source_labels 不匹配的目标。
  • drop:丢弃 regex 与连接 source_labels 匹配的目标。
  • keepequal:丢弃与连接的 source_labels 不匹配的目标 target_label
  • dropequal:丢弃与连接的 source_labels 匹配 target_label 的目标。
  • hashmod:将 target_label 设置为串联 source_labels 的哈希值的 modulus
  • labelmap:将 regex 与所有源标签名称匹配,而不仅仅是 source_labels 中指定的名称。然后将匹配标签的值复制到 replacement 给出的标签名称,并将 replacement 中的匹配组引用 (${1}${2}, …) 替换为其值。
  • labeldrop:将 regex 与所有标签名称匹配。任何匹配的标签都将从标签集中删除。
  • labelkeep:将 regex 与所有标签名称匹配。任何不匹配的标签都将从标签集中删除。

必须注意 labeldroplabelkeep,以确保在删除标签后,指标仍是唯一标记的。

metric_relabel_configs

metric_relabel_configs

  • Metric relabeling is applied to samples as the last step before ingestion. It has the same configuration format and actions as target relabeling. Metric relabeling does not apply to automatically generated timeseries such as up.
  • metric_relabel_configs 应用于样本,作为摄取前的最后一步。它具有与 relabel_config 相同的配置格式和操作。指标重新标记不适用于自动生成的时间序列,例如 up
  • One use for this is to exclude time series that are too expensive to ingest.
  • 这样做的一个用途是排除成本太高而无法摄取的时间序列。

两者的区别

  • relabel_configs 在抓取(采集)之前对任何目标及其标签进行高级修改。
  • metric_relabel_configs 在摄取(存储)之前对任何目标及其标签进行高级修改。

实践

  • 同样,采用咱们之前部署 node-exporter 的配置文件。这里就取一小段做演示
  • 这里是将 __meta_kubernetes_namespace 重新标记成 kubernetes_namespace
  - source_labels: [__meta_kubernetes_namespace]action: replacetarget_label: kubernetes_namespace

这样,就可以看到新增了一个 label

在这里插入图片描述

就可以用这个重新标记的 label 来做查询了

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity 2d像素游戏抖动问题

有的时候移动的时候会抖动&#xff0c; 刚体的这里改成插值&#xff0c;平滑移动解决

验证集的划分方法:确保机器学习模型泛化能力的关键

验证集的划分方法&#xff1a;确保机器学习模型泛化能力的关键 目录 一、验证集的作用 二、验证集的划分方法 三、注意事项 四、总结 在机器学习任务中&#xff0c;我们不仅要关注模型在训练数据上的表现&#xff0c;更重要的是模型在未见数据上的泛化能力。为了评估和提高…

Kafka基础架构详解

Kafka基础架构 Kafka概述 1. Producer&#xff08;生产者&#xff09;&#xff1a; 生产者是向 Kafka broker 发送消息的客户端。它负责将消息发布到指定的主题&#xff08;Topic&#xff09;&#xff0c;并可以选择将消息发送到特定的分区&#xff08;Partition&#xff09…

高中数学:平面向量-加减运算

一、向量的加法运算 三角形法则&#xff08;推荐&#xff09; 两个或多个向量收尾相连的加法运算&#xff0c;用三角形法则 简便算法 首尾相连的多个向量&#xff0c;去掉中间点&#xff0c;就是最终的和。 也可以用三角形法则证明 向量加法交换律 向量加法结合律 平行四…

打造销售爆款利器!淘宝商品评论电商API接口全方位解析

无论是实体店还是电商平台&#xff0c;通过有效的销售推广手段&#xff0c;提升产品销量都是商家追求的目标。而淘宝商品评论电商API接口就是一种非常有效的工具&#xff0c;它能够帮助商家获取、分析并利用商品评论信息&#xff0c;为销售策略提供有力支持。联讯数据将全面解析…

Flutter 依据JSON数据自动生成实体类

json自动化生成工具 点击这里可以跳转 页面是这样的 然后在左边输入你的json数据&#xff0c;它会自动生成对应的实体类 生成的实体类是如下&#xff1a; import package:json_annotation/json_annotation.dart; part merch_region.g.dart;JsonSerializable()class MerchReg…

华为设备使能Auto-Config功能

Auto-Config is working. Before configuring the device, stop Auto-Config. If you perform configurations when Auto-Config is running, the DHCP, routing, DNS, and VTY configurations will be lost. Do you want to stop Auto-Config? [y/n] 背景信息 此任务的应用场…

AI图像生成-基本步骤

模型板块 1、新建采样器&#xff1a;新建节点-》采样器-》K采样器 2、拖动模型节点后放开&#xff0c;选择checkpoint加载器&#xff08;简易&#xff09;&#xff0c;模型新建成功 提示词板块 1、拖动正面条件节点后放开&#xff0c;选择CLIP文本编码器&#xff0c;模型新建…

Vue 封装axios

【一】准备工作 &#xff08;1&#xff09;安装必要插件 安装Axios&#xff0c;这是必要的。默认最新版 npm install axios -S 或 cnpm install axios -S安装elementui-plus&#xff0c;用于提示信息 npm install element-plus --save # 或 cnpm install element-plus --s…

智慧公厕,提升公共厕所管理效率的信息化变革

现代社会中&#xff0c;公共厕所的管理成为一个不可忽视的问题。随着城市化进程的加快&#xff0c;人们对公厕的需求日益增加&#xff0c;但公厕的管理却面临诸多困难。为了解决这一问题&#xff0c;智慧公厕应运而生&#xff0c;通过信息化的变革&#xff0c;提高公厕的管理效…

GeoServer /geoserver/wms RCE漏洞复现(CVE-2022-24816)

0x01 产品简介 GeoServer是一款开源的地理数据服务器软件,主要用于发布、共享和处理各种地理空间数据。它支持众多的地图和空间数据标准,能够使各种设备通过网络来浏览和使用这些地理信息数据。 0x02 漏洞概述 GeoServer /geoserver/wms 接口处存在远程代码执行漏洞,未经…

Python邮件处理库之flanker使用详解

概要 Flanker是一个开源的邮件处理库,专门设计用于解析、验证和构建电子邮件地址和MIME消息。由Mailgun开发,它旨在提高邮件处理的效率和准确性,尤其适用于需要高效邮件验证和解析的应用程序。 安装 安装Flanker非常简单,可以通过Python的包管理器pip进行安装: pip ins…