Azure API Management'ı Azure Application Insights ile Tümleştirme

UYGULANANLAR: Tüm API Management katmanları

Azure Uygulaması Analizler Azure API Management ile kolayca tümleştirebilirsiniz. Azure Application Insights, çeşitli platformlarda uygulama derleyen ve yöneten web geliştiricilerine yönelik kapsamlı bir hizmettir. Bu kılavuzda şunları yapacaksınız:

  • API Management ile Uygulama Analizler tümleştirmesi adımlarını izleyin.
  • API Management hizmet örneğiniz üzerindeki performans etkisini azaltmaya yönelik stratejileri öğrenin.

Önkoşullar

  • Azure API Management örneğine ihtiyacınız vardır. Önce bir tane oluşturun.

  • Application Analizler kullanmak için Application Analizler hizmetinin bir örneğini oluşturun. Azure portalını kullanarak örnek oluşturmak için bkz. Çalışma Alanı Tabanlı Uygulama Analizler kaynakları.

    Not

    Uygulama Analizler kaynağı farklı bir abonelikte, hatta API Management kaynağından farklı bir kiracıda olabilir.

  • API Management'ın Application Analizler ile kullanması için yönetilen kimlik yapılandırmayı planlıyorsanız aşağıdaki adımları tamamlamanız gerekir:

    1. API Management örneğinizde API Management için sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği etkinleştirin.

      • Kullanıcı tarafından atanan yönetilen kimliği etkinleştirirseniz, kimliğin İstemci Kimliğini not alın.
    2. Kimliği Uygulama Analizler kaynağı kapsamında İzleme Ölçümleri Yayımcısı rolü olarak atayın. Rolü atamak için Azure portalını veya diğer Azure araçlarını kullanın.

Senaryoya genel bakış

Bu senaryo için üst düzey adımlar aşağıdadır.

  1. İlk olarak, Uygulama Analizler ile API Management arasında bir bağlantı oluşturursunuz

    Azure portalını, REST API'yi veya ilgili Azure araçlarını kullanarak Uygulama Analizler ile API Management'ınız arasında bir bağlantı oluşturabilirsiniz. API Management, bağlantı için bir günlükçü kaynağı yapılandırıyor.

    Not

    Uygulama Analizler kaynağınız farklı bir kiracıdaysa REST API kullanarak günlükçü oluşturmanız gerekir.

    Önemli

    Şu anda portalda API Management yalnızca Application Analizler'a yönelik bağlantıları bir Application Analizler izleme anahtarı kullanarak destekler. Uygulama Analizler bağlantı dizesi veya API Management yönetilen kimliği kullanmak için, günlükçü oluşturmak için REST API, Bicep veya ARM şablonunu kullanın. Uygulama Analizler bağlantı dizesi hakkında daha fazla bilgi edinin.

  2. İkincisi, API'niz veya API'leriniz için Uygulama Analizler günlüğünü etkinleştirirsiniz.

    Bu makalede, Azure portalını kullanarak API'niz için Uygulama Analizler günlüğünü etkinleştireceksiniz. API Management, API için bir tanılama kaynağı yapılandırıyor.

Azure portalını kullanarak bağlantı oluşturma

Uygulama Analizler ile API Management arasında bağlantı oluşturmak için Azure portalını kullanmak için bu adımları izleyin.

  1. Azure portalında Azure API Management hizmet örneğine gidin.

  2. Soldaki menüden Uygulama Analizler'ni seçin.

  3. + Ekle'yi seçin.
    Yeni bağlantının nereye ekleneceğini gösteren ekran görüntüsü

  4. Daha önce oluşturduğunuz Uygulama Analizler örneğini seçin ve kısa bir açıklama sağlayın.

  5. Uygulama Analizler'nde API Management örneğinizin kullanılabilirlik izlemesini etkinleştirmek için Kullanılabilirlik izleyicisi ekle onay kutusunu seçin.

    • Bu ayar, API Management ağ geçidi uç noktasının yanıt verip vermediğini düzenli olarak doğrular.
    • Sonuçlar, Uygulama Analizler örneğinin Kullanılabilirlik bölmesinde görünür.
  6. Oluştur'u belirleyin.

  7. Yeni Application Analizler günlükçüsunun artık listede görünüp görünmediğini denetleyin.

    Yeni oluşturulan Uygulama Analizler günlükçüsunun nerede görüntülendiğini gösteren ekran görüntüsü.

Not

Arka planda API Management örneğinizde Uygulama Analizler örneğinin izleme anahtarını içeren bir günlükçü varlığı oluşturulur.

İpucu

Uygulama Analizler günlükçüsunda yapılandırılan izleme anahtarını güncelleştirmeniz gerekiyorsa, günlükçü'ün listedeki satırını seçin (günlükçü adı değil). İzleme anahtarını girin ve Kaydet'i seçin.

REST API, Bicep veya ARM şablonunu kullanarak bağlantı oluşturma

Uygulama Analizler ile API Management arasında bağlantı oluşturmak için REST API, Bicep veya ARM şablonunu kullanmak için bu adımları izleyin. bağlantı dizesi, sistem tarafından atanan yönetilen kimlik veya kullanıcı tarafından atanan yönetilen kimlik kullanan bir günlükçü yapılandırabilirsiniz.

bağlantı dizesi kimlik bilgilerine sahip günlükçü

Uygulama Analizler bağlantı dizesi, Uygulama Analizler kaynağınızın Genel Bakış bölümünde görünür.

API Management REST API'sini aşağıdaki istek gövdesiyle kullanın.

{
  "properties": {
    "loggerType": "applicationInsights",
    "description": "adding a new logger with connection string",
    "credentials": {
         "connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;..."    
    }
  }
}

Sistem tarafından atanan yönetilen kimlik kimlik bilgileriyle günlükçü

API Management yönetilen kimliği kullanmanın önkoşullarına bakın.

API Management REST API'sini aşağıdaki istek gövdesiyle kullanın.

{
  "properties": {
    "loggerType": "applicationInsights",
    "description": "adding a new logger with system-assigned managed identity",
    "credentials": {
         "connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;...",
         "identityClientId":"SystemAssigned"
    }
  }
}

Kullanıcı tarafından atanan yönetilen kimlik kimlik bilgilerine sahip günlükçü

API Management yönetilen kimliği kullanmanın önkoşullarına bakın.

API Management REST API'sini aşağıdaki istek gövdesiyle kullanın.

{
  "properties": {
    "loggerType": "applicationInsights",
    "description": "adding a new logger with user-assigned managed identity",
    "credentials": {
         "connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;...",
         "identityClientId":"<ClientID>"
    }
  }
}

API'niz için Uygulama Analizler günlüğünü etkinleştirme

Bir API için Uygulama Analizler günlüğünü etkinleştirmek için aşağıdaki adımları kullanın. Tüm API'ler için Uygulama Analizler günlüğünü de etkinleştirebilirsiniz.

  1. Azure portalında Azure API Management hizmet örneğine gidin.

  2. Soldaki menüden API'ler seçeneğini belirleyin.

  3. BU örnekte Demo Konferans API'nize tıklayın. Yapılandırıldıysa bir sürüm seçin.

    İpucu

    Tüm API'lerde günlüğe kaydetmeyi etkinleştirmek için Tüm API'ler'i seçin.

  4. Üst çubuktan Ayarlar sekmesine gidin.

  5. Ekranı aşağı kaydırarak Tanılama Günlükleri bölümüne gidin.
    Uygulama Analizler günlükçü

  6. Etkinleştir kutusunu işaretleyin.

  7. Hedef açılan listesinden ekli günlükçünüzü seçin.

  8. Örnekleme (%) olarak 100 girin ve Her zaman hataları günlüğe kaydet onay kutusunu seçin.

  9. Ayarların geri kalanını olduğu gibi bırakın. Ayarlar hakkında ayrıntılı bilgi için bkz . Tanılama günlükleri ayarları başvurusu.

    Uyarı

    Varsayılan Yük bayt sayısı değerinin 0 günlük değerine geçersiz kılınması API'lerinizin performansını önemli ölçüde düşürebilir.

  10. Kaydet'i seçin.

  11. Arka planda API düzeyinde adlı applicationinsights bir Tanılama varlığı oluşturulur.

Not

API Management yanıtın tamamını istemciye gönderdiğinde istekler başarılıdır.

Tek bir API veya tüm API'ler için günlüğe kaydedilenler

Farklı düzeylerde günlükçüler belirtebilirsiniz:

  • Tek API günlükçü
  • Tüm API'ler için günlükçü

Her ikisini de belirtme:

  • Varsayılan olarak, tek BIR API günlükçüsü (daha ayrıntılı düzey) tüm API'ler için olanı geçersiz kılar.
  • İki düzeyde yapılandırılan günlüğe kaydedenler farklıysa ve telemetriyi (çoğullama) almak için her iki günlüğe kaydedene de ihtiyacınız varsa lütfen Microsoft Desteği başvurun. "Tüm API'ler" düzeyinde ve tek API düzeyinde aynı günlükçü (Uygulama Analizler hedefi) kullanıyorsanız, çoğullamanın desteklenmediğini lütfen unutmayın. Çoğullamanın düzgün çalışması için "Tüm API'ler" ve tek tek API düzeyinde farklı günlükçüler yapılandırmanız ve hizmetiniz için birden çoklama özelliğini etkinleştirmek için Microsoft desteğinden yardım istemeniz gerekir.

Application Insights'a hangi veriler eklenir?

Uygulama Analizler alır:

Telemetri öğesi Açıklama
İste Gelen her istek için:
  • ön uç isteği
  • ön uç yanıtı
Bağımlılık Bir arka uç hizmetine iletilen her istek için:
  • arka uç isteği
  • arka uç yanıtı
Özel Durum Başarısız olan her istek için:
  • Kapalı istemci bağlantısı nedeniyle başarısız oldu
  • API ilkelerinin hatayla ilgili bölümünü tetikledi
  • 4xx veya 5xx ile eşleşen yanıt HTTP durum kodu var
İzleme İzleme ilkesi yapılandırırsanız.
İlkedeki severitytrace ayar, Uygulama Analizler günlüğündeki ayara eşit veya bundan verbosity büyük olmalıdır.

Not

Uygulama Analizler örneği başına en büyük boyut ve ölçüm ve olay sayısı hakkında bilgi için bkz. Uygulama Analizler sınırları.

Özel ölçümler yayma

API Management örneğinizden Uygulama Analizler özel ölçümler yayabilirsiniz. API Management, yayma ölçümü ilkesini kullanarak özel ölçümler yayar.

Not

Özel ölçümler, Azure İzleyici'nin bir önizleme özelliğidir ve sınırlamalara tabidir.

Özel ölçümler yaymak için aşağıdaki yapılandırma adımlarını gerçekleştirin.

  1. Uygulama Analizler örneğinizde özel boyutlar ile Özel ölçümleri (Önizleme) etkinleştirin.

    1. Portalda Uygulama Analizler örneğine gidin.
    2. Soldaki menüde Kullanım ve tahmini maliyetler'i seçin.
    3. Özel ölçümler (Önizleme)>Boyutlar ile'yi seçin.
    4. Tamam'ı seçin.
  2. "metrics": true özelliğini API Management'ta applicationInsights yapılandırılan tanılama varlığına ekleyin. Şu anda API Management Tanılama - REST API'sini Oluştur veya Güncelleştir'i kullanarak bu özelliği eklemeniz gerekir. Örneğin:

    PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{APIManagementServiceName}/diagnostics/applicationinsights
    
    {
        [...]
        {
        "properties": {
            "loggerId": "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{APIManagementServiceName}/loggers/{ApplicationInsightsLoggerName}",
            "metrics": true
            [...]
        }
    }
    
  3. Uygulama Analizler günlükçüsünü özel ölçümler (tüm API'ler veya tek bir API) yaymak istediğiniz kapsamda yapılandırıldığından emin olun. Daha fazla bilgi için, bu makalenin önceki bölümlerinde yer alan API'niz için Uygulama Analizler günlüğünü etkinleştirme bölümüne bakın.

  4. İlkeyiemit-metric, Uygulama Analizler günlüğünün yapılandırıldığı (tüm API'ler veya tek bir API) ve özel ölçümler için etkinleştirildiği bir kapsamda yapılandırın. İlke ayrıntıları için bkz emit-metric . ilke başvurusu.

Özel ölçümler için sınırlar

Azure İzleyici, API Management'tan ölçüm yayma yeteneğinizi etkileyebilecek özel ölçümler için kullanım sınırları uygular. Örneğin, Azure İzleyici şu anda ölçüm başına 10 boyut anahtarı sınırı ve abonelikteki bölge başına toplam etkin zaman serisi sayısı (12 saatlik bir süre içinde) 50.000 sınırı ayarlar.

Bu sınırlar, API Management'ta özel ölçümleri yapılandırmaya yönelik aşağıdaki etkilere sahiptir:

  • İlke başına emit-metric en fazla 10 özel boyut yapılandırabilirsiniz.

  • İlke tarafından emit-metric 12 saatlik bir süre içinde oluşturulan etkin zaman serisi sayısı, dönem içinde yapılandırılan her boyutun benzersiz değer sayısının çarpımdır. Örneğin, ilkede üç özel boyut yapılandırıldıysa ve her boyut dönem içinde 10 olası değere sahipse, emit-metric ilke 1.000 (10 x 10 x 10) etkin zaman serisine katkıda bulunur.

  • İlkeyi emit-metric bir abonelikte aynı bölgede bulunan birden çok API Management örneğinde yapılandırdığınızda, tüm örnekler bölgesel etkin zaman serisi sınırına katkıda bulunabilir.

Performans etkileri ve günlük örneklemesi

Uyarı

Tüm olayların günlüğe kaydedilmesi, gelen istek oranına bağlı olarak performans açısından ciddi etkilere neden olabilir.

İç yük testlerine bağlı olarak günlüğe kaydetme özelliğinin etkinleştirilmesi, istek hızı saniyede 1.000 isteği aştığında aktarım hızının %40-%50 azalmasına neden oldu. Application Insights, istatistiksel analiz kullanarak uygulama performanslarını değerlendirmek için tasarlanmıştır. Bu özellik:

  • Bir denetim sistemi olarak kullanılamaz.
  • Yüksek hacimli API'ler için her isteği günlüğe kaydetmek için uygun değildir.

Örnekleme ayarını ayarlayarak günlüğe kaydedilen isteklerin sayısını değiştirebilirsiniz. %100 değeri tüm isteklerin günlüğe kaydedildiği anlamına gelirken %0 hiçbir kaydın günlüğe kaydedilmediğini ifade eder.

Örnekleme telemetri hacminin azaltılmasına yardımcı olur ve günlüğe kaydetmenin avantajlarını taşırken aynı zamanda önemli performans düşüşlerini etkili bir şekilde önler.

Performans sorunlarını iyileştirmek için şunları atlayın:

  • İstek ve yanıt üst bilgileri.
  • Gövde günlüğü.

Video

Sorun giderme

API Management'tan Uygulama Analizler telemetri veri akışı sorununu giderme:

  • BAĞLı Azure İzleyici Özel Bağlantı Kapsamı (AMPLS) kaynağının API Management kaynağının bağlı olduğu sanal ağ içinde mevcut olup olmadığını araştırın. AMPLS kaynakları abonelikler arasında genel bir kapsama sahiptir ve tüm Azure İzleyici kaynakları için veri sorgusunu ve alımını yönetmekle sorumludur. AMPLS, veri alımı için özel olarak Özel Erişim moduyla yapılandırılmış olabilir. Bu gibi durumlarda, UYGULAMA Analizler kaynağını ve ilişkili Log Analytics kaynağını AMPLS'ye ekleyin. Bu ekleme yapıldıktan sonra API Management verileri Uygulama Analizler kaynağına başarıyla alınır ve telemetri veri iletimi sorunu çözülecektir.

Sonraki adımlar