Azure İşlevleri uygulamaları için Application Insights günlükleri eksik veya yanlış
Azure İşlevleri ile Application Insights arasındaki tümleştirme aracılığıyla işlev uygulamasını yakından izleyebilirsiniz. Application Insights'ı herhangi bir özel yapılandırma olmadan da kullanabilirsiniz.
Application Insights günlükleri eksikse veya veriler kısmen veya yanlış görünüyorsa, sorunu çözmek için aşağıdaki adımları kullanın.
İşlev uygulamasının yapılandırmasını denetleme
Azure portal işlev uygulamanıza gidin.
Tanılama Azure İşlevleri açmak için Sorunları tanılama ve çözme'yi seçin.
Arama çubuğuna İşlev Yapılandırma Denetimleri yazın ve açın.
Tüm işlev uygulaması yapılandırma denetimlerinin tanılama raporunu görürsünüz. Application Insights için özellikle aşağıdaki denetimler gerçekleştirilir:
Aşağıdaki bağlantı ayarlarından yalnızca biri var:
APPINSIGHTS_INSTRUMENTATIONKEY
Application Insights İzleme anahtarıAPPLICATIONINSIGHTS_CONNECTION_STRING
BağlantıDaha kararlı bir davranış için APPLICATIONINSIGHTS_CONNECTION_STRING kullanmanızı öneririz. Kullanım
APPINSIGHTS_INSTRUMENTATIONKEY
özelliği 2025'e kadar kullanım dışı bırakılacaktır.
AzureWebJobsDashboard
Yerleşik günlük kaydı, önerilen şekilde devre dışı bırakıldı.Örnekleme, Azure İşlevleri telemetrisi için etkinleştirilir (varsayılan olarak etkindir).
Öneri: İşlev uygulaması sürüm 4 ve çalışma zamanı sürümü en az 4.15.2xx olmalıdır. Bunun nedeni, bu sürümden itibaren günlük akışlarını Azure İşlevleri Application Insights hizmetine izleyebilmenizdir. Günlük akışlarını izleyerek eksik günlükleri de kontrol edebilirsiniz.
Günlükler eksik veya kısmi
Application Insights günlük, performans ve hata verilerini toplar. Telemetri hacmini azaltmak için örnekleme yapılandırması kullanılır. Örnekleme özelliği, aşağıdaki host.json örnekte gösterilen ayarlarla varsayılan olarak etkindir. Dışlanan türler örneklenmez.
{
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 20,
"excludedTypes": "Request;Exception"
}
}
}
}
Kısmen eksik günlükler fark ederseniz, örnekleme nedeniyle bu durum oluşabilir. Gerçek örnekleme hızını belirlemek için aşağıdaki kod parçacığında gösterilen gerekli zaman aralığını kullanan bir Analytics sorgusu kullanın. Herhangi bir örnekleme türü için değerinin TelemetrySavedPercentage
100'den az olduğunu gözlemlerseniz, bu tür telemetri örnekleniyor demektir.
union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > todatetime("mm/dd/yyyy hh:mm:ss") and timestamp < todatetime("mm/dd/yyyy hh:mm:ss")
| summarize TelemetrySavedPercentage = 100/avg(itemCount), TelemetryDroppedPercentage = 100-100/avg(itemCount) by bin(timestamp, 1d), itemType
| sort by timestamp asc
Daha fazla bilgi için bkz. Application Insights'ta veri toplama, saklama ve depolama.
Günlüklerin hacmini ve ayrıntı düzeyini denetleme
Yazılan günlükleri artırabilir veya gizleyebilirsiniz. Bunu yapmak için, host.json'da yapılandırıldığı gibi günlük düzeyi ve kategorilerin bir bileşimini kullanabilirsiniz.
Azure İşlevleri günlükçü her günlük için bir kategori içerir. Kategori, günlüğü çalışma zamanı kodunun veya işlev kodunuzun hangi kısmının ürettiğini gösterir. Örneğin:
-
Host.Results
veFunction.<YOUR_FUNCTION_NAME>
, kullanılabilir kategorilerden bazılarıdır. - Her günlüğe bir günlük düzeyi atanır. değeri veya
Information
gibiWarning
göreli önem derecesini gösterir.
Daha fazla bilgi için kullanılabilir diğer kategorilere ve günlük düzeylerine bakın.
Örnek kod parçacığını izleyerek uygulamanızın günlükleri nasıl yazabileceğini yapılandırabilirsiniz:
{
"version": "2.0",
"logging": {
"logLevel": {
"default": "Information", // catch all default, with modifications below for individual categories.
"Function": "Warning", // Warning level from all Functions (except the ones configured below).
"Host.Aggregator": "Trace", // Log all traces in the 'customMetrics' table of (and shown on Metrics/Alerts blade in AI) - use either this or Host.Results
"Host.Results": "Error", // Error and Critical requests are only logged in the 'requests' table of the AI (and shown on Monitor Functions blade in Functions App) - use either this or Host.Aggregator
"Function.Function1": "Information", //Information level logs from Function 1, logged in 'traces', 'dependencies' and 'customMetrics' tables of AI
"Function.Function2.User": "Information" //user code logs from Function2, logged in 'traces' table of AI
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond": 1,
"excludedTypes": "Exception"
}
}
}
}
Bu değerleri Uygulama ayarları düzeyinde yapılandırmak için ( host.json değişikliklerde yeniden dağıtılmasını önlemek için), uygulama ayarı olarak eşdeğer bir değer oluşturarak belirli host.json değerlerini geçersiz kılın. Daha fazla bilgi için bkz . host.json değerlerini geçersiz kılma.
Günlükleri gizleme hakkında daha fazla örnek için bkz. functions-log-suppression.
Sanal ağ tümleşik işlev uygulaması günlük oluşturmaz
İşlev uygulaması bir sanal ağ ile tümleştirilmişse, Application Insights SDK'sının veya Application Insights Aracısı'nın aşağıdaki URL'ler için portala veri göndermesine izin vermek için sunucu güvenlik duvarınızda giden trafik için 443 numaralı bağlantı noktasını açmanız gerekir:
- dc.applicationinsights.azure.com
- dc.applicationinsights.microsoft.com
- dc.services.visualstudio.com
- * .in.applicationinsights.azure.com
Daha fazla bilgi için bkz. Azure İzleyici tarafından kullanılan IP adresleri.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.