Application Insights 'de Azure Işlevleri telemetrisini çözümleyin

Azure Işlevleri, işlev uygulamalarınızı izlemenizi daha iyi hale getirebilmeniz için Application Insights ile tümleşir. Application Insights, uygulamanızın günlüklere yazdığı bilgiler dahil olmak üzere, işlev uygulamanız tarafından oluşturulan telemetri verilerini toplar. Application Insights tümleştirme, genellikle işlev uygulamanız oluşturulduğunda etkinleştirilir. İşlev uygulamanızda izleme anahtarı ayarlanmamışsa, önce Application Insights tümleştirmesini etkinleştirmenizgerekir.

Varsayılan olarak, işlev uygulamanızdan toplanan veriler Application Insights depolanır. Azure Portal, Application Insights telemetri verilerinizin kapsamlı bir görselleştirme kümesini sağlar. Hata günlükleri ve sorgu olayları ve ölçümleri detaylarına gidebilirsiniz. Bu makalede, toplanan verilerinizi görüntüleme ve sorgulama hakkında temel örnekler sağlanmaktadır. İşlev uygulaması verilerinizi Application Insights araştırma hakkında daha fazla bilgi edinmek için bkz. Application Insights nedir?.

Veri saklama ve potansiyel depolama maliyetleri hakkında daha fazla bilgi için, bkz. Application Insights veri toplama, bekletme ve depolama.

Izleme sekmesinde Telemetriyi görüntüleme

Application Insights tümleştirme etkinolduğunda, telemetri verilerini izleyici sekmesinde görüntüleyebilirsiniz.

  1. İşlev uygulaması sayfasında, Application Insights yapılandırıldıktan sonra en az bir kez çalışan bir işlev seçin. Ardından, sol bölmeden izleyici ' yi seçin. İşlev etkinleştirmeleri listesi görünene kadar düzenli aralıklarla Yenile ' yi seçin.

    Etkinleştirmeleri listesi

    Not

    Telemetri istemcisi sunucuya iletilmek üzere verileri toplu olarak işlerken listenin görünmesi beş dakikaya kadar sürebilir. Gecikme canlı ölçüm akışıuygulanmaz. Bu hizmet, sayfayı yüklediğinizde Işlevler ana bilgisayarına bağlanır, bu nedenle Günlükler doğrudan sayfaya akışlanır.

  2. Belirli bir işlev çağrısının günlüklerini görmek için, bu çağrının Tarih (UTC) sütunu bağlantısını seçin. Bu çağrının günlüğe kaydetme çıktısı yeni bir sayfada görüntülenir.

    Çağırma ayrıntıları

  3. Azure günlüğünde Azure Izleyici günlük verilerini alan sorgunun kaynağını görüntülemek için Application Insights Içinde Çalıştır ' ı seçin. Aboneliğinizde Azure Log Analytics 'yi ilk kez kullanıyorsanız etkinleştirmeniz istenir.

  4. Log Analytics etkinleştirdikten sonra, aşağıdaki sorgu görüntülenir. Sorgu sonuçlarının son 30 güne () sınırlı olduğunu where timestamp > ago(30d) ve sonuçların 20 ' den fazla satır () olmadığını görebilirsiniz take 20 . Buna karşılık, işlevinizin çağırma ayrıntıları listesi, son 30 gün için sınır olmadan olur.

    Application Insights Analytics çağırma listesi

Daha fazla bilgi için bu makalenin ilerleyen kısımlarında yer alarak telemetri verilerini sorgulama bölümüne bakın.

Application Insights telemetri görüntüleme

Azure Portalbir işlev uygulamasından Application Insights açmak için:

  1. Portalda işlev uygulamanıza gidin.

  2. Sol sayfada Ayarlar altında Application Insights ' ı seçin.

  3. Aboneliğiniz ile Application Insights ilk kez kullanıyorsanız etkinleştirmeniz istenir. Bunu yapmak için Application Insights aç' ı seçin ve ardından sonraki sayfada Uygula ' yı seçin.

İşlev uygulamasına genel bakış sayfasından Application Insights açın

Application Insights kullanma hakkında daha fazla bilgi için Application Insights belgelerinebakın. Bu bölümde Application Insights verilerin nasıl görüntüleneceği hakkında bazı örnekler gösterilmektedir. Application Insights zaten hakkında bilginiz varsa telemetri verilerini yapılandırma ve özelleştirme hakkındaki bölümleredoğrudan gidebilirsiniz.

Application Insights Genel Bakış sekmesi

Aşağıdaki Application Insights, işlevinizdeki davranış, performans ve hataları değerlendirirken yararlı olabilir:

Araştır Description
Hatalar İşlev hatalarıyla ve sunucu özel durumlarına göre grafikler ve uyarılar oluşturun. Işlem adı işlev adıdır. Bağımlılıklar için özel telemetri uygulamadığınız takdirde Bağımlılıklardaki arızalar gösterilmez.
Mının Bulut rol örnekleri başına kaynak kullanımını ve aktarım hızını görüntüleyerek performans sorunlarını analiz edin. Bu performans verileri, işlevlerin temeldeki kaynaklarınızın gerisinde olduğu durumlarda hata ayıklama senaryolarında yararlı olabilir.
Ölçümler Ölçümleri temel alan grafikler ve uyarılar oluşturun. Ölçümler, işlev etkinleştirmeleri, yürütme süresi ve başarı oranları sayısını içerir.
Canlı ölçümler Ölçüm verilerini neredeyse gerçek zamanlı olarak oluşturulan şekilde görüntüleyin.

Telemetri verilerini sorgulama

Application Insights Analytics , bir veritabanındaki tablo biçimindeki tüm telemetri verilerine erişmenizi sağlar. Analytics verileri ayıklamak, işlemek ve görselleştirmek için bir sorgu dili sağlar.

Günlüğe kaydedilen olayları incelemek veya sorgulamak için günlükleri seçin.

Analiz örneği

Son 30 dakika içinde çalışan başına isteklerin dağılımını gösteren bir sorgu örneği aşağıda verilmiştir.

requests
| where timestamp > ago(30m) 
| summarize count() by cloud_RoleInstance, bin(timestamp, 1m)
| render timechart

Kullanılabilir tablolar, sol taraftaki şema sekmesinde gösterilir. İşlev etkinleştirmeleri tarafından oluşturulan verileri aşağıdaki tablolarda bulabilirsiniz:

Tablo Açıklama
lerin Çalışma zamanı, ölçek denetleyicisi ve izleme tarafından işlev kodunuzda oluşturulan Günlükler.
istekler Her işlev çağrısı için bir istek.
larý Çalışma zamanı tarafından oluşturulan özel durumlar.
customMetrics Başarılı ve başarısız çağırma sayısı, başarı oranı ve süre.
customEvents Çalışma zamanı tarafından izlenen olaylar, örneğin: bir işlevi tetikleyen HTTP istekleri.
performanceCounters İşlevlerin üzerinde çalıştığı sunucuların performansı hakkında bilgiler.

Diğer tablolar, kullanılabilirlik testleri, istemci ve tarayıcı telemetri içindir. Verilere veri eklemek için özel telemetri uygulayabilirsiniz.

Her tablo içinde IŞLEVLERE özgü verilerden bazıları bir customDimensions alandır. Örneğin, aşağıdaki sorgu günlük düzeyine sahip tüm izlemeleri alır Error .

traces 
| where customDimensions.LogLevel == "Error"

Çalışma zamanı customDimensions.LogLevel ve alanlarını sağlar customDimensions.Category . İşlev kodunuzda yazdığınız günlüklerde ek alanlar sağlayabilirsiniz. C# ' deki bir örnek için bkz. .NET sınıf kitaplığı geliştirici kılavuzunda yapılandırılmış günlüğe kaydetme .

Sorgu ölçek denetleyicisi günlükleri

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

Hem Ölçek denetleyicisi günlüğünü hem de Application Insights tümleştirmeyietkinleştirdikten sonra, Application Insights günlük aramasını, yayılan ölçek denetleyicisi günlüklerini sorgulamak için kullanabilirsiniz. Ölçek denetleyicisi günlükleri, traces koleksiyonda scalecontrollerlogs kategorisi altında kaydedilir.

Aşağıdaki sorgu, geçerli işlev uygulaması için belirtilen süre içinde tüm ölçek denetleyicisi günlüklerini aramak için kullanılabilir:

traces 
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"

Aşağıdaki sorgu, yalnızca ölçekteki bir değişikliği gösteren günlüklerin nasıl alınacağını göstermek için önceki sorgu üzerinde genişler:

traces 
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"
| where message == "Instance count changed"
| extend Reason = CustomDimensions.Reason
| extend PreviousInstanceCount = CustomDimensions.PreviousInstanceCount
| extend NewInstanceCount = CustomDimensions.CurrentInstanceCount

Tüketim planına özgü ölçümler

Bir Tüketim planındaçalışırken, tek bir işlev yürütmenin yürütme ücreti GB saniye cinsinden ölçülür. Yürütme maliyeti, bellek kullanımını yürütme süresi ile birleştirerek hesaplanır. Daha fazla bilgi edinmek için bkz. Tüketim planı maliyetlerini tahminetme.

Aşağıdaki telemetri sorguları, tüketim planında çalışan işlevlerin maliyetini etkileyen ölçümlere özgüdür.

Bellek kullanımını belirleme

İzleme altında Günlükler (Analiz) öğesini seçin, ardından aşağıdaki telemetri sorgusunu kopyalayın ve sorgu penceresine yapıştırın ve Çalıştır' ı seçin. Bu sorgu, her örneklenmiş zamanda toplam bellek kullanımını döndürür.

performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value

Sonuçlar aşağıdaki örneğe benzer şekilde görünür:

zaman damgası [ UTC] name değer
9/12/2019, 1:05:14 . 947 Özel baytlar 209.932.288
9/12/2019, 1:06:14 . 994 Özel baytlar 212.189.184
9/12/2019, 1:06:30 . 010 Özel baytlar 231.714.816
9/12/2019, 1:07:15 . 040 Özel baytlar 210.591.744
9/12/2019, 1:12:16 . 285 Özel baytlar 216.285.184
9/12/2019, 1:12:31 . 376 Özel baytlar 235.806.720

Süreyi belirleme

Azure Izleyici, kaynak düzeyindeki ölçümleri izler, bu Işlevler işlev uygulamadır. Application Insights tümleştirme ölçümleri işlev başına temelinde yayar. Bir işlevin ortalama süresini almak için örnek bir analiz sorgusu aşağıda verilmiştir:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
name averageDurationMilliseconds
QueueTrigger AvgDurationMs 16 . 087
QueueTrigger MaxDurationMs 90 . 249
QueueTrigger MinDurationMs 8 . 522

Azure Izleyici ölçümleri

Application Insights tarafından toplanan telemetri verilerine ek olarak, Azure Izleyici ölçümlerindenişlev uygulamasının nasıl çalıştığı hakkında da veri alabilirsiniz. App Service uygulamalar için kullanılabilen olağan ölçümlerlebirlikte, ilgilendiğiniz işlevlere özgü iki ölçüm vardır:

Metric Açıklama
Işlev yürütme sayısı İşlev yürütme sayısı, işlev uygulamanızın kaç kez yürütüldüğünü belirtir. Bu, bir işlevin uygulamanızda kaç kez çalışacağını de sağlar.
FunctionExecutionUnits İşlev yürütme birimleri, yürütme süresi ve bellek kullanımınızın bir birleşimidir. Bellek verileri şu anda Azure Izleyici aracılığıyla kullanılabilen bir ölçüm değildir. Ancak, uygulamanızın bellek kullanımını iyileştirmek isterseniz, Application Insights tarafından toplanan performans sayacı verilerini kullanabilir. Bu ölçüm Şu anda Linux üzerinde çalışan Premium ve adanmış (App Service) planlar için desteklenmemektedir.

Application Insights verileri kullanarak bir tüketim planının maliyetlerini hesaplama hakkında daha fazla bilgi edinmek için bkz. Tüketim planı maliyetlerini tahminetme. Ölçümleri görüntülemek için Izleyici Gezginini kullanma hakkında daha fazla bilgi edinmek için bkz. Azure Ölçüm Gezginikullanmaya başlama.

Sonraki adımlar

Azure Işlevlerini izleme hakkında daha fazla bilgi edinin: