次のapp.yaml
構成を使用して、Google App EngineFlexランタイムで実行されているnodejsアプリをデプロイしました。
runtime: nodejs
env: flex
health_check:
enable_health_check: True
check_interval_sec: 20
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2
ヘルスチェックのドキュメント によると、ヘルスチェックは20秒ごとに/_ah/health
エンドポイントに到達する必要があります。ただし、アプリが200
ステータスコードで応答した場合でも、アプリがこれらのヘルスチェックで1秒間に複数回スパム送信されていることに気付きました。
なぜこれが起こっているのか考えはありますか?
残念ながら、ドキュメントにバグがあるようです。実際、今日、アプリはかなり頻繁にヘルスチェックを受けています。
理由はさまざまですが、一般に、各VMは、指定した繰り返し間隔(デフォルトでは、非常に攻撃的な1秒)で3 * 2の異なるヘルスチェックに見舞われます。この理由は、2種類のヘルスチェック(自動ヒーラーとLBのもの)と、可用性の理由からそれぞれ3種類です。
そうは言っても、私たちは現在、まもなくリリースされる新しい形のヘルスチェックに取り組んでおり、既存のヘルスチェック動作に関するこの問題やその他の問題を修正する必要があります(少なくともデフォルトをより管理しやすくし、ユーザーにより多くのチューニングオプションを提供します) 。
乞うご期待!
根本的な問題の解決策がありません。しかし、スパムが原因で、私のように意図した目的でログを使用できなくなっている場合は、次の回避策があります。
「高度なログフィルター」(StackdriverLoggingの検索フィールドの横にある小さな下向き矢印)を有効にします。
これを検索クエリに追加します
NOT textPayload : (health)
また、GAE FlexenvでNodeJSを実行しています。ヘルスチェックもサーバーログをスパムしていました。次のいくつかのことが私がそれらを減らすのに役立ちました:
高度なフィルターを使用して、「NOT _ah/health」と言います。
Nginx.requestログを削除することも役立ちます。