使用 /healthz 进行应用程序健康检查的惯例是从哪里来的?

315

在 Kubernetes/Docker 生态系统中,有一个惯例,即使用 /healthz 作为应用程序的健康检查终端点。

这个名字“healthz”来自何处,是否有与该名称相关的特定语义?

1个回答

400

这源于谷歌内部的做法,被称为"z-pages"。

它以字母 z 结尾是为了减少与实际应用程序端点名称的冲突(例如 /status)。有关更多信息,请参见此演讲:https://vimeo.com/173610242

类似的端点(至少在谷歌内部)包括 /varz/statusz/rpcz。在谷歌开发的服务中,会自动获得这些端点来导出其健康和指标,并且有工具可以收集所有部署服务的暴露度量/状态。

开源工具,如 Prometheus 实现了这种模式(因为 Prometheus 的原始作者也是前谷歌员工),通过访问已知的端点来从应用程序收集指标。同样地,OpenCensus 允许您从应用程序公开 z-pages(最好在不同的端口上)以诊断问题。


2
Go语言的expvar库(https://golang.org/pkg/expvar/)与/varz非常接近。 - ptman
1
@AhmeB:感谢您提供的视频链接。它帮助我更好地理解了healthz。 - Gatsby Lee
7
问题在演讲的26:55处得到回答(但这个答案已经包含了Kelsey给出的几乎全部答案)。 - tjanson
请问一下使用用户名@statusz的员工情况。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接