使用 Prometheus 对 Go 程序进行指标采集
在前面的章节中,已经知道了如何对应用程序进行 Prometheus metrics 的注册和暴露,那么接下来如何让 Prometheus 对应用程序进行采集呢。
设置采集配置
首先打开先前所安装的 prometheus 软件目录:
$ ls
LICENSE data promtool
NOTICE prometheus rules
console_libraries prometheus.yml tsdb
consoles prometheus.yml.default
打开并修改 prometheus.yml 文件,查看到 scrape_configs 配置选项,进行如下调整:
...
scrape_configs:
- job_name: 'test01'
static_configs:
- targets: ['127.0.0.1:10001']
scheme: http
tls_config:
insecure_skip_verify: false
先前所启动的应用程序是在本地,且端口号为 10001,协议为 http,对应的配置简述:
-
job_name:采集的任务名。
-
static_configs.targets:设置要采集的目标对象列表。
-
scheme:采集的目标协议(例如:http、https)。
-
tls_config.insecure_skip_verify:是否跳过证书校验。
常用的配置项如上几个,其默认的 metrics path 为 /metrics
,若需要调整则增加 metrics_path 配置项进行调整就可以了,接着重新启动 prometheus 就可以了。
其他配置项
再返回来看看 prometheus.yaml 文件:
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
rule_files:
- ../rules/*.yaml
scrape_configs:
- job_name: 'test01'
static_configs:
- targets: ['127.0.0.1:10001']
scheme: http
tls_config:
insecure_skip_verify: false
-
scrape_interval:采集间隔(频率)。
-
evaluation_interval:规则计算间隔(频率)。
-
alerting.alertmanagers:此 prometheus 所计算的 rules 所对应的 alertmanager。
-
rule_files:此 prometheus 所对应的告警规则(rules)。
这里聚焦 rule_files 和 alertmanagers,其分别对应着后续章节所要学的告警规则编写和 alertmanager 的告警平台对接和使用,留个心眼即可。
重新启动 Prometheus
在启动 prometheus 时,可以根据自己的情况进行一些启动项的调整:
$ ./prometheus --web.listen-address="0.0.0.0:9091" --config.file="prometheus.yml"
在上述语句中,--web.listen-address
调整启动的监听 HOST+PORT,--config.file
调整 prometheus 启动时所读取的配置文件地址,更多的可以执行 ./prometheus --help
命令进行查看。
查看采集情况
在完成配置后,在经过 scrape_interval 秒后,将会自动采集到 prometheus 上,就可以在 Console 上进行查看:
若想要简单查看趋势,也可以通过 Graph 进行趋势分析:
但长久来看,还是建议使用 Grafana(后续会进行讲解)。
总结
至此就完成了一个 Prometheus 对 Go 应用程序的基本采集,本章节主要是熟悉 Prometheus 拉模式的采集机制,以及对应的 Promtheus 规则编写和使用即可,虽然比较很简单,但是这块内容的知识体系的了解程度是后面所有内容的基石,建议根据官方文档再进一步的学习。