WADebug: strumento di risoluzione dei problemi per l'API di WhatsApp Business

Versione attuale: 0.1.5

WADebug è uno strumento da riga di comando che consente di trovare potenziali problemi con la configurazione dell'API di WhatsApp Business e di rendere le richieste all'Assistenza WhatsApp più efficaci.

Di seguito è mostrato il supporto di WADebug per diversi tipi di configurazioni. Esecuzione dei controlli si riferisce ai comandi che eseguono diverse azioni per verificare la configurazione del client dell'API di WhatsApp Business. Recupero dei registri si riferisce al comando per recuperare tutti i registri dei contenitori.

Tipo di configurazioneEsecuzione dei controlliRecupero dei registri

Singola instanza on-premises

Supportata (istruzioni)

Supportato (istruzioni)

High Availability/MultiConnect on-premises

Non supportata

Supportato (istruzioni)

AWS

Non supportata

Supportato (istruzioni)

Kubernetes

Non supportata

Non supportata

Questo documento tratta gli argomenti seguenti:

Installazione di WADebug

WADebug è uno strumento da riga di comando scritto in Python. Installalo con pip:

pip3 install wadebug

Per l'aggiornamento:

pip3 install wadebug --upgrade

Per la disinstallazione:

pip3 uninstall wadebug

Per verificare l'installazione di WADebug, puoi eseguire:

wadebug --help

Esecuzione dei controlli

WADebug è dotato di una serie di azioni che consentono di verificare la configurazione dell'API di WhatsApp Business. Per impostazione predefinita, vengono eseguite tutte le azioni disponibili. Se viene restituito lo stato problem o warning, vengono mostrati la descrizione, i dettagli e possibili metodi di mitigazione per aiutarti nella risoluzione dei problemi relativi alla configurazione. Inoltre, se hai bisogno di aiuto, ti verrà ricordato come caricare i registri su Facebook.

Per usare lo strumento, esegui il seguente comando dalla macchina su cui sono presenti i contenitori docker dell'API di WhatsApp Business:

wadebug

Se un'azione genera un wadebug_error, ciò indica che è stato riscontrato un problema con lo strumento. In questo caso, segnala il bug attraverso l'Assistenza diretta



File di configurazione

WADebug richiede un file di configurazione (wadebug.conf.yml) nella directory corrente per eseguire controlli completi.

Quando si esegue wadebug senza il file di configurazione, lo strumento richiederà di creare un file scheletro da compilare con i valori di configurazione. Se non viene trovato alcun file di configurazione o se non sono impostati valori di configurazione, alcune azioni vengono saltate per assenza di informazioni.

Esempio di file di configurazione:

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

Elenco di azioni possibili

Per controllare le azioni disponibili, esegui il comando seguente:

wadebug ls

Esecuzione parziale

Per eseguire solo un sottogruppo di azioni disponibili, digita questo comando:

wadebug partial check_software_version check_mysql_version

Modalità JSON

wadebug offre due modalità: modalità interattiva e modalità JSON.

La modalità interattiva è la modalità predefinita; quando è attiva, vengono visualizzate tabelle di risultati e comunicazioni, viene richiesta la creazione di un file di configurazione, ecc.
La modalità JSON è utile, ad esempio, quando si desidera integrare wadebug in una pipeline di automazione per verificare periodicamente la configurazione dell'API di WhatsApp Business o ogni volta che viene aggiornata la versione dell'API di WhatsApp Business.

Per eseguire wadebug in modalità JSON, passa il flag --json a un qualsiasi comando wadebug disponibile:

wadebug --json

Verrà restituita una risposta JSON valida:

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

Raccolta dei dati di utilizzo e disattivazione

Ogni volta che si esegue wadebug, vengono inviati i dati di utilizzo (inclusi l'esecuzione di azioni e i risultati restituiti) a Facebook per contribuire al miglioramento dello strumento e velocizzare il processo di assistenza WhatsApp attraverso l'Assistenza diretta.

Se non desideri condividere i dati di utilizzo con Facebook quando usi lo strumento, esegui wadebug con il flag --do-not-send-usage

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

Tieni presente che, anche se continuerai a vedere i risultati della risoluzione dei problemi a livello locale, la tua esperienza di interazione con il nostro supporto potrebbe risultare compromessa.

Recupero dei registri

wadebug offre un modo utile di recuperare tutti i registri dei contenitori e, facoltativamente, di inviarli a Facebook per semplificare il processo di analisi condotto dal nostro team di assistenza.

Recupero dei registri più recenti

Per recuperare e salvare i registri più recenti in wadebug_logs/ nella directory corrente:

wadebug logs

Modifiche importanti:

  • v0.1.4 e precedenti: il comando wadebug logs recupera le ultime 10 000 righe dei registri da ciascun contenitore
  • v0.1.5 e successive: il comando wadebug logs recupera le ultime 3 ore dei registri da ciascun contenitore

Recupero dei registri a partire da una data e un'ora specifiche

[Novità dalla v0.1.5] Per recuperare 3 ore dei registri a partire da una data e un'ora specifiche (fuso orario GMT), usa l'opzione --since. Ad es.: il seguente comando recupererà i registri dal 07-01-2020 3:00:02 GMT al 07-01-2020 6:00:02 GMT:

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

Invio dei registri

Per inviare i registri a Facebook, devi allegare il flag --send. Riceverai un run_id come parte della risposta e potrai inviarlo all'Assistenza diretta per una più rapida analisi:

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

Recupero dei registri dalla configurazione High Availability/Multiconnect

Per la modalità High Availability/Multiconnect in cui i contenitori sono installati su uno o più host, devi accedere a ciascun host, installare WADebug ed eseguire i comandi wadebug logs menzionati in alto.

Richiesta di supporto

Se hai bisogno di aiuto con la risoluzione dei problemi relativi alla configurazione dell'API di WhatsApp Business, apri un ticket per l'Assistenza diretta con il run_id restituito dopo l'esecuzione di wadebug. Questa operazione ci consente di visualizzare un report delle azioni eseguite e dei relativi risultati.

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
  	

I registri dei contenitori sono molto utili in fase di risoluzione dei problemi; per raccogliere e inviare i registri dei contenitori a Facebook, esegui wadebug logs con il flag --send

wadebug logs --send

e fornisci il run_id restituito.

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

Registro modifiche

15 gennaio 2020 (0.1.5)

  • Rimozione supporto python 2 🎉
  • wadebug logs ora acquisisce oltre 3 ore dei registri e non più le ultime 10 000 righe dei registri
  • Aggiunta opzione --since a wadebug logs per il recupero di 3 ore dei registri a partire dal valore di data e ora specificato
  • [Correzione bug] Generazione rapida di errori in modalità json in caso di utilizzo di parametri incompatibili

3 settembre 2019 (v0.1.4)

  • Un'interfaccia utente nuova e più chiara per WADebug
  • [Correzione bug] Correzione della stampa della porta sbagliata in caso di errore di connessione nell'azione check_network
  • [Correzione bug] Aggiunta dei requisiti per i privilegi MySQL mancanti nell'azione check_mysql_permissions

26 aprile 2019 (v0.1.3)

  • Aggiunti nuovi elementi file di configurazione richiesti da nuove azioni
  • Aggiunti controlli integrità webhook
  • Aggiunta richiesta di aggiornamento WADebug quando una nuova versione è disponibile su PyPi
  • Aggiunta risposta endpoint assistenza ai registri caricati per una più semplice risoluzione dei problemi
  • Caricati su Facebook i registri degli arresti anomali di WADebug

28 dicembre 2018 (v0.1.2)

  • Limitate le dimensioni dei registri recuperati
  • Acquisiti i core dump di Coreapp in caso di arresto anomalo
  • Aggiunto nuovo comando per recuperare i registri senza caricamento
  • Aggiunto enum34 come modulo richiesto per versioni di Python precedenti alla 3.4

23 ottobre 2018 (v0.1.1)

  • Versione iniziale