说明
启用进程范围健康端点。当 CoreDNS 启动并运行时,其将返回 200 OK HTTP 状态代码。默认情况下,通过端口 8080/health 来导出健康状况。
语法
health [ADDRESS]
可选地接受地址;默认值为 :8080
。健康路径固定为 /health
。当该服务器健康时,健康端点返回 200 响应代码和“OK”一词。
使用此扩展语法可以设置额外的选项
health [ADDRESS] {
lameduck DURATION
}
- 其中
lameduck
将推迟关机 DURATION。/health 仍将响应 200 OK。注意:ready 插件在 CoreDNS 在关机前处于断网模式时不会响应 OK。
如果您有多个服务器块,则只能在其中一个服务器块中启用 health(因为它基于进程)。如果您真的需要多个端点,则必须在不同端口上运行健康端点
com {
whoami
health :8080
}
net {
erratic
health :8081
}
支持这样做,但端点“:8080”和“:8081”将导出完全相同的健康状况。
指标
如果启用了监视(通过 prometheus 插件),则导出以下指标
coredns_health_request_duration_seconds{}
- health 插件在/health
端点上每秒进行一次自我健康检查。此指标是要处理该请求的持续时间。由于这是一项本地操作,因此应该很快。此持续时间(大幅)增加表明 CoreDNS 进程难以跟上其查询负载。coredns_health_request_failures_total{}
- 自我健康检查失败的次数。
请注意,这些指标不具有 server
标签,因为超载是在运行进程的症状,而不是特定的服务器。
示例
在 https://127.0.0.1:8091 上运行另一个健康端点。
. {
health localhost:8091
}
设置断网持续时间为 1 秒
. {
health localhost:8092 {
lameduck 1s
}
}