คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
Apigee Edge บันทึกยอดดูได้มากมายหลายประเภท ข้อมูลการดำเนินงานและธุรกิจที่ไหลผ่าน API เมตริกที่ได้มาจากข้อมูลนี้ ซึ่งมีประโยชน์สำหรับการตรวจสอบการปฏิบัติงานและการตรวจสอบธุรกิจ เมื่อใช้การวิเคราะห์ Edge API คุณจะสามารถทำสิ่งต่อไปนี้ เช่น ระบุว่า API ใดทำงานได้ดีหรือไม่ดี นักพัฒนาซอฟต์แวร์รายใดนำเสนอ การรับส่งข้อมูลที่มีมูลค่าสูงสุด และแอปใดที่ทำให้เกิดปัญหามากที่สุดสำหรับบริการแบ็กเอนด์
Edge จะเปิดตัว RESTful API เพื่อช่วยให้คุณเข้าถึงข้อมูลเมตริกนี้ได้อย่างง่ายดาย คุณสามารถ ใช้ API เมตริกเมื่อคุณต้องการทำให้ฟังก์ชัน Analytics บางอย่างทำงานโดยอัตโนมัติ เช่น การดึงข้อมูลเมตริก โดยใช้ไคลเอ็นต์หรือสคริปต์การทำงานอัตโนมัติเป็นระยะๆ คุณยังใช้ API เพื่อสร้าง การแสดงข้อมูลผ่านภาพในรูปแบบของวิดเจ็ตที่กำหนดเอง ซึ่งคุณสามารถฝังในพอร์ทัลหรือแอปที่กำหนดเอง
ดูวิธีใช้ Analytics ใน API UI การจัดการ 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
การรับเมตริกด้วย API การจัดการ
ความแตกต่างที่สำคัญระหว่าง API ทั้งสองคือรับเมตริก จะแสดงผลเมตริกดิบสำหรับทั้งองค์กรและสภาพแวดล้อม จัดระเบียบเมตริกตามมิติข้อมูล ช่วยให้คุณจัดกลุ่มเมตริกตามประเภทเอนทิตีต่างๆ เช่น ผลิตภัณฑ์ 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 ต่อไปนี้เพื่อเรียก API การจัดการ:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy
การระบุเมตริกที่จะแสดงผล
สำหรับทั้ง
ดูเมตริกและ
จัดระเบียบเมตริกตามมิติข้อมูล
API ที่คุณใช้พารามิเตอร์การค้นหา select
เพื่อระบุเมตริก
และฟังก์ชันการรวมข้อมูลที่ไม่บังคับอยู่ในรูปแบบดังนี้
?select=metric
หรือ
?select=aggFunction(metric)
สถานที่:
- metric ระบุข้อมูลที่คุณต้องการแสดง ตัวอย่างเช่น
จำนวนคำขอ API, การเข้าสู่แคช หรือข้อผิดพลาดของนโยบาย ดูเมตริก
สำหรับตารางที่ระบุชื่อเมตริกเพื่อใช้กับพารามิเตอร์การค้นหา
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 ดูตัวอย่างเพิ่มเติมได้ที่ตัวอย่าง 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" } ]... }
การตอบกลับนี้ระบุว่าได้รับข้อความ 1100 รายการโดยพร็อกซี API รายการหนึ่งซึ่งมีชื่อว่า "เปลี่ยนเส้นทางเป้าหมาย" ทำงานในสภาพแวดล้อมการทดสอบตั้งแต่วันที่ 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 อันดับสูงสุด" ตัวอย่างเช่น "10 อันดับที่ช้าที่สุด
API" คือ "แอป 10 อันดับแรกที่มีการใช้งานมากที่สุด" ซึ่งทำได้โดยใช้พารามิเตอร์การค้นหา topk
เป็นส่วนหนึ่งของคำขอ
ตัวอย่างเช่น คุณอาจต้องการทราบว่านักพัฒนาซอฟต์แวร์อันดับต้นๆ ของคุณคือใคร โดยวัดจากอัตราการส่งข้อมูล หรือสิ่งที่มีประสิทธิภาพต่ำที่สุด (เช่น "ช้าที่สุด") API เป้าหมายจะอิงตามเวลาในการตอบสนอง
topk
(หมายถึงเอนทิตี "อันดับสูงสุด" ) เปิดใช้การรายงานเกี่ยวกับเอนทิตีที่เชื่อมโยง
ด้วยค่าสูงสุดสำหรับเมตริกที่ระบุ ซึ่งจะช่วยให้คุณสามารถกรองเมตริกสำหรับรายการ
เป็นตัวอย่างของเงื่อนไขหนึ่งๆ เช่น ในการดูว่า 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 บางรายการส่งคืนข้อมูลขนาดใหญ่มาก เซ็ต เพื่อช่วยให้แสดงชุดข้อมูลขนาดใหญ่ในบริบทของแอปพลิเคชันแบบ UI ได้ง่าย ให้ทำดังนี้ API รองรับการใส่เลขหน้าโดยค่าเริ่มต้น
หากต้องการใส่เลขหน้าผลลัพธ์ ให้ใช้พารามิเตอร์การค้นหา 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