如何热加载更新配置?
热更新加载方法有两种:
- kill -HUP pid
当你采用以上任一方式执行 reload 成功的时候,将在 promtheus log 中看到如下信息:
提示:
- 我个人更倾向于采用 curl -X POST 的方式,因为每次 reload 过后, pid 会改变,使用 kill 方式需要找到当前进程号。
下面我们再来探讨下这两种方式内部实现原理。
第一种:通过 kill 命令的 HUP (hang up) 参数实现:
代码类似:
第二种:通过 web 模块的 /-/reload
请求实现:
- 首先 Prometheus 在 web(web/web.go) 模块中注册了一个 POST 的 http 请求 , 它的 handler 是
web.reload
函数,该函数主要向web.reloadCh
chan 里面发送一个 。
代码类似: