คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
Apigee Edge บันทึกข้อมูลการดำเนินงานและข้อมูลทางธุรกิจที่หลากหลายซึ่งไหลผ่าน API เมตริกที่ได้จากข้อมูลนี้มี ประโยชน์สำหรับการตรวจสอบการดำเนินงานและการตรวจสอบทางธุรกิจ เมื่อใช้ Edge API Analytics คุณจะกำหนดได้ เช่น ว่า API ใดมีประสิทธิภาพดีหรือไม่ดี นักพัฒนาซอฟต์แวร์รายใดสร้างการเข้าชมที่มีมูลค่าสูงสุด และแอปใดก่อให้เกิดปัญหามากที่สุดสำหรับบริการแบ็กเอนด์
Edge มี RESTful API เพื่อช่วยให้เข้าถึงข้อมูลเมตริกนี้ได้ง่าย คุณสามารถ ใช้ Metrics API เมื่อต้องการทำให้ฟังก์ชัน Analytics บางอย่างทำงานโดยอัตโนมัติ เช่น การเรียกเมตริก เป็นระยะๆ โดยใช้ไคลเอ็นต์หรือสคริปต์อัตโนมัติ นอกจากนี้ คุณยังใช้ API เพื่อสร้าง การแสดงภาพของคุณเองในรูปแบบวิดเจ็ตที่กำหนดเองซึ่งฝังในพอร์ทัลหรือแอปที่กำหนดเองได้ด้วย
ดูวิธีใช้ Analytics ใน UI การจัดการ API Edge ได้ที่ ภาพรวมของ API Analytics
เกี่ยวกับ Metrics API
Edge มี Metrics API 2 รายการดังนี้
Get metrics จะแสดงเมตริกสำหรับองค์กรและสภาพแวดล้อม ในช่วงระยะเวลาหนึ่ง เช่น 1 ชั่วโมง 1 วัน หรือ 1 สัปดาห์
ตัวอย่างเช่น คุณต้องการรับข้อมูลต่อไปนี้สำหรับสัปดาห์ที่ผ่านมา
- จำนวนข้อผิดพลาดเกี่ยวกับนโยบาย
- เวลาในการตอบกลับโดยเฉลี่ย
- การเข้าชมทั้งหมด
Get metrics organized by dimensions จะแสดงเมตริกในช่วงระยะเวลาหนึ่งสำหรับองค์กรและสภาพแวดล้อม จัดกลุ่มตาม มิติข้อมูล
ตัวอย่างเช่น คุณใช้มิติข้อมูลเพื่อจัดกลุ่มเมตริกตามผลิตภัณฑ์ API, พร็อกซี API, และอีเมลของนักพัฒนาซอฟต์แวร์สำหรับสัปดาห์ที่ผ่านมาเพื่อรับข้อมูลต่อไปนี้
- จำนวนข้อผิดพลาดเกี่ยวกับนโยบายต่อผลิตภัณฑ์ API
- เวลาในการตอบกลับโดยเฉลี่ยต่อพร็อกซี API
- การเข้าชมทั้งหมดต่ออีเมลของนักพัฒนาซอฟต์แวร์
Get metrics organized by dimensions API รองรับฟีเจอร์เพิ่มเติมที่ Get metrics API ไม่รองรับ ซึ่งรวมถึง
เกี่ยวกับโควต้า Metrics 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 รายการคือ Get metrics จะแสดงเมตริกดิบสำหรับทั้งองค์กรและสภาพแวดล้อม ในขณะที่ Get metrics organized by dimensions ช่วยให้คุณจัดกลุ่มเมตริกตามเอนทิตีประเภทต่างๆ เช่น ผลิตภัณฑ์ API, นักพัฒนาซอฟต์แวร์ และแอป
URL คำขอสำหรับ Get metrics API คือ
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/statsสำหรับ Get metrics organized by dimensions
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การระบุเมตริกที่จะแสดงผล
สำหรับทั้ง
Get metrics และ
Get metrics organized by dimensions
API คุณใช้พาร4/}} พารามิเตอร์การค้นหาเพื่อระบุ เมตริก
ที่จะดึงข้อมูล และฟังก์ชันการรวมที่ไม่บังคับในรูปแบบต่อไปนี้select
?select=metric
หรือ
?select=aggFunction(metric)
โดยที่
- metric จะระบุข้อมูลที่ต้องการแสดงผล เช่น
จำนวนคำขอ API, การเข้าถึงแคช หรือข้อผิดพลาดเกี่ยวกับนโยบาย ดู เมตริก
สำหรับตารางที่ระบุชื่อเมตริกที่จะใช้กับพารามิเตอร์การค้นหา
select aggFunction จะระบุฟังก์ชันการรวมที่ไม่บังคับที่จะทำงานกับเมตริก ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชันการรวมต่อไปนี้กับเมตริกเวลาในการตอบสนองสำหรับการประมวลผล
avg: แสดงผลเวลาในการตอบสนองสำหรับการประมวลผลโดยเฉลี่ยmin: แสดงผลเวลาในการตอบสนองสำหรับการประมวลผลต่ำสุดmax: แสดงผลเวลาในการตอบสนองสำหรับการประมวลผลสูงสุด-
sum: แสดงผลรวมของเวลาในการตอบสนองสำหรับการประมวลผลทั้งหมด
เมตริกบางรายการไม่รองรับฟังก์ชันการรวมทั้งหมด เอกสารประกอบเกี่ยวกับ เมตริกจะมีตารางที่ระบุชื่อเมตริก และฟังก์ชัน (
sum,avg,min,max) ที่เมตริกรองรับ
ตัวอย่างเช่น หากต้องการแสดงผลจำนวนธุรกรรมโดยเฉลี่ย ซึ่งหมายถึงคำขอพร็อกซี API ต่อวินาที ให้ใช้คำขอต่อไปนี้
?select=tps
โปรดสังเกตว่าตัวอย่างนี้ไม่จำเป็นต้องใช้ฟังก์ชันการรวม ตัวอย่างถัดไปใช้ ฟังก์ชันการรวมเพื่อแสดงผลรวมของการเข้าถึงแคช
?select=sum(cache_hit)
คุณสามารถแสดงผลเมตริกหลายรายการสำหรับการเรียก API ครั้งเดียว หากต้องการรับเมตริกสำหรับผลรวมของข้อผิดพลาดเกี่ยวกับนโยบาย
และขนาดคำขอโดยเฉลี่ย ให้ตั้งค่าพารามิเตอร์การค้นหา select โดยใช้รายการเมตริกที่คั่นด้วยคอมมา
ดังนี้
?select=sum(policy_error),avg(request_size)
การระบุระยะเวลา
Metrics 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
ส่วนนี้มีตัวอย่างการใช้ Get metrics และ Get metrics organized by dimensions API ดูตัวอย่างเพิ่มเติมได้ที่ตัวอย่าง Metrics API
แสดงผลจำนวนการเรียกทั้งหมดที่ส่งไปยัง API ของคุณใน 1 เดือน
หากต้องการดูจำนวนการเรียกทั้งหมดที่ส่งไปยัง API ทั้งหมดในองค์กรและสภาพแวดล้อมของคุณใน 1 เดือน ให้ใช้ Get metrics 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"
} ]...
}การตอบกลับนี้ระบุว่าพร็อกซี API รายการหนึ่งชื่อ 'target-reroute' ซึ่งทำงานในสภาพแวดล้อมการทดสอบได้รับข้อความ 1,100 รายการระหว่างต้นวันที่ 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 (หมายถึงเอนทิตี "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 Verb ของคำขอ เป้าหมายของคุณคือการค้นหาจำนวนคำขอ 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
หากต้องการแสดงผลลัพธ์ "หน้า" ที่ 2 ให้ใช้พารามิเตอร์การค้นหา offset ดังนี้ โปรดทราบว่า ขีดจำกัดและออฟเซ็ตจะเหมือนกัน เนื่องจาก 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