Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Apigee Edge, pek çok farklı türde operasyonel ve işletme verilerinin akışını sağlar. Bu verilerden türetilen metrikler işletme izleme ve operasyonel izleme açısından faydalıdır. Edge API Analytics'i kullanarak: hangi API'lerin iyi veya kötü performans gösterdiğini, hangi geliştiricilerin daha iyi performans gösterdiğini en yüksek değere sahip trafiği ve arka uç hizmetleriniz için en çok soruna neden olan uygulamaları görebilirsiniz.
Edge, bu metrik verilerine kolayca erişebilmek için RESTful API sunar. Şunları yapabilirsiniz: Metrikleri alma gibi belirli Analytics işlevlerini otomatikleştirmeniz gerektiğinde metrikler API'sini kullanın. düzenli olarak bir otomasyon istemcisi veya komut dosyası kullanarak. Ayrıca, kendi API'nizi oluşturmak için görselleştirmeleri sunar.
API'de Analytics'i nasıl kullanacağınızı öğrenmek için Uç yönetim kullanıcı arayüzü için API Analytics'e genel bakış bölümüne bakın.
Metrik API'leri hakkında
Edge, iki metrik API'si sağlar:
Metrik alma bir kuruluş ve ortam ile ilgili metrikleri döndürür belirli bir süre boyunca (ör. saat, gün veya hafta) devam ettirebilirsiniz.
Örneğin, önceki hafta için şunları almak isteyebilirsiniz:
- Politika hatası sayısı
- Ortalama yanıt süresi
- Toplam trafik
Metrikleri boyutlara göre düzenlenmiş halde alma bir kuruluş ve ortam için belirli bir zaman aralığına ait metrikleri döndürür. Bu metrik boyut ekleyin.
Örneğin, önceki hafta metrikleri kullanarak metrikleri API ürünü, API proxy'si ve ve geliştirici e-posta adresini kullanarak şu bilgileri edinebilirsiniz:
- API ürünü başına politika hatası sayısı
- API proxy'si başına ortalama yanıt süresi
- Geliştirici e-postası başına toplam trafik
Metrikleri boyutlara göre düzenlenmiş şekilde alma API, Metrik alma tarafından desteklenmeyen ek özellikleri destekler Aşağıdakiler dahil olmak üzere API:
Metric API kotaları hakkında
Edge, bu çağrılar için aşağıdaki kotaları uygular. Kota, arka uç sistemine göre müşteri şu çağrıyı işler:
- Postgres: Dakikada 40 çağrı
- BigQuery: Dakikada 12 çağrı
Yanıt nesnesini inceleyerek çağrıyı işleyen arka uç sistemini belirleyin.
Her yanıt nesnesi, aramayı işleyen hizmeti listeleyen bir metaData
özelliği içerir
Source
özelliğini kullanabilirsiniz. Örneğin, Postgres için:
{ ... "metaData": { "errors": [], "notices": [ "Source:Postgres", "Table used: xxxxxx.yyyyy", "query served by:111-222-333" ] } }
BigQuery için Source
özelliği şu şekildedir:
"Source:Big Query"
Çağrı kotasını aşarsanız API bir HTTP 429 yanıtı döndürür.
Management API ile metrikleri alma
İki API arasındaki temel fark, metrik alma seçeneğidir. tüm kuruluş ve ortam için ham metrikleri döndürürken Metrikleri boyutlara göre düzenlenmiş halde alma metrikleri API ürünü, geliştirici ve uygulama gibi farklı varlık türlerine göre gruplandırmanıza olanak tanır.
GetMetric API'si için istek URL'si şu şekildedir:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats
Metrikleri boyutlara göre düzenlenmiş halde alma için
API'de, /stats
ifadesinden sonra URL'ye, istenen boyutu belirten ek bir kaynak eklersiniz:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension
Örneğin, metrikleri API proxy'sine göre gruplandırılmış olarak almak için aşağıdaki URL'yi kullanarak yönetim API'si:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy
Döndürülecek metrikleri belirtme
Hem
Metrikleri alın ve
Metrikleri boyutlara göre düzenlenmiş halde alma
Metrikleri belirtmek için select
sorgu parametresini kullandığınız API'ler
değerini ve isteğe bağlı bir toplama işlevini şu biçimde kullanabilirsiniz:
?select=metric
veya:
?select=aggFunction(metric)
Burada:
- metric, döndürmek istediğiniz verileri belirtir. Örneğin,
API isteklerinin, önbellek isabetlerinin veya politika hatalarının sayısı. Metrikleri inceleyin
select
sorgu parametresiyle kullanılacak metrik adını belirten bir tablo seçin. aggFunction, metriğe göre çalıştırılan isteğe bağlı toplama işlevini belirtir. Örneğin, işleme gecikmesi metriğiyle aşağıdaki toplama işlevlerini kullanabilirsiniz:
avg
: Ortalama işleme gecikmesini döndürür.min
: Minimum işleme gecikmesi değerini döndürür.max
: Maksimum işleme gecikmesi değerini döndürür.-
sum
: Tüm işleme gecikmelerinin toplamını döndürür.
Bazı metrikler tüm toplama işlevlerini desteklemez. Bu nedenle, metrics, metrik adını belirten bir tablo içerir ve metrik tarafından desteklenen işlev (
sum
,avg
,min
,max
).
Örneğin, saniye başına ortalama işlem sayısını (yani API proxy istekleri) döndürmek için:
?select=tps
Bu örneğin, toplama işlevi gerektirmediğine dikkat edin. Bir sonraki örnekte Önbellek isabetlerinin toplamını döndüren bir toplama işlevi görür:
?select=sum(cache_hit)
Tek bir API çağrısı için birden fazla metrik döndürebilirsiniz. Politika hatalarının toplamıyla ilgili metrikleri alma
ve ortalama istek boyutunu öğrenmek için select
sorgu parametresini virgülle ayrılmış
metrik listesi:
?select=sum(policy_error),avg(request_size)
Dönemi belirtme
Metrikleri API'si belirli bir döneme ait verileri döndürür. timeRange
kullanın
sorgu parametresini şu biçimde kullanabilirsiniz:
?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
HH:MM
öncesinde %20
dikkat edin. timeRange
parametresi
HH:MM
öncesinde URL kodlamalı boşluk karakteri veya bir +
karakteri gerektirir.
olduğu gibi: MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM
.
Örneğin:
?timeRange=03/01/2018%2000:00~03/30/2018%2023:59
00:00'a denk geldiği için saat olarak 24:00'ı kullanmayın. Bunun yerine 23:59 değerini kullanın.
Ayırıcı kullanma
Bir API çağrısındaki birden fazla boyutu ayırmak için ayırıcı olarak virgül (,
) kullanın.
Örneğin, API çağrısında
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
ve apps
boyutları ,
ile ayrılır.
Örnek API çağrıları
Bu bölümde Metrikleri alma ve Metrikleri boyutlara göre düzenlenmiş halde alma API'ler. Daha fazla örnek için Metrics API'si örnekleri bölümüne bakın.
Bir ay içinde API'lerinize yapılan toplam çağrı sayısını döndürme
Bir ay içinde kuruluşunuzdaki ve ortamınızdaki tüm API'lere yapılan çağrıların toplam sayısını görmek için şunu kullanın: Metrik alma API'si:
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
Örnek Yanıt:
{ "environments": [ { "metrics": [ { "name": "sum(message_count)", "values": [ "7.44944088E8" ] } ], "name": "prod" } ], ... }
İki gün boyunca API proxy'si başına toplam mesaj sayısını döndürme
Bu örnekte, tüm API proxy'leri tarafından alınan istek sayısı için metrikler döndürüyorsunuz.
elde etti. select
sorgu parametresi, metrik için sum
toplama işlevini tanımlar
apiproxy
boyutunda message_count
. Rapor, istek mesajı işleme hızını döndürür
20.06.2018 başlangıcı ile 21.06.2018 sonu arasında alınan trafikteki tüm API'ler için
UTC saati:
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
Örnek Yanıt:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ { "timestamp" : 1498003200000, "value" : "1100.0" } ] } ], "name" : "target-reroute" } ], "name" : "test" } ]... }
Bu yanıt, 1.100 mesajının "hedef-yeniden yönlendirme" 20.06.2018 tarihinin başlangıcı ile 21.06.2018 tarihinde sona erecektir.
Diğer boyutlarla ilgili metrikler almak için URI parametresi olarak farklı bir boyut belirtin. Örneğin,
Örneğin, şunlar için metrikleri almak üzere developer_app
boyutunu belirtebilirsiniz:
geliştirici uygulamalarıdır. Aşağıdaki API çağrısı, tüm uygulamalardan toplam işleme hızını (alınan mesajlar) döndürür
belirtilen zaman aralığı için:
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
Örnek Yanıt:
{ "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" } ]... }
Sonuçları göreli sıralamaya göre sıralama
Metrikleri elde ederken çoğu zaman toplam kümenin bir alt kümesiyle ilgili sonuçlar almak istersiniz
dışı verilerdir. Genellikle "ilk 10", örneğin "ilk 10 en yavaş" için sonuçları almanız gerekir
API'ler", "en etkin 10 uygulama". Bu işlemi topk
sorgu parametresini kullanarak yapabilirsiniz.
kabul edersiniz.
Örneğin, en iyi geliştiricilerinizin kim olduğunu, işleme hızına, en kötü performans gösterenleri (ör. "en yavaş") hedef API'ler gecikmeye bağlıdır.
topk
("en iyi k" varlığı anlamına gelir), ilişkili varlıklar hakkında rapor oluşturmayı etkinleştirir.
belirli bir metrik için en yüksek değere sahip olmalıdır. Bu, belirli bir süre içinde sunulan bir liste için metrikleri
örnek teşkil eden varlık sayısı. Örneğin, her zaman en az
geçen hafta en çok hataya rastlanırsa isteğe topk
parametresi eklenir.
1
değerine sahip:
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" } ]... }
Bu isteğin sonucunda, en hata veren hedef URL'nin
http://api.company.com
En yüksek performans gösteren API'leri sıralamak için topk
parametresini de kullanabilirsiniz
işleme hızı. Aşağıdaki örnek, en yüksek değer tarafından tanımlanan en üst sıradaki API'deki metrikleri alır.
son bir haftadaki işleme hızı:
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
Örnek Yanıt
{ "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" } ]... }
Sonuçlar filtreleniyor
Daha fazla ayrıntı için, döndürülen verileri sınırlamak üzere sonuçları filtreleyebilirsiniz. Bunu kullanırken filtre özellikleri olarak boyutları kullanmanız gerekir.
Örneğin, arka uç hizmetlerinden hata sayısını almanız gerektiğini varsayalım
isteğin HTTP fiili tarafından filtrelendi. Hedefiniz kaç tane POST ve PUT isteği olduğunu öğrenmek
arka uç hizmeti başına hata oluşturuyor. Bunu yapmak için,
request_verb
filtresiyle birlikte target_url
:
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
Örnek yanıt:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(is_error)", "values" : [ { "timestamp" : 1519516800000, "value" : "1.0" } ] } ], "name" : "testCache" } ], "name" : "test" } ]... }
Sonuçları sayfalara ayırma
Üretim ortamlarında, Edge analytics API'ye yapılan bazı istekler çok büyük veri döndürüyor belirler. Büyük veri kümelerinin kullanıcı arayüzü tabanlı bir uygulama bağlamında görüntülenmesini kolaylaştırmak için API, sayfalandırmayı yerel olarak destekler.
Sonuçları sayfalara ayırmak için offset
ve limit
sorgu parametrelerini kullanın.
tutarlı bir sıralama için sortby
sıralama parametresiyle birlikte
öğeler.
Örneğin, aşağıdaki istek büyük bir veri kümesi döndürecektir çünkü geçen hafta ürün ortamındaki tüm API'lerde bulunan tüm hataların metriklerini alır.
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
Kullanıcı arayüzü tabanlı uygulamanızda sayfa başına makul ölçülerde 50 sonuç gösterebiliyorsa,
50'ye. 0, ilk öğe olarak sayıldığı için aşağıdaki çağrı, azalan düzende 0-49 arasındaki öğeleri döndürür.
sıra (sort=DESC
varsayılandır).
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
İkinci "sayfa" için için uzaklık sorgu parametresini aşağıdaki gibi kullanın. Lütfen limit ve ofset değerleri aynıdır. Bunun nedeni 0'ın ilk öğe olarak kabul edilmesidir. 50 ve ofset değeri 0 ise 0-49 arasındaki öğeler döndürülür. 50 ofset değeri girildiğinde 50-99 arasındaki öğeler döndürülür.
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