Dela via


Övervaka AKS-program med Begränsad förhandsversion av OpenTelemetry Protocol (OTLP)

OpenTelemetry är ett standardiserat sätt att generera spårningar, loggar och mått. Azure Monitor lägger till stöd för begränsad förhandsversion för övervakning av program som körs på Azure Kubernetes Service (AKS) med hjälp av OpenTelemetry Protocol (OTLP) för instrumentation och datainsamling.

Viktigt!

Den här funktionen är en begränsad förhandsversion. Förhandsversionsfunktioner tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar.

Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Viktiga funktioner:

  • Aktivera övervakning på klusternivå för att installera Azure Monitor-komponenter i AKS-klustret.
  • Skapa en Application Insights-resurs med OTLP-inmatning aktiverat.
  • Registrera program i namnområdet eller distributionsomfånget med hjälp av antingen:
    • Automatisk instrumentering med Azure Monitor OpenTelemetry-distributionen.
    • Automatisk konfiguration för program som redan har instrumenterats med OpenTelemetry Software Development Kits (SDK:er med öppen källkod).

Telemetri flödar till Application Insights, där du analyserar programprestanda i kontext med Container Insights.

Viktigt!

  • Nodpooler som inte stöds: Windows (valfri arkitektur) och Linux Arm64. Förhandsversionsfunktionerna tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Förutsättningar

  • Ett AKS-kluster i ett offentligt Azure-moln som kör minst en Kubernetes-distribution.
  • Azure CLI 2.78.0 eller senare. Installera eller uppdatera med hjälp av vägledningen i Installera Azure CLI-dokumentationen .
    Kontrollera versionen:
    az version
    
  • aks-preview Azure CLI-tillägg:
    az extension add --name aks-preview
    az extension update --name aks-preview
    

Anmärkning

Förhandsversions-API:er för Azure Kubernetes Service (AKS) är utformade så att du kan testa och ge feedback om nya funktioner innan de blir allmänt tillgängliga. Den här AKS-förhandsversionen måste installeras innan du kan registrera funktionsflaggan AzureMonitorAppMonitoringPreview.

1. Registrera förhandsversionsfunktionerna

  1. Logga in och välj målprenumerationen:

    az login
    az account set --subscription "<subscription-name>"
    
  2. Registrera funktionen och providern för AKS-förhandsversionen:

    az feature register --namespace "Microsoft.ContainerService" --name "AzureMonitorAppMonitoringPreview"
    az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AzureMonitorAppMonitoringPreview')].{Name:name,State:properties.state}"
    az provider register --namespace "Microsoft.ContainerService"
    az provider show --namespace "Microsoft.ContainerService" --query "registrationState"
    
  3. Registrera förhandsversionsfunktionerna och providern för Application Insights OTLP:

    az feature register --name OtlpApplicationInsights --namespace Microsoft.Insights
    az feature list -o table --query "[?contains(name, 'Microsoft.Insights/OtlpApplicationInsights')].{Name:name,State:properties.state}"
    
    az provider register -n Microsoft.Insights
    

2. Förbered klustret

  1. Se till att klustret ansluts till Azure Monitor för mätningar och loggar. Använd Aktivera övervakning för AKS-kluster i Azure Monitor (Application Insights krävs inte än).
  2. Öppna fönstret AKS Monitor i Azure-portalen och sedan Övervaka inställningar.
    Aktivera programövervakning och välj Granska och aktivera.

Om klustret inte tidigare registrerades kan du aktivera Hanterad Prometheus, Containerloggar och Applikationsövervakning samtidigt.

En skärmbild av sidan Azure-inställningar som visar alternativet Aktivera program.

En skärmbild av granskningssidan för Azure-inställningar som visar alternativet Aktivera program.

3. Skapa en Application Insights-resurs med OTLP-stöd

Skapa eller välj en Application Insights-resurs som stöder OTLP och använder hanterade arbetsytor.

  1. Skapa en ny Application Insights-resurs i Azure-portalen.
  2. Aktivera Aktivera OTLP-stöd (förhandsversion).
  3. Ange Använd hanterade arbetsytor till Ja.

En skärmbild av Skapa Application Insights-resurs med alternativet Aktivera valt.

Viktigt!

  • Använd en Azure Monitor-arbetsytasom skiljer sig från den arbetsyta som används för infrastrukturmått i steg 2.
  • Hanterade arbetsytor skapar en separat Azure Monitor-arbetsyta för Application Insights-programtelemetri. använd en distinkt arbetsyta från den som används för infrastrukturmått.

4. Registrera program till Application Insights

Du kan registrera alla distributioner i ett namnområde eller rikta enskilda distributioner senare.

4.1 Öppna namnområdet

  1. Expandera Kubernetes-resurser i AKS-resursen.
  2. Öppna Namnområden och välj sedan det namnområde som är värd för dina arbetsbelastningar.

En skärmbild av listan över Azure-namnområden under Kubernetes-resurser.

4.2 Konfigurera programövervakning (förhandsversion)

  1. Välj Programövervakning (förhandsversion).

  2. Välj den Application Insights-resurs med OTLP aktiverat som skapades i föregående steg. Om en Application Insights-resurs utan OTLP har valts eller skapats på begäran med alternativet Skapa ny visas inte alternativet Instrumenteringstyp som används i nästa steg.

  3. Välj Instrumentationstyp:

    • Automatisk instrumentering för språk som stöds Java och Node.js.
    • Autokonfiguration för program som redan har instrumenterats med OpenTelemetry SDK:er.

    Anmärkning

  4. Välj det programspråk som gäller för namnområdet.

  5. Låt Utrullningsomstart av alla distributioner vara avmarkerat. Du utför omstarten manuellt i nästa steg.

  6. Välj Konfigurera.

En skärmbild av konfigurationsfönstret för program med resurs- och språkval.

4.3 Starta om distributioner för att tillämpa ändringar

Starta om utrullning för distributioner i målnamespace från Kör kommandot i portalen eller från din terminal:

kubectl rollout restart deployment -n <your-namespace>

En skärmbild av kommandoskärmen för Azure-körning som visar kommandot starta om distributionen.

4.4 Bekräfta instrumenterad status

Gå tillbaka till Programövervakning (förhandsversion) för namnområdet. Expandera Distributioner i det här namnområdet och bekräfta att distributionerna visar instrumenterad status.

En skärmbild av listan över Applikationsdistributioner som visar instrumenterad status.

Tips/Råd

Efter några minuter visas telemetri i den anslutna Application Insights-resursen.

5. Visa programsignaler i Container Insights

Utforska programprestanda i kontexten för klustret med hjälp av Container Insights. Från Övervaka i AKS-resursen öppnar du Kontrollanter och väljer sedan en kontrollant för att granska fel i begäran, långsamma åtgärder och föreslagna undersökningar.

En skärmbild av kontrollantvyn som visar prestandamått.

En skärmbild av kontrollantvyn som visar misslyckade begäranden.

Om du vill öka detaljnivån till Container Insights väljer du en programkomponentnod i programkartan.

Välj noden och sedan Undersök poddar i AKS-övervakningspanelen.

Avancerad registrering (anpassade resurser)

Använd kubernetes anpassade resurser när du behöver mer kontroll. Fullständiga instruktioner finns här.

Autoinstrumentation (Java, Node.js)

Följ registreringsvägledningen för namnområdesomfattande eller per distribution i artikeln som länkats tidigare för att mata in Azure Monitor OpenTelemetry-distributionen i dina poddar.

Autokonfiguration (appar som redan har instrumenterats med OpenTelemetry SDK:er)

Automatisk konfiguration anger miljövariabler så att befintliga SDK:er exporterar telemetri till Application Insights via Azure Monitor Agent i klustret. Det placerar inget SDK på en pod.

  • Namnområdesomfattande: Ange den anpassade instrumentationsresursen med en tom plattformslista:
    spec:
      settings:
        autoInstrumentationPlatforms: []
    
  • Per distribution: Lägg till anteckningen i distributionen och referera till din anpassade instrumentationsresurs (ersätt cr1 med resursnamnet):
    metadata:
      annotations:
        instrumentation.opentelemetry.io/inject-configuration: "cr1"
    

När du använder anteckningen inject-configurationspec.settings.autoInstrumentationPlatforms ignoreras inställningen för den refererade anpassade resursen och distributionen är konfigurerad för att skicka OTLP-data till anslutningssträngen som definierats i applicationInsightsConnectionString. Använd anteckningsvärdet "false" för att exkludera en distribution från automatisk konfiguration:

metadata:
  annotations:
    instrumentation.opentelemetry.io/inject-configuration: "false"

Kända begränsningar

Gränser

  • Accepterar OTLP/HTTP endast med binär Protobuf. JSON-datapaket och OTLP/gRPC stöds inte. Konfigurera OTLP-exportören i enlighet med detta.
  • Stödjer högst 30 associationer för Data Collection Rule (DCR) per AKS-kluster.
  • Testad skalning för loggar och spårningar är 50 000 händelser per sekund (EPS). Förvänta dig cirka 250 MiB extra minnesanvändning och 0,5 vCPU per kluster för den här funktionen.

Scenarier som inte stöds

  • Komprimering i OpenTelemetry SDK-exportörer.
  • Namnrymder med Istio mutual TLS (mTLS) aktiverat.
  • HTTPS-slutpunkter i instrumentationskonfigurationen.

Scenarier som inte har verifierats

  • AKS-kluster som använder en HTTP-proxy.
  • AKS-kluster som använder Private Link.
  • AKS-kluster med dubbla staplar.

Nästa steg

Support

Om dokumentationen och stegen i den här artikeln inte löser problemet skickar du ett e-postmeddelande till Azure Monitor OpenTelemetry-teamet på otel@microsoft.com.