34 votes

Vérification de l'intégrité de Google App Engine

J'ai déployé une application nodejs en cours d'exécution sur le Google App Engine Flex d'exécution en utilisant la suivante app.yaml configuration:

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

Selon le bilan de santé de la documentation des contrôles de santé devraient frapper l' /_ah/health point de terminaison toutes les 20 secondes. Cependant, j'ai remarqué que mon application est de recevoir des envois en nombre ces contrôles de santé, plusieurs fois par seconde, même si l'application répond avec 200 code d'état:

enter image description here

Une idée de pourquoi ce qui se passe?

15voto

Andre Rodrigues Points 366

Malheureusement, il ne semble pas que nous ayons un bug sur notre docs. Aujourd'hui, en effet, les applications n'en matière de santé de vérifier assez souvent.

La raison est que beaucoup de fois, mais en général, chaque machine virtuelle sera touchée par 3 * 2 différents contrôles de santé, à la répétition de l'intervalle que vous spécifiez (par défaut, l', très agressif, 1 sec). La raison pour cela est de 2 types de contrôle de la santé (autohealer et LB) et 3 de chaque pour des raisons de disponibilité.

Cela étant dit, nous sommes actuellement en train de travailler sur une nouvelle forme d'examens de santé qui sera publié très bientôt et devrait corriger ce problème et d'autres problèmes de santé existants vérification de comportement (au moins les valeurs par défaut plus faciles à gérer, et donnant plus d'options de paramétrage pour les utilisateurs).

Restez à l'écoute!

3voto

pscl Points 1702

Je n'ai pas de solution au problème racine. Mais si le spam rend impossible l'utilisation du journal à sa destination, comme c'est le cas pour moi, voici une solution:

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

  2. Ajoutez ceci à la requête de recherche

    NOT textPayload : (health)

1voto

LeoIsCoding Points 16

J'ai également exécuter NodeJS en FGA Flex env. Des contrôles de santé ont également été spammer le journal du serveur. Les quelques choses qui m'ont aidé à les réduire:

  1. Bien que les google documents (https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#health_checks), dit bilan de santé config n'est pas nécessaire, je les ai explicitement de toute façon à diminuer la fréquence de la santé des appels de vérification.
  2. Utilisation Avancée de Filtre de Journal" pour supprimer le bilan de santé de la journalisation d'apparaître s'ils sont trop dérangeants.
  3. Google documents (https://cloud.google.com/appengine/docs/flexible/nodejs/how-instances-are-managed) dit qu'il n'est pas nécessaire d'implémenter un gestionnaire pour vérifier l'état de santé, j'ai choisi de mise en œuvre de toute façon. J'ai ajouté un gestionnaire pour "/_ah/bilan de santé" de point de terminaison dans le express.js serveur et que vous avez de la route en haut de app.js fichier, de sorte que le bilan de santé des requêtes sont traitées immédiatement. Cela a permis de réduire certains bruits causés par le bilan de santé, les demandes d'entrer dans l'express de la logique d'application.

0voto

rob Points 3452

Utilisez le filtre avancé et dites "PAS _ah / santé".

La suppression du journal nginx.request sera également utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X