WADebug: herramienta de solución de problemas de la API de WhatsApp Business

Versión actual: 0.1.5

WADebug es una herramienta de línea de comandos que sirve para buscar posibles problemas en la configuración de la API de WhatsApp Business y para pedir ayuda más fácilmente a la asistencia de WhatsApp.

A continuación, se muestra la compatibilidad de WADebug con diferentes tipos de configuraciones. Ejecutar comprobaciones se refiere a los comandos que ejecutan varias acciones para verificar la configuración del cliente de la API de WhatsApp Business. Recuperar registros hace referencia al comando para recuperar todos los registros del contenedor.

Tipo de configuraciónEjecutar comprobacionesRecuperar registros

Instancia única local

Compatible (Instrucciones)

Compatible (Instrucciones)

Alta disponibilidad/conexión múltiple local

No compatible

Compatible (Instrucciones)

AWS

No compatible

Compatible (Instrucciones)

Kubernetes

No compatible

No compatible

Este documento abarca lo siguiente:

Instalar WADebug

WADebug es una herramienta de línea de comandos escrita en Python. Para instalarla con pip:

pip3 install wadebug

Para actualizarla:

pip3 install wadebug --upgrade

Para desinstalarla:

pip3 uninstall wadebug

Para validar la instalación de WADebug, puedes ejecutar:

wadebug --help

Ejecutar comprobaciones

WADebug tiene un conjunto de acciones que permite verificar la configuración de una API de WhatsApp Business. De forma predeterminada, ejecuta todas las acciones disponibles. Si se devuelve un estado problem o warning, también incluirá la descripción, los detalles y los posibles métodos de mitigación para ayudarte a solucionar el problema de configuración. Asimismo, se te recordará cómo subir registros a Facebook si necesitas ayuda.

Para usar la herramienta, ejecuta el siguiente comando desde la máquina en la que se almacenan los contenedores de Docker de la API de WhatsApp Business:

wadebug

Si recibes wadebug_error en la respuesta, significa que ocurrió un problema con la herramienta en sí. En ese caso, reporta el error a la asistencia directa.



Archivo de configuración

Para realizar todas las verificaciones, WADebug requiere un archivo de configuración (wadebug.conf.yml) en el directorio actual.

Si ejecutas wadebug sin el archivo de configuración, la herramienta te pedirá que crees un esqueleto de un archivo y que lo completes con los valores de configuración. Si no se encuentra el archivo de configuración o no se define ningún valor, se omitirán algunas acciones debido a la falta de información.

Ejemplo de archivo de configuración:

  
    # 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"
  

Lista de acciones posibles

Para verificar las acciones disponibles, ejecuta el siguiente comando:

wadebug ls

Ejecución parcial

Si solo quieres ejecutar un subconjunto de acciones disponibles, escribe este comando:

wadebug partial check_software_version check_mysql_version

Modo JSON

wadebug dispone de dos modos: el modo interactivo y el modo JSON.

El modo interactivo es el predeterminado. Cuando lo uses, visualizarás tablas de resultados y avisos, se te pedirá que crees un archivo de configuración, etc.
El modo JSON es útil si quieres integrar wadebug en un proceso de automatización para validar la configuración de la API de WhatsApp Business de forma periódica o cada vez que actualices la versión de la API de WhatsApp Business (por ejemplo).

Para ejecutar wadebug en el modo JSON, incluye la marca --json en cualquier comando de wadebug disponible:

wadebug --json

Recibirás una respuesta JSON válida:

{
   "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"
   }
}    
    

Recopilar y desactivar datos de uso

Cada vez que se ejecuta wadebug, los datos de uso (entre ellos, las acciones y los resultados) se envían a Facebook para ayudar a mejorar la herramienta y para acelerar el proceso de ayuda de WhatsApp mediante la asistencia directa.

Si no quieres compartir los datos de uso con Facebook cuando utilizas la herramienta, ejecuta wadebug con la marca --do-not-send-usage.

wadebug partial check_network --do-not-send-usage

Ten presente que, aunque sigas viendo los resultados de la solución de problemas en el nivel local, es posible que se vea perjudicada la experiencia que tengas con nuestro servicio de asistencia.

Recuperar registros

wadebug dispone de un método práctico para recuperar todos los registros del contenedor y, si lo deseas, enviarlos a Facebook para ayudar a nuestro equipo de asistencia.

Recuperar los registros más recientes

Para recuperar los registros más recientes en wadebug_logs/ en el directorio actual:

wadebug logs

Cambios importantes:

  • v0.1.4 y anteriores: el comando wadebug logs recupera las últimas 10.000 líneas de registros de cada contenedor
  • v0.1.5 y superior: el comando wadebug logs recupera las últimas 3 horas de registros de cada contenedor

Recuperar registros a partir de una fecha y hora específica

[Nuevo desde v0.1.5] Para recuperar 3 horas de registros a partir de una fecha y hora específica (zona horaria GMT), usa la opción --since. Por ejemplo, el siguiente comando recuperará registros desde el 7 de enero de 2020 a las 3:00:02 GMT hasta el 7 de enero de 2020 a las 6:00:02 GMT:

wadebug logs --since='2020-01-07 3:00:02'

Enviar registros

Para enviar registros a Facebook, tienes que agregar la marca --send. Como parte de la respuesta, recibirás un run_id, que puedes proporcionar a asistencia directa para acelerar las investigaciones:

wadebug logs --send
wadebug logs --since='2020-01-07 3:00:02' --send

Recuperar registros de la configuración de Alta disponibilidad/conexión múltiple

Para el modo Alta disponibilidad / Conexión múltiple, donde los contenedores están instalados en uno o varios hosts, debes iniciar sesión en cada host, instalar WADebug y ejecutar los comandos wadebug logs mencionados anteriormente.

Solicitar ayuda

Si necesitas ayuda para solucionar problemas de configuración de la API de WhatsApp Business, abre un ticket de asistencia directa con el identificador run_id que recibas después de ejecutar wadebug. Este identificador nos permitirá ver un informe de las acciones que se realizaron y sus resultados.

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
  	

Los registros del contenedor son muy útiles para solucionar problemas. Si quieres recopilarlos y enviárselos a Facebook, ejecuta wadebug logs con la marca --send.

wadebug logs --send

Luego, envía el run_id que recibas.

Container logs have been uploaded to Facebook.  You can reference run_id (AcClyxkRJk3w1dEr8OAmsTn) in Direct Support (https://business.facebook.com/direct-support) tickets
  	

Registro de cambios

15 de enero, 2020 (0.1.5)

  • Soporte de Python 2 obsoleto 🎉
  • wadebug logs ahora obtiene registros de las últimas 3 horas, en lugar de las últimas 10.000 líneas de registro.
  • Se agregó la opción --since en wadebug logs para recuperar 3 horas de registros a partir del valor de fecha y hora especificado
  • [Corrección de errores] Error rápido en el modo json cuando se utilizan parámetros incompatibles

3 de septiembre de 2019 (v0.1.4)

  • Nueva y más limpia interfaz de usuario para WADebug
  • [Corrección de errores] Se corrigió el puerto impreso incorrecto cuando se producía un error de conexión en la acción "check_network"
  • [Corrección de errores] Se agregaron los requisitos de privilegios de MySQL que faltaban en la acción check_mysql_permissions

26 de abril de 2019 (v0.1.3)

  • Se agregaron nuevos elementos del archivo de configuración para acciones nuevas
  • Se agregaron las comprobaciones de estado del webhook
  • Se agregó el aviso de actualización de WADebug cuando está disponible una versión nueva en PyPi
  • Se agregó la respuesta del punto de conexión de asistencia relacionada con los registros subidos para facilitar la solución de problemas
  • Los registros de bloqueo de WADebug se suben a Facebook

28 de diciembre de 2018 (v0.1.2)

  • Se limitó el tamaño de los registros recuperados
  • Captura de los volcados principales de la aplicación principal en caso de bloqueos
  • Se agregó un nuevo comando para recuperar registros sin subirlos
  • Se agregó enum34 como módulo obligatorio para Python 3.4 y versiones anteriores

23 de octubre de 2018 (v0.1.1)

  • Versión inicial