web-dev-qa-db-fra.com

Google App Engine vérifie l'état de spam de l'application

J'ai déployé une application nodejs exécutée sur le moteur d'exécution de Google App Engine Flex à l'aide de la configuration app.yaml suivante:

runtime: nodejs
env: flex
health_check:
  enable_health_check: True
  check_interval_sec: 20
  timeout_sec: 4
  unhealthy_threshold: 2
  healthy_threshold: 2

Selon la documentation relative à la vérification de l'état de santé , les vérifications de l'état doivent atteindre le point final /_ah/health toutes les 20 secondes. Cependant, j'ai remarqué que ces contrôles de santé étaient spammés dans mon application plusieurs fois par seconde, même si l'application répond avec le code d'état 200:

 enter image description here

Une idée pourquoi cela se passe?

28
Mihai Tomescu

Malheureusement, il semble que nous ayons un problème avec nos documents. Aujourd'hui, en effet, la santé des applications est régulièrement vérifiée. 

La raison en est multiple, mais en général chaque VM subira 3 * 2 contrôles d'intégrité différents selon l'intervalle de récurrence que vous spécifiez (par défaut, très agressif, 1 seconde). La raison en est deux types de bilan de santé (autohealer et LB) et 3 de chacun pour des raisons de disponibilité.

Cela étant dit, nous travaillons actuellement sur une nouvelle forme de vérifications de l'état de santé qui sera publiée très prochainement et qui devrait résoudre ce problème ainsi que d'autres problèmes liés au comportement de vérification de l'état de santé existant (au moins rendre les valeurs par défaut plus gérables et offrir davantage d'options de réglage aux utilisateurs) .

Restez à l'écoute!

14
Andre Rodrigues

Je n'ai pas de solution au problème racine. Mais si le spam rend impossible l'utilisation du journal dans le but prévu, comme c'est le cas pour moi, voici un moyen de contourner le problème:

  1. Activer les 'filtres de journal avancés' (la petite flèche vers le bas à côté du champ de recherche dans la journalisation Stackdriver)

  2. Ajouter ceci à la requête de recherche

    NOT textPayload : (health)

2
pscl

J'exécute également NodeJS dans GAE Flex env. Les contrôles de santé envoyaient également du spam dans le journal du serveur. Les quelques choses suivantes m'ont aidé à les réduire:

  1. Bien que la documentation de Google ( https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#health_checks ) indique que Healthcheck Config n’est pas obligatoire, j’ai de toute façon pour réduire la fréquence des appels de vérification de santé.
  2. Utilisez le "Filtre de journal avancé" pour supprimer la journalisation de la vérification d'intégrité si elles sont trop gênantes.
  3. La documentation Google ( https://cloud.google.com/appengine/docs/flexible/nodejs/how-instances-are-managed ) indique qu'il n'est pas nécessaire d'implémenter un gestionnaire pour la vérification de l'état de santé, je l'ai explicitement implémenté. . J'ai ajouté un gestionnaire pour le point de terminaison "/ _ah/healthcheck" dans le serveur express.js. La route se trouvant en haut du fichier app.js, les demandes de vérification de l'état de santé reçoivent une réponse immédiate. Cela a permis de réduire certains bruits causés par les requêtes de vérification de l'état entrant dans la logique de l'application express.
0
LeoIsCoding

Utilisez le filtre avancé et dites "NOT _ah/health".

Supprimer le journal nginx.request vous aidera également.

0
Robert Christian