Текущая версия: 0.1.5
WADebug — это инструмент командной строки для поиска потенциальных проблем настройки WhatsApp Business API, который также упрощает работу со службой поддержки WhatsApp.
Ниже перечислены различные конфигурации, которые поддерживает WADebug. К категории Выполнение проверок относятся команды, которые позволяют подтвердить правильность настройки клиента WhatsApp Business API. К категории Получение журналов относятся команды, которые позволяют получать журналы контейнеров.
Конфигурация | Выполнение проверок | Получение журналов |
---|---|---|
Локальный отдельный экземпляр | Поддерживается (см. инструкции) | Поддерживается (см. инструкции) |
Локальный режим повышенной доступности /распределения нагрузки | Не поддерживается | Поддерживается (см. инструкции) |
AWS | Не поддерживается | Поддерживается (см. инструкции) |
Kubernetes | Не поддерживается | Не поддерживается |
В этом документе рассматриваются следующие темы:
WADebug — это инструмент командной строки, написанный на языке Python. Установка с помощью pip:
pip3 install wadebug
Обновление:
pip3 install wadebug --upgrade
Удаление:
pip3 uninstall wadebug
Проверить, установлен ли WADebug, можно с помощью следующей команды:
wadebug --help
В WADebug предусмотрено несколько действий для проверки настройки WhatsApp Business API. По умолчанию выполняются все доступные действия. Если возвращен статус problem
или warning
, для ускорения отладки будут показаны описание, подробные сведения и возможные способы устранения ошибки. Кроме того, выдается напоминание о том, как загрузить журналы на Facebook.
Чтобы воспользоваться инструментом, выполните на устройстве, на котором располагаются контейнеры Docker WhatsApp Business API, следующую команду:
wadebug
Если возвращается wadebug_error
, проблема заключается в самом инструменте. О таких ошибках следует сообщать в прямую поддержку.
Для проведения полной проверки WADebug необходим файл конфигурации wadebug.conf.yml
в текущем каталоге.
При запуске wadebug
без файла конфигурации инструмент предложит создать скелет файла, чтобы вы могли указать значения. Если файл конфигурации отсутствует или значения не заданы, некоторые действия пропускаются по причине нехватки информации.
Вот пример файла конфигурации:
# configurations related to the MySQL database db: # hostname of the MySQL database host: # for example, "0.0.0.0" # host port that the MySQL database uses # to connect to database container created by docker-compose scripts, use 33060 port: # for example, 33060 # username to connect to the MySQL database user: # for example, "root" # password of the username that is used to connect to the MySQL database password: # for example, "your_database_password" # configurations related to WhatsApp Business API webapp: # url accessible from the host running wadebug baseUrl: # https://localhost:9090 # WhatsApp Business API user account credentials to call Support API user: # for example, "wadebug" # WhatsApp Business API user account credentials to call Support API password: # for example, "secretdebugger"
Чтобы проверить доступные действия, выполните следующую команду:
wadebug ls
Чтобы выполнить только некоторые из доступных действий, используйте следующую команду:
wadebug partial check_software_version check_mysql_version
В wadebug
имеется два режима: интерактивный и режим JSON.
Интерактивный режим используется по умолчанию. В нем отображаются таблицы результатов и уведомления, предлагается создать файл конфигурации и т. д.
Режим JSON удобен, если wadebug
интегрируется в автоматический процесс для периодической проверки настройки WhatsApp Business API или при обновлении версии WhatsApp Business API.
Для запуска wadebug
в режиме JSON отправьте любую доступную команду wadebug
с флагом --json
:
wadebug --json
Будет возвращен действительный ответ JSON:
{ "containers_status":{ "class":"CheckContainersAreUp", "user_facing_name":"containers_status", "result":"OK" }, "check_mysql_connection":{ "class":"CheckMySQLConnection", "user_facing_name":"check_mysql_connection", "result":"OK" }, "check_software_version":{ "class":"CheckSoftwareVersion", "user_facing_name":"check_software_version", "result":"OK" }, "check_mysql_version":{ "class":"CheckMySQLVersion", "user_facing_name":"check_mysql_version", "result":"OK" }, "check_network":{ "class":"CheckNetworkAction", "user_facing_name":"check_network", "result":"OK" }, "check_mysql_permissions":{ "class":"CheckMySQLPermissions", "user_facing_name":"check_mysql_permissions", "result":"OK" }, "check_mysql_password":{ "class":"CheckMySQLPassword", "user_facing_name":"check_mysql_password", "result":"OK" }, "check_db_settings_exist":{ "class":"CheckDbSettingsExist", "user_facing_name":"check_db_settings_exist", "result":"OK" }, "check_webapp_port":{ "class":"CheckWebappPortAction", "user_facing_name":"check_webapp_port", "result":"OK" } }
Каждый раз при запуске wadebug
данные об использовании инструмента (включая выполненные действия и полученные результаты) отправляются в Facebook, где используются для улучшения работы инструмента и ускорения поддержки WhatsApp через службу прямой поддержки.
Если вы не хотите отправлять данные об использовании инструмента в Facebook, запустите wadebug
с флагом --do-not-send-usage
wadebug partial check_network --do-not-send-usage
Учтите, что вы будете получать результаты отладки, однако качество поддержки может существенно снизиться.
wadebug
предусматривает удобный способ получить журналы всех контейнеров и при необходимости отправить их команде поддержки Facebook для ускорения отладки.
Чтобы получить последние журналы в папке wadebug_logs/
в текущем каталоге:
wadebug logs
Важные изменения:
wadebug logs
извлекает из журналов каждого контейнера последние 10 тысяч строк.wadebug logs
извлекает из журналов каждого контейнера данные за последние 3 часа.(Начиная с версии 0.1.5) Чтобы получить журналы за 3 часа с указанных даты и времени (в часовом поясе GMT), используйте параметр --since
. Например, следующая команда возвращает журналы за период с 07.01.2020 3:00:02 GMT по 07.01.2020 6:00:02 GMT:
wadebug logs --since='2020-01-07 3:00:02'
Чтобы отправить журналы в Facebook, добавьте флаг --send
. Для более быстрого поиска решения полученное в ответе значение run_id
можно указать в заявке в прямую поддержку:
wadebug logs --send
wadebug logs --since='2020-01-07 3:00:02' --send
Если используется режим повышенной доступности и распределения нагрузки, необходимо войти на каждый хост, на котором установлены контейнеры, установить WADebug и выполнить перечисленные выше команды wadebug logs
.
Чтобы получить поддержку при настройке WhatsApp Business API, подайте заявку в прямую поддержку и укажите значение run_id
, полученное после запуска wadebug
. Таким образом мы получим список выполненных действий и полученных результатов.
A report of this run has been uploaded to Facebook. You can reference run_id (A5jedVKsdI_ZojRwL1_-MOd) in Direct Support (https://business.facebook.com/direct-support) tickets
Журналы контейнеров заметно упрощают процесс отладки. Для сбора и отправки журналов в Facebook выполните команду wadebug logs
с флагом --send
.
wadebug logs --send
и укажите возвращенное значение run_id
Container logs have been uploaded to Facebook. You can reference run_id (AcClyxkRJk3w1dEr8OAmsTn) in Direct Support (https://business.facebook.com/direct-support) tickets
15 января 2020 г. (версия 0.1.5)
wadebug logs
теперь возвращает журналы за последние 3 часа, а не последние 10 тысяч строк.wadebug logs
параметр --since
.3 сентября 2019 г. (версия 0.1.4)
26 апреля 2019 г. (версия 0.1.3)
28 декабря 2018 г. (версия 0.1.2)
23 октября 2018 г. (версия 0.1.1)