在运行时热加载Prometheus的配置信息

2018-09-05 阅读: Prometheus

Promtheus的时序数据库在存储了大量的数据后,每次重启Prometheus进程的时间会越来越慢。 而在日常运维工作中会经常调整Prometheus的配置信息,实际上Prometheus提供了在运行时热加载配置信息的功能。

Prometheus配置的热加载

Prometheus配置信息的热加载有两种方式:

第一种热加载方式:查看Prometheus的进程id,发送SIGHUP信号:

kill -HUP <pid>

第二种热加载方式:发送一个POST请求到/-/reload,需要在启动时给定--web.enable-lifecycle选项:

curl -X POST http://localhost:9090/-/reload

如果配置热加载成功,Prometheus会打印出下面的log:

... msg="Loading configuration file" filename=prometheus.yml ...

我们使用的是第一种热加载方式,systemd unit文件如下:

[Unit]
Description=prometheus
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/prometheus \
 --config.file==/usr/local/prometheus/prometheus.yml \
 --storage.tsdb.path=/home/prometheus/data \
 --storage.tsdb.retention=365d \
 --web.listen-address=:9090 \
 --web.external-url=https://prometheus.frognew.com
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target

在仅需要重新加载配置,而不需重启进程时,只需要运行systemctl reload prometheus即可。

标题:在运行时热加载Prometheus的配置信息
本文链接:https://blog.frognew.com/2018/09/prometheus-config-hotreload.html
转载请注明出处。

目录