Azure İşlevleri için izlemeyi yapılandırma

Azure İşlevleri, işlev uygulamalarınızı daha iyi izlemenizi sağlamak için Uygulama Analizler ile tümleşir. Azure İzleyici'nin bir özelliği olan Uygulama Analizler, uygulamanızın günlüklere yazdığı bilgiler de dahil olmak üzere işlev uygulamanız tarafından oluşturulan verileri toplayan genişletilebilir bir Uygulama Performansı Yönetimi (APM) hizmetidir. uygulama Analizler tümleştirmesi genellikle işlev uygulamanız oluşturulduğunda etkinleştirilir. Uygulamanızda izleme anahtarı ayarlanmadıysa, önce Uygulama Analizler tümleştirmesini etkinleştirmeniz gerekir.

Application Analizler'i herhangi bir özel yapılandırma olmadan kullanabilirsiniz. Varsayılan yapılandırma yüksek hacimli verilerle sonuçlanabilir. Visual Studio Azure aboneliği kullanıyorsanız Uygulama Analizler için veri sınırınıza ulaşabilirsiniz. Uygulama Analizler maliyetleri hakkında daha fazla bilgi edinmek için bkz. Uygulama Analizler faturalama. Daha fazla bilgi için bkz. Yüksek hacimli telemetriye sahip çözümler.

Bu makalenin ilerleyen bölümlerinde, işlevlerinizin Application Analizler'e gönderdiği verileri yapılandırmayı ve özelleştirmeyi öğreneceksiniz. Bir işlev uygulaması için günlüğe kaydetme , host.json dosyasında yapılandırılır.

Not

Belirli bir ortam için host.json dosyasındaki belirli ayarları göstermek için özel olarak yapılandırılmış uygulama ayarlarını kullanabilirsiniz. Bu, projenizdeki host.json dosyasını yeniden yayımlamanıza gerek kalmadan host.json ayarlarını etkili bir şekilde değiştirmenize olanak tanır. Daha fazla bilgi edinmek için bkz. Host.json değerlerini geçersiz kılma.

Kategorileri yapılandırma

Azure İşlevleri günlükçü her günlük için bir kategori içerir. kategorisi, günlüğü çalışma zamanı kodunun veya işlev kodunuzun hangi bölümünün yazdığını gösterir. Kategoriler sürüm 1.x ile sonraki sürümler arasında farklılık gösterir. Aşağıdaki grafik, çalışma zamanının oluşturduğu ana günlük kategorilerini açıklar.

Kategori Tablo Açıklama
Function.<YOUR_FUNCTION_NAME> Bağımlılık Bağımlılık verileri bazı hizmetler için otomatik olarak toplanır. Başarılı çalıştırmalar için bu günlükler düzeyindedir Information . Daha fazla bilgi edinmek için bkz. Bağımlılıklar. Özel durumlar düzeyinde günlüğe Error kaydedilir. Çalışma zamanı ayrıca kuyruk iletilerinin zehir kuyruğuna gönderilmesi gibi düzey günlükleri de oluştururWarning.
Function.<YOUR_FUNCTION_NAME> customMetrics
Customevents
C# ve JavaScript SDK'ları özel ölçümler toplamanıza ve özel olayları günlüğe kaydetmenize olanak tanır. Daha fazla bilgi için bkz . Özel telemetri verileri.
Function.<YOUR_FUNCTION_NAME> Izler Belirli işlev çalıştırmaları için başlatılan ve tamamlanan günlükleri içerir. Başarılı çalıştırmalar için bu günlükler düzeyindedir Information . Özel durumlar düzeyinde günlüğe Error kaydedilir. Çalışma zamanı ayrıca kuyruk iletilerinin zehir kuyruğuna gönderilmesi gibi düzey günlükleri de oluştururWarning.
Function.<YOUR_FUNCTION_NAME>.User Izler Kullanıcı tarafından oluşturulan günlükler, herhangi bir günlük düzeyi olabilir. İşlevlerinizden günlüklere yazma hakkında daha fazla bilgi edinmek için bkz. Günlüklere yazma.
Host.Aggregator customMetrics Çalışma zamanı tarafından oluşturulan bu günlükler , yapılandırılabilir bir süre boyunca işlev çağrılarının sayısını ve ortalamalarını sağlar. Varsayılan süre 30 saniye veya 1.000 sonuç (hangisi önce gelirse) olur. Çalıştırma sayısı, başarı oranı ve süre buna örnek olarak verilebilir. Bu günlüklerin tümü düzeyinde yazılır Information . Veya üzerini Warning filtrelerseniz, bu verilerin hiçbirini görmezsiniz.
Host.Results istekler Çalışma zamanı tarafından oluşturulan bu günlükler bir işlevin başarılı veya başarısız olduğunu gösterir. Bu günlüklerin tümü düzeyinde yazılır Information . Veya üzerini Warning filtrelerseniz, bu verilerin hiçbirini görmezsiniz.
Microsoft Izler Konak tarafından çağrılan bir .NET çalışma zamanı bileşenini yansıtan tam günlük kategorisi.
Worker Izler non-.NET diller için dil çalışanı işlemi tarafından oluşturulan günlükler. Dil çalışanı günlükleri gibi bir Microsoft.* kategoride Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcFunctionInvocationDispatcherde günlüğe kaydedilebilir. Bu günlükler düzeyinde yazılır Information .

Not

.NET sınıf kitaplığı işlevleri için, bu kategoriler kullandığınızı değil kullandığınızı ILoggerILogger<T>varsayar. Daha fazla bilgi edinmek için İşlevler ILogger belgelerine bakın.

Tablo sütunu, Application Analizler günlüğün hangi tabloya yazıldığına işaret eder.

Günlük düzeylerini yapılandırma

Her günlüğe bir günlük düzeyi atanır. Değer, göreli önem derecesini gösteren bir tamsayıdır:

LogLevel Kod Description
İzleme 0 En ayrıntılı iletileri içeren günlükler. Bu iletiler hassas uygulama verileri içerebilir. Bu iletiler varsayılan olarak devre dışıdır ve üretim ortamında hiçbir zaman etkinleştirilmemelidir.
Hata Ayıklama 1 Geliştirme sırasında etkileşimli araştırma için kullanılan günlükler. Bu günlükler öncelikli olarak hata ayıklama için yararlı bilgiler içermelidir ve uzun vadeli bir değere sahip olmamalıdır.
Bilgi 2 Uygulamanın genel akışını izleyen günlükler. Bu günlükler uzun vadeli değere sahip olmalıdır.
Uyarı 3 Uygulama akışında anormal veya beklenmeyen bir olayı vurgulayan ancak uygulama yürütmenin durmasına neden olmayan günlükler.
Hata 4 Geçerli yürütme akışı bir hata nedeniyle durdurulduğunda vurgulanan günlükler. Bu hatalar, uygulama genelindeki bir hatayı değil, geçerli etkinlikte bir hata olduğunu göstermelidir.
Kritik 5 Kurtarılamayan bir uygulamayı veya sistem kilitlenmesini ya da hemen ilgilenilmesi gereken yıkıcı bir hatayı açıklayan günlükler.
Hiçbiri 6 Belirtilen kategori için günlüğe kaydetmeyi devre dışı bırakır.

host.json dosya yapılandırması, bir işlev uygulamasının Uygulama Analizler ne kadar günlük kaydı göndereceğini belirler.

Her kategori için, gönderilecek en düşük günlük düzeyini belirtirsiniz. host.json ayarları İşlevler çalışma zamanı sürümüne bağlı olarak değişir.

Aşağıdaki örnek, aşağıdaki kurallara göre günlüğe kaydetmeyi tanımlar:

  • veya Functiongünlükleri Host.Results için yalnızca veya daha yüksek düzeydeki Error olayları günlüğe kaydeder.
  • günlükleri Host.Aggregatoriçin, oluşturulan tüm ölçümleri (Trace ) günlüğe kaydeder.
  • Kullanıcı günlükleri de dahil olmak üzere diğer tüm günlükler için yalnızca Information düzey ve daha yüksek olayları günlüğe kaydeder.
{
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host.Results": "Error",
      "Function": "Error",
      "Host.Aggregator": "Trace"
    }
  }
}

host.json aynı dizeyle başlayan birden çok günlük içeriyorsa, önce daha tanımlı günlükler eşleştirilir. düzeyinde dışında Host.AggregatorError çalışma zamanındaki her şeyi günlüğe kaydeden aşağıdaki örneği göz önünde bulundurun:

{
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host": "Error",
      "Function": "Error",
      "Host.Aggregator": "Information"
    }
  }
}

Herhangi bir günlüklerin None bir kategori için yazılmasını önlemek için günlük düzeyi ayarını kullanabilirsiniz.

Dikkat

Azure İşlevleri, Application Analizler tablolarında telemetri olaylarını depolayarak Application Analizler ile tümleşir ve kategori günlüğü düzeyinin Information farklı bir değere ayarlanması telemetrinin bu tablolara akmasını engeller; sonuç olarak, ilgili verileri Uygulama Analizler veya İşlev İzleyicisi sekmesinde göremezsiniz.

Yukarıdaki örneklerden:

  • Kategori günlük düzeyine ayarlanırsaHost.Results, başarısız işlev yürütmeleri için tabloda yalnızca konak yürütme telemetri olaylarını requests toplar ve hem Uygulama Analizler hem de İşlev İzleyicisi sekmesinde başarılı yürütmelerin konak yürütme ayrıntılarının görüntülenmesini Error engeller.
  • Kategori günlük düzeyine ayarlanırsaFunction, tüm işlevler için , customMetricsve ile ilgili dependenciesişlev telemetri verilerini toplamayı durdurur ve customEvents uygulama Analizler bu verilerden herhangi birinin görülmesini Error engeller. Yalnızca düzeyle Error günlüğe kaydedilmiş olarak toplanırtraces.

Her iki durumda da Application Analizler ve İşlev İzleyicisi sekmesinde hata ve özel durum verilerini toplamaya devam edebilirsiniz. Daha fazla bilgi için bkz. Yüksek hacimli telemetriye sahip çözümler.

Toplayıcıyı yapılandırma

Önceki bölümde belirtildiği gibi, çalışma zamanı belirli bir süre boyunca işlev yürütmeleri hakkındaki verileri toplar. Varsayılan süre 30 saniyedir veya hangisi önce gelirse 1.000 çalıştırmadır. Bu ayarı host.json dosyasında yapılandırabilirsiniz. Aşağıda bir örnek verilmiştir:

{
    "aggregator": {
      "batchSize": 1000,
      "flushTimeout": "00:00:30"
    }
}

Örneklemeyi yapılandırma

Uygulama Analizler, yoğun yük olduğu zamanlarda tamamlanan yürütmelerde çok fazla telemetri verisi üretmenizi önleyebilecek bir örnekleme özelliğine sahiptir. Gelen yürütmelerin hızı belirtilen eşiği aştığında, Uygulama Analizler gelen yürütmelerin bazılarını rastgele yoksaymaya başlar. Saniye başına en fazla yürütme sayısı için varsayılan ayar 20'dir (sürüm 1.x'te beş). Örneklemeyi host.json dosyasında yapılandırabilirsiniz. Aşağıda bir örnek verilmiştir:

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond" : 20,
        "excludedTypes": "Request;Exception"
      }
    }
  }
}

Belirli telemetri türlerini örneklemenin dışında tutabilirsiniz. Bu örnekte ve Exception türündeki Request veriler örneklemenin dışında tutulur. Bu, diğer telemetri türleri örneklemeye tabi kalırken tüm işlev yürütmelerinin (istekler) ve özel durumların günlüğe kaydedilmesini sağlar.

Daha fazla bilgi edinmek için bkz. Uygulama Analizler Örnekleme.

Ölçek denetleyicisi günlüklerini yapılandırma

Bu özellik önizleme aşamasındadır.

ölçek denetleyicisinin işlev uygulamanız için aldığı kararları daha iyi anlamak için Azure İşlevleri ölçek denetleyicisinin günlükleri Uygulama Analizler veya Blob depolamaya yaymasını sağlayabilirsiniz.

Bu özelliği etkinleştirmek için işlev uygulaması ayarlarınıza adlı SCALE_CONTROLLER_LOGGING_ENABLED bir uygulama ayarı eklersiniz. Bu ayarın değeri, aşağıdakilere göre biçiminde <DESTINATION>:<VERBOSITY>olmalıdır:

Özellik Açıklama
<DESTINATION> Günlüklerin gönderildiği hedef. Geçerli değerler ve BlobdeğerleridirAppInsights.
kullanırkenAppInsights, işlev uygulamanızda Uygulama Analizler'nin etkinleştirildiğinden emin olun.
Hedefi olarak Blobayarladığınızda günlükler, uygulama ayarında ayarlanan varsayılan depolama hesabında adlı azure-functions-scale-controller bir blob kapsayıcısında AzureWebJobsStorage oluşturulur.
<VERBOSITY> Günlük düzeyini belirtir. Desteklenen değerler , Warningve VerbosedeğerleridirNone.
olarak ayarlandığında Verbose, ölçek denetleyicisi çalışan sayısındaki her değişikliğin bir nedeninin yanı sıra bu kararları etkileyen tetikleyiciler hakkındaki bilgileri günlüğe kaydeder. Ayrıntılı günlükler, tetikleyici uyarılarını ve ölçek denetleyicisi çalıştırıldıktan önce ve çalıştırıldıktan sonra tetikleyiciler tarafından kullanılan karmaları içerir.

İpucu

Ölçek denetleyicisi günlüğünü etkin bırakırken, bunun işlev uygulamanızı izlemenin olası maliyetlerini etkilediğini unutmayın. Ölçek denetleyicisinin nasıl çalıştığını anlamak için yeterli veri toplayana kadar günlüğü etkinleştirmeyi ve ardından devre dışı bırakmayı göz önünde bulundurun.

Örneğin, aşağıdaki Azure CLI komutu ölçek denetleyicisinden Application Analizler'a ayrıntılı günlük kaydını açar:

az functionapp config appsettings set --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--settings SCALE_CONTROLLER_LOGGING_ENABLED=AppInsights:Verbose

Bu örnekte, ve <RESOURCE_GROUP_NAME> değerini sırasıyla işlev uygulamanızın adı ve kaynak grubu adıyla değiştirin<FUNCTION_APP_NAME>.

Aşağıdaki Azure CLI komutu ayrıntı düzeyini olarak ayarlayarak günlüğe kaydetmeyi Nonedevre dışı bırakır:

az functionapp config appsettings set --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--settings SCALE_CONTROLLER_LOGGING_ENABLED=AppInsights:None

Ayrıca, aşağıdaki Azure CLI komutunu kullanarak ayarı kaldırarak SCALE_CONTROLLER_LOGGING_ENABLED günlüğü devre dışı bırakabilirsiniz:

az functionapp config appsettings delete --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--setting-names SCALE_CONTROLLER_LOGGING_ENABLED

Ölçek denetleyicisi günlüğü etkinleştirildiğinde artık ölçek denetleyicisi günlüklerinizi sorgulayabileceksiniz.

Application Insights tümleştirmesini etkinleştirme

bir işlev uygulamasının Application Analizler'a veri göndermesi için bir Application Analizler kaynağının izleme anahtarını bilmesi gerekir. Anahtar , APPINSIGHTS_INSTRUMENTATIONKEY adlı bir uygulama ayarında olmalıdır.

İşlev uygulamanızı Azure portal, Azure İşlevleri Core Tools veya Visual Studio Codekullanarak komut satırından oluşturduğunuzda, Uygulama Analizler tümleştirmesi varsayılan olarak etkinleştirilir. Uygulama Analizler kaynağı, işlev uygulamanızla aynı ada sahiptir ve aynı bölgede veya en yakın bölgede oluşturulur.

Portalda yeni işlev uygulaması

Oluşturulan Uygulama Analizler kaynağını gözden geçirmek için bunu seçerek Uygulama Analizler penceresini genişletin. Yeni kaynak adını değiştirebilir veya verilerinizi depolamak istediğiniz Azure coğrafyasında farklı bir Konum seçebilirsiniz.

Enable Application Insights while creating a function app

Oluştur'u seçtiğinizde, uygulama ayarlarında ayarlanmış olan APPINSIGHTS_INSTRUMENTATIONKEY işlev uygulamanızla bir Uygulama Analizler kaynağı oluşturulur. Her şey hazır.

Mevcut bir işlev uygulamasına ekleme

İşlev uygulamanızla bir Uygulama Analizler kaynağı oluşturulmadıysa, kaynağı oluşturmak için aşağıdaki adımları kullanın. Ardından bu kaynaktan izleme anahtarını işlev uygulamanıza uygulama ayarı olarak ekleyebilirsiniz.

  1. Azure portalişlev uygulamasını arayıp seçin ve ardından işlev uygulamanızı seçin.

  2. Pencerenin üst kısmındaki Uygulama Analizler yapılandırılmadı başlığını seçin. Bu başlığı görmüyorsanız, uygulamanızda Uygulama Analizler zaten etkinleştirilmiş olabilir.

    Enable Application Insights from the portal

  3. Kaynağınızı değiştirin'i genişletin ve aşağıdaki tabloda belirtilen ayarları kullanarak bir Application Analizler kaynağı oluşturun.

    Ayar Önerilen değer Açıklama
    Yeni kaynak adı Benzersiz uygulama adı İşlev uygulamanızla aynı adı kullanmak en kolayıdır ve bu, aboneliğinizde benzersiz olmalıdır.
    Konum West Europe Mümkünse işlev uygulamanızla aynı bölgeyi veya bu bölgeye yakın bir bölgeyi kullanın.

    Create an Application Insights resource

  4. Uygula’yı seçin.

    Uygulama Analizler kaynağı, işlev uygulamanızla aynı kaynak grubunda ve abonelikte oluşturulur. Kaynak oluşturulduktan sonra Uygulama Analizler penceresini kapatın.

  5. İşlev uygulamanızda, Ayarlar altında Yapılandırma'yı ve ardından Uygulama ayarları'nı seçin. adlı APPINSIGHTS_INSTRUMENTATIONKEYbir ayar görürseniz, Azure'da çalışan işlev uygulamanız için Uygulama Analizler tümleştirmesi etkinleştirilir. Herhangi bir nedenle bu ayar yoksa, değer olarak Application Analizler izleme anahtarınızı kullanarak ekleyin.

Not

İşlevler'in ilk sürümlerinde yerleşik izleme kullanılmıştır ve bu artık önerilmez. Böyle bir işlev uygulaması için Uygulama Analizler tümleştirmesini etkinleştirirken, yerleşik günlüğü de devre dışı bırakmanız gerekir.

Yerleşik günlüğe kaydetmeyi devre dışı bırakma

Uygulama Analizler etkinleştirdiğinizde, Azure Depolama kullanan yerleşik günlüğü devre dışı bırakın. Yerleşik günlük, hafif iş yükleriyle test için kullanışlıdır ancak yüksek yüklü üretim kullanımı için tasarlanmamıştır. Üretim izleme için Uygulama Analizler öneririz. Üretimde yerleşik günlük kullanılıyorsa, Azure Depolama azaltma nedeniyle günlüğe kaydetme kaydı eksik olabilir.

Yerleşik günlüğü devre dışı bırakmak için uygulama ayarını silin AzureWebJobsDashboard . Azure portal uygulama ayarlarını silme hakkında bilgi için İşlev uygulamasını yönetme bölümündeki Uygulama ayarları bölümüne bakın. Uygulama ayarını silmeden önce, aynı işlev uygulamasındaki mevcut işlevlerin Azure Depolama tetikleyicileri veya bağlamaları için bu ayarı kullanmadığından emin olun.

Yüksek hacimli telemetriye sahip çözümler

İşlev uygulamalarınız, doğası gereği yüksek hacimli telemetriye (IoT çözümleri, olay odaklı çözümler, yüksek yük finansal sistemler, tümleştirme sistemleri...) neden olan çözümlerin önemli bir parçası olabilir. Bu durumda gözlemlenebilirliği korurken maliyetleri azaltmak için ek yapılandırmayı göz önünde bulundurmanız gerekir.

Oluşturulan telemetrinin nasıl tüketileceğine, gerçek zamanlı panolara, uyarılara, ayrıntılı tanılamalara vb. bağlı olarak, oluşturulan veri hacmini azaltmak için bir strateji tanımlamanız gerekir. Bu strateji, üretimdeki işlev uygulamalarınızı düzgün bir şekilde izlemenize, çalıştırmanıza ve tanılamanıza olanak tanır. Aşağıdaki seçenekleri göz önünde bulundurabilirsiniz:

  • Örneklemeyi kullanın: Daha önce de belirtildiği gibi, istatistiksel olarak doğru bir analizi korurken alınan telemetri olaylarının hacmini önemli ölçüde azaltmaya yardımcı olacaktır. Örneklemeyi kullanırken bile yüksek hacimli telemetri elde edebilirsiniz. Uyarlamalı örneklemenin size sağladığı seçenekleri inceleyin; örneğin, değerini izleme gereksinimlerinizle oluşturulan birimi dengeleyen bir değere ayarlayınmaxTelemetryItemsPerSecond. Telemetri örneklemesinin işlev uygulamanızı yürüten konak başına uygulandığını unutmayın.

  • Varsayılan günlük düzeyi: tüm telemetri kategorileri için varsayılan değer olarak veya Error kullanınWarning. Artık işlevlerinizi düzgün bir şekilde izleyebilmek ve tanılamak için hangi kategorilereInformation ayarlamak istediğinize karar vekleyebilirsiniz.

  • İşlev telemetrinizi ayarlayın: varsayılan günlük düzeyi veya Warningolarak ayarlandığında Error her işlevden ayrıntılı bilgi toplanmaz (bağımlılıklar, özel ölçümler, özel olaylar ve izlemeler). Üretim izleme için önemli olan işlevler için kategori için açık bir giriş tanımlayın ve ayrıntılı bilgi toplayabilmeniz için Function.<YOUR_FUNCTION_NAME> bunu olarak Informationayarlayın. Bu noktada, kullanıcı tarafından oluşturulan günlüklerinInformation düzeyinde toplanmaması için kategoriyi Function.<YOUR_FUNCTION_NAME>.UserError veya Warning günlük düzeyini ayarlayın.

  • Host.Aggregator kategorisi: Kategorileri yapılandırma bölümünde açıklandığı gibi, bu kategori işlev çağrılarının toplu bilgilerini sağlar. Bu kategorideki bilgiler Application Analizler customMetrics tablosunda toplanır ve Azure portal işleve Genel Bakış sekmesinde gösterilir. Toplayıcıyı nasıl yapılandırdığınıza bağlı olarak, toplanan telemetride tarafından belirlenen flushTimeoutbir gecikme olacağını düşünün. Bu kategoriyi değerinden Informationfarklı bir değere ayarlarsanız, tablodaki customMetrics verileri toplamayı durdurursunuz ve genel bakış işlevi sekmesinde ölçümleri görüntülemezsiniz.

    Aşağıdaki ekran görüntüsünde, işleve Genel Bakış sekmesinde görüntülenen Host.Aggregator telemetri verileri gösterilmektedir. Screenshot of Host.Aggregator telemetry displayed in function Overview tab.

    Aşağıdaki ekran görüntüsünde Application Analizler customMetrics tablosunda Host.Aggregator telemetri verileri gösterilmektedir. Screenshot of Host.Aggregator telemetry in customMetrics Application Insights table.

  • Host.Results kategorisi: Kategorileri yapılandırma bölümünde açıklandığı gibi, bu kategori bir işlev çağrısının başarısını veya başarısızlığını gösteren çalışma zamanı tarafından oluşturulan günlükleri sağlar. Bu kategorideki bilgiler Uygulama Analizler requests tablosunda toplanır ve İşlev İzleyicisi sekmesinde ve farklı Uygulama Analizler panolarında (Performans, Hatalar...) gösterilir. Bu kategoriyi değerinden Informationfarklı başka bir değere ayarlarsanız, yalnızca tanımlanan (veya daha yüksek) günlük düzeyinde oluşturulan telemetri verilerini toplarsınız; örneğin, bu ayar yalnızca başarısız yürütmeler için istek verilerinin izlenmesine neden olurerror.

    Aşağıdaki ekran görüntüsünde, İşlev İzleyicisi sekmesinde görüntülenen Host.Results telemetri verileri gösterilmektedir. Screenshot of Host.Results telemetry in function Monitor tab.

    Aşağıdaki ekran görüntüsünde Application Analizler Performance panosunda görüntülenen Host.Results telemetri verileri gösterilmektedir. Screenshot of Host.Results telemetry in Application Insights Performance dashboard.

  • Host.Aggregator vs Host.Results: her iki kategori de işlev yürütmeleri hakkında iyi içgörüler sağlar. Gerekirse, bu kategorilerden birinden ayrıntılı bilgileri kaldırabilir, böylece diğerini izleme ve uyarı için kullanabilirsiniz. Bu ayara ilişkin örneği aşağıda bulabilirsiniz:

{
  "version": "2.0",  
  "logging": {
    "logLevel": {
      "default": "Warning",
      "Function": "Error",
      "Host.Aggregator": "Error",
      "Host.Results": "Information", 
      "Function.Function1": "Information",
      "Function.Function1.User": "Error"
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond": 1,
        "excludedTypes": "Exception"
      }
    }
  }
} 

Bu yapılandırmayla şunları yapacaksınız:

  • Tüm işlevler ve telemetri kategorileri için varsayılan değer (Microsoft ve Çalışan kategorileri dahil) olarak ayarlanır Warning , bu nedenle varsayılan olarak hem çalışma zamanı hem de özel günlük kaydı tarafından oluşturulan tüm hatalar ve uyarılar toplanır.

  • Function Kategori günlüğü düzeyi olarak Errorayarlanır, bu nedenle tüm işlevler için varsayılan olarak yalnızca özel durumlar ve hata günlükleri toplanır (bağımlılıklar, kullanıcı tarafından oluşturulan ölçümler ve kullanıcı tarafından oluşturulan olaylar atlanır).

  • Kategori içinHost.Aggregator, günlük düzeyine Error ayarlandığından, Application Analizler tablosunda işlev çağrılarından toplanan hiçbir bilgi toplanmaz customMetrics ve işleve genel bakış panosunda yürütme sayıları (toplam, başarılı, başarısız...) hakkında hiçbir bilgi gösterilmez.

  • Kategori için Host.Results tüm konak yürütme bilgileri Uygulama Analizler tablosunda toplanırrequests. Tüm çağrı sonuçları İzleyici panosunda ve Uygulama Analizler panolarında gösterilir.

  • adlı Function1işlev için günlük düzeyini Information bu şekilde ayarladık, bu somut işlev için tüm telemetri toplanır (bağımlılık, özel ölçümler, özel olaylar). Aynı işlev Function1.User için kategori (kullanıcı tarafından oluşturulan izlemeler) olarak ayarlanır Error, bu nedenle yalnızca özel hata günlüğü toplanır. v1.x'te işlev başına yapılandırmanın desteklenmediğini unutmayın.

  • Örnekleme, özel durumlar hariç olmak üzere her tür için saniyede bir telemetri öğesi gönderecek şekilde yapılandırılır. Bu örnekleme, işlev uygulamamızı çalıştıran her sunucu konağı için gerçekleşir, bu nedenle dört örneğimiz varsa, bu yapılandırma saniyede tür başına dört telemetri öğesi ve oluşabilecek tüm özel durumları yayar. İstek oranı ve özel durum oranı gibi ölçüm sayılarının örnekleme oranını telafi edecek şekilde ayarlandığını ve ölçüm gezgininde yaklaşık doğru değerlerin gösterildiğini unutmayın.

İpucu

Günlük, izleme ve uyarı gereksinimlerinizi karşıladığınızdan emin olmak için farklı yapılandırmalarla denemeler yapın. Beklenmeyen hatalar veya arızalar olması durumunda ayrıntılı tanılamalara sahip olduğunuzdan emin olun.

Çalışma zamanında izleme yapılandırmasını geçersiz kılma

Son olarak, üretimde belirli bir kategorinin günlüğe kaydetme davranışını hızla değiştirmeniz gereken ve yalnızca dosyada host.json değişiklik yapmak için dağıtımın tamamını yapmak istemediğiniz durumlar olabilir. Böyle durumlar için konak json değerlerini geçersiz kılabilirsiniz.

Bu değerleri Uygulama ayarları düzeyinde yapılandırmak için (ve yalnızca host.json değişikliklerinde yeniden dağıtmayı önlemek için), uygulama ayarı olarak eşdeğer bir değer oluşturarak belirli host.json değerleri geçersiz kılmanız gerekir. Çalışma zamanı biçiminde AzureFunctionsJobHost__path__to__settingbir uygulama ayarı bulduğunda, JSON'da bulunan path.to.setting eşdeğer host.json ayarı geçersiz kılar. Bir uygulama ayarı olarak ifade edildiğinde, JSON hiyerarşisini belirtmek için kullanılan nokta (.) yerine çift alt çizgi ()__ kullanılır. Örneğin, yukarıdaki gibi host.json tek tek işlev günlüğü düzeylerini yapılandırmak için aşağıdaki uygulama ayarlarını kullanabilirsiniz.

Host.json yolu Uygulama ayarı
logging.logLevel.default AzureFunctionsJobHost__logging__logLevel__default
logging.logLeve.Host.Aggregator AzureFunctionsJobHost__logging__logLevel__Host__Aggregator
logging.logLevel.Function AzureFunctionsJobHost__logging__logLevel__Function
logging.logLevel.Function.Function1 AzureFunctionsJobHost__logging__logLevel__Function1
logging.logLevel.Function.Function1.User AzureFunctionsJobHost__logging__logLevel__Function1.User

Ayarları doğrudan Azure portal İşlevi Uygulama Yapılandırması dikey penceresinden veya Azure CLI veya PowerShell betiği kullanarak geçersiz kılabilirsiniz.

az functionapp config appsettings set --name MyFunctionApp --resource-group MyResourceGroup --settings "AzureFunctionsJobHost__logging__logLevel__Host__Aggregator=Information"

Not

Uygulama ayarlarını değiştirerek host.json öğesini geçersiz kılarak işlev uygulamanızı yeniden başlatabilirsiniz.

Sonraki adımlar

İzleme hakkında daha fazla bilgi edinmek için bkz: