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:
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.
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.
İ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.
İ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.
Azure portalında Azure API Management hizmet örneğine gidin.
Soldaki menüden Application Insights'ı seçin.
+ Ekle'yi seçin.
Daha önce oluşturduğunuz Application Insights örneğini seçin ve kısa bir açıklama sağlayın.
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.
Oluştur'u belirleyin.
Yeni Application Insights günlükçüsunun artık listede görünüp görünmediğini denetleyin.
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.
Yönetilen kimlik kimlik bilgilerine sahip bağlantı dizesi ile günlükçü (önerilir)
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.
Azure portalında Azure API Management hizmet örneğine gidin.
Soldaki menüden API'ler seçeneğini belirleyin.
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.
Üst çubuktan Ayarlar sekmesine gidin.
Ekranı aşağı kaydırarak Tanılama Günlükleri bölümüne gidin.
Etkinleştir kutusunu işaretleyin.
Hedef açılan listesinden ekli günlükçünüzü seçin.
Örnekleme (%) olarak 100 girin ve Her zaman hataları günlüğe kaydet onay kutusunu seçin.
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.
Kaydet'i seçin.
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:
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.
Application Insights örneğinizde özel boyutlar ile Özel ölçümleri (Önizleme) etkinleştirin.
- Portalda Application Insights örneğine gidin.
- Soldaki menüde Kullanım ve tahmini maliyetler'i seçin.
- Özel ölçümler (Önizleme)>Boyutlar ile'yi seçin.
- Tamam'ı seçin.
"metrics": true
özelliğini API Management'taapplicationInsights
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 [...] } }
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.
İ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 bkzemit-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-metric
gibi 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.
İlgili içerik
- Azure Uygulaması Lication Insights hakkında daha fazla bilgi edinin.
- Azure Event Hubs ile günlüğe kaydetmeyi göz önünde bulundurun.
- Azure Yönetilen Grafana kullanarak Application Insights'tan verileri görselleştirme hakkında bilgi edinin