prometheus(prometheus配置详解
发布时间: 2023-07-19

本文目录

prometheus配置详解

本文按照官方文档的相关内容整理整理的配置语法以及实现功能

一个scrape_config 片段指定一组目标和参数, 目标就是实例,指定采集的端点, 参数描述如何采集这些实例, 配置文件格式如下

因为部署在kubernetes环境中所以我只在意基于kubernetes_sd_configs的服务发现和static_configs静态文件的发现

relable_configss是功能强大的工具,就是Relabel可以在Prometheus采集数据之前,通过Target实例的Metadata信息,动态重新写入Label的值。除此之外,我们还能根据Target实例的Metadata信息选择是否采集或者忽略该Target实例。

relabel_configs

配置格式如下:

其中action主要包括:

replace:默认,通过regex匹配source_label的值,使用replacement来引用表达式匹配的分组
keep:删除regex与连接不匹配的目标 source_labels
drop:删除regex与连接匹配的目标 source_labels
labeldrop:删除regex匹配的标签
labelkeep:删除regex不匹配的标签
hashmod:设置target_label为modulus连接的哈希值source_labels
labelmap:匹配regex所有标签名称。然后复制匹配标签的值进行分组,replacement分组引用( {2},…)替代

prometheus中的数值都是key:value格式, 其中replace、keep、drop都是对value的操作, labelmap、labeldrop、labelkeep都是对key的操作

replace是action的默认值, 通过regex匹配source_label的值,使用replacement来引用表达式匹配的分组

上面的列子中 address 的值为 $1:$2 , 其中 $1 是正则表达式 (+)(?::\d+)? 从 address 中获取, $2 是正则表达式 (\d+)从(\d+) 中获取, 最后的 address 的数值为192.168.1.1:9100

上面的例子只要匹配__meta_kubernetes_service_annotation_prometheus_io_probe=true数据就保留, 反正source_labels中的值没有匹配regex中的值就丢弃

drop 的使用和keep刚好相反, 还是使用keep的例子:

上面的例子只要__meta_kubernetes_service_annotation_prometheus_io_probe这个标签的值为true就丢弃, 反之如果__meta_kubernetes_service_annotation_prometheus_io_probe!=true的数据就保留

labelmap的用法和上面说到replace、keep、drop不同, labelmap匹配的是标签名称, 而replace、keep、drop匹配的是value

上面例子中只要匹配到正则表达式 __meta_kubernetes_service_label_(.+) 的标签, 就将标签重写为 (.+) 中的内容, 效果如下:

待续

使用labeldrop则可以对Target标签进行过滤,删除符合过滤条件的标签,例如:

该配置会使用regex匹配当前target中的所有标签, 删除符合规则的标签, 反之保留不符合规则的

使用labelkeep则可以对Target标签进行过滤,仅保留符合过滤条件的标签,例如:

该配置会使用regex匹配当前target中的所有标签, 保留符合规则的标签, 反之不符合的移除

上面我们说到relabel_config是获取metrics之前对标签的重写, 对应的metric_relabel_configs是对获取metrics之后对标签的操作, metric_relabel_configs能够确定我们保存哪些指标,删除哪些指标,以及这些指标将是什么样子。

metric_relabel_configs的配置和relabel_config的配置基本相同, 如果需要配置相关参数请参考 2.scrape_configs

主要用途为指定exporter获取metrics数据的目标, 可以指定prometheus、 mysql、 nginx等目标

此规则主要是用于抓取prometheus自己数据的配置, targets列表中的为prometheus 获取metrics的地址和端口, 因为没有指定metrics_pa如下所示,

该配置是使用kubernetes的发现机制发现kube-apiservers

上面的刮取配置定义了如下信息:

该配置是自动发现kubernetes中的endpoints

可以看到relable_configs中的规则很多, 具体的内容如下

获取的metrics的信息如下:

prometheus是什么意思

prometheus
普罗米修斯
双语对照
词典结果:
Prometheus
n.《希神》普罗米修斯(造福于人类的神);
以上结果来自金山词霸
例句:
1.
Prometheus’s supporters include bio and several tech firms.
普罗米修斯的支持者包括生物技术工业组织和一些技术公司。

普罗米修斯什么意思

普罗米修斯(古希腊语:Προμηθεύς、英语:Prometheus,名字的含义是“先见之明“),是古希腊神话中泰坦一族的神明之一,他是地母盖亚与乌拉诺斯的儿子伊阿珀托斯与克吕墨涅所生。和厄庇墨透斯是兄弟。

欧洲传统的普罗米修斯画像

普罗米修斯曾与智慧女神雅典娜共同创造了人类,普罗米修斯负责用泥土雕塑出人的形状,雅典娜则为泥人灌注灵魂,并教会了人类很多知识。

当时宙斯禁止人类用火,普罗米修斯看到人类生活的困苦,帮人类从奥林匹斯山盗取了火,因此触怒宙斯。宙斯为了惩罚人类,将潘多拉的盒子放到人间。再将普罗米修斯锁在高加索山的悬崖上,每天派一只鹰去吃他的肝,又让他的肝每天重新长上,使他日日承受被恶鹰啄食肝脏的痛苦。

然而普罗米修斯始终坚毅不屈。几千年后,赫拉克勒斯为寻找金苹果来到悬崖边,把恶鹰射死,并让半人马的肯陶洛斯族的喀戎来代替,解救了普罗米修斯。但他必须永远戴一只铁环,环上镶上一块高加索山上的石子,以便宙斯可以自豪地宣称他的仇敌仍被锁在高加索山的悬崖上。