暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
第04期:Prometheus 数据采集(三).pdf
103
5页
2次
2024-04-16
免费下载
第04期:Prometheus 数据采集(三)
原创 DMP研发团队 爱可生开源社区 7月29
来自专辑
详解 Prometheus
本期作者:罗韦
爱可生上海研发中心成员,研发工程师,主要负责 DMP 平台监控告警功能的相关工作。
Prometheus 的监控对象各式各样,没有统一标准。为了解决这个问题,Prometheus 制定了一套监控规范,
符合这个规范的样本数据可以被 Prometheus 采集并解析样本数据。ExporterPrometheus 监控系统中是
一个采集监控数据并通过 Prometheus 监控规范对外提供数据的组件,针对不同的监控对象可以实现不同的
Exporter,这样就解决了监控对象标准不一的问题。从广义上说,所有可以向 Prometheus 提供监控样本数据
的程序都可以称为 Exporter,Exporter 的实例也就是我们上期所说的"target"。
Exporter 的运行方式
Exporter 有两种运行方式
集成到应用中
使用 Prometheus 提供的 Client Library,可以很方便地在应用程序中实现监控代码,这种方式可以将程序
内部的运行状态暴露给 Prometheus,适用于需要较多自定义监控指标的项目。目前一些开源项目就增加了
对 Prometheus 监控的原生支持,如 Kubernetes,ETCD 等。
独立运行
在很多情况下,对象没法直接提供监控接口,可能原因有:
1. 项目发布时间较早,并不支持 Prometheus 监控接口,如 MySQL、Redis;
2. 监控对象不能直接提供 HTTP 接口,如监控 Linux 系统状态指标。
对于上述情况,用户可以选择使用独立运行的 Exporter。除了用户自行实现外,Prometheus 社区也提供了
许多独立运行的 Exporter,常见的有 Node Exporter、MySQL Server Exporter。更多详情可以到官网了
解:https://prometheus.io/docs/instrumenting/exporters/
Exporter 接口数据规范
Exporter 通过 HTTP 接口以文本形式向 Prometheus 暴露样本数据,格式简单,没有嵌套,可读性强。每个监
控指标对应的数据文本格式如下:
# HELP <监控指标名称> <监控指标描述># TYPE <监控指标名称> <监控指标类型><监控指标名称>{ <标签名
称>=<标签值>,<标签名称>=<标签值>...} <样本值1> <时间戳><监控指标名称>{ <标签名称>=<标签值>,<标
签名称>=<标签值>...} <样本值2> <时间戳>...
以 # 开头的行,如果后面跟着"HELP",Prometheus 将这行解析为监控指标的描述,通常用于描述监控数
据的来源;
以 # 开头的行,如果后面跟着"TYPE",Prometheus 将这行解析为监控指标的类型,支持的类型有:
Counter、Gauge、Histogram、Summary、Untyped。在往期文章中介绍过 Prometheus 在存储数据时
是不区分数据类型的,所以当你在犹豫一个数据类型应该用 Counter 或 Gauge 时,可以试试 Untype;
以 # 开头的行,如果后面没有跟着"HELP"或"TYPE",则 Prometheus 将这行视为注释,解析时忽略;
如果一个监控指标有多条样本数据,那么每条样本数据的标签值组合应该是唯一的;
每行数据对应一条样本数据;
时间戳应为采集数据的时间,是可选项,如果 Exporter 没有提供时间戳的话,Prometheus Server 会在拉
取到样本数据时将时间戳设置为当前时间;
Summary 和 Histogram 类型的监控指标要求提供两行数据分别表示该监控指标所有样本的和、样本数量,
命名格式为:<监控指标名称>_sum、<监控指标名称>_count;
Summary 类型的样本数据格式:
1. 根据 Exporter 提供的分位点,样本会被计算后拆分成多行数据,每行使用标签"quantile"区
分,"quantile"的值包括 Exporter 提供的所有分位点。
2. 数据的排列顺序必须是按照标签"quantile"值递增;
3. 举个栗子:一个名为x的监控指标,提供的分位点为:0.5, 0.9, 0.99,那么它暴露给 Prometheus 的接口数
据格式如下:
# HELP x balabala# TYPE x summaryx{quantile="0.5"} value1x{quantile="0.9"}
value2x{quantile="0.99"} value3x_sum sum(values)x_count count(values)
Histogram 类型的样本数据格式:
1. 根据 Exporter 提供的 Bucket 值,样本会被计算后拆分成多行数据,每行使用标签"le"区分,"le"为
Exporter 提供的 Buckets
2. 数据的排列顺序必须是按照标签"le"值递增;
3. 必须要有一行数据的标签 le="+Inf",值为该监控指标的样本总数;
4. 举个栗子:一个名为 x 的监控指标,提供的 Buckets 为:20, 50, 70,那么它暴露给 Prometheus 的接口
数据格式如下:
# HELP x The temperature of cpu# TYPE x histogramx_bucket{le="20"} value1x_bucket{le="50"}
value2x_bucket{le="70"} value3x_bucket{le="+Inf"} count(values)x_sum sum(values)x_count
count(values)
of 5
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜