如何热加载更新配置?

    热更新加载方法有两种:

    1. kill -HUP pid

    当你采用以上任一方式执行 reload 成功的时候,将在 promtheus log 中看到如下信息:

    提示:

    1. 我个人更倾向于采用 curl -X POST 的方式,因为每次 reload 过后, pid 会改变,使用 kill 方式需要找到当前进程号。

    下面我们再来探讨下这两种方式内部实现原理。

    第一种:通过 kill 命令的 HUP (hang up) 参数实现:

    代码类似:

    第二种:通过 web 模块的 /-/reload 请求实现:

    1. 首先 Prometheus 在 web(web/web.go) 模块中注册了一个 POST 的 http 请求 , 它的 handler 是 web.reload 函数,该函数主要向 web.reloadCh chan 里面发送一个 。

    代码类似: