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 izleme anahtarı veya bağlantı dizesi yapılandırarak Application Insights'ı bir çalışma alanında tümleştirmeniz gerekir.
Ö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 .
API Management'ın Application Insights ile kullanması için yönetilen kimlik yapılandırmayı planlıyorsanız aşağıdaki adımları tamamlamanız gerekir:
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.
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şturursunuz
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.
Not
Application Insights kaynağınız farklı bir kiracıdaysa, bu makalenin sonraki bir bölümünde gösterildiği gibi REST API'yi kullanarak günlükçü oluşturmanız gerekir.
Önemli
Şu anda portalda API Management yalnızca Application Insights izleme anahtarı kullanarak Application Insights bağlantılarını destekler. Application Insights 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. 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ştirirsiniz.
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.
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
Application Insights 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çü
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": "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 Günlükçü - REST API'yi aşağıdaki istek gövdesiyle oluşturun veya güncelleştirin .
{
"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 Günlükçü - REST API'yi aşağıdaki istek gövdesiyle oluşturun veya güncelleştirin .
{
"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 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, 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.
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, 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 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