WADebug: เครื่องมือแก้ไขปัญหาสำหรับ WhatsApp Business API

เวอร์ชั่นปัจจุบัน: 0.1.5

WADebug เป็นเครื่องมือบรรทัดคำสั่ง เพื่อช่วยค้นหาปัญหาต่างๆ ที่อาจเกิดขึ้นกับการตั้งค่า WhatsApp Business API รวมถึงทำให้คำขอรับความช่วยเหลือจากฝ่ายสนับสนุน WhatsApp มีประสิทธิภาพมากขึ้นด้วย

การสนับสนุนของ WADebug สำหรับการตั้งค่าประเภทต่างๆ จะแสดงอยู่ที่ด้านล่าง รันการตรวจสอบ หมายถึง คำสั่งที่รันการดำเนินการต่างๆ เพื่อตรวจสอบยืนยันการตั้งค่าไคลเอ็นต์ WhatsApp Business API เรียกดูบันทึก หมายถึง คำสั่งที่เรียกดูบันทึกของคอนเทนเนอร์ทั้งหมด

ประเภทการตั้งค่ารันการตรวจสอบเรียกดูบันทึก

อินสแตนซ์เดี่ยวภายในองค์กร

รองรับ (คำแนะนำ)

รองรับ (คำแนะนำ)

ความพร้อมใช้งานสูง/การเชื่อมต่อหลายจุดภายในองค์กร

ไม่รองรับ

รองรับ (คำแนะนำ)

AWS

ไม่รองรับ

รองรับ (คำแนะนำ)

Kubernetes

ไม่รองรับ

ไม่รองรับ

เอกสารนี้ครอบคลุมเนื้อหาดังต่อไปนี้

ติดตั้ง WADebug

WADebug คือเครื่องมือบรรทัดคำสั่งซึ่งเขียนขึ้นเป็นภาษา Python ติดตั้งโดยใช้ Pip ดังนี้

pip3 install wadebug

ในการอัพเกรด ให้ใช้โค้ดดังนี้

pip3 install wadebug --upgrade

ในการถอนการติดตั้ง ให้ใช้โค้ดดังนี้

pip3 uninstall wadebug

ในการตรวจสอบความถูกต้องว่าคุณติดตั้ง WADebug แล้ว คุณสามารถรันโค้ดต่อไปนี้ได้

wadebug --help

รันการตรวจสอบ

WADebug มีชุดการดำเนินการสำหรับการตรวจสอบยืนยันการตั้งค่า WhatsApp Business API WADebug จะเรียกใช้การดำเนินการทั้งหมดที่มีตั้งแต่เริ่มต้น หากระบบส่งคืนสถานะ problem หรือ warning คำอธิบาย รายละเอียด และวิธีบรรเทาปัญหาที่เป็นไปได้จะแสดงขึ้นเพื่อช่วยคุณแก้ไขปัญหาในการตั้งค่า นอกจากนี้ เครื่องมือนี้จะบอกวิธีการอัพโหลดบันทึกไปยัง Facebook อีกครั้งหากคุณต้องการความช่วยเหลือ

ในการใช้เครื่องมือนี้ ให้รันคำสั่งดังต่อไปนี้จากเครื่องที่โฮสต์คอนเทนเนอร์ Docker WhatsApp Business API

wadebug

หากการดำเนินการส่งผลให้เกิด wadebug_error จะแสดงว่าตัวเครื่องมือนั้นมีปัญหา หากคุณพบปัญหาในลักษณะดังกล่าว โปรดรายงานจุดบกพร่องนี้ผ่านความช่วยเหลือโดยตรง



ไฟล์การกำหนดค่า

WADebug จำเป็นต้องใช้ไฟล์การกำหนดค่า (wadebug.conf.yml) ในไดเรกทอรีปัจจุบันเพื่อรันการตรวจสอบอย่างเต็มรูปแบบ

เมื่อรัน wadebug โดยไม่มีไฟล์การกำหนดค่า เครื่องมือนี้จะทำงานเพื่อสร้างไฟล์โครง (Skeleton file) ให้คุณกรอกค่าการกำหนดค่าต่างๆ หากไม่พบไฟล์การกำหนดค่าหรือไม่มีการกำหนดค่าการกำหนดค่าไว้ ระบบจะข้ามการดำเนินการบางอย่างไปเนื่องจากไม่มีข้อมูล

ตัวอย่างไฟล์การกำหนดค่า

  
    # 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

โหมด JSON

wadebug มี 2 โหมด ได้แก่ โหมดอินเทอร์แอคทีฟและโหมด JSON

โหมดอินเทอร์แอคทีฟจะเป็นโหมดเริ่มต้น เมื่อใช้โหมดนี้ คุณจะเห็นตารางแสดงผลลัพธ์และข้อความแจ้งต่างๆ รวมถึงได้รับแจ้งให้สร้างไฟล์การกำหนดค่า ฯลฯ
โหมด JSON จะมีประโยชน์เมื่อคุณต้องการผสานการทำงาน wadebug เข้ากับกระบวนการอัตโนมัติเพื่อตรวจสอบความถูกต้องของการตั้งค่า WhatsApp Business API เป็นระยะๆ หรือทุกครั้งที่อัพเกรดเวอร์ชั่น WhatsApp Business API เป็นต้น

หากต้องการรัน wadebug ในโหมด JSON ให้ส่งแฟล็ก --json ไปยังคำสั่ง wadebug ใดๆ ที่พร้อมใช้งานดังนี้

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

การเปลี่ยนแปลงที่สำคัญ

  • เวอร์ชั่น 0.1.4 ลงไป: คำสั่ง wadebug logs จะเป็นการเรียกดูบันทึก 10,000 บรรทัดล่าสุดจากแต่ละคอนเทนเนอร์
  • เวอร์ชั่น 0.1.5 ขึ้นไป: คำสั่ง wadebug logs จะเป็นการเรียกดูบันทึก 3 ชั่วโมงล่าสุดจากแต่ละคอนเทนเนอร์

เรียกดูบันทึกโดยเริ่มจากวันที่และเวลาที่เฉพาะเจาะจง

[ใหม่ ตั้งแต่เวอร์ชั่น 0.1.5] หากต้องการเรียกดูบันทึก 3 ชั่วโมง โดยเริ่มจากวันที่และเวลาที่เฉพาะเจาะจง (โซนเวลา GMT) ให้ใช้ตัวเลือก --since เช่น คำสั่งต่อไปนี้จะเป็นการเรียกดูบันทึกจาก 2020-01-07 3:00:02 GMT ถึง 2020-01-07 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

การเรียกดูบันทึกจากการตั้งค่าความพร้อมใช้งานสูง/การเชื่อมต่อหลายจุด

สำหรับโหมดความพร้อมใช้งานสูง/การเชื่อมต่อหลายจุด ซึ่งคอนเทนเนอร์จะได้รับการติดตั้งบนโฮสต์ 1 รายการหรือหลายรายการ คุณจำเป็นต้องเข้าสู่ระบบแต่ละโฮสต์, ติดตั้ง 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)

  • เลิกใช้การรองรับ Python 2 🎉
  • ตอนนี้ wadebug logs จะเป็นการเรียกดูบันทึก 3 ชั่วโมงที่ผ่านมา แทนที่จะเป็นบันทึก 10,000 บรรทัดล่าสุด
  • เพิ่มตัวเลือก --since ให้กับ wadebug logs ซึ่งจะเรียกดูบันทึก 3 ชั่วโมง โดยเริ่มจากค่าวันที่และเวลาที่ระบุไว้
  • [การแก้ไขจุดบกพร่อง] บกพร่องอย่างรวดเร็วในโหมด JSON เมื่อใช้พารามิเตอร์ที่เข้ากันไม่ได้

3 กันยายน 2019 (เวอร์ชั่น 0.1.4)

  • UI โฉมใหม่ที่สะอาดตายิ่งขึ้นสำหรับ WADebug
  • [การแก้ไขจุดบกพร่อง] แก้ไขการพิมพ์พอร์ตที่ไม่ถูกต้องเมื่อเกิดข้อผิดพลาดในการเชื่อมต่อในการดำเนินการ check_network
  • [การแก้ไขจุดบกพร่อง] เพิ่มข้อกำหนดสิทธิ์ MySQL ที่ขาดหายไปสำหรับการดำเนินการ check_mysql_permissions

26 เมษายน 2019 (เวอร์ชั่น 0.1.3)

  • เพิ่มรายการไฟล์การกำหนดค่าใหม่ๆ เข้ามา ซึ่งจำเป็นสำหรับการดำเนินการใหม่ๆ
  • เพิ่มการตรวจสอบระบบ Webhook
  • เพิ่มคำแนะนำให้อัพเกรด WADebug เมื่อมีเวอร์ชั่นใหม่บน PyPi
  • เพิ่มการตอบกลับตำแหน่งข้อมูลการสนับสนุนให้กับบันทึกที่อัพโหลด เพื่อช่วยให้แก้ไขปัญหาได้ง่ายขึ้น
  • ขณะนี้ บันทึกการหยุดทำงานของ WADebug จะอัพโหลดไปยัง Facebook

28 ธันวาคม 2018 (เวอร์ชั่น 0.1.2)

  • จำกัดขนาดของบันทึกที่ดึงข้อมูล
  • บันทึกภาพหน้าจอ Core Dump ของ Coreapp ในกรณีที่เกิดการหยุดทำงาน
  • เพิ่มคำสั่งใหม่เพื่อเรียกดูบันทึกโดยไม่ต้องอัพโหลด
  • เพิ่ม enum34 เป็นโมดูลที่กำหนดสำหรับ < Python 3.4

23 ตุลาคม 2018 (เวอร์ชั่น 0.1.1)

  • การเปิดตัวครั้งแรก