Prometheus监控之检查工具Promtool check

时间:2022-12-24 13:56:39

一、检查服务发现

使用 Promtool 可以检查配置文件中的服务发现配置,防止配置错误导致程序无法启动,或者启动后无法正常发现内容。
具体命令参数为
promtool check service-discovery [<flags>] <config-file> <job>

使用过程中需要指定Prometheus的配置文件,以及要检查的服务发现的job_name。Promtool在检查过后会返回检查结果,并且会包含relable的内容。
实验结果如下,这命令返回了所有能发现的信息,即使 job里配置了只要发现特定名称的 pod 即可。
./promtool check service-discovery prometheus.yml prometheus #直接监控job_name为prometheus
[
{
"discoveredLabels": {
"__address__": "192.168.10.131:9090",
"__metrics_path__": "/metrics",
"__scheme__": "https",
"__scrape_interval__": "20s",
"__scrape_timeout__": "10s",
"job": "prometheus"
},
"labels": {
"__address__": "192.168.10.131:9090",
"__metrics_path__": "/metrics",
"__scheme__": "https",
"__scrape_interval__": "20s",
"__scrape_timeout__": "10s",
"instance": "192.168.10.131:9090",
"job": "prometheus"
}
}
]

二、检查配置文件

使用 Promtool 可以检查 Prometheus 的启动配置文件是否正确。参数如下:
promtool check config [<flags>] <config-files>...

我们执行命令来看一下:
./promtool check config prometheus.yml
Checking /erdong/prometheus-pushgateway/conf/prometheus.yml
SUCCESS: /erdong/prometheus-pushgateway/conf/prometheus.yml is valid prometheus config file syntax
看到 SUCCESS 就表示这个配置文件是正常可以使用的,如果出现错误会进行提示。

三、检查 web-config

使用 Promtool 可以检查 web-config 配置文件
promtool check web-config <web-config-files>...

四、检查告警规则和记录规则

使用 Promtool 可以检查告警规则和记录规则文件
promtool check rules [<flags>] <rule-files>...
如果文件正常会输出 SUCCESS 的提示,如果文件不正常会输出对应的提示。

五、检查指标

check metrics 子命令验证传递给他的度量在一致性和正确性方面是否遵循Prometheus准则
使用 Promtool 可以检查指标,命令参数如下
promtool check metrics

使用方式可以是以下两种中的任意一种。
cat metrics.prom | promtool check metrics
curl -s http://localhost:9090/metrics | promtool check metrics

执行结果如下所示:
curl -s http://192.168.10.131:9101/metrics | ./promtool check metrics
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2912k 0 2912k 0 0 7194k 0 --:--:-- --:--:-- --:--:-- 7208k
cadvisor_version_info label names should be written in 'snake_case' not 'camelCase'
cadvisor_version_info label names should be written in 'snake_case' not 'camelCase'
cadvisor_version_info label names should be written in 'snake_case' not 'camelCase'
cadvisor_version_info label names should be written in 'snake_case' not 'camelCase'
cadvisor_version_info label names should be written in 'snake_case' not 'camelCase'
container_fs_inodes_total non-counter metrics should not have "_total" suffix
container_memory_failcnt counter metrics should have "_total" suffix