คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
Apigee Edge บันทึกข้อมูลการดำเนินการและข้อมูลธุรกิจที่หลากหลายซึ่งไหลผ่าน API เมตริกที่ได้จากข้อมูลนี้มีประโยชน์สำหรับการตรวจสอบการปฏิบัติงานและการตรวจสอบธุรกิจ ตัวอย่างของการใช้ Edge API Analytics ช่วยให้คุณพิจารณาได้ว่า API ใดมีประสิทธิภาพหรือแย่ นักพัฒนาซอฟต์แวร์รายใดให้การเข้าชมที่มีมูลค่าสูงสุด และแอปใดที่ทำให้เกิดปัญหามากที่สุดสำหรับบริการแบ็กเอนด์ของคุณ
Edge จะแสดง RESTful API เพื่อช่วยให้เข้าถึงข้อมูลเมตริกนี้ได้อย่างง่ายดาย คุณใช้ API เมตริกได้เมื่อต้องการทำให้ฟังก์ชัน Analytics บางอย่างทำงานโดยอัตโนมัติ เช่น การเรียกข้อมูลเมตริกเป็นระยะๆ โดยใช้ไคลเอ็นต์หรือสคริปต์การทำงานอัตโนมัติ นอกจากนี้ คุณยังใช้ API เพื่อสร้างการแสดงภาพของคุณเองในรูปแบบวิดเจ็ตที่กำหนดเองซึ่งคุณฝังในพอร์ทัลหรือแอปที่กำหนดเองได้
ดูวิธีใช้ Analytics ใน UI การจัดการ API Edge ได้ที่ภาพรวมข้อมูลวิเคราะห์ API
เกี่ยวกับ API ของเมตริก
Edge มี API เมตริก 2 รายการ ได้แก่
รับเมตริกจะแสดงผลเมตริกสำหรับองค์กรและสภาพแวดล้อมในช่วงเวลาหนึ่ง เช่น ชั่วโมง วัน หรือสัปดาห์
เช่น เมตริกของสัปดาห์ก่อนหน้า
- จำนวนข้อผิดพลาดเกี่ยวกับนโยบาย
- เวลาในการตอบกลับโดยเฉลี่ย
- การเข้าชมทั้งหมด
รับเมตริกที่จัดระเบียบตามมิติข้อมูลจะแสดงเมตริกในช่วงระยะเวลาหนึ่งขององค์กรและสภาพแวดล้อมที่จัดกลุ่มตามมิติข้อมูล
เช่น สำหรับสัปดาห์ก่อนหน้าที่คุณใช้มิติข้อมูลเพื่อจัดกลุ่มเมตริกตามผลิตภัณฑ์ API, พร็อกซี API และอีเมลของนักพัฒนาซอฟต์แวร์ เพื่อรับข้อมูลดังนี้
- จำนวนข้อผิดพลาดด้านนโยบายต่อผลิตภัณฑ์ API
- เวลาในการตอบกลับโดยเฉลี่ยต่อพร็อกซี API
- การเข้าชมทั้งหมดต่ออีเมลของนักพัฒนาแอป
รับเมตริกที่จัดระเบียบตามมิติข้อมูล API รองรับฟีเจอร์เพิ่มเติมที่ API รับเมตริก ซึ่งไม่รองรับฟีเจอร์ต่อไปนี้
เกี่ยวกับโควต้า API ของเมตริก
Edge บังคับใช้โควต้าต่อไปนี้กับการเรียกเหล่านี้ โควต้าจะอิงตามระบบแบ็กเอนด์ที่จัดการการเรียกใช้ ดังนี้
- Postgres: การโทร 40 ครั้งต่อนาที
- BigQuery: การโทร 12 ครั้งต่อนาที
กำหนดระบบแบ็กเอนด์ที่จัดการการเรียกใช้โดยการตรวจสอบออบเจ็กต์การตอบกลับ
ออบเจ็กต์การตอบกลับทุกออบเจ็กต์จะมีพร็อพเพอร์ตี้ metaData
ที่แสดงรายการบริการที่จัดการการโทรในพร็อพเพอร์ตี้ Source
เช่น สำหรับ Postgres
{ ... "metaData": { "errors": [], "notices": [ "Source:Postgres", "Table used: xxxxxx.yyyyy", "query served by:111-222-333" ] } }
สำหรับ BigQuery พร็อพเพอร์ตี้ Source
คือ
"Source:Big Query"
หากคุณเกินโควต้าการเรียกใช้ API จะส่งคืนการตอบกลับ HTTP 429
การรับเมตริกด้วย Management API
ความแตกต่างที่สำคัญระหว่าง API ทั้ง 2 รายการคือ ฟีเจอร์รับเมตริกจะแสดงเมตริกดิบของทั้งองค์กรและสภาพแวดล้อม ส่วนรับเมตริกที่จัดระเบียบตามมิติข้อมูลช่วยให้คุณจัดกลุ่มเมตริกตามประเภทเอนทิตีต่างๆ เช่น ผลิตภัณฑ์ API, นักพัฒนาซอฟต์แวร์ และแอปได้
URL คำขอสำหรับ API รับเมตริก คือ
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats
สำหรับ API สำหรับรับเมตริกที่จัดระเบียบตามมิติข้อมูล
คุณใส่ทรัพยากรเพิ่มเติมลงใน URL หลังวันที่ /stats
ซึ่งระบุมิติข้อมูลที่ต้องการ ดังนี้
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension
ตัวอย่างเช่น หากต้องการหาเมตริกที่จัดกลุ่มตามพร็อกซี API ให้ใช้ URL ต่อไปนี้เพื่อเรียก Management API
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy
การระบุเมตริกที่จะแสดง
สำหรับทั้ง API รับเมตริกและ รับเมตริกที่จัดระเบียบตามมิติข้อมูล คุณใช้พารามิเตอร์การค้นหาของ select
เพื่อระบุmetricsที่จะดึงข้อมูล และฟังก์ชันการรวมที่ไม่บังคับในรูปแบบต่อไปนี้
?select=metric
หรือ
?select=aggFunction(metric)
โดยที่
- metric ระบุข้อมูลที่คุณต้องการแสดงผล เช่น จำนวนคำขอ API, Hit แคช หรือข้อผิดพลาดเกี่ยวกับนโยบาย ดูmetricsสำหรับตารางที่ระบุชื่อเมตริกที่จะใช้กับพารามิเตอร์การค้นหา
select
aggFunction จะระบุฟังก์ชันการรวมที่ไม่บังคับซึ่งทํางานกับเมตริก ตัวอย่างเช่น คุณใช้ฟังก์ชันการรวมต่อไปนี้กับเมตริกเวลาในการตอบสนองการประมวลผลได้
avg
: แสดงผลเวลาในการตอบสนองการประมวลผลโดยเฉลี่ยmin
: แสดงผลเวลาในการตอบสนองขั้นต่ำในการประมวลผลmax
: แสดงผลเวลาในการตอบสนองการประมวลผลสูงสุด-
sum
: ส่งคืนผลรวมของเวลาในการตอบสนองทั้งหมด
เมตริกบางรายการอาจไม่รองรับฟังก์ชันการรวมบางรายการ เอกสารประกอบเกี่ยวกับmetricsมีตารางที่มีชื่อเมตริกและฟังก์ชัน (
sum
,avg
,min
,max
) ที่เมตริกรองรับ
ตัวอย่างเช่น หากต้องการส่งคืนจำนวนธุรกรรมโดยเฉลี่ย (ซึ่งหมายถึงคำขอพร็อกซี API ต่อวินาที) ให้ทำดังนี้
?select=tps
สังเกตว่าตัวอย่างนี้ไม่ต้องใช้ฟังก์ชันการรวม ตัวอย่างถัดไปใช้ฟังก์ชันการรวมเพื่อแสดงผลรวมของ Hit ของแคช
?select=sum(cache_hit)
คุณสามารถแสดงผลเมตริกได้หลายรายการสำหรับการเรียก API ครั้งเดียว หากต้องการดูเมตริกสำหรับผลรวมของข้อผิดพลาดด้านนโยบายและขนาดคำขอโดยเฉลี่ย ให้ตั้งค่าพารามิเตอร์การค้นหา select
โดยใช้รายการเมตริกที่คั่นด้วยคอมมาดังต่อไปนี้
?select=sum(policy_error),avg(request_size)
การระบุระยะเวลา
เมตริก API จะแสดงข้อมูลในช่วงระยะเวลาที่ระบุ ใช้พารามิเตอร์การค้นหา timeRange
เพื่อระบุระยะเวลาในแบบฟอร์ม ดังนี้
?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
สังเกต %20
ก่อน HH:MM
พารามิเตอร์ timeRange
กำหนดให้เว้นวรรคที่เข้ารหัส URL ก่อน HH:MM
หรืออักขระ +
เช่น MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM
เช่น
?timeRange=03/01/2018%2000:00~03/30/2018%2023:59
อย่าใช้เวลา 24:00 น. เป็นเวลา เพราะเวลารวมเป็น 00:00 ใช้ 23:59 แทน
การใช้ตัวคั่น
หากต้องการคั่นมิติข้อมูลหลายรายการในการเรียก API ให้ใช้คอมมา (,
) เป็นตัวคั่น
เช่น ในการเรียก API
curl https://api.enterprise.apigee.com/v1/o/myorg/e/prod/stats/apis,apps?select=sum(message_count)&timeRange=9/24/2018%2000:00~10/25/2018%2000:00&timeUnit=day
มิติข้อมูล apis
และ apps
คั่นด้วย ,
ตัวอย่างการเรียก API
ส่วนนี้ประกอบด้วยตัวอย่างการใช้ API รับเมตริกและ API รับเมตริกที่จัดระเบียบตามมิติข้อมูล ดูตัวอย่างเพิ่มเติมได้ในตัวอย่าง Metrics API
ส่งคืนจำนวนการเรียกทั้งหมดไปยัง API เป็นเวลา 1 เดือน
หากต้องการดูจำนวนการเรียกทั้งหมดไปยัง API ทั้งหมดในองค์กรและสภาพแวดล้อมของคุณเป็นเวลา 1 เดือน ให้ใช้ API รับเมตริก โดยทำดังนี้
curl -v "https://api.enterprise.apigee.com/v1/o/{org}/e/{env}/stats/?select=sum(message_count)&timeRange=03/01/2018%2000:00~03/31/2018%2023:59" \ -u email:password
ตัวอย่างคำตอบ:
{ "environments": [ { "metrics": [ { "name": "sum(message_count)", "values": [ "7.44944088E8" ] } ], "name": "prod" } ], ... }
แสดงผลจำนวนข้อความทั้งหมดต่อพร็อกซี API เป็นเวลา 2 วัน
ในตัวอย่างนี้ คุณจะแสดงผลเมตริกของจำนวนคำขอที่พร็อกซี API ทั้งหมดได้รับในระยะเวลา 2 วัน พารามิเตอร์การค้นหา select
กำหนดฟังก์ชันการรวม sum
สำหรับเมตริก message_count
ในมิติข้อมูล apiproxy
รายงานจะแสดงอัตราการส่งข้อมูลของข้อความคำขอสำหรับ API ทั้งหมดสำหรับการรับส่งข้อมูลที่ได้รับระหว่างต้นวันที่ 20/6/2018 ถึงสิ้น 21/6/2018 ตามเวลา UTC
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59" \ -u email:password
ตัวอย่างคำตอบ:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ { "timestamp" : 1498003200000, "value" : "1100.0" } ] } ], "name" : "target-reroute" } ], "name" : "test" } ]... }
การตอบกลับนี้ระบุว่าข้อความ 1,100 รายการได้รับโดยพร็อกซี API ชื่อ "target-reredirect" ที่ทำงานในสภาพแวดล้อมการทดสอบตั้งแต่วันที่ 20/6/2018 ถึงสิ้นวันที่ 21/6/2018
หากต้องการรับเมตริกสำหรับมิติข้อมูลอื่นๆ ให้ระบุมิติข้อมูลอื่นเป็นพารามิเตอร์ URI เช่น คุณระบุมิติข้อมูล developer_app
เพื่อดึงเมตริกสำหรับแอปของนักพัฒนาซอฟต์แวร์ได้ การเรียก API ต่อไปนี้จะแสดงผลอัตราการส่งข้อมูลทั้งหมด (ข้อความที่ได้รับ) จากแอปสำหรับช่วงเวลาที่ระบุ
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/developer_app?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59&timeUnit=day" \ -u email:password
ตัวอย่างคำตอบ:
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "886.0" } ] } ], "name": "Test-App" }, { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "6645.0" } ] } ], "name": "johndoe_app" }, { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "1109.0" } ] } ], "name": "marys_app" } ]... }
การจัดเรียงผลลัพธ์ตามการจัดอันดับที่เกี่ยวข้อง
หลายๆ ครั้งในการรับเมตริก คุณต้องการได้รับผลลัพธ์สำหรับชุดย่อยของชุดข้อมูลทั้งหมดเท่านั้น โดยปกติแล้ว คุณต้องดูผลลัพธ์สำหรับ "10 อันดับแรก" เช่น "API ที่ช้าที่สุด 10 อันดับแรก" "แอปที่มีการใช้งานมากที่สุด 10 อันดับแรก" ซึ่งทำได้โดยใช้พารามิเตอร์การค้นหา topk
เป็นส่วนหนึ่งของคำขอ
เช่น คุณอาจต้องการทราบว่านักพัฒนาซอฟต์แวร์ยอดนิยมของคุณคือใคร เมื่อวัดด้วยอัตราการส่งข้อมูล หรือประสิทธิภาพที่แย่ที่สุด (เช่น "ช้าที่สุด") ประมวลผลตามเวลาในการตอบสนอง
topk
(เอนทิตีหมายถึง "ท็อป k") ช่วยให้สามารถรายงานเกี่ยวกับเอนทิตีที่เชื่อมโยงกับค่าสูงสุดสำหรับเมตริกที่ระบุ ซึ่งจะช่วยให้คุณกรองเมตริกสำหรับรายการเอนทิตีที่สื่อถึงเงื่อนไขหนึ่งๆ ได้ เช่น หากต้องการค้นหา URL เป้าหมายที่เกิดข้อผิดพลาดมากที่สุดในช่วงสัปดาห์ที่ผ่านมา ระบบจะเพิ่มพารามิเตอร์ topk
ต่อท้ายคําขอ โดยมีค่าเป็น 1
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&topk=1" \ -u email:password
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(is_error)", "values": [ { "timestamp": 1494201600000, "value": "12077.0" } ] } ], "name": "http://api.company.com" } ]... }
ผลลัพธ์ของคำขอนี้คือชุดเมตริกที่แสดงให้เห็นว่า URL เป้าหมายที่มีข้อบกพร่องที่สุดคือ http://api.company.com
คุณยังใช้พารามิเตอร์ topk
เพื่อจัดเรียง API ที่มีอัตราการส่งข้อมูลสูงสุดได้ด้วย ตัวอย่างต่อไปนี้จะเรียกเมตริกใน API อันดับสูงสุด ซึ่งกำหนดโดยอัตราการส่งข้อมูลสูงสุดในสัปดาห์ที่ผ่านมา
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=day&sortby=sum(message_count)&sort=DESC&topk=1" \ -u email:password
ตัวอย่างการตอบกลับ
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1494720000000, "value": "5750.0" }, { "timestamp": 1494633600000, "value": "5752.0" }, { "timestamp": 1494547200000, "value": "5747.0" }, { "timestamp": 1494460800000, "value": "5751.0" }, { "timestamp": 1494374400000, "value": "5753.0" }, { "timestamp": 1494288000000, "value": "5751.0" }, { "timestamp": 1494201600000, "value": "5752.0" } ] } ], "name": "testCache" } ], "name": "test" } ]... }
การกรองผลลัพธ์
คุณสามารถกรองผลลัพธ์เพื่อจำกัดข้อมูลที่ส่งกลับเพื่อสร้างรายละเอียดมากขึ้นได้ เมื่อใช้ตัวกรอง คุณต้องใช้มิติข้อมูลเป็นพร็อพเพอร์ตี้ตัวกรอง
ตัวอย่างเช่น สมมติว่าคุณต้องการเรียกจำนวนข้อผิดพลาดจากบริการแบ็กเอนด์ที่กรองโดยคำกริยา HTTP ของคำขอ เป้าหมายของคุณคือการค้นหาจำนวนคำขอ POST และ PUT ที่ทำให้เกิดข้อผิดพลาดต่อบริการแบ็กเอนด์ วิธีการคือใช้มิติข้อมูล target_url
ร่วมกับตัวกรอง request_verb
ดังนี้
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&filter=(request_verb%20in%20'POST','PUT')" \ -u email:password
ตัวอย่างคำตอบ
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(is_error)", "values" : [ { "timestamp" : 1519516800000, "value" : "1.0" } ] } ], "name" : "testCache" } ], "name" : "test" } ]... }
การใส่เลขหน้าผลลัพธ์
ในสภาพแวดล้อมการใช้งานจริง คำขอบางรายการที่ส่งไปยัง Edge Analytics API จะแสดงชุดข้อมูลขนาดใหญ่มาก API รองรับการใส่เลขหน้าเพื่อให้แสดงชุดข้อมูลขนาดใหญ่ได้โดยง่ายในบริบทของแอปพลิเคชันแบบ UI
หากต้องการใส่เลขหน้าให้ผลลัพธ์ ให้ใช้พารามิเตอร์การค้นหา offset
และ limit
ร่วมกับพารามิเตอร์การจัดเรียง sortby
เพื่อให้ลำดับรายการสอดคล้องกัน
ตัวอย่างเช่น คำขอต่อไปนี้มีแนวโน้มที่จะส่งชุดข้อมูลขนาดใหญ่กลับมา เนื่องจากระบบจะดึงเมตริกสำหรับข้อผิดพลาดทั้งหมดใน API ทั้งหมดในสภาพแวดล้อมผลิตภัณฑ์ในช่วงสัปดาห์ที่ผ่านมา
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)" \ -u email:password
หากแอปพลิเคชันที่ใช้ UI แสดงผลลัพธ์ได้ 50 รายการต่อหน้าพอสมควร คุณจะกำหนดจำนวนสูงสุดเป็น 50 รายการได้ เนื่องจาก 0 นับเป็นรายการแรก การเรียกต่อไปนี้จะแสดงผลรายการ 0-49 ในลำดับจากมากไปน้อย (sort=DESC
เป็นค่าเริ่มต้น)
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=0" \ -u email:password
สำหรับ "หน้า" ที่สองของผลการค้นหา ให้ใช้พารามิเตอร์การค้นหาออฟเซ็ตดังนี้ โปรดทราบว่าขีดจำกัดและออฟเซ็ตนั้นเหมือนกัน เพราะ 0 นับเป็นรายการแรก โดยมีขีดจำกัดอยู่ที่ 50 รายการและมีออฟเซ็ตที่ 0 ระบบจะแสดงผลรายการ 0-49 หากมีออฟเซ็ต 50 ระบบจะแสดงผลรายการ 50-99
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=50" \ -u email:password