Google App Engine проверяет спам-приложение
Я развернул приложение nodejs, работающее в среде выполнения Google App Engine Flex, используя следующую конфигурацию 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
В соответствии с документацией проверки работоспособности проверки работоспособности должны достигать конечной точки /_ah/health
каждые 20 секунд. Однако я заметил, что мое приложение получает спам с этими проверками работоспособности несколько раз в секунду, даже если приложение отвечает кодом состояния 200
:
![введите описание изображения здесь]()
Любая идея, почему это происходит?
Ответы
Ответ 1
К сожалению, похоже, что у нас есть ошибка в наших документах. Сегодня, действительно, приложения действительно проверяют здоровье на довольно частой основе.
Причина - много раз, но, как правило, каждая виртуальная машина будет удалена 3 * 2 различными проверками работоспособности в указанном вами периоде повторения (по умолчанию, очень агрессивном, 1 секунда). Причиной этого является 2 типа проверки работоспособности (автохейдер и LB) и 3 из них по причинам доступности.
В настоящее время мы работаем над новой формой проверки работоспособности, которая будет выпущена довольно скоро, и должна исправить эту и другие проблемы с существующим поведением по проверке работоспособности (по крайней мере, сделать настройки по умолчанию более управляемыми и предоставить дополнительные параметры настройки для пользователей).
Оставайтесь с нами!
Ответ 2
У меня нет решения проблемы с корнем. Но если спам делает невозможным использование журнала по назначению, как и для меня, вот работа:
-
Включите "Расширенные фильтры журналов" (маленькая стрелка вниз рядом с полем поиска в протоколе Stackdriver)
-
Добавьте это в запрос поиска
NOT textPayload : (health)
Ответ 3
Я также запускаю NodeJS в GAE Flex env.
Проверки работоспособности также спамали журнал сервера. Следующие несколько вещей помогли мне уменьшить их:
- Несмотря на то, что документация google (https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#health_checks) говорит, что конфигурация healthcheck не требуется, я установил их в явном виде, чтобы снизить частоту вызовы проверки работоспособности.
- Используйте "Расширенный фильтр журнала", чтобы удалить журнал проверки работоспособности, если они слишком отвлекают.
- Документация Google (https://cloud.google.com/appengine/docs/flexible/nodejs/how-instances-are-managed) говорит, что не требуется внедрять обработчик для проверки работоспособности, я все равно внедрил ее. Я добавил обработчик для конечной точки "/_ah/healthcheck" на сервере express.js и имел маршрут в верхней части файла app.js, поэтому запросы на проверку работоспособности сразу откликаются. Это помогло уменьшить некоторые шумы, вызванные запросами проверки работоспособности, попадающими в экспресс-приложение.
Ответ 4
Используйте расширенный фильтр и скажите "NOT _ah/health".
Удаление журнала nginx.request также поможет.