Metrik API'lerini kullanma

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