Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
- 
              value(sträng): Logga meddelandeinnehåll
- 
              level(sträng): Loggnivå (se loggnivåer som stöds)
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.
- Om du vill skapa ett OpenTelemetry-dataflöde i driftmiljön går du till dataflödesslutpunkterna. 
- På sidan dataflödesslutpunkter identifierar du Open Telemetry och väljer + Ny.   
- 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 exempelotel-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 .
 
   
- 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.
   
- 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.
- 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. 
- Ange värdet för tjänstens målgrupp för konfigurationen av OpenTelemetry-insamlaren.   
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.
- I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri går du till fliken Grundläggande konfiguration och väljer X509-certifikat som autentiseringsmetod. 
- 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.
   
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
- I fönstret Skapa ny dataflödesslutpunkt: Öppna telemetri går du till fliken Avancerad konfiguration och väljer Aktiverad som TLS-läge.
- 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,levelfö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.