Управление оповещениями мониторинга

В этом документе описаны уведомления, которые отображаются на панелях мониторинга, и соответствующие возможные действия. Если устранить проблему не удается, вы можете подать заявку в прямую поддержку, приложив к ней снимки экрана панели и журналы.

Уведомления на панели бизнес-клиента

Уведомление о критическом сбое API

Описание

Низкий процент успешных вызовов API contacts или API messages.

Действия

  1. Найдите коды ошибок API на панели Requests/sec (Количество запросов в секунду) для API contacts или API messages.
  2. Обратитесь к таблице Коды ошибок.
  3. Проверьте информацию на панелях CoreApp Requests/sec (Количество запросов CoreApp в секунду) и DB Queries/sec (Количество запросов к базе данных в секунду) и определите, соотносится ли сбой со сбоями Coreapp или базы данных.
  4. Дополнительную информацию можно найти на панелях CoreApp Overview (Обзор CoreApp) (в переменной Node (Узел) укажите проблемный узел Coreapp) и MySQL Overview (Обзор MySQL).

Уведомление об отсутствии статистики

Описание

Отсутствуют данные для мониторинга.

Действия

  1. Выполните запрос к конечной точке targets Prometheus (http://your-monitoring-hostname:9090/targets) и проверьте, находятся ли конечные точки webstats и appstats в состоянии UP.
  2. Если Prometheus не удается связаться с Webapp, запустите WADebug для устранения неполадок.
  3. Если контейнеры Webapp и Coreapp работают, проверьте значения переменных WA_WEB_ENDPOINT, WA_WEB_USERNAME и WA_WEB_PASSWORD в файле .env.

Уведомления на панели обзора Coreapp

Уведомление о сбое обратного вызова

Описание

Низкий процент успешной отправки обратных вызовов на URL Webhook, указанный в настройках приложения.

Действия

  1. Найдите коды ошибок, связанных с ответами на обратные вызовы, на панели Callback Requests/sec (Количество запросов обратного вызова в секунду).
  2. С помощью Grep найдите сообщения об ошибках в журналах Coreapp, содержащие слова network error (ошибка сети).
  3. Исходя из кодов ошибок и сообщений:
    • проверьте, доступен ли Webhook для Coreapp;
    • проверьте, всегда ли Webhook возвращает ответ HTTPS 200 OK после обработки уведомлений;
    • проверьте, не слишком ли долго отвечает Webhook.

Уведомление о большом количестве исходящих сообщений в очереди

Описание

Очередь исходящих сообщений почти заполнена. Скоро запросы API начнут завершаться ошибкой System overloaded error (1016).

Действия

  1. На панели в строке Outgoing Messages (Исходящие сообщения) проверьте, нет ли случаев необычного увеличения трафика. Если они есть, попытайтесь уменьшить трафик, чтобы предупреждение пропало.
  2. Проверьте, не происходило ли недавно аварийное переключение на базу данных в другом регионе. WhatsApp Business API может не справляться с нагрузкой из-за задержки связи между регионами.
  3. Если исходящие сообщения постепенно накапливаются в очереди, сообщите нам об ошибке.
  4. Если один клиент WhatsApp Business API не справляется с нагрузкой, настройте распределение нагрузки.

Примечание. В редких случаях на панели может отображаться 100-процентное заполнение очереди исходящих сообщений из-за особенностей реализации очереди на более низком уровне. Инструкции в этом случае остаются прежними.

Уведомление о большом количестве обратных вызовов в очереди

Описание

Очередь обратных вызовов почти заполнена. Скоро запросы API начнут завершаться ошибкой System overloaded error (1016).

Действия

  1. На панели Callback Error Rate (Процент ошибок обратных вызовов) проверьте, успешно ли обрабатываются обратные вызовы.
  2. Уменьшите время обработки обратных вызовов для Webhook.
  3. Увеличьте количество одновременно выполняемых запросов обратного вызова, изменив значение max_concurrent_requests в настройках приложения (значение по умолчанию — 6).

Уведомление о большом количестве ошибок в транзакциях базы данных

Описание

Количество (коэффициент) ошибок в транзакционных операциях базы данных (транзакции, сохранение, откат) слишком высокое.

Действия

  1. Определите базу данных и операцию, с которыми возникают проблемы, с помощью панели DB Transactions/sec (Количество транзакций БД в секунду).
  2. С помощью Grep найдите в журналах Coreapp коды и сообщения об ошибках SQL, содержащие слово QSqlError.
  3. Исходя из кода ошибки и сообщения:
    1. Проверьте работоспособность своей базы данных с помощью панели обзора MySQL или собственной панели мониторинга базы данных.
    2. Если ошибка указывает на проблему со схемой или запросом SQL, обратитесь в прямую поддержку.

Уведомление о большом количестве ошибок в запросах на чтение к базе данных

Описание

Количество (коэффициент) ошибок в операциях чтения базы данных (выборка, подготовка) слишком высокое.

Действия

  1. Определите базу данных и операцию, с которыми возникают проблемы, с помощью панели DB Read Queries/sec (Количество запросов на чтение к БД в секунду).
  2. С помощью Grep найдите в журналах Coreapp коды и сообщения об ошибках SQL, содержащие слово QSqlError.
  3. Исходя из кода ошибки и сообщения:
    1. Проверьте работоспособность своей базы данных с помощью панели обзора MySQL или собственной панели мониторинга базы данных.
    2. Если ошибка указывает на проблему со схемой или запросом SQL, обратитесь в прямую поддержку.

Уведомление о большом количестве ошибок в запросах на запись к базе данных

Описание

Количество (коэффициент) ошибок в операциях записи в базу данных (вставка, обновление, удаление и т. д.) слишком высокое.

Действия

  1. Определите базу данных и операцию, с которыми возникают проблемы, с помощью панели DB Write Queries/sec (Количество запросов на запись к БД в секунду).
  2. С помощью Grep найдите в журналах Coreapp коды и сообщения об ошибках SQL, содержащие слово QSqlError.
  3. Исходя из кода ошибки и сообщения:
    1. Проверьте работоспособность своей базы данных с помощью панели обзора MySQL или собственной панели мониторинга базы данных.
    2. Если ошибка указывает на проблему со схемой или запросом SQL, обратитесь в прямую поддержку.

Уведомление о высокой средней задержке (в мс) транзакций базы данных

Описание

Средняя задержка транзакционных операций базы данных (транзакции, сохранение, откат) слишком высокая.

Действия

Чтобы пропускная способность канала обмена сообщениями была достаточной, рекомендуется поддерживать задержку базы данных на уровне ниже 15 мс.

  1. Определите базу данных с высокой задержкой с помощью панели Average DB Transaction Latency(ms) (Средняя задержка (в мс) транзакций БД).
  2. Проверьте работоспособность своей базы данных с помощью панели обзора MySQL или собственной панели мониторинга базы данных.
  3. Чтобы определить задержку XACT при одновременной работе с несколькими клиентами, используйте mysqlslap или pgbench.
  4. Воспользуйтесь рекомендациями по увеличению пропускной способности и настройте базу данных с аналогичной конфигурацией.

Распространенные проблемы

  • Для экземпляра базы данных достигнут предел использования ресурсов ЦП, памяти, места на диске, количества операций ввода-вывода или подключений.
  • Экземпляр базы данных работает на магнитном диске, а не на SSD.
  • Экземпляр базы данных и Coreapp находятся в разных регионах, что замедляет прохождение сигнала по сети туда и обратно.

Уведомление о высокой средней задержке (в мс) запросов на чтение к базе данных

Описание

Средняя задержка операций чтения из базы данных (выборка, подготовка) слишком высокая.

Действия

Чтобы пропускная способность канала обмена сообщениями была достаточной, рекомендуется поддерживать задержку базы данных на уровне ниже 15 мс.

  1. Определите базу данных с высокой задержкой с помощью панели Average DB Read Query Latency(ms) (Средняя задержка (в мс) запросов на чтение к БД).
  2. Проверьте работоспособность своей базы данных с помощью панели обзора MySQL или собственной панели мониторинга базы данных.
  3. Чтобы определить задержку чтения при одновременной работе с несколькими клиентами, используйте mysqlslap или pgbench.
  4. Воспользуйтесь рекомендациями по увеличению пропускной способности и настройте базу данных с аналогичной конфигурацией.

Распространенные проблемы

  • Для экземпляра базы данных достигнут предел использования ресурсов ЦП или памяти либо количества подключений.
  • Экземпляр базы данных и Coreapp находятся в разных регионах, что замедляет прохождение сигнала по сети туда и обратно.

Уведомление о высокой средней задержке (в мс) запросов на запись к базе данных

Описание

Средняя задержка операций записи в базу данных (вставка, обновление, удаление и т. д.) слишком высокая.

Действия

Чтобы пропускная способность канала обмена сообщениями была достаточной, рекомендуется поддерживать задержку базы данных на уровне ниже 15 мс.

  1. Определите базу данных с высокой задержкой с помощью панели Average DB Write Query Latency(ms) (Средняя задержка (в мс) запросов на запись к БД).
  2. Проверьте работоспособность своей базы данных с помощью панели обзора MySQL или собственной панели мониторинга базы данных.
  3. Чтобы определить задержку записи при одновременной работе с несколькими клиентами, используйте mysqlslap или pgbench.
  4. Воспользуйтесь рекомендациями по увеличению пропускной способности и настройте базу данных с аналогичной конфигурацией.

Распространенные проблемы

  • Для экземпляра базы данных достигнут предел использования ресурсов ЦП, памяти, места на диске, количества операций ввода-вывода или подключений.
  • Экземпляр базы данных работает на магнитном диске, а не на SSD.
  • Экземпляр базы данных и Coreapp находятся в разных регионах, что замедляет прохождение сигнала по сети туда и обратно.

Уведомление о высокой средней задержке (в мс) запросов обратного вызова

Описание

Средняя задержка запросов обратного вызова к указанному в настройках приложения URL Webhook слишком большая.

Действия

Чтобы пропускная способность была достаточной, рекомендуется поддерживать задержку обратного вызова на уровне ниже 80 мс.

  1. Проведите эталонный тест на задержку на сервере Webhook и найдите узкие места.
  2. Выполняйте некритичные операции в асинхронном режиме и сразу же возвращайте ответ с кодом HTTPS 200 OK.
  3. Увеличьте количество серверов Webhook, расположенных за балансировщиками нагрузки, если им не хватает системных ресурсов.

Уведомление о сбоях запросов на подключение к серверу

Описание

Coreapp постоянно теряет соединение с серверами WhatsApp. Нестабильное соединение влияет на производительность обмена сообщениями Coreapp и приводит к сбоям в работе API.

Действия

  1. С помощью Grep поищите в журналах Coreapp сообщения со словами Stream error (Ошибка потока), чтобы найти фактическую ошибку потери подключения и связанное с ней сообщение, а также определить частоту ее возникновения.
  2. Если соединение периодически теряется на несколько часов, устранить эту проблему может помочь перезапуск Coreapp.
  3. Для исследования причин ошибки ведите журналы и обращайтесь в прямую поддержку.

Уведомление о недостаточном количестве расшифрованных сообщений в секунду

Описание

Coreapp не успевает расшифровывать входящие сообщения, поступающие с сервера WhatsApp, что приводит к потере подключения.

Действия

  1. Проверьте работоспособность базы данных с помощью панели DB Read/Write/Transaction Latency (Задержка чтения/записи/транзакций БД). Для обеспечения достаточной пропускной способности рекомендуется поддерживать задержку БД на уровне менее 15 мс. Воспользуйтесь приведенными выше инструкциями по устранению проблем со средней задержкой запросов на запись к БД.
  2. Проверьте, хватает ли вашему экземпляру Coreapp ресурсов ЦП. Если нет, увеличьте размер экземпляра.
  3. Ведите журналы и обратитесь в прямую поддержку, чтобы ограничить число входящих сообщений с серверов WhatsApp.

Уведомления на панели обзора устройств

Уведомление о высокой загрузке ЦП

Описание

Слишком высокая загрузка ЦП на устройстве.

Действия

  1. Проверьте распределение загрузки на панели CPU Detailed Util % (Подробная информация о загрузке ЦП, %).
  2. Выполните на устройстве команду atop или top и определите процессы, которые больше всего загружают ЦП. Также можно проверить метрики ЦП на уровне контейнеров на панели Container Overview (Обзор контейнеров). Укажите проблемное устройство в переменной Machine (Устройство).
  3. Если большую часть ресурсов ЦП использует Webapp, Coreapp или база данных, разместите этот компонент на более производительном устройстве. Если в режиме повышенной доступности/с распределением нагрузки контейнеры Webapp и Coreapp работают на одном устройстве, попробуйте разнести их по разным устройствам.

Уведомление о слишком интенсивном использовании диска

Описание

Слишком высокий уровень использования жесткого диска на устройстве.

Действия

  1. Выполните на устройстве команды du и df и проанализируйте использование диска. Также можно проверить метрики дисков на уровне контейнеров на панели Container Overview (Обзор контейнеров). Укажите проблемное устройство в переменной Machine (Устройство).
  2. Удалите с устройства ненужные данные. Если на нем хранятся медиафайлы или журналы, настройте задание cron для периодического удаления старых данных.

Уведомление о слишком интенсивном использовании памяти

Описание

Слишком высокий уровень использования памяти на устройстве.

Действия

  1. Посмотрите распределение памяти на панели Memory Details (Подробная информация о памяти).
  2. Выполните на устройстве команду atop или top и определите процесс, занимающий больше всего памяти. Также можно проверить метрики памяти на уровне контейнеров на панели Container Overview (Обзор контейнеров). Укажите проблемное устройство в переменной Machine (Устройство).
  3. Если большую часть памяти занимает Webapp, Coreapp или база данных, разместите этот компонент на более производительном устройстве.
  4. Если размер памяти, занимаемой Coreapp, постепенно увеличивается, возможно, имеется утечка памяти. В этом случае сообщите нам об ошибке. Чтобы устранить проблемы с памятью, перезапустите Coreapp.

Уведомление о слишком большом количестве открытых файлов

Описание

На устройстве скоро закончатся дескрипторы файлов.

Действия

  1. На панели File Descriptor (Дескрипторы файлов) проверьте ограничение на количество открытых файлов.
  2. Чтобы увеличить его, измените значение в файле /etc/sysctl.conf (например, fs.file-max = 600000).
  3. Чтобы применить изменения, выполните команду sysctl -p.

Уведомления на панели обзора MySQL

Уведомление о слишком большом количестве подключений к базе данных

Описание

Пул подключений к базе данных почти исчерпан. Скоро при выполнении новых запросов к базе данных начнут возникать ошибки Too many connections.

Действия

  1. На панели Connections (Подключения) проверьте текущее ограничение на количество подключений.
  2. Увеличьте значение системной переменной MySQL max_connections в файле my.cnf (значение по умолчанию — 151) и перезапустите сервер MySQL. Дополнительную информацию см. в документации по системным переменным сервера MySQL.
  3. Если вы используете AWS RDS, перейдите на экземпляр RDS большего размера. Инструкции см. в подразделе Размер экземпляра RDS раздела Сведения о развертывании в AWS.

Уведомления на панели обзора WebApp

Уведомление о большом количестве подключений к HTTP-серверу в очереди

Описание

Внутренняя очередь подключений к HTTP-серверу в Webapp почти заполнена.

Действия

  1. На панели Business Client (Бизнес-клиент) проверьте, нет ли необычного трафика API или больших задержек при выполнении запросов API.
  2. Обратитесь за дополнительной информацией к журналам Webapp.
  3. Проверьте уровень загрузки ЦП процессами Webapp. Если он высок, выберите для Webapp более производительное устройство.