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 makale, Azure İzleyici Application Insights izlemesini etkinleştirme konusunda size yol gösterir. 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 Application Insights'ı 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 Application Insights'ı seçin. Ardından Etkinleştir'i seçin.
Bu uygulama için yeni bir kaynak oluşturun veya mevcut bir Application Insights kaynağını 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 Application Insights kaynağınız app service'inize bağlanır. Ardından uygulama hizmetiniz yeniden başlatılır.
Hangi kaynağın kullanılacağını belirttikten sonra Application Insights'ın 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
Application Insights ile telemetri koleksiyonunu 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_MicrosoftApplicationInsights_PreemptSdk | Yalnızca ASP.NET Core uygulamaları için. Application Insights SDK'sı ile Birlikte Çalışma (birlikte çalışma) sağlar. Uzantıyı SDK ile yan yana yükler ve telemetri göndermek için kullanır. (Application Insights 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"
}
}
]
Application Insights 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.
Application Insights kaynağı oluşturmayı otomatikleştirme ve yeni oluşturduğunuz App Service kaynağınıza bağlanma
Varsayılan Application Insights ayarlarıyla bir Resource Manager şablonu oluşturmak için, Application Insights'ın etkin olduğu 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 Application Insights'i 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, ApplicationInsightsAgent_EXTENSION_VERSION olarak ~2
ayarlayın. Linux kullanıyorsanız, ApplicationInsightsAgent_EXTENSION_VERSION 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 Insights 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 Application Insights 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.Application Insights Uzantısı Durumunun
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Çalışmıyorsa Application Insights 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 Insights paketine başvuruyorsa, App Service tümleştirmesinin etkinleştirilmesi etkili olmayabilir ve veriler Application Insights'ta 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 Application Insights SDK ile Birlikte Çalışma'yı açın. Application Insights'ta verileri görmeye başlayacaksınız.
Önemli
Bu işlev önizleme aşamasındadır.
Application Insights 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 Application Insights 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.
Application Insights ile Azure Uygulaması Hizmeti ölçümleri arasındaki standart ölçümler arasındaki fark nedir?
Application Insights, uygulamaya yapılan istekler için telemetri toplar. WebApps/WebServer'da hata oluşursa ve istek kullanıcı uygulamasına ulaşmadıysa, Application Insights'ın bu konuda telemetrisi yoktur.
Application Insights tarafından hesaplanan süre serverresponsetime
, Web Apps tarafından gözlemlenen sunucu yanıt süresiyle eşleşmelidir. Bunun nedeni Application Insights'ın yalnızca isteğin kullanıcı uygulamasına ulaştığı süreyi saymadır. İstek WebServer'da takılır veya kuyruğa alınırsa, bekleme süresi Web Apps ölçümlerine dahil edilir ancak Application Insights ölçümlerine eklenmez.
Uygulama konağınızla alma hizmeti arasındaki bağlantıyı test etme
Application Insights 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 Application Insights'ta eksik uygulama telemetrisi 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.
- Application Insights 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 Insights'ı kullanın.
- Kullanılabilirlik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin