Azure İzleyici Uygulama Analizler ile Azure İşlevleri izleme

Azure İşlevleri, işlevleri izlemek için Uygulama Analizler ile yerleşik tümleştirme sunar. .NET ve .NET Core dışındaki diller için, dağıtılmış izlemenin tüm avantajlarından yararlanmak için dile özgü diğer çalışanlar/uzantılar gerekir.

Uygulama Analizler günlük, performans ve hata verilerini toplar ve performans anomalilerini otomatik olarak algılar. Uygulama Analizler, sorunları tanılamanıza ve işlevlerinizin nasıl kullanıldığını anlamanıza yardımcı olacak güçlü analiz araçları içerir. Uygulama verilerinize görünürlük elde ettiğinizde performansı ve kullanılabilirliği sürekli geliştirebilirsiniz. Yerel işlev uygulaması proje geliştirme sırasında Uygulama Analizler bile kullanabilirsiniz.

Gerekli Application Analizler izlemesi Azure İşlevleri yerleşiktir. İşlev uygulamanızı bir Uygulama Analizler kaynağına bağlamak için tek ihtiyacınız olan geçerli bir bağlantı dizesi. İşlev uygulaması kaynağınız Azure'da oluşturulduğunda uygulama ayarlarınıza bağlantı dizesi eklenmelidir. İşlev uygulamanızın bir bağlantı dizesi yoksa, bunu el ile ayarlayabilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri ve Bağlan ion dizelerinde yürütmeleri izleme.

Not

31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.

Desteklenen otomatik dağıtım senaryolarının listesi için bkz . Desteklenen ortamlar, diller ve kaynak sağlayıcıları.

Java uygulamaları için dağıtılmış izleme

Not

Bu özelliğin 8-9 saniyelik bir soğuk başlatma etkisine sahip olması ve 1 saniyeden daha kısa bir süreye indirilmesi gerekir. Bu özelliği erken benimsediyseniz (örneğin, Şubat 2023'ten önce), geçerli sürüme güncelleştirmek ve yeni daha hızlı başlatmadan yararlanmak için "Sorun Giderme" bölümünü gözden geçirin.

Java tabanlı Azure İşlevleri uygulamalarınızdan varsayılan olarak toplanandan daha fazla veri görüntülemek için Application Analizler Java 3.x aracısını etkinleştirin. Bu aracı, Application Analizler'ın popüler kitaplıklardan ve Azure Yazılım Geliştirme Setlerinden (SDK) bağımlılıkları, günlükleri ve ölçümleri otomatik olarak toplamasına ve ilişkilendirmesine olanak tanır. Bu telemetri, İşlevler tarafından yakalanan istek telemetrisine ek olarak sağlanır.

Uygulama haritasını kullanarak ve uçtan uca işlemlerin daha eksiksiz bir görünümüne sahip olarak sorunları daha iyi tanılayabilirsiniz. Sistemlerin ortalama performans ve hata oranlarıyla ilgili verilerle nasıl etkileşime geçtiğini gösteren topolojik bir görünüme sahipsiniz. Ayrıca uçtan uca tanılama için daha fazla veriniz vardır. Güvenilirlik sorunlarının ve performans sorunlarının kök nedenini istek temelinde kolayca bulmak için uygulama eşlemesini kullanabilirsiniz.

Daha gelişmiş kullanım örnekleri için, yayılma alanları ekleyerek, yayılma durumunu güncelleştirerek ve span öznitelikleri ekleyerek telemetriyi değiştirebilirsiniz. Standart API'leri kullanarak özel telemetri de gönderebilirsiniz.

Java işlev uygulamaları için dağıtılmış izlemeyi etkinleştirme

İşlev uygulamasına Genel Bakış bölmesinde Uygulama Analizler'ne gidin. Koleksiyon Düzeyi'nin altında Önerilen'i seçin.

Uygulama Analizler Java Aracısı'nın nasıl etkinleştirildiğini gösteren ekran görüntüsü.

Sorun giderme

Bu özelliği Şubat 2023'den önce benimsediyseniz Java işlevlerinizin başlatma süreleri yavaş olabilir. İşlev uygulamasına Genel Bakış bölmesinden sol taraftaki gezinti menüsünde Yapılandırma'ya gidin. Ardından Uygulama ayarları'nı seçin ve sorunu çözmek için aşağıdaki adımları kullanın.

Windows

  1. Aşağıdaki ayarların mevcut olup olmadığını denetleyin ve kaldırın:

    XDT_MicrosoftApplicationInsights_Java -> 1
    ApplicationInsightsAgent_EXTENSION_VERSION -> ~2
    
  2. Bu ayarı ekleyerek en son sürümü etkinleştirin:

    APPLICATIONINSIGHTS_ENABLE_AGENT: true
    

Linux Ayrılmış/Premium

  1. Aşağıdaki ayarların mevcut olup olmadığını denetleyin ve kaldırın:

    ApplicationInsightsAgent_EXTENSION_VERSION -> ~3
    
  2. Bu ayarı ekleyerek en son sürümü etkinleştirin:

    APPLICATIONINSIGHTS_ENABLE_AGENT: true
    

Not

Application Analizler Java aracısının en son sürümü Azure İşlevleri'da kullanılamıyorsa, bu yönergeleri izleyerek el ile yükleyin.

Uygulama konağınızla alma hizmeti arasındaki bağlantıyı test etme

Uygulama Analizler SDK'ları ve aracıları, alma uç noktalarımıza REST çağrıları olarak alınabilmek için telemetri gönderir. PowerShell veya curl komutlarından ham REST istemcilerini kullanarak web sunucunuzdan veya uygulama konak makinenizden alma hizmeti uç noktalarına bağlantıyı test edebilirsiniz. Bkz. Azure İzleyici Uygulama Analizler eksik uygulama telemetri sorunlarını giderme.

Yinelenen günlükler

konsol günlüğü için veya logback kullanıyorsanızlog4j, Java İşlevleri için dağıtılmış izleme yinelenen günlükler oluşturur. Bu yinelenen günlükler daha sonra Uygulama Analizler'ne gönderilir. Bu davranışı önlemek için aşağıdaki geçici çözümleri kullanın.

Log4j

log4j.xml aşağıdaki filtreyi ekleyin:

<Filters>
  <ThresholdFilter level="ALL" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>

Örnek:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
      <Filters>
        <ThresholdFilter level="ALL" onMatch="DENY" onMismatch="NEUTRAL"/>
      </Filters>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>
Geri Dönme

logback.xml aşağıdaki filtreyi ekleyin:

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  <level>OFF</level>
</filter>  

Örnek:

<configuration debug="true">
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are  by default assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>OFF</level>
      </filter>  
    </encoder>
  </appender>
  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

Node.js işlev uygulamaları için dağıtılmış izleme

Node Azure İşlevleri uygulamalarınızdan varsayılan olarak toplanandan daha fazla veri görüntülemek için Azure İzleyici OpenTelemetry Distro kullanarak İşlevinizi izleyin.

Python işlev uygulamaları için dağıtılmış izleme

İstekler, urllib3, httpx, PsycoPG2 ve daha fazlası gibi hizmetlerden telemetri toplamak için Azure İzleyici OpenTelemetry Distro'sunu kullanın. Azure İşlevleri'de barındırılan Python uygulamanıza gelen izlenen istekler, içinde izlenen telemetri verileriyle otomatik olarak ilişkilendirilmeyecektir. TraceContext'i aşağıda gösterildiği gibi doğrudan ayıklayarak izleme bağıntısını el ile elde edebilirsiniz:

import azure.functions as func

from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
from opentelemetry.propagate import extract

# Configure Azure monitor collection telemetry pipeline
configure_azure_monitor()

def main(req: func.HttpRequest, context) -> func.HttpResponse:
   ...
   # Store current TraceContext in dictionary format
   carrier = {
      "traceparent": context.trace_context.Traceparent,
      "tracestate": context.trace_context.Tracestate,
   }
   tracer = trace.get_tracer(__name__)
   # Start a span using the current context
   with tracer.start_as_current_span(
      "http_trigger_span",
      context=extract(carrier),
   ):
      ...

Sonraki adımlar