Prometheus 数据采集过程介绍Prometheus 从采集数据到将存储的过程中,会对采集目标及数据样本作一系列处理 。了解这个过程有利于帮助我们更充分、合理的使用可配参数 。
一、文章中使用的概念简介target:采集目标,Prometheus Server 会从这些目标设备上采集监控数据
sample: Prometheus Server 从 targets 采集回来的数据样本
meta label: 执行 relabel 前,target 的原始标签 。可在 Prometheus 的 /targets 页面或发送 GET /api/v1/targets 请求查看 。
二、数据采集流程
文章插图
2.1 relabel (targets 标签修改/过滤)relabel 是 Prometheus 提供的一个针对 target 的功能,relabel 发生 Prometheus Server 从 target 采集数据之前,可以对 target 的标签进行修改或者使用标签进行 target 筛选 。注意以下几点:
- Prometheus 在 relabel 步骤默认会为 target 新增一个名为 instance 的标签,并设置成 "__address__" 标签的值;
- 在 relabel 结束后,以 "__" 开头的标签不会被存储到磁盘;
- meta label 会一直保留在内存中,直到 target 被移除 。
文章插图
2.2 relabel 配置relabel 的基本配置项:
- source_labels: [<labelname>, ...] #需要进行 relabel 操作的 meta labels
- target_label: <labelname> #relabel 操作的目标标签,当使用 action 为 "replace" 时会把替换的结果写入 target_label
- regex: <regex> #正则表达式,用于在 source_labels 的标签值中提取匹配的内容 。默认为"(.*)"
- modulus: <uint64> #用于获取源标签值的哈希的模数
- replacement: <string> #regex 可能匹配到多个内容,replacement 指定要使用哪一个匹配内容进行替换,默认为 "$1",表示使用第一个匹配的内容
- action: <relabel_action> #定义对 source_labels 进行何种操作,默认为 "replace"
2.2.1 replace 修改标签例 1. 继续使用上一个部署了两个 Prometheus 的环境,假如我们希望给 targets 添加一个 "host" 标签,内容取 "__address__" 的 host 部分,可以添加如下 relabel 配置:
scrape_configs: - job_name: prometheus relabel_configs: - source_labels: ["__address__"] #我们要替换的 meta label 为"__address__" target_label: "host" #给 targets 新增一个名为 "host" 的标签 regex: "(.*):(.*)" #将匹配的内容分为两部分 groups--> (host):(port) replacement: $1 #将匹配的 host 第一个内容设置为新标签的值 action: replace
运行结果:文章插图
例 2. "__metrics_path__" 标签保存了 target 提供的 metrics 访问路径,默认情况下"__metrics_path__" 标签在 relabel 之后是会被移除的,但是我们又希望在查询 metrics 时能方便的看到这个采集端的 metrics 访问路径,那么可以使用 replace 将 "__metrics_path__" 标签替换成我们希望的标签,并保留 "__metrics_path__" 的值,配置可以简化如下
relabel_configs: - source_labels: ["__metrics_path__"] #我们要替换的 meta label 为 "__metrics_path__" target_label: "metrics_path"#给 targets 新增一个名为 "metrics_path" 的标签
文章插图
2.2.2 keep/drop 筛选 targets例 3. 当需要过滤 target 时,可以将 action 项定义为 keep 或 drop 。接着上面的例子我们再继续添加如下配置:
- source_labels: ["host"] regex: "localhost" #只保留 host 标签值为 "localhost" 的 targets action: keep
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CentOS7下简单搭建Prometheus+Grafana监控系统
- Prometheus之监控Linux主机
- 监控软件:Prometheus
- 淘数据如何使用 淘宝数据采集器
- 数据采集技术简介
- 监控实战Prometheus+Grafana
- 一文看懂开源监控神器--prometheus部署教程,值得收藏
- 容器监控工具 zabbix 和 prometheus
- 导航|地图数据采集员 会开车就能赚钱的兼职!一天收入七八百
- kubernetes-Prometheus基于邮件告警