我使用以下app.yaml
配置部署了在Google App Engine Flex运行时上运行的nodejs应用程序:
runtime: nodejs
env: flex
health_check:
enable_health_check: True
check_interval_sec: 20
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2
根据health check documentation,健康状况检查应每隔20秒点击/_ah/health
端点。但是我注意到我的应用程序每秒多次使用这些运行状况检查发送垃圾邮件,即使该应用程序使用200
状态代码进行响应:
知道为什么会这样吗?
答案 0 :(得分:15)
不幸的是,我们的文档似乎有错误。事实上,今天,应用程序确实经常检查健康状况。
原因很多,但通常每个VM都会在您指定的重复间隔时被3 * 2个不同的运行状况检查命中(默认情况下,非常激进,1秒)。其原因是2种类型的健康检查(autohealer和LB one),其中3种是出于可用性原因。
话虽如此,我们目前正在开发一种新形式的运行状况检查,这些检查将很快发布,并且应该修复现有运行状况检查行为的这个问题和其他问题(至少使默认值更易于管理并提供更多调优选项)给用户)。
敬请关注!
答案 1 :(得分:2)
我没有根本问题的解决方案。但是,如果垃圾邮件使得无法将日志用于其预期目的,就像对我来说一样,这是一个解决方法:
启用“高级日志过滤器”(Stackdriver日志记录中搜索字段旁边的微小向下箭头)
将此添加到搜索查询
NOT textPayload : (health)
答案 2 :(得分:0)
I also run NodeJS in GAE Flex env. Health checks were also spamming the server log. The following few things helped me in reducing them:
答案 3 :(得分:0)
使用高级过滤器并说“NOT _ah / health”。
删除nginx.request日志也会有所帮助。