prometheus配置解读
Prometheus configuration is YAML,本文将以一个示例配置来进行解读
#全局配置将应用到所有的配置项上去,对于具体配置项中的同一配置将重写全局配置
global:
scrape_interval: 15s
#抓取间隔,即prometheus server从给定输出器/端口获取指标的时间间隔
evaluation_interval: 30s
#评估间隔,即prometheus server对抓取到的指标进行评估的时间间隔
# scrape_timeout is set to the global default (10s).
#抓取的超时时间被设置为10s
external_labels:
#外部标签,自定义键值对,可多个
monitor: codelab
foo: bar
rule_files:
#规则读取文件或者路径,可多个,支持一定的正则匹配,后文将附上一般规则文件格式示例
- "first.rules"
- "my/*.rules"
remote_write:
#远程写入,将本台服务器收集到的数据写到另外的主机上去,可以对部分标签执行具体的动作
- url: http://remote1/push
write_relabel_configs:
- source_labels: [__name__]
regex: expensive.*
action: drop
- url: http://remote2/push
remote_read:
#远程读取,从其他主机获取抓取的指标,可以指明具体的服务/任务(通过标签来过滤)
- url: http://remote1/read
read_recent: true
- url: http://remote3/read
read_recent: false
required_matchers:
job: special
scrape_configs:
#抓取的配置
- job_name: prometheus
honor_labels: true#用来解决抓取到的数据与服务器端标签冲突的情况,设置为true则保留抓取到的数据的标签,否则应用抓取对象+服务端标签
# scrape_interval is defined by the configured global (15s).
# scrape_timeout is defined by the global default (10s).
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
file_sd_configs:
#通过指定的文件或者路径进行自动服务.目标发现,一般需要执行reload才能生效,后文将对文件格式做示例讲解
- files:
- foo/*.slow.json
- foo/*.slow.yml
- single/file.yml
refresh_interval: 10m
- files:
- bar/*.yaml
static_configs:
#服务/目标的静态配置,格式如下,列表中包含的是端点
- targets: ['localhost:9090',