Azure İşlevleri'nde yürütmeleri izleme

Azure İşlevleri, işlev yürütmelerini izlemek için Azure Uygulaması İçgörüleri ile yerleşik tümleştirme sunar. Bu makalede, Azure tarafından izleme Azure İşlevleri için sağlanan izleme özelliklerine genel bir bakış sağlanır.

Application Insights günlük, performans ve hata verilerini toplar. Performans anomalilerini otomatik olarak algılayarak ve güçlü analiz araçlarıyla sorunları daha kolay tanılayabilir ve işlevlerinizin nasıl kullanıldığını daha iyi anlayabilirsiniz. Bu araçlar, işlevlerinizin performansını ve kullanılabilirliğini sürekli olarak geliştirmenize yardımcı olmak için tasarlanmıştır. Yerel işlev uygulaması proje geliştirmesi sırasında Application Insights'ı bile kullanabilirsiniz. Daha fazla bilgi için bkz. Application Insights nedir?.

Application Insights izlemesi Azure İşlevleri yerleşik olarak oluşturulduğu için işlev uygulamanızı bir Application Insights kaynağına bağlamak için geçerli bir izleme anahtarına ihtiyacınız vardır. İzleme anahtarı, Azure'da işlev uygulaması kaynağınızı oluştururken uygulama ayarlarınıza eklenir. İşlev uygulamanızda bu anahtar yoksa el ile ayarlayabilirsiniz.

Ayrıca Azure İzleyici'yi kullanarak işlev uygulamasının kendisini de izleyebilirsiniz. Daha fazla bilgi edinmek için bkz. Azure İzleyici ile izleme Azure İşlevleri.

Application Insights fiyatlandırması ve sınırları

Azure İşlevleri ile Application Insights tümleştirmesini ücretsiz olarak deneyebilir ve bu sayede ücretsiz olarak işlenen verilerin günlük sınırına erişebilirsiniz.

Geliştirme sırasında Applications Insights'ı etkinleştirirseniz test sırasında bu sınıra gelebilirsiniz. Azure, günlük sınırınıza yaklaştığınızda portal ve e-posta bildirimleri sağlar. Bu uyarıları kaçırır ve sınıra ulaştıysanız Application Insights sorgularında yeni günlükler görünmez. Gereksiz sorun giderme süresini önlemek için sınıra dikkat edin. Daha fazla bilgi için bkz. Application Insights faturalaması.

Önemli

Application Insights, yoğun yük olduğu zamanlarda tamamlanan yürütmelerde çok fazla telemetri verisi üretmenizi önleyebilecek bir örnekleme özelliğine sahiptir. Örnekleme varsayılan olarak etkindir. Eksik veriler gibi görünüyorsanız, örnekleme ayarlarını belirli bir izleme senaryonuza uyacak şekilde ayarlamanız gerekebilir. Daha fazla bilgi için bkz. Örneklemeyi yapılandırma.

İşlev uygulamanızın kullanabileceği Application Insights özelliklerinin tam listesi, desteklenen Azure İşlevleri özellik için Application Insights'ta ayrıntılı olarak yer alır.

Application Insights tümleştirmesi

Genellikle işlev uygulamanızı oluştururken bir Application Insights örneği oluşturursunuz. Bu durumda, tümleştirme için gereken izleme anahtarı zaten adlı APPINSIGHTS_INSTRUMENTATIONKEYbir uygulama ayarı olarak ayarlanmıştır. herhangi bir nedenle işlev uygulamanızda izleme anahtarı ayarlanmadıysa Application Insights tümleştirmesini etkinleştirmeniz gerekir.

Önemli

Azure Kamu gibi bağımsız bulutlar, izleme anahtarı yerine Application Insights bağlantı dizesinin (APPLICATIONINSIGHTS_CONNECTION_STRING) kullanılmasını gerektirir. Daha fazla bilgi edinmek için bkz. APPLICATIONINSIGHTS_CONNECTION_STRING başvurusu.

Aşağıdaki tabloda, işlev uygulamalarınızı izlemek için kullanılabilen Application Insights'ın desteklenen özellikleri ayrıntılı olarak açıklenmektedir:

çalışma zamanı sürümünü Azure İşlevleri 1.x 2.x+
Otomatik toplama
•Istek
•Özel durum
• Performans Sayaçları
•Bağımlılık
   — HTTP
   — Service Bus
   — Event Hubs
   — SQL*
Desteklenen özellikler
• QuickPulse/LiveMetrics Yes Yes
   — Güvenli Denetim Kanalı Yes
•Örnekleme Yes Yes
•Sinyal Yes
Correlation (Bağıntı)
• Service Bus Yes
• Event Hubs Yes
Yapılandırılabilir
Tamamen yapılandırılabilir Yes

* SQL sorgu dizesi metin koleksiyonunu etkinleştirmek için bkz. SQL sorgu koleksiyonunu etkinleştirme.

Telemetri verilerini toplama

Application Insights tümleştirmesi etkinleştirildiğinde telemetri verileri bağlı Application Insights örneğine gönderilir. Bu veriler İşlevler konağı tarafından oluşturulan günlükleri, işlev kodunuzdan yazılan izlemeleri ve performans verilerini içerir.

Not

İşlevlerinizdeki ve İşlevler ana bilgisayarınızdaki verilere ek olarak İşlevler ölçek denetleyicisinden de veri toplayabilirsiniz.

Günlük düzeyleri ve kategoriler

Uygulama kodunuzdan izlemeler yazdığınızda, izlemelere bir günlük düzeyi atamanız gerekir. Günlük düzeyleri, izlemelerinizden toplanan veri miktarını sınırlamanız için bir yol sağlar.

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 öncelikle 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 Application Insights'a ne kadar günlük kaydı gönderdiğini belirler.

Günlük düzeyleri hakkında daha fazla bilgi edinmek için bkz. Günlük düzeylerini yapılandırma.

Günlüğe kaydedilen öğeleri bir kategoriye atayarak, işlev uygulamanızdaki belirli kaynaklardan oluşturulan telemetri üzerinde daha fazla denetime sahip olursunuz. Kategoriler, toplanan veriler üzerinde analiz çalıştırmayı kolaylaştırır. İşlev kodunuzdan yazılan izlemeler, işlev adına göre tek tek kategorilere atanır. Kategoriler hakkında daha fazla bilgi edinmek için bkz. Kategorileri yapılandırma.

Özel telemetri verileri

C#, JavaScript ve Python'da application insights SDK'sını kullanarak özel telemetri verileri yazabilirsiniz.

Bağımlılıklar

Application Insights, İşlevler'in 2.x sürümünden başlayarak belirli istemci SDK'larını kullanan bağlamalar için bağımlılıklarla ilgili verileri otomatik olarak toplar. Application Insights dağıtılmış izleme ve bağımlılık izleme şu anda yalıtılmış bir çalışan işleminde çalışan C# uygulamaları için desteklenmemekte. Application Insights aşağıdaki bağımlılıklarla ilgili verileri toplar:

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Service Bus
  • Azure Depolama hizmetleri (Blob, Kuyruk ve Tablo)

kullanan SqlClient HTTP istekleri ve veritabanı çağrıları da yakalanır. Application Insights tarafından desteklenen bağımlılıkların tam listesi için bkz. otomatik olarak izlenen bağımlılıklar.

Application Insights, toplanan bağımlılık verilerinin uygulama haritasını oluşturur. Aşağıda, Kuyruk depolama çıkış bağlaması olan bir HTTP tetikleyici işlevinin uygulama haritası örneği verilmiştir.

Bağımlılık içeren uygulama eşlemesi

Bağımlılıklar düzeyinde yazılır Information . Veya üzerini Warning filtrelerseniz bağımlılık verilerini görmezsiniz. Ayrıca, bağımlılıkların otomatik olarak toplanması kullanıcı dışı bir kapsamda gerçekleşir. Bağımlılık verilerini yakalamak için, düzeyin en azından Information konağınızdaki kullanıcı kapsamı (Function.<YOUR_FUNCTION_NAME>.User) dışında olarak ayarlandığından emin olun.

Otomatik bağımlılık verileri toplamaya ek olarak, özel bağımlılık bilgilerini günlüklere yazmak için dile özgü Application Insights SDK'larından birini de kullanabilirsiniz. Özel bağımlılıkları yazma örneği için aşağıdaki dile özgü örneklerden birine bakın:

Performans Sayaçları

Linux üzerinde çalışırken Performans Sayaçlarının otomatik olarak toplanması desteklenmez.

Günlüklere yazma

Günlüklere ve kullandığınız API'lere yazma yönteminiz, işlev uygulaması projenizin diline bağlıdır.
İşlevlerinizden günlük yazma hakkında daha fazla bilgi edinmek için dilinize yönelik geliştirici kılavuzuna bakın.

Verileri çözümleme

Varsayılan olarak, işlev uygulamanızdan toplanan veriler Application Insights'ta depolanır. application insights, Azure portal telemetri verilerinizin kapsamlı görselleştirmelerini sağlar. Hata günlüklerinde detaya gidebilir, olayları ve ölçümleri sorgulayabilirsiniz. Toplanan verilerinizi görüntüleme ve sorgulama hakkında temel örnekler de dahil olmak üzere daha fazla bilgi edinmek için bkz. Application Insights'ta telemetriyi analiz Azure İşlevleri.

Akış Günlükleri

Uygulama geliştirirken genellikle Azure'da çalışırken günlüklere yazılanları gerçek zamanlıya yakın bir şekilde görmek istersiniz.

İşlev yürütmeleriniz tarafından oluşturulan günlük verilerinin akışını görüntülemenin iki yolu vardır.

  • Yerleşik günlük akışı: App Service platformu, uygulama günlük dosyalarınızın akışını görüntülemenize olanak tanır. Bu akış, yerel geliştirme sırasında işlevlerinizin hatalarını ayıkladığınızda ve portalda Test sekmesini kullandığınızda görülen çıkışla eşdeğerdir. Tüm günlük tabanlı bilgiler görüntülenir. Daha fazla bilgi için bkz . Akış günlükleri. Bu akış yöntemi yalnızca tek bir örneği destekler ve Tüketim planında Linux üzerinde çalışan bir uygulamayla kullanılamaz.

  • Canlı Ölçüm Akışı: İşlev uygulamanız Application Insights'a bağlandığında, Canlı Ölçüm Akışı'nı kullanarak günlük verilerini ve diğer ölçümleri Azure portal neredeyse gerçek zamanlı olarak görüntüleyebilirsiniz. Tüketim planında birden çok örnekte veya Linux'ta çalışan işlevleri izlerken bu yöntemi kullanın. Bu yöntem örneklenmiş verileri kullanır.

Günlük akışları hem portalda hem de çoğu yerel geliştirme ortamlarında görüntülenebilir. Günlük akışlarını etkinleştirmeyi öğrenmek için bkz. Azure İşlevleri'de akış yürütme günlüklerini etkinleştirme.

Tanılama günlükleri

Application Insights, telemetri verilerini uzun vadeli depolama alanına veya diğer analiz hizmetlerine dışarı aktarmanıza olanak tanır.

İşlevler, Azure İzleyici ile de tümleştirildiği için tanılama ayarlarını kullanarak Telemetri verilerini Azure İzleyici günlükleri de dahil olmak üzere çeşitli hedeflere gönderebilirsiniz. Daha fazla bilgi edinmek için bkz. Azure İzleyici Günlükleri ile Azure İşlevleri izleme.

Ölçek denetleyicisi günlükleri

Azure İşlevleri ölçek denetleyicisi, uygulamanızın üzerinde çalıştığı Azure İşlevleri konağın örneklerini izler. Bu denetleyici, geçerli performansa göre örneklerin ne zaman ekleneceği veya kaldırılacağı hakkında kararlar verir. Ölçek denetleyicisinin işlev uygulamanız için aldığı kararları daha iyi anlamak için günlükleri Application Insights'a yaymasını sağlayabilirsiniz. Oluşturulan günlükleri başka bir hizmet tarafından analiz için Blob depolamada da depolayabilirsiniz.

Bu özelliği etkinleştirmek için işlev uygulaması ayarlarınıza adlı SCALE_CONTROLLER_LOGGING_ENABLED bir uygulama ayarı eklersiniz. Nasıl yapılacağını öğrenmek için bkz. Ölçek denetleyicisi günlüklerini yapılandırma.

Azure İzleyici ölçümleri

Application Insights tarafından toplanan günlük tabanlı telemetri verilerine ek olarak, işlev uygulamasının Azure İzleyici Ölçümleri'nden nasıl çalıştığı hakkında da veri alabilirsiniz. Daha fazla bilgi edinmek için bkz. Azure İzleyici ile izleme.

Sorun bildirme

İşlevler'de Application Insights tümleştirmesiyle ilgili bir sorunu bildirmek veya öneride bulunmak veya istekte bulunmak için GitHub'da bir sorun oluşturun.

Sonraki adımlar

Daha fazla bilgi için aşağıdaki kaynaklara bakın: