整体配置
prometueus.yml 配置文件注解与说明
1 | global: # 全局配置 |
各部分详解
部分官方文档的译文
官方文档中,使用了通用占位符来解释设定值的定义.
通用占位符由下面定义:
\<boolean\>
: 一个布尔值,包括true
或者false
.\<duration\>
: 持续时间,与正则表达式[0-9]+(ms|smhdwy)
匹配\<labelname\>
: 一个与正则表达式[a-zA-Z_][a-zA-Z0-9_]*
匹配的字符串\<labelvalue\>
: 一个为unicode字符串\<filename\>
: 当前工作目录下的有效路径\<host\>
: 一个包含主机名或者IP地址,并且可以带上一个非必需的端口号的有效字符串\<path\>
: 一个有效的URL路径\<scheme\>
: 一个可以是http
或者https
的字符串\<string\>
: 一个正则表达式字符串
scrape_configs
监控配置
<scrape_configs>
配置采集目标
1、根据配置的任务(job)以http/s周期性的收刮(scrape/pull)
2、指定目标(target)上的指标(metric)。目标(target)
3、可以以静态方式或者自动发现方式指定。Prometheus将收刮(scrape)的指标(metric)保存在本地或者远程存储上。
<scrape_config>部分指定一组描述如何刮除它们的目标和参数。 在一般情况下,一个scrape配置指定单个作业。 在高级配置中,这可能会改变。
目标可以通过<static_configs>参数静态配置,也可以使用其中一种支持的服务发现机制动态发现。
此外,<relabel_configs>允许在抓取之前对任何目标及其标签进行高级修改。
其中<job_name>在所有scrape配置中必须是唯一的。
1 | # 默认分配给已抓取指标的job名称。 |
rule_files
记录规则,编写的记录规则是定义一些常用计算规则.这些规则会存储到数据中.
告警的警报规则文件需要在这里引入.
1 | rule_files: |
alerting
Alertmanager相关配置
1 | alerting: |
<alertmanager_config>
alertmanager_config部分指定Prometheus服务器向其发送警报的Alertmanager实例。 它还提供参数以配置如何与这些Alertmanagers进行通信。
Alertmanagers可以通过static_configs参数静态配置,也可以使用其中一种支持的服务发现机制动态发现。
此外,relabel_configs允许从发现的实体中选择Alertmanagers,并对使用的API路径提供高级修改,该路径通过alerts_path标签公开。
1 | # 推送警报时按目标Alertmanager超时。 |
remote_write
云端写入数据
<remote_write>
write_relabel_configs是在将样本发送到远程端点之前应用于样本的重新标记。 在外部标签之后应用写入重新标记。 这可用于限制发送的样本。
有一个如何使用此功能的小型演示。
1 | # 要发送样本的端点的URL. |
remote_read
云端读取数据
<remote_read>1 | # 要发送样本的端点的URL. |
relabel_configs
用来重新打标记,修改标签.
请注意labels 的取名格式:
标签label名称可以包含ASCII字母、数字和下划线。它们必须匹配正则表达式[a-zA-Z_][a-zA-Z0-9_]*。带有_下划线的标签名称被保留内部使用。
标签labels值包含任意的Unicode码。
<relabel_configs>
Prometheus 重新标签
允许在采集之前对任何目标及其标签进行修改
• 重命名标签名
• 删除标签
• 过滤目标
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分组引用(${1},${2},…)替代
1 | relable_configs: |