健康

源码

health 启用健康检查端点。

说明

启用进程范围健康端点。当 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
    }
}