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

UYGULANANLAR: Tüm API Management katmanları

Azure Uygulaması Lication Insights'i 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 Application Insights tümleştirmesi adım adım ilerleyin.
  • API Management hizmet örneğiniz üzerindeki performans etkisini azaltmaya yönelik stratejileri öğrenin.

Not

Bir API Management çalışma alanında, çalışma alanı sahibi Application Insights'ı bağımsız olarak tümleştirebilir ve çalışma alanının API'leri için Application Insights günlüğünü etkinleştirebilir. Bir çalışma alanını Application Insights ile tümleştirmeye yönelik genel kılavuz, API Management örneğine yönelik kılavuza benzer; ancak yapılandırmanın kapsamı yalnızca çalışma alanı olarak belirlenmiştir. Şu anda bir bağlantı dizesi (önerilen) veya izleme anahtarını yapılandırarak Application Insights'ı bir çalışma alanında tümleştirmeniz gerekir.

Uyarı

Şirket içinde barındırılan ağ geçidimizi kullanırken, Application Insights'ın bellek içi arabelleğe alınmasına bağlı olduğundan tüm telemetrinin Azure Uygulaması lication Insights'a gönderileceğini garanti etmeyiz.

Önkoşullar

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

  • Application Insights'ı kullanmak için Application Insights hizmetinin bir örneğini oluşturun. Azure portalını kullanarak örnek oluşturmak için bkz . Çalışma alanı tabanlı Application Insights kaynakları.

    Not

    Application Insights kaynağı farklı bir abonelikte, hatta API Management kaynağından farklı bir kiracıda olabilir .

  • Application Insights ile kullanılacak yönetilen kimlik kimlik bilgilerini yapılandırmayı planlıyorsanız aşağıdaki adımları tamamlayın:

    1. 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 , Application Insights kaynağı kapsamındaki İzleme Ölçümleri Yayımcısı rolüne 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, Application Insights ile API Management arasında bir bağlantı oluşturun

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

    Önemli

    Şu anda portalda API Management yalnızca Application Insights izleme anahtarı kullanarak Application Insights bağlantılarını destekler. Gelişmiş güvenlik için API Management yönetilen kimliğiyle Application Insights bağlantı dizesi kullanmanızı öneririz. yönetilen kimlik kimlik bilgileriyle bağlantı dizesi yapılandırmak için, bu makalenin sonraki bölümlerinde gösterildiği gibi REST API'sini veya ilgili araçları kullanın. Application Insights bağlantı dizesi s hakkında daha fazla bilgi edinin.

    Not

    Application Insights kaynağınız farklı bir kiracıdaysa, bu makalenin sonraki bölümlerinde gösterildiği gibi REST API'sini veya ilgili araçları kullanarak günlükçü oluşturmanız gerekir.

  2. İkincisi, API'niz veya API'leriniz için Application Insights günlüğünü etkinleştirin.

    Bu makalede, Azure portalını kullanarak API'niz için Application Insights 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

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

Not

Mümkün olduğunda Microsoft, gelişmiş güvenlik için yönetilen kimlik kimlik bilgileriyle bağlantı dizesi kullanılmasını önerir. Bu kimlik bilgilerini yapılandırmak için, bu makalenin sonraki bölümlerinde gösterildiği gibi REST API'yi veya ilgili araçları kullanın.

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

  2. Soldaki menüden Application Insights'ı 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 Application Insights örneğini seçin ve kısa bir açıklama sağlayın.

  5. Application Insights'ta 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 Application Insights örneğinin Kullanılabilirlik bölmesinde görünür.
  6. Oluştur'u belirleyin.

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

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

Not

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

İpucu

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

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

API Management örneğiniz için Application Insights günlükçü oluşturmak üzere REST API, Bicep veya ARM şablonunu kullanmak için bu adımları izleyin. Yönetilen kimlik kimlik bilgileriyle (önerilen) bağlantı dizesi kullanan bir günlükçü veya yalnızca bağlantı dizesi kullanan bir günlükçü yapılandırabilirsiniz.

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

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

Sistem tarafından atanan yönetilen kimlikle bağlantı dizesi

API Management Günlükçü - REST API'yi aşağıdaki istek gövdesiyle oluşturun veya güncelleştirin .

{
  "properties": {
    "loggerType": "applicationInsights",
    "description": "Application Insights 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 kimlikle bağlantı dizesi

API Management Günlükçü - REST API'yi aşağıdaki istek gövdesiyle oluşturun veya güncelleştirin .

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

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

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

API Management Günlükçü - REST API'yi aşağıdaki istek gövdesiyle oluşturun veya güncelleştirin .

Günlükçü'leri bir çalışma alanı için yapılandırıyorsanız Çalışma Alanı Günlükçü - REST API'sini Oluştur veya Güncelleştir'i kullanın.

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

API'niz için Application Insights günlüğünü etkinleştirme

Bir API için Application Insights günlüğünü etkinleştirmek için aşağıdaki adımları kullanın. Tüm API'ler için Application Insights 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.
    App Insights 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çü (Application Insights 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?

Application Insights şu bilgileri 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.
severity İlkedeki trace ayar, Application Insights günlüğündeki verbosity ayara eşit veya bundan büyük olmalıdır.

Not

Application Insights örneği başına ölçüm ve olay sayısı üst sınırı ve boyutu hakkında bilgi için bkz . Application Insights sınırları .

Özel ölçümler yayma

API Management örneğinizden Application Insights'a özel ölçümler yayabilirsiniz. API Management, emit-metric ve azure-openai-emit-token-metric gibi ilkeleri kullanarak özel ölçümler yayar. Aşağıdaki bölümde örnek olarak ilke kullanılır emit-metric .

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. Application Insights örneğinizde özel boyutlar ile Özel ölçümleri (Önizleme) etkinleştirin.

    1. Portalda Application Insights ö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. Application Insights günlükçüsunun özel ölçümleri (tüm API'ler veya tek bir API) yaymayı planladığınız 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 Application Insights günlüğünü etkinleştirme bölümüne bakın.

  4. İlkeyi Application Insights günlüğünün emit-metric 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, veya azure-openai-emit-token-metricgibi emit-metric bir API Management ilkesinde özel ölçümleri yapılandırmaya yönelik aşağıdaki etkilere sahiptir:

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

  • İlke tarafından 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, ilke 1.000 (10 x 10 x 10) etkin zaman serisine katkıda bulunur.

  • İlkeyi 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.

Azure İzleyici'de özel ölçümler için tasarım sınırlamaları ve dikkat edilmesi gerekenler hakkında daha fazla bilgi edinin.

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 Application Insights'a 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, APPLICATION Insights kaynağını ve ilişkili Log Analytics kaynağını AMPLS'ye ekleyin. Bu ekleme yapıldıktan sonra API Management verileri Application Insights kaynağına başarıyla alınır ve telemetri verileri iletim sorunu çözülecektir.