Ho distribuito un’app di nodejs in esecuzione sul runtime Flex di Google App Engine utilizzando la seguente configurazione di app.yaml
:
runtime: nodejs env: flex health_check: enable_health_check: True check_interval_sec: 20 timeout_sec: 4 unhealthy_threshold: 2 healthy_threshold: 2
Secondo la documentazione del controllo dello stato di salute, i controlli di /_ah/health
dovrebbero colpire l’ /_ah/health
ogni 20 secondi. Tuttavia, ho notato che la mia app viene sottoposta a spamming con questi controlli di integrità più volte al secondo, anche se l’app risponde con 200
codice di stato:
Qualche idea sul perché questo sta accadendo?
Sfortunatamente sembra che abbiamo un bug sui nostri documenti. Oggi, infatti, le app vengono sottoposte a controlli sanitari abbastanza frequenti.
Il motivo è molte volte, ma in generale ogni VM verrà colpita da 3 * 2 diversi controlli di integrità all’intervallo di ricorrenza specificato (di default, molto aggressivo, 1 secondo). La ragione di questo è 2 tipi di controllo dello stato di salute (autohealer e LB) e 3 di ciascuno per motivi di disponibilità.
Detto questo, stiamo attualmente lavorando a una nuova forma di controlli di integrità che verrà rilasciata molto presto e che dovrebbe risolvere questo e altri problemi con il comportamento di controllo dello stato esistente (almeno rendere i gestibili più gestibili e dare più opzioni di ottimizzazione agli utenti) .
Rimanete sintonizzati!
Non ho una soluzione al problema di root. Ma se lo spamming sta rendendo imansible usare il log per lo scopo previsto, come per me, ecco un lavoro da risolvere:
Abilita i ‘Filtri log avanzati’ (la piccola freccia in giù accanto al campo di ricerca in Stackdriver Logging)
Aggiungi questo alla query di ricerca
NOT textPayload : (health)
Eseguo anche NodeJS in GAE Flex env. Anche i controlli dello stato stavano inviando spam al log del server. Le seguenti poche cose mi hanno aiutato a ridurle:
Usa il filtro avanzato e pronuncia “NON _ah / salute”.
Anche la rimozione del registro nginx.request aiuterà.