Aracılığıyla paylaş


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

Azure İşlevleri, işlev yürütmelerini izlemek için Azure Uygulaması lication Insights 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ştirme sırasında Application Insights'i bile kullanabilirsiniz. Daha fazla bilgi için bkz . Application Insights nedir?.

Application Insights izlemesi Azure İşlevleri yerleşik olarak, 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ı, işlev uygulaması kaynağınızı Azure'da 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 Azure İşlevleri izleme.

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

Azure İşlevleri ile Application Insights tümleştirmesini ücretsiz olarak deneyebilirsiniz ve bu da ücretsiz olarak işlenme miktarına yönelik günlük bir sınır sunar.

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üresinden kaçınmak 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 izleme senaryonuza uyacak şekilde ayarlamanız gerekebilir. Daha fazla bilgi edinmek 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ı 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ı dizesi (APPLICATIONINSIGHTS_CONNECTION_STRING) kullanılmasını gerektirir. Daha fazla bilgi edinmek için APPLICATIONINSIGHTS_CONNECTION_STRING başvurusuna bakın.

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
Bağıntı
• Service Bus Yes
• Event Hubs Yes
Yapılandırılabilir
Tamamen yapılandırılabilir Yes

* SQL sorgu dizesi metni 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

İşlevlerinizden ve İşlevler ana bilgisayarından alınan verilere ek olarak, İşlevler ölçek denetleyicisinden de veri toplayabilirsiniz.

Günlük düzeyleri ve kategorileri

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:

GünlükDüzeyi 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ışı bırakılı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.
Bilgiler 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ışının bir hata nedeniyle durdurulduğunu vurgulayan günlükler. Bu hatalar, uygulama genelinde bir hata 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 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 özel telemetri verileri yazmak için Application Insights SDK'sını kullanabilirsiniz.

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 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, otomatik bağımlılık koleksiyonu kullanıcı olmayan bir kapsamda gerçekleşir. Bağımlılık verilerini yakalamak için düzeyin en azından Information ana bilgisayarınızdaki kullanıcı kapsamının (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ıştırılırken Performans Sayaçlarının otomatik olarak toplanması desteklenmez.

Günlüklere yazma

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

Verileri çözümleme

Varsayılan olarak, işlev uygulamanızdan toplanan veriler Application Insights'ta depolanır. Azure portalında Application Insights, telemetri verilerinizin kapsamlı bir görselleştirme kümesi 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ülemenizi sağlar. Bu akış, yerel geliştirme sırasında işlevlerinizde hata ayıkladığınızda ve portalda Test sekmesini kullandığınızda görülen çıkışla eşdeğerdir. Günlük tabanlı tüm 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 Azure portalında günlük verilerini ve diğer ölçümleri neredeyse gerçek zamanlı olarak görüntüleyebilirsiniz. Birden çok örnekte veya Tüketim planında Linux üzerinde ç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 Azure İzleyici günlükleri de dahil olmak üzere çeşitli hedeflere telemetri verileri gönderebilirsiniz. Daha fazla bilgi edinmek için bkz. Azure İzleyici Günlükleriyle Azure İşlevleri izleme.

Ölçek denetleyicisi günlükleri

Azure İşlevleri ölçek denetleyicisi, uygulamanızın ç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 alır. Ölçek denetleyicisinin işlev uygulamanız için aldığı kararları daha iyi anlamak için ölçek denetleyicisinin 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 nasıl çalıştığıyla ilgili verileri De Azure İzleyici Ölçümleri'nden alabilirsiniz. Daha fazla bilgi edinmek için bkz . Azure İzleyici ile izleme.

Sorun bildirme

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

Sonraki adımlar

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