ตรวจสอบและแก้ไขปัญหาบน Proxy ด้วย Trace Tool

ตรวจสอบและแก้ไขปัญหาบน Proxy ด้วย Trace Tool
หลังจากที่เราได้ลอง สร้าง API proxy บน Apigeeไปแล้ว เราอาจจะพบปัญหาว่า proxy ที่เราสร้างขึ้นไม่ทำงานอย่างที่เราตั้งใจ หรือเมื่อ deploy ใช้งานบน production แล้วเกิดปัญหาขึ้นเฉพาะแค่บาง transactions ในบทความนี้ เราจะมาลองใช้งาน Trace tool ซึ่งเป็นเครื่องมือสำหรับ troubleshooting และ monitoring API proxies บน Apigee Edge (เราสามารถมองว่า Trace tool เป็นเครื่องมือสำหรับ Debugging ก็ได้)

หลังจากที่เราได้ลอง สร้าง API proxy บน Apigee ไปแล้ว เราอาจจะพบปัญหาว่า proxy ที่เราสร้างขึ้นไม่ทำงานอย่างที่เราตั้งใจ หรือเมื่อ deploy ใช้งานบน production แล้วเกิดปัญหาขึ้นเฉพาะแค่บาง transactions ในบทความนี้ เราจะมาลองใช้งาน Trace tool ซึ่งเป็นเครื่องมือสำหรับ troubleshooting และ monitoring API proxies บน Apigee Edge (เราสามารถมองว่า Trace tool เป็นเครื่องมือสำหรับ Debugging ก็ได้)

เลือกอ่านหัวข้อที่สนใจ

การใช้งาน Trace tool

1. เข้าไปที่ proxy ที่เราจะต้องการ debug

2. ตรวจสอบดูว่า เราได้ deploy proxy บน environment ที่ต้องการ debug แล้วหรือยัง

3. เลือกที่ tab TRACE

4. ตรวจสอบที่ Deployment to Trace dropdown ว่าเป็น environment ที่เราต้องการ trace

5. กดปุ่ม Start Trace Session เมื่อเริ่มทำการ trace ทางตัว API proxy จะแสดง transaction ที่เกิดขึ้น รวมถึงค่าต่างๆ ภายใน transaction นั้น

6. ในการใช้งาน trace เราสามารถส่ง request ได้จากบนหน้า Web UI นั้นเลย (แต่จะจำกัดแค่ GET เท่านั้น) หรือเราสามารถใช้ tools อื่นๆ ในการส่ง request ก็ได้เช่น curl, POSTMAN หรือแม้กระทั่ง transaction จริงๆ จาก application ของเรา
Note trace session จะมีเวลาแค่ 10 นาที และจะเก็บแค่ 10 transactions ต่อ message processor (โดยปกติ Apigee Edge ที่อยู่บน cloud จะให้มา 2 message processors ดังนั้นในการ trace จะสามารถดูได้ 20 transactions) ซึ่งเมื่อครบ 10 นาทีหรือครบ 20 transactions ทาง Apigee Edge ก็จะหยุดการทำงาน Trace และจะไม่เก็บค่าต่างๆ บน request/response ที่เกิดจากการ Trace ไว้ (ยกเว้นเรากด Download Trace Session)

7. เมื่อมี transaction เกิดขึ้น Apigee จะแสดงเป็น list ของ transaction โดยสามารถกดเลือกแต่ละ transaction เพื่อดูค่าในแต่ละ step ได้

การอ่านค่าบน Trace

Trace tool มี 2 ส่วนสำคัญคือ Transaction map และ phase details

  • Transaction map จะแสดง icons สำหรับแต่ละ step ที่เกิดขึ้นบน API proxy transaction เช่น policy execution, conditional steps และ transitions (การเปลี่ยนแปลงสถานะ flow ต่างๆ) เราสามารถดู summary information ได้โดยการนำ mouse cursor ไป hover ที่จุดนั้น
    transaction จะถูกแบ่งเป็น request flow (ด้านบน) และ response flow (ด้านล่าง)
  • Phase details จะแสดงถึง การทำงานในแต่ละขั้น เราสามารถ click เข้าไปดู variables ที่ถูก set หรือ read, request และ response headers และอื่นๆ ได้

ตัวอย่าง Transaction map

ความหมายของ icon ต่างๆ บน Transaction map

Client app ที่เรียก request มายัง ProxyEndpoint บน API proxy

เป็นตัวแยกสำหรับใน proxy flow จะแสดงเมื่อ

  1. Request จาก client มาถึง
  2. Request เรียกไปยัง target
  3. รับ Response คืนจาก target
  4. ส่ง Response ไปยัง client

แสดงถึงจุดเริ่มต้นของ flow segment ซึ่งคือ ProxyEndpoint request, TargetEndpoint request, TargetEndpoint response, และ ProxyEndpoint response และใน segment จะประกอบด้วย PreFlow, Conditional Flows, และ PostFlow

การทำ Analytics ที่เกิดขึ้นใน background

Conditional flow ที่มีค่าเป็น true
Note จะมีบาง conditional flow ที่ถูกสร้างจาก Apigee Edge เอง

Conditional flow ที่มีค่าเป็น false
Note จะมีบาง conditional flow ที่ถูกสร้างจาก Apigee Edge เอง

แสดงถึง Policies โดย policy แต่ละชนิดจะมี icon ที่ต่างกัน โดยจะวางเรียงตามลำดับการถูก executed และแสดงว่าทำงานสำเร็จหรือไม่

สามารถ click ที่ policy icon เพื่อดูผลลัพธ์ของการ execution ได้

แสดงถึง backend target ที่เป็น Node.js application

Backend target ที่ถูกเรียกจาก API proxy

แสดงถึงเวลาที่ใช้ (ในหน่วย milliseconds) ในการ process ช่วยให้สามารถตรวจสอบได้ว่า policy ไหนที่ใช้เวลานานจนกระทบกับ API

แสดงถึงเวลาที่ใช้นั้นน้อยกว่า 1 milliseconds

แสดงถึง policy นั้นถูก disabled

มี error เกิดขึ้น

แสดงถึง policy นั้นถูก skipped (เนื่องจากการทำ condition evaluated ได้เป็น false)

ใช้ filters เพื่อกรองเฉพาะ transactions ที่สนใจ

ในการใช้งานจริง อาจจะมี transactions เกิดขึ้นเป็นจำนวนมากพร้อมๆกัน เราสามารถกำหนดใช้ header และ/หรือ query parameter เพื่อบอก Apigee ให้ filter สำหรับการ trace ได้ โดยเราอาจจะแจ้งไปยัง developer ให้เพิ่ม header สำหรับ transactions ที่เกิดปัญหา

  • ในการใช้ filter จำเป็นต้อง restart Trace session หลังจากกำหนด filter parameters
  • Filter parameters จะใช้ AND ในการเชื่อมเงื่อนไข
  • Filter tools ไม่รองรับ Pattern matching
  • Filter parameters และ values เป็น case sensitive

Debugging with Trace

Trace ช่วยให้มองเห็นรายละเอียดต่างๆ ภายใน API proxy เช่น

  • ดูได้ว่า policy ไหนที่ execute ไม่เป็นไปตามที่ตั้งใจ
  • เราอาจจะเห็นจาก Analytics dashboards ว่า API performance ลดลง ตัว Trace ช่วยให้เราหาจุด bottleneck นั้นได้ เพราะว่าแสดงถึงเวลาที่ใช้ในการทำงานแต่ละขั้นตอนเป็น milliseconds
  • สามารถตรวจสอบ headers ที่ส่งไปยัง backend หรือดูค่า variables ที่ถูก policy ตั้งค่าให้
  • ตรวจสอบ base path เพื่อดูว่า ส่งไปยัง server ที่ถูกต้อง

Downloading trace results

สามารถ download XML file ของ raw trace ที่เกิดขึ้นเพื่อนำไปตรวจสอบต่อบน text editor ได้ โดยใน file นั้นจะแสดงรายละเอียดทั้งหมดของ session รวมถึง headers, variables, และ policies

Showing requests as curl

เราสามารถดู request ที่ส่งไปยัง backend server เป็น curl command ได้ 

  • เพราะใน API proxy อาจจะมีการเปลี่ยนแปลงค่าต่างๆ ใน request ดังนั้นการตรวจสอบจะช่วยให้เราเห็นว่า request ที่ถูกส่งไปยัง backend server ต่างจาก original request อย่างไร
  • สำหรับ message payloads ขนาดใหญ่ สามารถใช้ curl ดู HTTP headers และ message content ได้ในที่เดียว (แต่มี limit อยู่ที่ 1,000 characters)

ในการดู curl request ที่ถูกส่งไป backend server สามารถดูได้โดยเลือกที่ “Request sent to target server” stage ใน Transaction Map diagram, และ click เลือกที่ปุ่ม Show curl บน “Request sent to target server” column ใน Phase Details

Key Takeaway

สำหรับบทความนี้ท่านได้ลองใช้งาน Trace tool ซึ่งเป็นเครื่องมือสำหรับ troubleshooting API Proxy บน Apigee Edge
(เราสามารถมองว่า Trace tool เป็นเครื่องมือสำหรับ Debugging ก็ได้) ช่วยให้การตรวจสอบและแก้ไขปัญหาได้สะดวกรวดเร็วยิ่งขึ้น
ทั้งในขั้นตอนการพัฒนา หรือปัญหาที่เกิดขึ้นเมื่อใช้งานบน Production

สำหรับองค์กรหรือธุรกิจของท่านอยากที่จะพัฒนาและขับเคลื่อนนวัตกรรมองค์กรด้วยกลุยทธ์ APIs
และต้องการคำปรึกษาเพิ่มเติมหรือสนใจ สามารถติดต่อเราได้ที่ marketing@tangerine.co.th หรือโทร 02 285 5511
ท่านจะได้รับคำตอบจากผู้เชี่ยวชาญที่ได้รับการรับรองมาตรฐาน

Share on social media

Tangerine Expertise

Related Solution

Expand Interests

All and More

  • All
  • Apigee
  • Application Development
  • Business Transformation
  • Cisco
  • Converged Infrastructure
  • Dell EMC
  • Dialogflow (Chatbot)
  • Event
  • G Suite
  • Google Cloud
  • Google Cloud Platform
  • Google Maps Platform
  • Google Workspace
  • Highlight
  • Huawei
  • Hybrid Cloud & Multi Cloud
  • Knowledge
  • Networking
  • Productivity & Work Transformation
  • Security
  • Smart Business Analytics & AI
  • Storage & Data Protection
  • Success Story
  • VMware
All
  • All
  • Apigee
  • Application Development
  • Business Transformation
  • Cisco
  • Converged Infrastructure
  • Dell EMC
  • Dialogflow (Chatbot)
  • Event
  • G Suite
  • Google Cloud
  • Google Cloud Platform
  • Google Maps Platform
  • Google Workspace
  • Highlight
  • Huawei
  • Hybrid Cloud & Multi Cloud
  • Knowledge
  • Networking
  • Productivity & Work Transformation
  • Security
  • Smart Business Analytics & AI
  • Storage & Data Protection
  • Success Story
  • VMware
Google CloudGoogle Maps Platform

Coding ยังไงให้ตอบโจทย์? Locator Plus จาก Google Maps Platform มีคำตอบ

สวัสดีผู้ใช้งาน Google Maps Platform ทุกท่าน ถ้าพูดถึงวิธีการเรียกใช้งาน API Service ต่างๆ ของ Google Maps Platform ในการพัฒนาแอปพลิเคชัน เพื่อเรียกความสามารถของ Google Maps ไปใส่ในแอปพลิเคชันที่พัฒนาขึ้นมา ผู้พัฒนาโปรแกรม(Developer) ทุกท่านคงทราบกันดีว่า วิธีการเรียกใช้ คือการ Coding ด้วยภาษา ไม่ว่าจะเป็น JavaScript API หรือ SDK ต่างๆ ซึ่งทุกท่านมีความเชี่ยวชาญในการทำงานตรงส่วนนี้อยู่แล้ว

G SuiteGoogle CloudGoogle Workspace

กำหนดการบังคับเปลี่ยนแปลง Package G Suite เป็น Google Workspace

เมื่อวันที่ 6 ตุลาคม 2563 Google ได้เปิดตัว Google Workspace ใหม่ มาแทนที่ G Suite ระบบเดิม ขณะนี้ Google ได้มีแผนการที่จะปรับ Package ของลูกค้าปัจจุบันที่ใช้งาน G Suite ให้เป็น Google Workspace โดยอัตโนมัติ มีช่วงเวลาตามตารางดังต่อไปนี้

Security

OWASP Top 10 : Update 10 อันดับการโจมตี Web Application ปี 2021

OWASP หรือ Open Web Application Security Project คือ มาตราฐานความปลอดภัยของเว็บแอปพลิเคชัน ได้ทำการจัดอันดับช่องโหว่ที่มีความรุนแรง และพบเจอได้บ่อยในเว็บแอปพลิเคชัน 10 อันดับขึ้นมา และได้รับการตอบรับเป็นอย่างดีจากนักพัฒนาเว็บแอปพลิเคชันทั่วโลก ได้รับการยึดถือเป็นมาตรฐานการตรวจสอบช่องโหว่เว็บแอปพลิเคชัน ที่อธิบายรายละเอียดของช่องโหว่ที่พบได้บ่อยและมีความรุนแรง 10 อันดับแรกขึ้นมา เชิญอัปเดตรายละเอียดแต่ละช่องโหว่ ได้ดังนี้

CiscoSecurity

Slido is Now Integrated with Webex Meeting

ด้วยรูปแบบการทำงานที่เปลี่ยนไปเป็นแบบ Hybrid Work การประชุมแบบ Virtual Meeting ถือเป็นส่วนหนึ่งของการทำงานในปัจจุบัน Webex จึงได้นำเอา Feature ของ Slido ซึ่งเป็น Interactive Platform มาเพิ่มเติมลงบน Webex Meeting เพื่อเพิ่ม User experiences ในการประชุมให้ดียิ่งขึ้น และลดช่องว่างในการสื่อสารระหว่างผู้พูดและผู้ฟัง ทำให้ผู้ใช้งานสามารถทำ Polls, Quizzes หรือ Q&A ได้โดยที่ไม่ต้องเปลี่ยนหน้าจอ หรือสลับเครื่องมือในการทำงาน และยังช่วยให้ผู้ฟังสามารถแสดงความคิดเห็นผ่านทางเครื่องมือต่างๆ ได้ง่ายดายมากยิ่งขึ้น

Dell EMCHighlight

PowerStore All-Flash : Make It Simpler and More Intelligent

เดลล์เทคโนโลยี ได้ออกผลิตภัณฑ์ Dell EMC PowerStore แบบ All-Flash รุ่นใหม่เพื่อตอบสนองความต้องการภายในศูนย์ดาต้าเซนเตอร์ ให้รองรับ Workloads ระบบงาน Virtualize และ Container ได้มากขึ้น

Scroll to Top

ติดต่อ tangerine

Tel: +66 2 2855511   |   Email: info@tangerine.co.th




This website uses cookies to ensure you get the best experience on our website. View Privacy Policy