Memantau aplikasi AKS dengan OTLP dan Azure Monitor (Pratinjau)

OpenTelemetry menyediakan cara standar untuk memancarkan jejak, log, dan metrik. Azure Monitor menambahkan dukungan Preview untuk aplikasi pemantauan yang berjalan pada Azure Kubernetes Service (AKS) dengan menggunakan Protokol OpenTelemetry (OTLP) untuk instrumentasi dan pengumpulan data.

Penting

Fitur ini adalah pratinjau. Fitur pratinjau disediakan tanpa perjanjian tingkat layanan dan tidak disarankan untuk beban kerja produksi.

Untuk informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Kemampuan utama

  • Aktifkan pemantauan tingkat kluster untuk menginstal komponen Azure Monitor pada kluster AKS.
  • Buat sumber daya Application Insights dengan penyerapan OTLP diaktifkan.
  • Siapkan aplikasi di dalam namespace atau cakupan penyebaran dengan menggunakan:
    • Autoinstrumentation dengan distribusi OpenTelemetry Azure Monitor.
    • Konfigurasi otomatis untuk aplikasi yang sudah diinstrumentasikan dengan OpenTelemetry Software Development Kits (SDK) sumber terbuka.
      • Konfigurasi otomatis hanya berlaku untuk aplikasi yang sudah diinstrumentasikan dengan OpenTelemetry. Saat Anda memilih konfigurasi otomatis, Azure Monitor tidak menambahkan instrumentasi ke aplikasi Anda. Sebaliknya, ini mengatur variabel lingkungan di tingkat platform sehingga SDK OpenTelemetry yang ada mengekspor telemetri ke Application Insights. Anda bertanggung jawab untuk melengkapi aplikasi (misalnya, dengan menggunakan SDK OpenTelemetry atau anotasi) sebelum mengaktifkan konfigurasi otomatis.

Telemetri mengalir ke Application Insights, tempat Anda menganalisis performa aplikasi dalam konteks dengan Container Insights.

Penting

Kumpulan simpul yang tidak didukung: Windows (arsitektur apa pun).

Peran dan tanggung jawab

Gunakan panduan berikut untuk memisahkan tanggung jawab platform (kluster) dari tanggung jawab pengembangan aplikasi (beban kerja). Cluster administrator mengacu pada tim yang bertanggung jawab atas kluster AKS dan Azure Monitor alur telemetri. Pengembang mengacu pada tim yang memiliki kode aplikasi dan konfigurasi telemetrinya.

Tanggung jawab administrator kluster Tanggung jawab pengembang
Aktifkan dan pertahankan integrasi pemantauan pada tingkat kluster (pengaturan/tambahan Monitor AKS). Kode aplikasi instrumen menggunakan SDK OpenTelemetry (atau mengadopsi instrumentasi otomatis yang didukung jika berlaku).
Membuat, mengonfigurasi, dan mengatur sumber daya bersama Azure yang digunakan untuk akuisisi dan penyimpanan (ruang kerja Application Insights, ruang kerja Azure Monitor, ruang kerja Log Analytics, DCR/DCE jika berlaku). Konfigurasikan telemetri aplikasi (atribut sumber daya, pengambilan sampel, korelasi log, dan pengaturan pengekspor) dan validasi kebenaran sinyal.
Mengelola identitas dan izin yang diperlukan untuk ekspor telemetri (identitas terkelola, pendaftaran aplikasi Microsoft Entra/perwakilan layanan, penetapan peran RBAC). Menyematkan beban kerja pada cakupan penyebaran atau namespace (label/penanda/sumber daya konfigurasi) mengikuti pola yang didukung oleh platform.
Tentukan dan terapkan tata kelola kluster (namespace, kebijakan jaringan, kontrol penerimaan, kuota/batas) yang dapat memengaruhi pengumpulan telemetri. Lakukan mulai ulang peluncuran aplikasi saat diperlukan untuk menerapkan perubahan pemantauan pada pod/penyebaran.
Mengoperasikan dan memecahkan masalah komponen platform (Azure Monitor Agent/Managed Prometheus/collector-collector yang diterapkan sebagai add-on), termasuk peningkatan dan rencana pengembalian. Mengatasi kesenjangan telemetri pada tingkat aplikasi (rentang/metrik/log yang hilang, atribut yang salah, kardinalitas tinggi, dan log yang terlalu detil) dan memperbaiki pada kode/konfigurasi.
Berikan konfigurasi dasar yang direkomendasikan yang didukung (port/titik akhir standar, ekspektasi temporalitas/agregasi yang diperlukan, eksportir/prosesor yang disetujui). Miliki SLO/pemberitahuan untuk aplikasi dan gunakan pengalaman Azure Monitor /Application Insights untuk menyelidiki regresi.

Di luar cakupan admin kluster: mengubah kode aplikasi, memilih pustaka, dan menentukan semantik telemetri tingkat bisnis.

Di luar cakupan untuk pengembang: memodifikasi add-on kluster, RBAC pada platform, topologi sumber daya pengambilan bersama, atau jaringan kluster.

Poin kolaborasi umum:

  • Setujui standar penamaan dan pelabelan (service.name, k8s.deployment.name, dan konvensi namespace) sehingga data dapat diquery dan dasbor berfungsi lintas tim.
  • Selaraskan pada pagar pembatas performa dan biaya (strategi pengambilan sampel, verbositas log, dan kardinalitas metrik) dan siapa yang mengubah apa ketika batas terlampaui.
  • Tentukan alur kerja dukungan untuk masalah telemetri (apa yang diperiksa pengembang terlebih dahulu vs. kapan harus dieskalasikan ke tim admin kluster).
  • Rencanakan perubahan bersama-sama ketika mereka menjangkau kedua lapisan (misalnya, mengalihkan metode penyerapan, mengubah ekspektasi titik akhir/temporalitas, atau memperkenalkan kolektor).

Prasyarat

  • Cluster AKS pada cloud publik Azure yang menjalankan setidaknya satu penerapan Kubernetes.
  • Azure CLI 2.78.0 atau yang lebih baru. Instal atau perbarui dengan menggunakan panduan di Install dokumentasi Azure CLI.
    Verifikasi versi:
    az version
    
  • Azure CLI ekstensi:
    az extension add --name aks-preview
    az extension update --name aks-preview
    

Nota

API pratinjau Azure Kubernetes Service (AKS) dirancang untuk memungkinkan Anda menguji dan memberikan umpan balik tentang fitur baru sebelum tersedia secara umum. Anda perlu menginstal ekstensi ini aks-preview sebelum dapat mendaftarkan bendera fitur AzureMonitorAppMonitoringPreview.

1. Daftarkan fitur pratinjau

Saat Anda mendaftarkan fitur pratinjau, aktifkan bendera fitur pada langganan tempat Anda membuat sumber daya Application Insights dan pada langganan yang menghosting kluster AKS.

  1. Masuk dan pilih langganan target:

    az login
    az account set --subscription "<subscription-name>"
    
  2. Daftarkan fitur dan penyedia pratinjau AKS:

    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. Daftarkan fitur dan penyedia pratinjau OTLP Application Insights:

    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. Siapkan kluster

  1. Pastikan kluster terhubung dengan metrik dan log Azure Monitor. Gunakan aktifkan pemantauan untuk kluster AKS di Azure Monitor (Application Insights belum diperlukan).
  2. Aktifkan dukungan untuk Autoinstrumentasi dan dukungan untuk pengumpulan data dari SDK OpenTelemetry yang netral vendor (Pratinjau), lalu pilih Tinjau dan aktifkan.

Jika sebelumnya Anda tidak melakukan onboarding kluster, Anda dapat mengaktifkan Prometheus Terkelola, Log Kontainer, dan pemantauan aplikasi secara bersamaan.

 Cuplikan layar halaman pengaturan Azure memperlihatkan aktifkan opsi aplikasi.

A cuplikan layar halaman tinjauan pengaturan Azure memperlihatkan aktifkan opsi aplikasi.

3. Buat sumber daya Application Insights dengan dukungan OTLP

Buat atau pilih sumber daya Application Insights yang mendukung OTLP dan menggunakan ruang kerja Terkelola.

  1. Di portal Azure, buat sumber daya Application Insights baru.
  2. Aktifkan Dukungan OTLP (Pratinjau).
  3. Atur Gunakan ruang kerja terkelola ke Ya.
    Cuplikan layar Buat sumber daya Application Insights dengan opsi aktifkan dipilih.

Penting

  • Gunakan ruang kerja Azure Monitor yang berbeda dari ruang kerja yang digunakan untuk metrik infrastruktur di langkah 2.
  • Ruang kerja terkelola membuat ruang kerja Azure Monitor yang terpisah untuk telemetri aplikasi Application Insights dengan menggunakan ruang kerja yang berbeda dari yang digunakan untuk metrik infrastruktur.

4. Onboard aplikasi ke Application Insights

Anda dapat mengintegrasikan semua penyebaran di namespace atau menargetkan penyebaran secara individu nanti.

4.1 Buka namespace

  1. Di sumber daya AKS, perluas sumber daya Kubernetes.
  2. Buka Namespace, lalu pilih namespace layanan yang menghosting beban kerja Anda.

Sebuah cuplikan layar dari daftar namespace Azure di bawah sumber daya Kubernetes.

4.2 Mengonfigurasi Pemantauan Aplikasi (Pratinjau)

Saat Anda mengaktifkan OTLP, Application Insights menambahkan dukungan untuk SDK OpenTelemetry yang bersifat sumber terbuka dan netral-vendor serta titik akhir OTLP, dan menyimpan metrik kinerja di ruang kerja Azure Monitor.

Jika Anda tidak mengaktifkan OTLP, Application Insights hanya menggunakan instrumen otomatis Azure Monitor dan ingesti klasik.

  1. Pilih Pemantauan Aplikasi (Pratinjau).
  2. Pilih sumber daya Application Insights dengan OTLP diaktifkan yang Anda buat sebelumnya di langkah 3. Jika Anda memilih atau membuat sumber daya Application Insights tanpa OTLP dengan menggunakan opsi Buat Baru , Anda tidak akan melihat opsi Jenis Instrumentasi di langkah berikutnya.
  3. Pilih Jenis Instrumentasi:
    • Instrumentasi yang dikonfigurasi pengguna untuk setiap penerapan
      • Konfigurasi otomatis menetapkan variabel lingkungan agar telemetri dari SDK yang ada diekspor ke Application Insights.
      • Setiap penyebaran harus sudah memiliki anotasi autoinstrumentasi atau instrumentasi manual. Untuk informasi selengkapnya, lihat Onboarding per penyebaran.
    • Instrumentasi otomatis Java untuk semua penyebaran guna injeksi otomatis distribusi OpenTelemetry Azure Monitor ke dalam aplikasi Java.
      • Semua penyebaran di namespace menggunakan Java autoinstrumentation secara default. Gunakan anotasi untuk mengubah bahasa atau mengecualikan penyebaran. Untuk informasi selengkapnya, lihat Instrumentasi otomatis dan Onboarding per penyebaran.
    • Node.js autoinstrumentasi untuk semua penyebaran untuk penyuntikan otomatis distribusi OpenTelemetry Azure Monitor ke dalam aplikasi Node.js.
      • Semua penyebaran di namespace menggunakan Node.js autoinstrumentation secara default. Gunakan anotasi untuk mengubah bahasa atau mengecualikan penyebaran. Untuk informasi selengkapnya, lihat Instrumentasi otomatis dan Onboarding per penyebaran.

    Nota

    Portal Azure hanya memungkinkan Anda menerapkan autoinstrumentasi ATAU konfigurasi otomatis ke satu namespace layanan. Jika Anda perlu menggunakan kedua opsi, lihat opsi pengenalan per-penyebaran.

  4. Biarkan Lakukan mulai ulang semua penyebaran peluncuran dalam keadaan tidak dicentang. Anda melakukan mulai ulang secara manual di langkah berikutnya.
  5. Pilih Konfigurasikan.
    Cuplikan layar panel konfigurasi untuk aplikasi dengan pilihan sumber daya dan bahasa.

4.3 Memulai ulang penyebaran untuk menerapkan perubahan

Mulai ulang penyebaran di namespace target dari Jalankan Perintah di portal atau melalui terminal Anda.

kubectl rollout restart deployment -n <your-namespace>

 Cuplikan layar perintah eksekusi Azure memperlihatkan perintah mulai ulang peluncuran.

4.4 Konfirmasi status berinstrumentasi

Kembali ke Pemantauan Aplikasi (Pratinjau) untuk ruang nama. Perluas Penggelaran di namespace ini dan konfirmasikan bahwa penggelaran menunjukkan status Berinstrumen.

Cuplikan layar daftar pengaturan aplikasi menunjukkan status diinstrumentasi.

Petunjuk / Saran

Setelah beberapa menit, telemetri muncul di sumber daya Application Insights yang terhubung.

Penting

Pengalaman Application Insights, termasuk dasbor dan kueri bawaan, mengharapkan dan memerlukan metrik OTLP dengan temporalitas delta dan agregasi histogram eksponensial.

Saat Anda menggunakan instrumentasi otomatis AKS atau konfigurasi otomatis, Azure Monitor secara otomatis menggunakan variabel lingkungan untuk mengonfigurasi SDK untuk mengekspor metrik dengan temporalitas delta dan histogram eksponensial. Anda tidak perlu menyediakan konfigurasi tambahan apa pun.

Untuk informasi selengkapnya, lihat Pengekspor Metrik - OTLP.

5. Lihat sinyal aplikasi di Container Insights

Jelajahi performa aplikasi dalam konteks kluster Anda dengan menggunakan Container Insights. Dari Monitor di sumber daya AKS, buka Pengontrol lalu pilih pengontrol untuk meninjau kegagalan permintaan, operasi lambat, dan investigasi yang disarankan.

Cuplikan layar tampilan pengontrol memperlihatkan metrik performa.

Untuk menelusuri paling detail Container Insights, pilih simpul komponen aplikasi di Peta Aplikasi.

Cuplikan layar tampilan pengontrol memperlihatkan permintaan yang gagal.

Pilih simpul lalu Selidiki Pod di petak pemantauan AKS.

Onboarding tingkat lanjut (sumber daya kustom)

Gunakan sumber daya kustom Kubernetes saat Anda membutuhkan lebih banyak kontrol. Untuk informasi selengkapnya, lihat Onboarding per penyebaran.

Autoinstrumentasi (Java, Node.js)

Ikuti panduan onboarding namespace-wide atau per-deployment dalam artikel yang ditautkan sebelumnya untuk memasukkan distribusi Azure Monitor OpenTelemetry ke dalam pod Anda.

Untuk berpartisipasi dalam pratinjau publik terbatas Autoinstrumentasi untuk .NET atau Python, lihat Aktifkan autoinstrumentasi AKS untuk Python dan .NET (pratinjau terbatas).

Konfigurasi otomatis (aplikasi yang sudah berinstrumen dengan SDK OpenTelemetry)

Konfigurasi otomatis menetapkan variabel lingkungan sehingga SDK yang ada mengekspor telemetri ke Application Insights melalui Azure Monitor Agent pada kluster. Ini tidak menempatkan SDK apa pun di pod.

  • Di seluruh namespace: Atur sumber daya kustom Instrumentasi dengan daftar platform kosong.
    apiVersion: monitor.azure.com/v1
    kind: Instrumentation
    metadata:
      name: cr1
      namespace: mynamespace1
    spec:
      settings:
        autoInstrumentationPlatforms: []
      destination: # required
        applicationInsightsConnectionString: "InstrumentationKey=11111111-1111-1111-1111-111111111111;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/"
    
  • Per-deployment: Tambahkan anotasi ke penyebaran dan referensikan ke sumber daya kustom instrumentasi Anda (ganti cr1 dengan nama sumber daya Anda).
    apiVersion: apps/v1
    kind: Deployment
    ...
    spec:
      template:
        metadata:
          annotations:
            instrumentation.opentelemetry.io/inject-nodejs: "cr1"
    

Saat Anda menggunakan anotasi inject-configuration, pengaturan spec.settings.autoInstrumentationPlatforms pada sumber daya kustom yang dirujuk diabaikan dan penyebaran dikonfigurasi untuk mengirim data OTLP ke string koneksi yang ditentukan dalam applicationInsightsConnectionString. Gunakan anotasi nilai "false" untuk mengecualikan penyebaran dari Konfigurasi otomatis.

apiVersion: apps/v1
kind: Deployment
...
spec:
  template:
    metadata:
      annotations:
        instrumentation.opentelemetry.io/inject-nodejs: "false"

Keterbatasan

Selama pratinjau, fitur ini tersedia di semua wilayah cloud publik kecuali:

  • Israel Tengah
  • Israel Barat Laut
  • Qatar Tengah
  • UAE Utara
  • UAE Tengah

Jika Anda memerlukan nama terprogram untuk wilayah ini, lihat daftar wilayah Azure.

Batasan

  • Fitur ini hanya menerima OTLP/HTTP dengan Protobuf biner. Ini tidak mendukung payload JSON atau OTLP/gRPC. Anda perlu mengonfigurasi pengekspor OTLP sesuai saat menggunakan konfigurasi otomatis dengan SDK sumber terbuka dan netral vendor.
  • Fitur ini mendukung hingga 30 asosiasi Aturan Pengumpulan Data (DCR) per kluster AKS.
  • Skala yang diuji untuk log dan jejak adalah 50.000 peristiwa per detik (EPS). Anda dapat mengharapkan sekitar 250 MiB penggunaan memori tambahan dan 0,5 vCPU per kluster untuk fitur ini.

Skenario yang tidak didukung

  • Kompresi pada eksportir OpenTelemetry SDK.
  • Namespace dengan Istio mutual TLS (mTLS) diaktifkan.
  • Titik akhir HTTPS dalam konfigurasi instrumentasi.

Skenario tidak divalidasi

  • Kluster AKS yang menggunakan proksi HTTP.
  • Kluster AKS yang menggunakan Private Link.
  • Kluster tumpukan ganda AKS.

Langkah selanjutnya

  • Pelajari bagaimana instrumentasi tanpa kode bekerja untuk Kubernetes dan cara memperkenalkan penyebaran.
  • Tinjau artikel Enable monitoring untuk kluster AKS untuk memahami cara memantau infrastruktur menggunakan Azure Monitor.
  • Pelajari cara mengonfigurasi pemantauan aplikasi dengan Azure Monitor dan OTLP untuk lingkungan lain menggunakan Agen Azure Monitor atau OpenTelemetry Collector yang bersumber terbuka.

Support

Jika dokumentasi dan langkah-langkah dalam artikel ini tidak mengatasi masalah Anda atau Anda ingin memberikan umpan balik, kirim email ke tim OpenTelemetry Azure Monitor di otel@microsoft.com.