Dela via


Konfigurera OpenTelemetry-dataflödesslutpunkter (förhandsversion)

Viktigt!

Den här sidan innehåller instruktioner för att hantera Azure IoT Operations-komponenter med hjälp av Kubernetes-distributionsmanifest, som finns i förhandsversion. Den här funktionen har flera begränsningar och bör inte användas för produktionsarbetsbelastningar.

Se kompletterande användningsvillkor för Microsoft Azure Previews för juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet.

OpenTelemetry-dataflödesslutpunkter används för att skicka mått och loggar till OpenTelemetry-insamlare, som sedan kan vidarebefordra data till observerbarhetsplattformar som Grafana-instrumentpaneler och Azure Monitor. Du kan konfigurera slutpunktsinställningar, autentisering, TLS (Transport Layer Security) och batchhanteringsalternativ.

Förutsättningar

  • En instans av Azure IoT Operations
  • En OpenTelemetry-insamlare som distribueras och är tillgänglig från ditt Azure IoT Operations-kluster

Översikt över OpenTelemetry-slutpunkt

Med OpenTelemetry-slutpunkter kan du exportera telemetridata från Azure IoT Operations-dataflöden till OpenTelemetry-insamlare med hjälp av OpenTelemetry Protocol (OTLP). På så sätt kan du integrera enhets- och systemtelemetri i din befintliga observerbarhetsinfrastruktur.

Vanliga scenarier

  • Enhetsdiagnostik: Exportera temperatur, tryck och andra sensoravläsningar som mått för att övervaka enhetens hälsa
  • Fabriksövervakning: Skicka telemetri för produktionslinjen till Grafana-instrumentpaneler för driftssynlighet
  • Systemobservabilitet: Vidarebefordra programloggar och mått till Azure Monitor för centraliserad övervakning
  • Anpassade mått: Lägg till kontextuella attribut som fabriks-ID eller plats till mått för bättre filtrering och analys

Krav för dataformat

OpenTelemetry-slutpunkter kräver att data överensstämmer med ett specifikt JSON-schema med antingen en metrics matris, en logs matris eller båda. Meddelanden som inte överensstämmer med det här schemat tas bort och bekräftas för att förhindra meddelandeförlust.

JSON-nyttolasten måste använda den här strukturen på den översta nivån:

{
  "metrics": [ /* array of metric objects */ ],
  "logs": [ /* array of log objects */ ]
}

Minst en av metrics eller logs måste finnas.

Alla inkommande meddelanden verifieras mot det obligatoriska schemat. Meddelanden som misslyckas med valideringen tas bort, bekräftas tillbaka till asynkron meddelandekö och loggas för felsökning. Vanliga valideringsfel är saknade obligatoriska fält, ogiltiga datatyper, måtttyper som inte stöds eller loggnivåer och felaktiga tidsstämplar. Om MQTT-meddelanden innehåller tidsstämplar för förfallotid filtreras utgångna meddelanden ut före bearbetning.

Måttformat

Varje måttobjekt i matrisen metrics måste innehålla följande fält:

Obligatoriska fält:

  • name (sträng): Måttnamnet
  • type (sträng): Måtttypen (se måtttyper som stöds)
  • value (tal): Måttets numeriska värde

Valfria fält:

  • description (sträng): Beskrivning av måttet som kan läsas av människa
  • timestamp (tal): Unix epoktidsstämpel i nanosekunder när måttet registrerades
  • attributes (matris): Nyckel/värde-par för måttetiketter och filtrering
{
  "metrics": [
    {
      "name": "temperature",
      "description": "The temperature reading from sensor",
      "type": "f64_gauge",
      "value": 72.5,
      "timestamp": 1754851200000000000,
      "attributes": [
        {
          "key": "factoryId",
          "value": "factory1"
        },
        {
          "key": "location",
          "value": "warehouse"
        }
      ]
    }
  ]
}

Varje attribut i matrisen attributes måste ha:

  • key (sträng): Attributnamnet
  • value (sträng): Attributvärdet (måste vara en sträng)

Loggformat

Varje loggobjekt i matrisen logs måste innehålla följande fält:

Obligatoriska fält:

Valfria fält:

  • timestamp (tal): Unix epoktidsstämpel i nanosekunder när loggen registrerades
  • attributes (matris): Nyckel/värde-par för loggkontext och filtrering
{
  "logs": [
    {
      "value": "Device temperature sensor initialized",
      "level": "info",
      "timestamp": 1754851200000000000,
      "attributes": [
        {
          "key": "deviceId",
          "value": "sensor001"
        },
        {
          "key": "component",
          "value": "temperature-sensor"
        }
      ]
    }
  ]
}

Varje attribut i matrisen attributes måste ha:

  • key (sträng): Attributnamnet
  • value (sträng): Attributvärdet (måste vara en sträng)

Måtttyper som stöds

Följande OpenTelemetry-måtttyper stöds:

  • Räknare: u64_counter, f64_counter – Monotont ökande värden
  • Upp-/nedräknare: i64_up_down_counter, f64_up_down_counter – Värden som kan öka eller minska
  • Mätare: u64_gauge, i64_gauge, f64_gauge – Punkt-i-tid-värden
  • Histogram: f64_histogram, u64_histogram – Fördelning av värden

Loggnivåer som stöds

Följande loggnivåer stöds:

  • trace
  • debug
  • info
  • warn
  • error
  • fatal

Skapa OpenTelemetry-slutpunkt

Du kan skapa en OpenTelemetry-dataflödesslutpunkt med hjälp av driftupplevelsen, Bicep eller Kubernetes.

  1. Om du vill skapa ett OpenTelemetry-dataflöde i driftmiljön går du till dataflödesslutpunkterna.

  2. På sidan dataflödesslutpunkter identifierar du Open Telemetry och väljer + Ny.

    Skärmbild av gränssnittet för driftupplevelse som visar alternativet för att skapa en ny OpenTelemetry-slutpunkt

  3. I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri väljer du fliken Grundläggande konfiguration och anger följande information:

    • Namn: Ett unikt namn för slutpunkten.
    • Värd: Slutpunkten för OpenTelemetry-kollektorn i formatet<host>:<port>, till exempel otel-collector.monitoring.svc.cluster.local:4317.
    • Autentiseringsmetod: Välj någon av följande autentiseringsmetoder:
      • Kubernetes-tjänstkontotoken: Använder Kubernetes-tjänstkontotoken för att autentisera med OpenTelemetry-insamlaren. Ange målgruppsvärdet för konfigurationen av OpenTelemetry-insamlaren. Mer information finns i Tjänstkontotoken (SAT).
      • Anonym: Används när OpenTelemetry-insamlaren inte kräver autentisering.
      • X509-certifikat: Använder klientcertifikat för ömsesidig TLS-autentisering. Ange namnet på en Kubernetes-hemlighet som innehåller ditt klientcertifikat. Mer information finns i X.509-certifikat .

    Skärmbild av gränssnittet för driftupplevelse som visar fliken Grundläggande i skapa en ny OpenTelemetry-slutpunkt.

  4. Välj fliken Avancerad konfiguration och ange följande information:

    • Svarstid för batchbearbetning (i sekunder): Maximal tid att vänta innan en batch skickas. Standardvärdet är 5 sekunder.
    • Antal meddelanden: Maximalt antal meddelanden i en batch. Standardvärdet är 100000 meddelanden.
    • TLS-läge: Välj något av följande TLS-lägen:
      • Aktiverad: Aktiverar TLS för säker kommunikation med OpenTelemetry-insamlaren. Ange namnet på en Kubernetes ConfigMap som innehåller ditt betrodda CA-certifikat.
      • Inaktiverad: Inaktiverar TLS.
    • ConfigMap-namn för betrodd CA-certifikat: Namnet på en Kubernetes ConfigMap som innehåller ditt betrodda CA-certifikat.

    Skärmbild av gränssnittet för driftupplevelse som visar fliken Avancerat i skapa en ny OpenTelemetry-slutpunkt.

  5. Välj Använd för att skapa OpenTelemetry-slutpunkten.

Konfigurationsalternativ

I det här avsnittet beskrivs konfigurationsalternativ för OpenTelemetry-dataflödesslutpunkter.

värd

Egenskapen host anger url:en för OpenTelemetry-insamlarens slutpunkt. Inkludera protokollet (http:// eller https://) och portnumret.

Exempel:

  • https://otel-collector.monitoring.svc.cluster.local:4317
  • http://localhost:4317
  • https://otel-collector:4317

Autentisering

OpenTelemetry-slutpunkter stöder flera autentiseringsmetoder för att ansluta säkert till insamlare.

Tjänstkontotoken (SAT)

Autentisering med tjänstkontotoken (SAT) använder Kubernetes-tjänstkontotoken för att autentisera med OpenTelemetry-insamlaren.

Ersätt <OTEL_AUDIENCE> med målgruppsvärdet för konfigurationen av OpenTelemetry-insamlaren. Det här värdet måste matcha den förväntade målgruppen på insamlaren.

  1. I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri går du till fliken Grundläggande konfiguration och väljer Kubernetes-tjänstkontotoken som autentiseringsmetod.

  2. Ange värdet för tjänstens målgrupp för konfigurationen av OpenTelemetry-insamlaren.

    Skärmbild av gränssnittet för driftupplevelse som visar valet av autentiseringsmetod i skapa en ny OpenTelemetry-slutpunkt.

Viktigt!

Du kan bara välja autentiseringsmetod när du skapar en ny OpenTelemetry-dataflödesslutpunkt. Du kan inte ändra autentiseringsmetoden när dataflödesslutpunkten OpenTelemetry har skapats. Om du vill ändra autentiseringsmetoden för ett befintligt dataflöde tar du bort det ursprungliga dataflödet och skapar ett nytt med den nya autentiseringsmetoden.

X.509-certifikat

X.509-certifikatautentisering använder klientcertifikat för ömsesidig TLS-autentisering.

  1. I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri går du till fliken Grundläggande konfiguration och väljer X509-certifikat som autentiseringsmetod.

  2. Ange följande information från Azure Key Vault:

    • Synkroniserat hemligt namn: Namnet på en Kubernetes-hemlighet som innehåller ditt klientcertifikat.
    • X509-klientcertifikat: Klientcertifikatet.
    • X509-klientnyckel: Den privata nyckeln för klientcertifikatet.
    • X509 mellanliggande certifikat: Mellanliggande certifikat för klientcertifikatkedjan.

    Skärmbild av gränssnittet för driftupplevelse som visar valet av X509-autentiseringsmetod i skapa en ny OpenTelemetry-slutpunkt.

Innan du använder X.509-certifikatautentisering skapar du en Kubernetes-hemlighet med ditt klientcertifikat:

kubectl create secret tls <X509_SECRET_NAME> \
  --cert=client.crt \
  --key=client.key \
  -n azure-iot-operations

Anonym autentisering

Anonym autentisering används när OpenTelemetry-insamlaren inte kräver autentisering.

I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri går du till fliken Grundläggande konfiguration och väljer Anonym som autentiseringsmetod. Inga ytterligare inställningar krävs.

TLS-konfiguration

Konfigurera TLS-inställningar (Transport Layer Security) för säker kommunikation med OpenTelemetry-insamlaren.

Aktiverad TLS med betrodd ca

  1. I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri går du till fliken Avancerad konfiguration och väljer Aktiverad som TLS-läge.
  2. Ange i Trusted CA certificate config map name namnet på en Kubernetes ConfigMap som innehåller ditt betrodda CA-certifikat.

Inaktiverad TLS

I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri går du till fliken Avancerad konfiguration och väljer Inaktiverad som TLS-läge.

Batchhantering

Konfigurera batchinställningar för att optimera prestanda genom att gruppera flera meddelanden innan du skickar till insamlaren.

I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri , under fliken Avancerad konfiguration, anger du följande batchinställningar:

  • Svarstid för batchbearbetning (i sekunder): Maximal tid att vänta innan en batch skickas. Standardvärdet är 5 sekunder.
  • Antal meddelanden: Maximalt antal meddelanden i en batch. Standardvärdet är 100000 meddelanden.

Felhantering och felsökning

Meddelandeverifiering

OpenTelemetry-slutpunkter validerar inkommande meddelanden mot det obligatoriska schemat. Ogiltiga meddelanden tas bort och bekräftas för att förhindra meddelandeförlust i dataflödespipelinen.

Vanliga valideringsfel:

  • Obligatoriska fält saknas (name, , typevalueför mått; value, level för loggar)
  • Ogiltiga måtttyper eller loggnivåer
  • Icke-numeriska värden i måttfält value
  • Felformade tidsstämpelvärden

Leveransgarantier

OpenTelemetry-slutpunkten ger leveransgarantier till själva insamlaren, men inte till överordnade tjänster som insamlaren kan vidarebefordra data till. När data når insamlaren har Azure IoT Operations inte insyn i om de når det slutliga målet.