OpenTelemetry veri akışı uç noktalarını yapılandırma (önizleme)

OpenTelemetry (OTEL) veri akışı uç noktaları, ölçümleri ve günlükleri OpenTelemetry toplayıcılarına gönderir ve bu da verileri Grafana panoları ve Azure İzleyici gibi gözlemlenebilirlik platformlarına iletebilir. Uç nokta ayarlarını, kimlik doğrulamasını, Aktarım Katmanı Güvenliği'ni (TLS) ve toplu işlem seçeneklerini yapılandırabilirsiniz.

Bu makalede, MQTT aracınızdan OpenTelemetry toplayıcısına varlık verilerini dışarı aktarmak için OpenTelemetry veri akışı uç noktasının nasıl oluşturulacağı ve yapılandırıldığı açıklanmaktadır. Makalede, MQTT aracısından dış OTEL toplayıcılarına varlık verilerini yönlendiren OTEL veri akışı uç noktası açıklanmaktadır. Telemetri verilerini Grafana veya Azure İzleyici gibi platformlara yönlendirmek istiyorsanız OpenTelemetry veri akışı uç noktasını kullanarak da gözlemlenebilirlik uç noktalarına varlık verileri gönderebilirsiniz.

Bu özellik, Azure IoT İşlemleri bileşeni sistem durumu ölçümlerini veya günlüklerini toplamak için değil, cihaz ve varlık verilerini yönlendirmeye yöneliktir. Küme gözlemlenebilirliği (MQTT aracısı, veri akışı bileşenleri vb. durumunu izleme) için bkz. Gözlemlenebilirliği ve izlemeyi yapılandırma.

Önkoşullar

  • Geliştirme makinenizde yüklü Azure CLI sürüm 2.62.0 veya üzeri. Sürümünüzü denetlemek ve az --version gerekirse güncelleştirmek için kullanınaz upgrade. Daha fazla bilgi için bkz. Azure CLI yükleme.

  • Azure CLI için Azure IoT İşlemleri uzantısı. Uzantıyı eklemek veya en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

    az extension add --upgrade --name azure-iot-ops
    
  • Azure IoT İşlemleri kümenizden dağıtılan ve erişilebilen bir OpenTelemetry toplayıcısı.

  • Azure IoT İşlemleri kümenize yönetim erişimi.

Terminoloji

Süre Definition
OTEL veri akışı uç noktası OTLP kullanarak varlık telemetrisini OpenTelemetry (OTEL) toplayıcısına aktaran yalnızca hedef veri akışı uç noktası. Kaynak olarak kullanılamaz.
OTLP OpenTelemetry Protokolü (OTLP), telemetri verilerini bir OpenTelemetry Toplayıcısı'na göndermek için varsayılan protokoldür.
OTEL Toplayıcısı (küme gözlemlenebilirliği için) Küme sağlığı izleme için Azure IoT Operasyonları bileşeni ölçümlerini ve günlüklerini toplayan ayrı bir üçüncü taraf bir bileşen. Daha fazla bilgi için bkz . Gözlemlenebilirliği ve izlemeyi yapılandırma.
OpenTelemetry Veri Aktarıcısı Gözlemlenebilirlik verilerini hedef arka ucuna gönderen bileşen.

OpenTelemetry uç noktasına genel bakış

OpenTelemetry uç noktalarını kullanarak, OpenTelemetry Protocol (OTLP) kullanarak cihaz ve varlık telemetri verilerini Azure IoT İşlemleri veri akışlarından OpenTelemetry toplayıcılarına aktarabilirsiniz. Bu özelliği kullanarak cihaz ve sistem telemetrisini mevcut gözlemlenebilirlik altyapınızla tümleştirebilirsiniz.

Azure IoT İşlemleri'nde OpenTelemetry şunları yapmanızı sağlar:

  • Otel ölçümleri olarak varlık telemetrisini dışarı aktarın: gözlemlenebilirlik platformlarına sensör okumaları, üretim verileri veya ekipman durumu gönderin.
  • Cihazları değiştirmeden verileri yönlendirme: MQTT iletilerini veri akışı katmanında OTEL biçimine dönüştürün.
  • Telemetri verilerini toplayın ve tercih ettiğiniz gözlemlenebilirlik platformuna aktarın.
  • Mevcut gözlemlenebilirlik işlem hatlarıyla tümleştirme: OTLP uyumlu herhangi bir arka uca (Grafana, Prometheus, Azure İzleyici ve Datadog) veri gönderin.

OTEL veri akışı uç noktaları, Azure IoT İşlemleri birinci sınıf uç noktalardır. Bunlar İşlem deneyimi portalındaki kullanılabilir veri akışı uç noktaları listesinde görünür ve modern veri akışı grafları yapılandırıldığında seçilebilir. Bu yaklaşım, tutarlı bir yapılandırma deneyimi sağlarken telemetriyi OTEL uyumlu arka uçlara yönlendirmeyi kolaylaştırır.

Yaygın senaryolar

Azure IoT İşlemleri'nde OpenTelemetry uç noktalarını kullanmaya yönelik yaygın senaryolar şunlardır:

  • Cihaz tanılama: Cihaz durumunu izlemek için sıcaklık, basınç ve diğer algılayıcı okumalarını ölçüm olarak dışarı aktarın.
  • Fabrika izleme: Operasyonel görünürlük için Grafana panolarına üretim hattı telemetrisi gönderin.
  • Sistem gözlemlenebilirliği: Merkezi izleme için uygulama günlüklerini ve ölçümlerini Azure İzleyici'ye iletin.
  • Özel ölçümler: Daha iyi filtreleme ve analiz için ölçümlere fabrika kimliği veya konum gibi bağlamsal öznitelikler ekleyin.

Veri biçimi gereksinimleri

OpenTelemetry uç noktaları, verilerin metrics dizisi, logs dizisi veya her ikisine sahip olarak belirli bir JSON şemasına uymasını gerektirir. Sistem, ileti kaybını önlemek için bu şemaya uymayan iletileri bırakır ve onaylar.

JSON yükü şu üst düzey yapıyı kullanmalıdır:

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

En az bir metrics veya logs değer eklemeniz gerekir.

Sistem, tüm gelen iletileri gerekli şemaya göre doğrular. Doğrulama başarısız olan iletileri aracıya geri bildirir ve görmezden gelir, ayrıca hataları sorun giderme amacıyla günlüğe kaydeder. Yaygın doğrulama hataları arasında eksik gerekli alanlar, geçersiz veri türleri, desteklenmeyen ölçüm türleri veya günlük düzeyleri ve hatalı biçimlendirilmiş zaman damgaları bulunur. MQTT iletileri süre sonu zaman damgaları içeriyorsa, sistem işlemeden önce süresi dolan iletileri filtreler.

Ölçüm biçimi

Dizideki metrics her ölçüm nesnesi aşağıdaki alanlara sahip olmalıdır:

Gerekli alanlar:

İsteğe bağlı alanlar:

  • description (dize): Ölçümün insan tarafından okunabilen açıklaması.
  • timestamp (sayı): Ölçümün kaydedildiği zamanın nanosaniye cinsinden Unix zaman dönemi zaman damgası.
  • attributes (dizi): Ölçüm etiketleme ve filtreleme için anahtar-değer çiftleri.
{
  "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"
        }
      ]
    }
  ]
}

Dizideki her öznitelik aşağıdakilere attributes sahip olmalıdır:

  • key (dize): Öznitelik adı.
  • value (dize): Öznitelik değeri (dize olmalıdır).

Günlükler formatı

Her logs dizisindeki log nesnesi aşağıdaki alanları içermelidir.

Gerekli alanlar:

İsteğe bağlı alanlar:

  • timestamp (sayı): Günlük kaydedildiğinde nanosaniye olarak Unix dönem zaman damgası.
  • attributes (dizi): Günlük bağlamı ve filtreleme için anahtar-değer çiftleri.
{
  "logs": [
    {
      "value": "Device temperature sensor initialized",
      "level": "info",
      "timestamp": 1754851200000000000,
      "attributes": [
        {
          "key": "deviceId",
          "value": "sensor001"
        },
        {
          "key": "component",
          "value": "temperature-sensor"
        }
      ]
    }
  ]
}

Dizideki her öznitelik aşağıdakilere attributes sahip olmalıdır:

  • key (dize): Öznitelik adı.
  • value (dize): Öznitelik değeri (dize olmalıdır).

Desteklenen ölçüm türleri

Aşağıdaki OpenTelemetry ölçüm türleri desteklenir:

  • Sayaçlar: u64_counter, f64_counter - Monoton olarak artan değerler.
  • Yukarı/aşağı sayaçlar: i64_up_down_counter, f64_up_down_counter - Artırabilen veya azaltabilen değerler.
  • Ölçerler: u64_gauge, i64_gauge, f64_gauge - Anlık değerler.
  • Histogramlar: f64_histogram, u64_histogram - Değerlerin dağılımı.

Desteklenen günlük düzeyleri

Aşağıdaki günlük düzeyleri desteklenir:

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

OpenTelemetry uç noktası oluşturun

OpenTelemetry veri akışı uç noktasını IoT Operasyonları arayüzü, Bicep veya Kubernetes kullanarak oluşturabilirsiniz.

Veri akışı uç noktası, Azure IoT İşlemleri deneyimindeki kullanılabilir veri akışı uç noktaları listesinde görünür. Bu ekleme, telemetri işlem hatlarını yapılandırırken OpenTelemetry uç noktasını kolayca tanımlayıp seçebilmenizi sağlar ve izleme araçları arasında daha iyi tümleştirme ve görünürlük sağlar. OTEL uç noktasını diğer veri akışı seçenekleriyle birlikte kullanarak telemetri verilerini yönlendirebilir ve varlıklar arasında tutarlı gözlemlenebilirlik standartlarını daha verimli bir şekilde koruyabilirsiniz.

  1. IoT İşlemleri deneyiminde openTelemetry veri akışı uç noktası oluşturmak için Veri akışı uç noktaları'nı seçin.

  2. Veri akışı uç noktaları sayfasında Telemetriyi Aç'ı ve ardından + Yeni'yi seçin.

    Uç noktalar ekranını gösteren ekran görüntüsü.

  3. Yeni veri akışı uç noktası oluştur: Telemetriyi Aç bölmesinde Temel yapılandırma sekmesini seçin ve aşağıdaki bilgileri girin:

    • Ad: Uç nokta için benzersiz bir ad.
    • Ana bilgisayar: <host>:<port> biçiminde OpenTelemetry toplayıcı uç noktası. Örneğin, otel-collector.monitoring.svc.cluster.local:4317.
    • Kimlik doğrulama yöntemi: Aşağıdaki kimlik doğrulama yöntemlerinden birini seçin:
      • Kubernetes hizmet hesabı belirteci: OpenTelemetry toplayıcısıyla kimlik doğrulaması yapmak için Kubernetes hizmet hesabı belirteçlerini kullanır. OpenTelemetry toplayıcı yapılandırmanız için hedef kitle değerini girin. Daha fazla bilgi için bkz. Hizmet Hesabı Belirteci (SAT).
      • Anonim: OpenTelemetry toplayıcısı kimlik doğrulaması gerektirmediğinde kullanın.
      • X509 sertifikası: Karşılıklı TLS kimlik doğrulaması için istemci sertifikalarını kullanır. İstemci sertifikanızı içeren kubernetes gizli dizisinin adını girin. Daha fazla bilgi için bkz. X.509 sertifikası.

    Yeni bir OpenTelemetry uç noktası oluşturma işleminin temel sekmesini gösteren işlem deneyimi arabiriminin ekran görüntüsü.

  4. Gelişmiş yapılandırma sekmesini seçin ve aşağıdaki bilgileri girin:

    • Toplu işlem gecikme süresi (saniye cinsinden):: Toplu işlem göndermeden önce beklenmesi gereken en uzun süre. Varsayılan değer 5 saniyedir.
    • İleti sayısı: Toplu işlemdeki en fazla ileti sayısı. Varsayılan değer 100.000 iletidir.
    • TLS modu: Aşağıdaki TLS modlarından birini seçin:
      • Etkin: OpenTelemetry toplayıcısıyla güvenli iletişim için TLS'yi etkinleştirin. Güvenilen CA sertifikanızı içeren kubernetes ConfigMap adını girin.
      • Devre dışı: TLS'yi devre dışı bırakır.
    • Güvenilen CA sertifikası ConfigMap adı: Güvenilen CA sertifikanızı içeren kubernetes ConfigMap adı.

    Yeni bir OpenTelemetry uç noktası oluşturma işleminin gelişmiş sekmesini gösteren işlem deneyimi arabiriminin ekran görüntüsü.

  5. OpenTelemetry uç noktasını oluşturmak için Uygula'yı seçin.

Yapılandırma seçenekleri

Bu bölümde OpenTelemetry veri akışı uç noktaları için yapılandırma seçenekleri açıklanmaktadır.

Host

Özelliğinde OpenTelemetry toplayıcı uç noktası URL'sini host belirtin. Protokolü (http:// veya https://) ve bağlantı noktası numarasını ekleyin.

Examples:

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

Authentication

OpenTelemetry uç noktaları, toplayıcılara güvenli bir şekilde bağlanmak için çeşitli kimlik doğrulama yöntemlerini destekler.

Hizmet Hesabı Belirteci (SAT)

Hizmet hesabı belirteci (SAT) kimlik doğrulaması, OpenTelemetry toplayıcısıyla kimlik doğrulaması yapmak için Kubernetes hizmet hesabı belirteçlerini kullanır.

<OTEL_AUDIENCE> ögesini OpenTelemetry toplayıcı yapılandırmanız için izleyici değeriyle değiştirin. Bu değer toplayıcıda beklenen hedef kitleyle eşleşmelidir.

  1. Yeni veri akışı uç noktası oluştur: Telemetriyi Aç bölmesinde, Temel yapılandırma sekmesinin altında kimlik doğrulama yöntemi olarak Kubernetes hizmet hesabı belirtecini seçin.

  2. OpenTelemetry toplayıcı yapılandırmanız için Hizmet hedef kitlesi değerini sağlayın.

    Yeni bir OpenTelemetry uç noktası oluşturma işlemindeki kimlik doğrulama yöntemi seçimini gösteren işlem deneyimi arabiriminin ekran görüntüsü.

Önemli

Kimlik doğrulama yöntemini yalnızca yeni bir OpenTelemetry veri akışı uç noktası oluştururken seçebilirsiniz. OpenTelemetry veri akışı uç noktası oluşturulduktan sonra kimlik doğrulama yöntemini değiştiremezsiniz. Mevcut bir veri akışının kimlik doğrulama yöntemini değiştirmek için özgün veri akışını silin ve yeni kimlik doğrulama yöntemiyle yeni bir tane oluşturun.

X.509 certificate

X.509 sertifika kimlik doğrulaması, karşılıklı TLS kimlik doğrulaması için istemci sertifikalarını kullanır.

  1. Yeni veri akışı uç noktası oluştur: Telemetriyi aç bölümünde, Temel yapılandırma sekmesinin altında kimlik doğrulama yöntemi olarak X509 sertifikası'nı seçin.

  2. Azure Key Vault'tan aşağıdaki bilgileri girin:

    • Senkronize edilmiş gizli adı: İstemci sertifikanızı içeren Kubernetes gizlisinin adı.
    • X509 istemci sertifikası: İstemci sertifikası.
    • X509 istemci anahtarı: İstemci sertifikasının özel anahtarı.
    • X509 ara sertifikaları: İstemci sertifika zinciri için ara sertifikalar.

    Yeni bir OpenTelemetry uç noktası oluşturma bölümünde X509 kimlik doğrulama yöntemi seçimini gösteren işlem deneyimi arabiriminin ekran görüntüsü.

X.509 sertifika kimlik doğrulamasını kullanmadan önce, istemci sertifikanızla bir Kubernetes sırrı oluşturun.

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

Anonim kimlik doğrulama

OpenTelemetry toplayıcısı kimlik doğrulaması gerektirmediğinde anonim kimlik doğrulaması kullanın.

Yeni veri akışı uç noktası oluştur: Telemetriyi Aç bölmesinde, Temel yapılandırma sekmesinin altında kimlik doğrulama yöntemi olarak Anonim'i seçin. Ek ayar gerekmez.

TLS yapılandırması

OpenTelemetry toplayıcısı ile güvenli iletişim için Aktarım Katmanı Güvenliği (TLS) ayarlarını yapılandırın.

Güvenilir CA ile TLS etkinleştirildi

  1. Yeni veri akışı uç noktası oluştur: Telemetriyi aç bölümünde, Gelişmiş yapılandırma sekmesinin altında TLS modu olarak Etkin'i seçin.
  2. Güvenilen CA sertifikası yapılandırma eşleme adı alanına, güvenilen CA sertifikanızı içeren kubernetes ConfigMap adını girin.

Devre Dışı TLS

Yeni veri akışı uç noktası oluştur: Telemetri'yi açın bölümünde, Gelişmiş yapılandırma sekmesinin altında TLS modu olarak Devre Dışı'nı seçin.

Gruplama

Birden çok iletiyi toplayıcıya göndermeden önce gruplandırarak performansı iyileştirmek için toplu işlem ayarlarını yapılandırın.

Yeni veri akışı uç noktası oluştur: Telemetriyi Aç bölmesinde, Gelişmiş yapılandırma sekmesinin altında aşağıdaki toplu işlem ayarlarını girin:

  • Toplu işlem gecikme süresi (saniye cinsinden):: Toplu işlem göndermeden önce beklenmesi gereken en uzun süre. Varsayılan değer 5 saniyedir.
  • İleti sayısı: Toplu işlemdeki en fazla ileti sayısı. Varsayılan değer 100.000 iletidir.

Veri akışı grafiklerinde OpenTelemetry uç noktalarını kullanma

Modern veri akışı grafiklerinde hedef olarak OTEL veri akışı uç noktalarını seçin. Bu özelliği kullanarak ölçümleri ve günlükleri doğrudan OTEL uyumlu arka uçlara yönlendirebilirsiniz. OTEL uç noktaları klasik veri akışlarında hedef olarak kullanılamaz. Bu kısıtlama, OTEL uç noktalarını desteklemeyen arka uçlarla uyumluluk sağlar.

Veri akışı grafiklerini gösteren ekran görüntüsü.

Uç nokta hedef özelliklerini gösteren ekran görüntüsü.

İzlenecek yol: OTEL veri akışı uç noktasını yapılandırma

Bu bölümde, Azure IoT İşlemleri'de BIR OTEL veri akışı uç noktası oluşturmak ve yapılandırmak için adım adım izlenecek yol sağlanır.

1. Adım: Yeni bir OTEL veri akışı uç noktası oluşturma

Yeni bir veri akışı uç noktası oluşturduğunuzda, uç nokta türü olarak OpenTelemetry (OTEL) öğesini seçin. Konağın http:// ön ekiyle başladığından emin olun.

Yeni uç nokta yapılandırmasını gösteren ekran görüntüsü.

Gözlemlenebilirlik kaynaklarını dağıtma ve günlükleri ayarlama'daki adımları izleyin.

2. Adım: OTEL uç noktasını kullanarak veri akışı grafı oluşturma

Varlık kaynak olarak bir veri akışı oluşturun. OTEL'e göndermek istediğiniz ölçümün varlıktaki bir veri noktası olduğundan emin olun. Aşağıdaki örnek bir sıcaklık değeri kullanır. OTEL veri akışı grafiğini seçin:

Veri akışı grafiğini gösteren işlem deneyiminin ekran görüntüsü.

Veri akışı grafiğindeki kaynak düğümün ekran görüntüsü.

3. Adım: OTEL uç noktasını hedef olarak yapılandırma

Kaynak düğümü seçin ve ayrıntıları girin. Bu örnekte, OTEL uç noktasına gönderilecek veri noktası olarak sıcaklık ölçümünü seçersiniz.

Ayrıntılar ekranını gösteren ekran görüntüsü.

Hedef olarak OTEL'i seçin ve gerekli ayrıntıları girin.

Otel'i hedef olarak gösteren ekran görüntüsü.

Hedef ayrıntılarını gösteren ekran görüntüsü.

Hata işleme ve sorun giderme

Bu bölümde OpenTelemetry uç noktaları için hata işleme ve sorun giderme bilgileri açıklanmaktadır.

İleti doğrulama

OpenTelemetry uç noktaları, gelen iletileri gerekli şemaya göre doğrular. Sistem geçersiz iletileri bırakır ve veri akışı işlem hattında ileti kaybını önlemek için bunları kabul eder.

Yaygın doğrulama hataları şunlardır:

  • Eksik olan zorunlu alanlar (name, type, value ölçümler için; value, level günlükler için)
  • Geçersiz ölçüm türleri veya günlük düzeyleri
  • Ölçüm value alanlarında sayısal olmayan değerler
  • Yanlış biçimlendirilmiş zaman damgası değerleri

Teslimat garantileri

OpenTelemetry uç noktası, toplayıcının kendisine teslim garantileri sağlar, ancak toplayıcının verileri iletebileceği yukarı akış hizmetlerine sağlamaz. Veriler toplayıcıya ulaştıktan sonra Azure IoT İşlemleri son hedefe ulaşıp ulaşmadığını göremez.