Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Apigee Edge ghi lại nhiều loại nội dung dữ liệu hoạt động và kinh doanh luân chuyển giữa các API. Các chỉ số bắt nguồn từ dữ liệu này là rất hữu ích cho việc giám sát hoạt động và giám sát doanh nghiệp. Khi sử dụng Edge API Analytics, bạn có thể ví dụ: xác định API nào đang hoạt động tốt hay kém, nhà phát triển nào đang cung cấp lưu lượng truy cập có giá trị cao nhất và ứng dụng nào đang gây ra nhiều vấn đề nhất cho các dịch vụ phụ trợ của bạn.
Để giúp truy cập dễ dàng vào dữ liệu chỉ số này, Edge hiển thị API RESTful. Bạn có thể sử dụng API chỉ số khi bạn cần tự động hoá một số chức năng nhất định của Analytics, chẳng hạn như truy xuất các chỉ số định kỳ bằng cách sử dụng tập lệnh hoặc ứng dụng tự động hoá. Bạn cũng có thể sử dụng API để tự tạo hiển thị trực quan dưới dạng tiện ích tuỳ chỉnh mà bạn có thể nhúng vào cổng thông tin hoặc ứng dụng tuỳ chỉnh.
Để tìm hiểu cách sử dụng Analytics trong API Giao diện người dùng quản lý Edge, hãy xem bài viết Tổng quan về API Analytics.
Giới thiệu về API chỉ số
Edge cung cấp 2 API chỉ số:
Xem chỉ số sẽ trả về các chỉ số cho một tổ chức và môi trường trong một khoảng thời gian nhất định, chẳng hạn như một giờ, một ngày hoặc một tuần.
Ví dụ: trong tuần trước, bạn muốn nhận được:
- Số lỗi về chính sách
- Thời gian phản hồi trung bình
- Tổng lưu lượng truy cập
Sắp xếp các chỉ số theo phương diện trả về các chỉ số trong một khoảng thời gian cho một tổ chức và môi trường được nhóm theo phương diện.
Ví dụ: đối với tuần trước, bạn sử dụng phương diện để nhóm các chỉ số theo sản phẩm API, proxy API, và email nhà phát triển để nhận:
- Số lỗi về chính sách trên mỗi sản phẩm API
- Thời gian phản hồi trung bình trên mỗi proxy API
- Tổng lưu lượng truy cập theo email nhà phát triển
Thẻ Sắp xếp các chỉ số theo phương diện API hỗ trợ các tính năng khác mà Xem chỉ số không hỗ trợ API, bao gồm:
Giới thiệu về hạn mức API chỉ số
Edge thực thi các hạn mức sau đây đối với các lệnh gọi này. Hạn mức này dựa trên hệ thống phụ trợ xử lý cuộc gọi:
- Postgres: 40 cuộc gọi mỗi phút
- BigQuery: 12 cuộc gọi mỗi phút
Xác định hệ thống phụ trợ xử lý lệnh gọi bằng cách kiểm tra đối tượng phản hồi.
Mỗi đối tượng phản hồi đều chứa một thuộc tính metaData
liệt kê dịch vụ đã xử lý lệnh gọi
trong thuộc tính Source
. Ví dụ như đối với Postgres:
{ ... "metaData": { "errors": [], "notices": [ "Source:Postgres", "Table used: xxxxxx.yyyyy", "query served by:111-222-333" ] } }
Đối với BigQuery, thuộc tính Source
là:
"Source:Big Query"
Nếu bạn vượt quá hạn mức lệnh gọi, API sẽ trả về phản hồi HTTP 429.
Lấy chỉ số bằng API quản lý
Sự khác biệt chính giữa 2 API là Lấy chỉ số trả về các chỉ số thô cho toàn bộ tổ chức và môi trường, trong khi Sắp xếp các chỉ số theo phương diện cho phép bạn nhóm các chỉ số theo nhiều loại thực thể, chẳng hạn như sản phẩm API, nhà phát triển và ứng dụng.
URL yêu cầu cho API Nhận chỉ số là:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats
Đối với thẻ Sắp xếp các chỉ số theo phương diện
API, bạn thêm một tài nguyên bổ sung vào URL sau /stats
để chỉ định phương diện mong muốn:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension
Ví dụ: để nhận các chỉ số được nhóm theo proxy API, bạn nên sử dụng URL sau để gọi API quản lý:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy
Chỉ định chỉ số cần trả về
Đối với cả hai thuộc tính
Xem chỉ số và
Sắp xếp các chỉ số theo phương diện
Các API mà bạn sử dụng tham số truy vấn select
để chỉ định chỉ số
để truy xuất và một hàm tổng hợp không bắt buộc, ở dạng:
?select=metric
hoặc:
?select=aggFunction(metric)
Trong trường hợp:
- chỉ số chỉ định dữ liệu bạn muốn trả về. Ví dụ:
số lượng yêu cầu API, số lượt truy cập vào bộ nhớ đệm hoặc lỗi chính sách. Xem phần chỉ số
cho bảng chỉ định tên chỉ số để sử dụng với tham số truy vấn
select
. aggFunction chỉ định hàm tổng hợp không bắt buộc chạy dựa trên chỉ số. Ví dụ: bạn có thể sử dụng các hàm tổng hợp sau đây với chỉ số độ trễ xử lý:
avg
: Trả về độ trễ xử lý trung bình.min
: Trả về độ trễ xử lý tối thiểu.max
: Trả về độ trễ xử lý tối đa.-
sum
: Trả về tổng tất cả độ trễ xử lý.
Không phải chỉ số nào cũng hỗ trợ toàn bộ hàm tổng hợp. Tài liệu về chỉ số chứa một bảng chỉ định tên chỉ số và hàm (
sum
,avg
,min
,max
) mà chỉ số hỗ trợ.
Ví dụ: để trả về số giao dịch trung bình, nghĩa là các yêu cầu proxy API mỗi giây:
?select=tps
Lưu ý rằng ví dụ này không yêu cầu hàm tổng hợp. Ví dụ tiếp theo sẽ sử dụng hàm tổng hợp để trả về tổng các lượt truy cập vào bộ nhớ đệm:
?select=sum(cache_hit)
Bạn có thể trả về nhiều chỉ số cho một lệnh gọi API. Cách xem chỉ số về tổng số lỗi vi phạm chính sách
và kích thước trung bình của yêu cầu, hãy đặt tham số truy vấn select
bằng dấu phẩy
danh sách chỉ số:
?select=sum(policy_error),avg(request_size)
Chỉ định khoảng thời gian
API Chỉ số trả về dữ liệu trong một khoảng thời gian nhất định. Sử dụng timeRange
tham số truy vấn để chỉ định khoảng thời gian, ở dạng:
?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
Hãy lưu ý %20
trước HH:MM
. Tham số timeRange
yêu cầu một ký tự dấu cách được mã hoá URL trước HH:MM
hoặc một ký tự +
,
như trong: MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM
.
Ví dụ:
?timeRange=03/01/2018%2000:00~03/30/2018%2023:59
Đừng dùng 24:00 làm thời gian vì nó kết thúc vào khoảng 00:00. Hãy sử dụng 23:59.
Sử dụng dấu phân cách
Để phân tách nhiều phương diện trong lệnh gọi API, hãy sử dụng dấu phẩy (,
) làm dấu phân cách.
Ví dụ: trong lệnh gọi 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
các phương diện apis
và apps
được phân tách bằng ,
.
Lệnh gọi API mẫu
Phần này bao gồm các ví dụ về cách sử dụng bảng Nhận chỉ số và Sắp xếp các chỉ số theo phương diện API. Hãy tham khảo bài viết Ví dụ về API Chỉ số để biết thêm ví dụ.
Trả về tổng số lệnh gọi đã thực hiện tới API trong một tháng
Để xem tổng số lệnh gọi được thực hiện tới tất cả API trong tổ chức và môi trường của bạn trong một tháng, hãy sử dụng API Nhận chỉ số:
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
Phản hồi mẫu:
{ "environments": [ { "metrics": [ { "name": "sum(message_count)", "values": [ "7.44944088E8" ] } ], "name": "prod" } ], ... }
Trả về tổng số thư trên mỗi proxy API trong hai ngày
Trong ví dụ này, bạn trả về chỉ số cho số lượng yêu cầu mà tất cả proxy API nhận được
trong khoảng thời gian hai ngày. Tham số truy vấn select
xác định hàm tổng hợp sum
cho chỉ số
message_count
trên phương diện apiproxy
. Báo cáo trả về thông lượng thông báo yêu cầu
cho tất cả các API cho lưu lượng truy cập nhận được trong khoảng thời gian từ ngày 20/6/2018 đến hết ngày 21/6/2018, trong
Giờ 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
Phản hồi mẫu:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ { "timestamp" : 1498003200000, "value" : "1100.0" } ] } ], "name" : "target-reroute" } ], "name" : "test" } ]... }
Phản hồi này cho biết rằng 1 proxy API có tên là đã nhận được 1100 thông báo "định tuyến lại mục tiêu" chạy trong môi trường thử nghiệm từ đầu ngày 20/6/2018 đến cuối 21/6/2018.
Để nhận chỉ số cho các phương diện khác, hãy chỉ định một phương diện khác làm tham số URI. Cho
Ví dụ: bạn có thể chỉ định phương diện developer_app
để truy xuất chỉ số cho
ứng dụng của nhà phát triển. Lệnh gọi API sau đây trả về tổng thông lượng (tin nhắn đã nhận) từ mọi ứng dụng
cho khoảng thời gian được chỉ định:
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
Phản hồi mẫu:
{ "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" } ]... }
Sắp xếp kết quả theo thứ hạng tương đối
Nhiều khi nhận được chỉ số, bạn chỉ muốn nhận kết quả cho một tập hợp con của tổng tập hợp
. Thông thường, bạn cần nhận được kết quả cho "10 hàng đầu", ví dụ: "10 chậm nhất
API", "10 ứng dụng hoạt động nhiều nhất". Bạn có thể thực hiện việc này bằng cách sử dụng tham số truy vấn topk
như một phần của yêu cầu.
Ví dụ: bạn có thể muốn biết ai là nhà phát triển hàng đầu của bạn, được đo lường theo công suất, hoặc yếu tố nào hoạt động kém nhất (ví dụ: API mục tiêu "chậm nhất hàng đầu") có độ trễ.
topk
(có nghĩa là "k thực thể hàng đầu") cho phép báo cáo về các thực thể được liên kết
có giá trị cao nhất cho một chỉ số nhất định. Điều này cho phép bạn lọc các chỉ số cho danh sách
thực thể thể hiện một điều kiện cụ thể. Ví dụ: để tìm xem URL mục tiêu nào là
hay gặp lỗi nhất trong tuần qua, nên tham số topk
sẽ được thêm vào yêu cầu,
có giá trị 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" } ]... }
Kết quả của yêu cầu này là một tập hợp các chỉ số cho thấy rằng URL mục tiêu lỗi
http://api.company.com
.
Bạn cũng có thể sử dụng tham số topk
để sắp xếp các API có hiệu suất cao nhất
thông lượng. Ví dụ sau đây truy xuất các chỉ số trên API có thứ hạng cao nhất, được xác định theo giá trị cao nhất
công suất trong tuần trước:
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
Phản hồi mẫu
{ "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" } ]... }
Đang lọc kết quả
Để có độ chi tiết cao hơn, bạn có thể lọc kết quả để giới hạn dữ liệu được trả về. Khi sử dụng bộ lọc, bạn phải sử dụng phương diện làm thuộc tính bộ lọc.
Ví dụ: giả sử bạn cần truy xuất số lượng lỗi từ các dịch vụ phụ trợ
được lọc theo động từ HTTP của yêu cầu. Mục tiêu của bạn là tìm hiểu số lượng yêu cầu POST và PUT
đang tạo lỗi cho mỗi dịch vụ phụ trợ. Để làm như vậy, bạn sử dụng phương diện
target_url
cùng với bộ lọc 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
Câu trả lời mẫu:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(is_error)", "values" : [ { "timestamp" : 1519516800000, "value" : "1.0" } ] } ], "name" : "testCache" } ], "name" : "test" } ]... }
Phân trang kết quả
Trong môi trường phát hành chính thức, một số yêu cầu đối với API Analytics của Edge sẽ trả về lượng dữ liệu rất lớn bộ. Để dễ dàng hiển thị các tập dữ liệu lớn trong ngữ cảnh ứng dụng dựa trên giao diện người dùng, API hỗ trợ sẵn tính năng phân trang.
Để phân trang kết quả, hãy sử dụng tham số truy vấn offset
và limit
,
cùng với tham số sắp xếp sortby
để đảm bảo thứ tự nhất quán của
mục.
Ví dụ: yêu cầu sau đây có thể trả về một tập dữ liệu lớn, vì yêu cầu này truy xuất chỉ số cho tất cả các lỗi trên tất cả API trong môi trường sản phẩm trong tuần trước.
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
Nếu ứng dụng dựa trên giao diện người dùng của bạn có thể hiển thị hợp lý 50 kết quả trên mỗi trang, bạn có thể đặt giới hạn
đến 50. Vì 0 được tính là mục đầu tiên, nên lệnh gọi sau sẽ trả về các mục từ 0 đến 49 theo thứ tự giảm dần
đơn đặt hàng (sort=DESC
là mặc định).
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
Đối với 'trang' thứ hai của kết quả, hãy sử dụng tham số truy vấn độ lệch như sau. Lưu ý rằng giới hạn và chênh lệch là giống nhau. Đó là vì 0 được tính là mục đầu tiên. Với giới hạn là 50 và chênh lệch bằng 0, các mục từ 0 đến 49 được trả về. Với chênh lệch là 50, các mặt hàng từ 50-99 sẽ bị trả về.
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