运维别卷系列 - 云原生监控平台 之 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.mzph.cn/diannao/12509.shtml

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

相关文章

css 步骤条虚线渐变色效果实现

效果如图所示&#xff1a; 思路&#xff1a; 使用元素覆盖的方式实现视觉上虚线的效果 实现代码&#xff1a; html布局 <ul class"details-cont"><li class"details-li" v-for"item in 3" :key"item"><div class&qu…

(教程)gpt-4o如何使用,怎么体验?gpt-4o和gpt-4-turbo的区别

今天OpenAI发布了gpt-4o&#xff0c;我体验之后&#xff0c;gpt-4o简直逆天了。中文能力也挺别强。速度比现在的gpt4还要快。 早在 5 月 11 日&#xff0c;Sam 就在推文中表示&#xff1a;OpenAI 并没有推出 GPT-5&#xff0c;或搜索引擎&#xff0c;但团队一直在努力研发一些…

Git版本控制工具的原理及应用详解(一)

本系列文章简介&#xff1a; 随着软件开发的复杂性不断增加&#xff0c;版本控制成为了开发团队中不可或缺的工具之一。在过去的几十年里&#xff0c;版本控制工具经历了各种发展和演变&#xff0c;其中Git无疑是目前最受欢迎和广泛应用的版本控制工具之一。 Git的出现为开发者…

Nodejs 第七十章(OSS)

OSS OSS&#xff08;Object Storage Service&#xff09;是一种云存储服务&#xff0c;提供了一种高度可扩展的、安全可靠的对象存储解决方案 OSS 对象存储以对象为基本存储单元&#xff0c;每个对象都有唯一的标识符&#xff08;称为对象键&#xff09;和数据。这些对象可以…

【保姆级介绍下运维】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

编译安装Python3

1、源码安装 1、安装依赖软件包 yum -y install gcc gcc-c zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel # python3.7版本安装 2、下载 curl -o python3.6.5.tgz https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz // 或者 w…

2024年小学生古诗文大会备考:吃透历年真题和知识点(持续)

根据往年的安排&#xff0c;2024年小学生古诗文大会预计这个月就将启动。该如何备考2024年小学生古诗文大会呢&#xff1f;根据往期的经验&#xff0c;只要吃透这些真题和背后的知识点&#xff0c;通过上海小学生古诗文大会的初选&#xff08;初赛&#xff09;一点问题都没有。…

数据库SQL语言实战(八)

目录 练习题 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 题目九 题目十 练习题 题目一 找出年龄小于20岁且是“物理学院”的学生的学号、姓名、院系名称,按学号排序 create or replace view test6_01 as select S.sid,S.name,S.dname fr…

Myql 数据库采用RAID存储带来电池充放电问题原因以及处理方式

一. 背景 Mysql作为数据库, 在某些特定情况下会采用RAID&#xff08;冗余磁盘阵列&#xff09;进行存储. 以保证数据库的性能以及可靠性. 1.1. RAID种类 RAID&#xff08;冗余磁盘阵列&#xff0c;Redundant Array of Independent Disks&#xff09;是一种用于数据存储的技术…

浅析Free RTOS中Queue的应用

目录 概述 1 认识Queue 1.1 Queue定义 1.2 FreeRTOS中的Queue 1.3 Queue状态 1.4 Queue内容 1.5 发送和接收Message 1.5.1 发送message 1.5.2 接收Message 2 Queue的特性 2.1 数据存储 2.2 可被多任务存取 2.3 读Queue时阻塞 2.4 写Queue时阻塞 3 使用Queue 3.1…

怎么把图片上的字去掉

将图片上的字去掉通常需要使用图像编辑软件或在线工具。以下是一些常用的方法和步骤&#xff1a; 使用Adobe Photoshop&#xff1a; 打开Photoshop&#xff0c;导入需要编辑的图片。 选择“橡皮擦工具”或“克隆图章工具”。 如果使用“橡皮擦工具”&#xff0c;调整橡皮擦的…

YOLOv9改进策略 | 低照度图像篇 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

一、本文介绍 本文给大家带来的2024.3月份最新改进机制&#xff0c;由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络&#xff0c;CPA-Enhancer通过引入链式思考提示机制&am…

【提示学习论文】TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model

TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model&#xff08;CVPR2024&#xff09; 基于文本的类感知提示调优的VLMKgCoOp为baseline&#xff0c;进行改进&#xff0c;把 w c l i p w_{clip} wclip​进行投影&#xff0c;然后与Learnable prompts进行…

树莓派|角速度和加速度传感器

角速度传感器和加速度传感器是常见的惯性传感器&#xff0c;常用于测量物体的旋转和线性运动。 角速度传感器&#xff08;Gyroscope&#xff09;用于测量物体绕三个轴&#xff08;X、Y、Z&#xff09;的旋转速度或角速度。它可以提供关于物体在空间中的旋转方向和角度变化的信…

时光知识付费系统,如何制定适合自己的课程?该如何做?

在线教育平台的网课非常多&#xff0c;而且课程之间的相似度非常高&#xff0c;不同是教的老师不同。很多人在制定课程的时候&#xff0c;通常都是被广告吸引的&#xff0c;之后发现课程不是自己想要的&#xff0c;并不适合自己。 想要制定适合自己的课程&#xff0c;首先要清楚…

计算机视觉与深度学习实战:以Python为工具,基于特征匹配的英文印刷字符识别

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:计算机视觉与深度学习实战-以MATLAB和Python为工具_基于特征匹配的英文印刷字符识别_项目开发案例教程.pdf 一、引言 随着人工智能技术的飞速发展,计…

用爬虫解决问题

使用爬虫解决问题是一个常见的技术手段&#xff0c;特别是在需要自动化获取和处理大量网页数据的情况下。以下是一个详细的步骤说明&#xff0c;包括如何使用 Python 和常用的爬虫库&#xff08;如 requests 和 BeautifulSoup&#xff09;来构建一个简单的爬虫&#xff0c;解决…

matlab二次插值函数 interp2

在MATLAB中&#xff0c;interp2函数用于执行二维插值操作。该函数可以接受多种不同的插值方法&#xff0c;其中包括linear&#xff08;线性插值&#xff09;和nearest&#xff08;最临近插值&#xff09;。这两种插值方法的插值结果存在明显的差异。 linear&#xff08;线性插值…

引用存储复制属性

当执行 this.tableDataSim.push(this.simForm) 时&#xff0c;将 this.simForm 对象添加到 this.tableDataSim 数组中。如果 this.simForm 是一个对象&#xff0c;并且 this.tableDataSim 数组中之前的对象是通过引用方式存储的&#xff0c;那么之前的对象会被改变&#xff0c;…

使用 Python 和机器学习预测股票涨跌幅

使用 Tushare API 获取深圳股市历史数据 引言 这篇文章将会演示如何使用 Tushare Pro API 获取深圳股市的历史交易数据&#xff0c;并将数据保存到CSV文件中。Tushare 是一款提供实时和历史金融市场的数据服务&#xff0c;支持多种语言&#xff0c;具有丰富的数据源和强大的功…