Azure App Service ve ASP.NET Core için uygulama izleme
Azure Uygulaması Hizmetinde çalışan ASP.NET Temel tabanlı web uygulamalarınızda izlemeyi etkinleştirmek artık hiç olmadığı kadar kolay. Daha önce uygulamanızı el ile izlemeniz gerekiyordu. Artık en son uzantı/aracı varsayılan olarak App Service görüntüsünde yerleşiktir. Bu makalede Azure İzleyici Uygulaması Analizler izlemeyi etkinleştirme adımları adım adım izlenmektedir. Ayrıca, büyük ölçekli dağıtımlar için süreci otomatikleştirmeye yönelik ön rehberlik sağlar.
Not
31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.
Otomatik yetkisiz erişim izlemeyi etkinleştirme
Desteklenen otomatik dağıtım senaryolarının tam listesi için bkz . Desteklenen ortamlar, diller ve kaynak sağlayıcıları.
Önemli
Windows'ta otomatik yetkisiz erişim için yalnızca .NET Core Uzun Vadeli Desteği desteklenir.
Bağımsız dağıtımları kırpma desteklenmez. Bunun yerine kod aracılığıyla el ile izleme kullanın.
Not
Otomatik yetkisiz erişim, Ekim 2021'e kadar "kodsuz ekleme" olarak bilinirdi.
App Service kaynağınızla Uygulama Analizler ayarlamaya başlamak için aşağıdaki İzlemeyi etkinleştirme bölümüne bakın.
İzlemeyi etkinleştirme
Uygulama hizmetinizin sol bölmesinde Uygulama Analizler'ni seçin. Ardından Etkinleştir'i seçin.
Yeni bir kaynak oluşturun veya bu uygulama için mevcut bir Uygulama Analizler kaynağı seçin.
Not
Yeni bir kaynak oluşturmak için Tamam'ı seçtiğinizde, İzleme ayarlarını uygula seçeneğini belirlemeniz istenir. Devam'ı seçtiğinizde yeni Uygulama Analizler kaynağınız uygulama hizmetinize bağlanır. Ardından uygulama hizmetiniz yeniden başlatılır.
Hangi kaynağın kullanılacağını belirttikten sonra, Uygulama Analizler'nin uygulamanız için platform başına veri toplamasını nasıl istediğinizi seçebilirsiniz. ASP.NET Çekirdek koleksiyonu seçenekleri Önerilen veya Devre Dışı'dır.
İstemci Tarafı İzlemeyi Etkinleştirme
İstemci tarafı izleme, uygulama ayarının APPINSIGHTS_JAVASCRIPT_ENABLED
mevcut olup olmamasına bakılmaksızın Önerilen koleksiyona sahip ASP.NET Core uygulamaları için varsayılan olarak etkinleştirilir.
İstemci tarafı izlemeyi devre dışı bırakmak istiyorsanız:
Ayarlar>Yapılandırma'yı seçin.
Uygulama ayarları'nın altında, aşağıdaki bilgileri içeren yeni bir uygulama ayarı oluşturun:
- Ad:
APPINSIGHTS_JAVASCRIPT_ENABLED
- Değer:
false
- Ad:
Ayarları kaydedin . Uygulamanızı yeniden başlatın.
İzlemeyi otomatikleştirme
Telemetri koleksiyonunu Uygulama Analizler ile etkinleştirmek için yalnızca uygulama ayarlarının ayarlanması gerekir.
Uygulama ayarları tanımları
Uygulama ayarı adı | Tanım | Değer |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Çalışma zamanı izlemeyi denetleyen ana uzantı. | ~2 Windows veya ~3 Linux için |
XDT_MicrosoftApplicationInsights_Mode | Varsayılan modda, en iyi performansı sağlamak için yalnızca temel özellikler etkinleştirilir. | disabled veya recommended . |
XDT_MicrosoftApplication Analizler_PreemptSdk | Yalnızca ASP.NET Core uygulamaları için. Uygulama Analizler SDK'sı ile Birlikte Çalışabilirliği (birlikte çalışma) etkinleştirir. Uzantıyı SDK ile yan yana yükler ve telemetri göndermek için kullanır. (Uygulama Analizler SDK'sını devre dışı bırakır.) | 1 |
Azure Resource Manager ile App Service uygulama ayarları
Azure Uygulaması Hizmeti için uygulama ayarları Azure Resource Manager şablonlarıyla yönetilebilir ve yapılandırılabilir. Resource Manager otomasyonu ile yeni App Service kaynaklarını dağıtırken veya mevcut kaynakların ayarlarını değiştirirken bu yöntemi kullanabilirsiniz.
App Service kaynağı için uygulama ayarları JSON'un temel yapısı:
"resources": [
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
],
"tags": {
"displayName": "Application Insights Settings"
},
"properties": {
"key1": "value1",
"key2": "value2"
}
}
]
Uygulama Analizler için yapılandırılmış uygulama ayarlarıyla resource manager şablonu örneği için bu şablon yararlı olabilir. Özellikle, 238. satırda başlayan bölüme bakın.
Uygulama Analizler kaynağı oluşturmayı otomatikleştirme ve yeni oluşturduğunuz App Service kaynağına bağlanma
Varsayılan Uygulama Analizler ayarlarıyla bir Resource Manager şablonu oluşturmak için, Uygulama Analizler etkin olarak yeni bir web uygulaması oluşturacak gibi işlemi başlatın.
İstediğiniz web uygulaması bilgileriyle yeni bir App Service kaynağı oluşturun. İzleme sekmesinde Uygulama Analizler'ni etkinleştirin.
Gözden geçir ve oluştur’u seçin. Ardından Otomasyon için şablon indir'i seçin.
Bu seçenek, tüm gerekli ayarların yapılandırıldığı en son Resource Manager şablonunu oluşturur.
Aşağıdaki örnekte, tüm örneklerini AppMonitoredSite
site adınız ile değiştirin:
Not
Windows kullanıyorsanız olarak ayarlayın ApplicationInsightsAgent_EXTENSION_VERSION
~2
. Linux kullanıyorsanız olarak ayarlayın ApplicationInsightsAgent_EXTENSION_VERSION
~3
.
{
"resources": [
{
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
},
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
},
{
"name": "ApplicationInsightsAgent_EXTENSION_VERSION",
"value": "~2"
}
]
},
"name": "[parameters('name')]",
"serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"dependsOn": [
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"microsoft.insights/components/AppMonitoredSite"
],
"apiVersion": "2016-03-01",
"location": "[parameters('location')]"
},
{
"apiVersion": "2016-09-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"properties": {
"name": "[parameters('hostingPlanName')]",
"workerSizeId": "[parameters('workerSize')]",
"numberOfWorkers": "1",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
},
{
"apiVersion": "2015-05-01",
"name": "AppMonitoredSite",
"type": "microsoft.insights/components",
"location": "West US 2",
"properties": {
"ApplicationId": "[parameters('name')]",
"Request_Source": "IbizaWebAppExtensionCreate"
}
}
],
"parameters": {
"name": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"hostingEnvironment": {
"type": "string"
},
"location": {
"type": "string"
},
"sku": {
"type": "string"
},
"skuCode": {
"type": "string"
},
"workerSize": {
"type": "string"
},
"serverFarmResourceGroup": {
"type": "string"
},
"subscriptionId": {
"type": "string"
}
},
"$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0"
}
PowerShell aracılığıyla etkinleştirme
PowerShell aracılığıyla uygulama izlemeyi etkinleştirmek için yalnızca temel uygulama ayarlarının değiştirilmesi gerekir. Aşağıdaki örnek, kaynak grubunda AppMonitoredRG
adlı AppMonitoredSite
bir web sitesi için uygulama izlemeyi etkinleştirir. İzleme anahtarına gönderilecek 012345678-abcd-ef01-2345-6789abcd
verileri yapılandırıyor.
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Not
Windows kullanıyorsanız, Uygulama Analizler Agent_EXTENSION_VERSION olarak ~2
ayarlayın. Linux kullanıyorsanız, Application Analizler Agent_EXTENSION_VERSION değerini olarak ~3
ayarlayın.
$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop
Yükseltme izleme uzantısı/aracısı - .NET
İzleme uzantısını/aracısını yükseltmek için sonraki bölümlerdeki adımları izleyin.
2.8.9 ve sonraki sürümlerden yükseltme
Sürüm 2.8.9'dan yükseltme, ek işlem yapılmadan otomatik olarak gerçekleşir. Yeni izleme bitleri arka planda hedef uygulama hizmetine teslim edilir ve uygulama yeniden başlatıldığında bunlar alınır.
Uzantının hangi sürümünü çalıştırdığınızı denetlemek için adresine https://yoursitename.scm.azurewebsites.net/ApplicationInsights
gidin.
1.0.0 - 2.6.5 sürümlerinden yükseltme
Sürüm 2.8.9'dan başlayarak, önceden yüklenmiş site uzantısı kullanılır. Önceki bir sürümü kullanıyorsanız, iki yoldan biriyle güncelleştirebilirsiniz:
Portal aracılığıyla etkinleştirerek yükseltme: App Service için Application Analizler uzantısı yüklü olsa bile, kullanıcı arabiriminde yalnızca Etkinleştir düğmesi gösterilir. Arka planda eski özel site uzantısı kaldırılır.
PowerShell aracılığıyla yükseltme:
- Önceden yüklenmiş site uzantısını
ApplicationInsightsAgent
etkinleştirmek için uygulama ayarlarını yapın. Daha fazla bilgi için bkz . PowerShell aracılığıyla etkinleştirme. - Azure Uygulaması Hizmeti için Uygulama Analizler uzantısı adlı özel site uzantısını el ile kaldırın.
- Önceden yüklenmiş site uzantısını
Yükseltme 2.5.1'den önceki bir sürümden yapılırsa DLL'lerin uygulama bölmesi klasöründen kaldırılıp kaldırılmadığını ApplicationInsights
denetleyin. Daha fazla bilgi için bkz . Sorun giderme adımları.
Sorun giderme
Not
App Service'te çalışma zamanlarıyla ASP.NET Core
bir web uygulaması oluşturduğunuzda, başlangıç web sitesi olarak tek bir statik HTML sayfası dağıtır. Varsayılan şablonla ilgili bir sorunu gidermenizi önermeyiz. Bir sorunu gidermeden önce bir uygulama dağıtın.
Aşağıda, App Service'te çalışan ASP.NET Çekirdek tabanlı uygulamalar için uzantı/aracı tabanlı izleme için adım adım sorun giderme kılavuzumuz yer almaktadır.
Uygulama ayarının
ApplicationInsightsAgent_EXTENSION_VERSION
değerine~2
ayarlandığını denetleyin.https://yoursitename.scm.azurewebsites.net/ApplicationInsights
adresine göz atın.Uygulama Analizler Uzantısı Durumunun
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Çalışmıyorsa Uygulama Analizler izlemeyi etkinleştirme bölümündeki yönergeleri izleyin.
Durum kaynağının mevcut olduğunu ve gibi
Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json
göründüğünü onaylayın.Benzer bir değer yoksa, uygulamanın şu anda çalışmadığını veya desteklenmediğini gösterir. Uygulamanın çalıştığından emin olmak için uygulama URL'sini/uygulama uç noktalarını el ile ziyaret etmeyi deneyin. Bu, çalışma zamanı bilgilerinin kullanılabilir duruma gelmesini sağlar.
IKeyExists öğesinin olduğunu
True
onaylayın. iseFalse
, uygulama ayarlarınıza ikey GUID'nizle veAPPLICATIONINSIGHTS_CONNECTION_STRING
ekleyinAPPINSIGHTS_INSTRUMENTATIONKEY
.Uygulamanız herhangi bir Application Analizler paketine başvuruyorsa, App Service tümleştirmesinin etkinleştirilmesi etkili olmayabilir ve veriler Application Analizler'da görünmeyebilir. Uygulamanızı daha önce ASP.NET Core SDK ile izlemeniz veya izleme girişiminde bulunmuş olmanız buna bir örnek olabilir. Sorunu çözmek için portalda Uygulama Analizler SDK'sı ile Birlikte Çalışma'yı açın. Verileri Uygulama Analizler'nde görmeye başlayacaksınız.
Önemli
Bu işlev önizleme aşamasındadır.
Uygulama Analizler SDK'sı başlangıçta kullanılmış veya kullanılmaya çalışılsa bile veriler artık kodsuz bir yaklaşım kullanılarak gönderilecektir.
Önemli
Uygulama herhangi bir telemetri göndermek için Uygulama Analizler SDK'sını kullandıysa, telemetri devre dışı bırakılır. Başka bir deyişle, özel telemetri (örneğin, herhangi bir
Track*()
yöntem) ve özel ayarlar (örnekleme gibi) devre dışı bırakılır.
Web uygulamalarıyla dağıtılan varsayılan web sitesi otomatik istemci tarafı izlemeyi desteklemez
App Service'te ASP.NET Core çalışma zamanları ile bir web uygulaması oluşturduğunuzda, başlangıç web sitesi olarak tek bir statik HTML sayfası dağıtır. Statik web sayfası da bir ASP yükler. IIS'de NET tarafından yönetilen web bölümü. Bu davranış, kodsuz sunucu tarafı izlemenin test edilmesine olanak tanır ancak otomatik istemci tarafı izlemeyi desteklemez.
Bir App Service web uygulamasında ASP.NET Core için kodsuz sunucu ve istemci tarafı izlemeyi test etmek istiyorsanız, ASP.NET Core web uygulaması oluşturmak için resmi kılavuzları izlemenizi öneririz. Ardından izlemeyi etkinleştirmek için geçerli makaledeki yönergeleri kullanın.
Uygulama Analizler ile Azure Uygulaması Hizmeti ölçümleri arasındaki standart ölçümler arasındaki fark nedir?
Uygulama Analizler, uygulamaya yapılan istekler için telemetri toplar. WebApps/WebServer'da hata oluşursa ve istek kullanıcı uygulamasına ulaşmadıysa, Uygulama Analizler bu konuda telemetrisi yoktur.
Uygulama Analizler tarafından hesaplanan süreserverresponsetime
, Web Apps tarafından gözlemlenen sunucu yanıt süresiyle eşleşmez. Bu davranışın nedeni, Uygulama Analizler yalnızca isteğin kullanıcı uygulamasına ulaştığı süreyi saymadır. İstek WebServer'da takıldıysa veya kuyruğa alındıysa, bekleme süresi Web Apps ölçümlerine dahil edilir ancak Uygulama Analizler ölçümlerine eklenmez.
Uygulama konağınızla alma hizmeti arasındaki bağlantıyı test etme
Uygulama Analizler SDK'ları ve aracıları, alma uç noktalarımıza REST çağrıları olarak alınabilmek için telemetri gönderir. PowerShell veya curl komutlarından ham REST istemcilerini kullanarak web sunucunuzdan veya uygulama konak makinenizden alma hizmeti uç noktalarına bağlantıyı test edebilirsiniz. Bkz. Azure İzleyici Uygulama Analizler eksik uygulama telemetri sorunlarını giderme.
PHP ve WordPress desteklenmez
PHP ve WordPress siteleri desteklenmez. Şu anda bu iş yüklerinin sunucu tarafı izlemesi için resmi olarak desteklenen bir SDK/aracı yoktur. Web sayfalarınıza istemci tarafı JavaScript ekleyerek php veya WordPress sitesindeki istemci tarafı işlemlerini el ile işaretlemek için JavaScript SDK'sını kullanın.
Aşağıdaki tabloda, bu değerlerin ne anlama gelenleri, bunların temel nedenleri ve önerilen düzeltmeler hakkında bir açıklama sağlanmaktadır.
Sorun değeri | Açıklama | Düzelt |
---|---|---|
AppAlreadyInstrumented:true |
Bu değer, uzantının SDK'nın bazı yönlerinin uygulamada zaten mevcut olduğunu algıladığını ve geri çekileceğini gösterir. Bunun nedeni veya Microsoft.ApplicationInsights öğesine yapılan bir başvuru Microsoft.ApplicationInsights.AspNetCore olabilir. |
Başvuruları kaldırın. Bu başvurulardan bazıları varsayılan olarak belirli Visual Studio şablonlarından eklenir. Visual Studio'nun eski sürümleri başvurusu Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Bu değer, önceki bir dağıtımdaki uygulama klasöründe DLL bulunmasından Microsoft.ApplicationsInsights da kaynaklanabilir. |
Bu DLL'lerin kaldırıldığından emin olmak için uygulama klasörünü temizleyin. Hem yerel uygulamanızın bin dizinini hem de App Service'te wwwroot dizinini denetleyin. (App Service web uygulamanızın wwwroot dizinini denetlemek için Gelişmiş Araçlar (Kudu) >Hata ayıklama konsolu>CMD>home\site\wwwroot). |
IKeyExists:false |
Bu değer, izleme anahtarının uygulama ayarında APPINSIGHTS_INSTRUMENTATIONKEY bulunmadığını gösterir. Olası nedenler arasında değerleri yanlışlıkla kaldırma veya otomasyon betiğindeki değerleri ayarlamayı unutma sayılabilir. |
Ayarın App Service uygulama ayarlarında mevcut olduğundan emin olun. |
Sürüm notları
En son güncelleştirmeler ve hata düzeltmeleri için Sürüm notları'na bakın.
Sonraki adımlar
- Profiler'ı canlı uygulamanızda çalıştırın.
- Uygulama Analizler ile Azure İşlevleri izleyin.
- Application Insights’a gönderilmek üzere Azure tanılamayı etkinleştirin.
- Hizmetinizin kullanılabilir ve yanıt verir durumda oluğundan emin olmak için hizmet durumu ölçümlerini izleyin.
- İşletimsel olaylar gerçekleştiğinde ya da ölçümler bir eşiği aştığında uyarı bildirimleri alın.
- Bir web sayfasını ziyaret eden tarayıcılardan istemci telemetrisi almak için JavaScript uygulamaları ve web sayfaları için Application Analizler kullanın.
- Kullanılabilirlik