Managed OpenTelemetry untuk GKE

Dokumen ini menjelaskan Managed OpenTelemetry untuk Google Kubernetes Engine (GKE), yang memungkinkan Anda mengirim OpenTelemetry Protocol (OTLP) trace, metrik, dan log ke Google Cloud Observability dari aplikasi yang berjalan di GKE. OpenTelemetry Terkelola menyediakan satu-satunya solusi terkelola oleh Google Cloud untuk mengumpulkan data trace di GKE.

Untuk menggunakan Managed OpenTelemetry for Google Kubernetes Engine (GKE), aplikasi harus sudah diinstrumentasi untuk menghasilkan sinyal menggunakan protokol OpenTelemetry. Untuk mengetahui detailnya, lihat Workload yang didukung.

Managed OpenTelemetry untuk GKE memiliki dua komponen:

  • Pengumpulan terkelola: Pengumpul terkelola menyediakan endpoint OpenTelemetry Protocol dalam cluster sebagai tujuan bagi workload untuk mengirimkan rekaman aktivitas, metrik, dan log dalam format OTLP, tanpa harus mengelola pengumpul.
  • Konfigurasi otomatis: Resource kustom yang disebut Instrumentation memungkinkan konfigurasi otomatis untuk workload GKE Anda guna membuat dan menyerap log, metrik, dan rekaman aktivitas OpenTelemetry yang berkorelasi. Pendekatan ini mendukung Agent Development Kit (ADK).

    Anda dapat menggunakan resource kustom Instrumentation untuk beban kerja yang menggunakan OpenTelemetry SDK dan dikonfigurasi dengan variabel lingkungan OpenTelemetry standar. Resource kustom Instrumentation ini, instrumentations.telemetry.googleapis.com, adalah resource yang berbeda dari resource Instrumentation untuk operator OpenTelemetry.

Untuk mengetahui langkah-langkah menggunakan Managed OpenTelemetry untuk GKE, lihat Men-deploy Managed OpenTelemetry untuk GKE.

Managed OpenTelemetry untuk GKE memungkinkan Anda mengumpulkan telemetri OTLP tanpa harus mengelola dan mengoperasikan pengumpul OpenTelemetry. Menjalankan pengumpul data Anda sendiri dapat menimbulkan overhead, termasuk autentikasi, konfigurasi, upgrade, dan pemantauan. Namun, jika Anda memerlukan pemfilteran dan kontrol tingkat pengumpul, Anda dapat menggunakan OpenTelemetry Collector Buatan Google daripada layanan terkelola ini.

OpenTelemetry menyediakan API, library, dan SDK untuk membuat trace, metrik, dan log terdistribusi untuk pemantauan aplikasi. Untuk mengetahui informasi selengkapnya tentang OpenTelemetry, lihat dokumentasi tentang OpenTelemetry dan OpenTelemetry Protocol (OTLP). Untuk mengetahui detail selengkapnya tentang cara membuat dan mengumpulkan data perilaku runtime aplikasi, lihat Pengukuran dan observasi.

Cara kerja Managed OpenTelemetry untuk GKE

Managed OpenTelemetry untuk GKE memiliki dua komponen: pengumpulan terkelola dan konfigurasi otomatis.

Koleksi terkelola

Koleksi terkelola menyediakan endpoint OTLP dalam cluster dengan men-deploy pengumpul OpenTelemetry terkelola ke cluster Anda. Endpoint OTLP dalam cluster ini menerima trace, metrik, dan log dalam format OTLP. Untuk menerima data dari workload, workload harus dikonfigurasi untuk mengirim data ke pengumpul.

Endpoint pengumpul terkelola adalah: http://opentelemetry-collector.gke-managed-otel.svc.cluster.local:4318.

Koleksi terkelola mengirimkan data yang dikumpulkan ke Google Cloud Observability. Data tersebut kemudian tersedia di layanan berikut:

Pengumpul terkelola dapat diaktifkan untuk cluster GKE menggunakan konsol atau gcloud CLI. Untuk mengetahui petunjuknya, lihat Mengaktifkan Managed OpenTelemetry untuk GKE di cluster.

Konfigurasi otomatis

Konfigurasi otomatis memungkinkan GKE mengonfigurasi workload yang berjalan di GKE untuk mengirim sinyal ke endpoint pengumpul terkelola.

Ada berbagai metode yang dapat digunakan untuk mengonfigurasi workload. Konfigurasi otomatis menggunakan variabel lingkungan yang dimasukkan dalam container workload agar workload mengirim sinyal ke pengumpul terkelola. Jika mengonfigurasi workload secara manual, Anda dapat menggunakan metode lain. Untuk mengetahui detailnya, lihat Konfigurasi manual.

Saat menggunakan konfigurasi otomatis, Anda menentukan konfigurasi menggunakan resource kustom Instrumentation. Kemudian, GKE menyuntikkan variabel lingkungan, seperti endpoint eksportir OTLP, ke dalam container workload. Jika container workload memiliki variabel lingkungan ini, data OpenTelemetry akan dikirim ke pengumpul terkelola saat workload berjalan.

Konfigurasi otomatis tersedia untuk workload yang secara native mendukung OpenTelemetry, yang berarti workload tersebut menggunakan OpenTelemetry SDK dan dikonfigurasi menggunakan variabel lingkungan OpenTelemetry standar. Untuk mengetahui detail selengkapnya, lihat Workload yang didukung.

Untuk mengetahui petunjuk cara mengonfigurasi aplikasi menggunakan konfigurasi otomatis, lihat Mengonfigurasi aplikasi untuk menggunakan Managed OpenTelemetry Collector.

Resource kustom Instrumentation

Anda menggunakan resource kustom Instrumentation untuk melakukan hal berikut:

  • Tentukan apakah akan menyuntikkan variabel lingkungan ke dalam container dari Pod yang dipilih atau semua Pod dalam namespace.
  • Mengontrol jenis data yang dikumpulkan (log, metrik, dan rekaman aktivitas).
  • Mengontrol frekuensi data metrik dikirim ke pengumpul terkelola.
  • Mengontrol frekuensi pengambilan sampel data rekaman aktivitas.

Untuk mengetahui detail tentang cara menggunakan resource kustom Instrumentation, lihat Mengubah konfigurasi.

Menyuntikkan variabel lingkungan secara otomatis

Untuk menyuntikkan variabel lingkungan OpenTelemetry ke workload GKE Anda secara otomatis, Anda perlu mengonfigurasi objek Instrumentation di cluster Anda. Kemudian, saat Anda men-deploy aplikasi di cluster dengan objek Instrumentation, variabel akan disuntikkan oleh GKE.

Objek Instrumentation harus ada di cluster saat aplikasi di-deploy dan Pod dibuat. Jika Anda men-deploy aplikasi sebelum membuat objek Instrumentation, Anda harus memulai ulang pod aplikasi untuk memicu penyisipan otomatis variabel lingkungan.

Variabel lingkungan

Saat workload di-deploy ke namespace tempat konfigurasi otomatis diaktifkan, GKE akan menyuntikkan variabel lingkungan ke dalam container workload. Variabel lingkungan ini adalah variabel OpenTelemetry dari Konfigurasi SDK OpenTelemetry.

Daftar berikut berisi semua variabel lingkungan yang dapat disuntikkan oleh Managed OpenTelemetry untuk GKE. Variabel lingkungan tertentu yang dimasukkan ke dalam container bergantung pada konfigurasi di resource kustom Instrumentation.

Variabel lingkungan yang dapat dimasukkan secara otomatis ke dalam container adalah sebagai berikut:

  • Endpoint pengekspor OpenTelemetry.
    • OTEL_EXPORTER_OTLP_ENDPOINT: URL endpoint dasar untuk semua jenis sinyal. Endpoint ini selalu mengarah ke endpoint HTTP pengumpul OpenTelemetry yang dikelola dalam cluster untuk log, metrik, dan trace. Endpoint-nya adalah: http://opentelemetry-collector.gke-managed-otel.svc.cluster.local:4318.
  • Konfigurasi rasio pengambilan sampel trace.
    • OTEL_TRACES_SAMPLER: Menetapkan sampler yang digunakan untuk mengambil sampel rekaman aktivitas oleh SDK ke salah satu dari berikut ini:
      • parentbased_traceidratio saat pengambilan sampel rekaman aktivitas dikonfigurasi di resource kustom.
      • parentbased_always_on adalah nilai default variabel lingkungan ini. Nilai ini digunakan jika variabel lingkungan ini tidak dikonfigurasi atau bernilai null dalam resource kustom.
    • OTEL_TRACES_SAMPLER_ARG: Menentukan rasio pengambilan sampel rekaman aktivitas (antara 0,0 dan 1,0). Jika tidak dikonfigurasi di resource kustom, 1.0 akan digunakan.
  • Interval penundaan antara awal dua ekspor metrik berturut-turut.
    • OTEL_METRIC_EXPORT_INTERVAL: Interval waktu (dalam milidetik) antara awal dua upaya ekspor (min: 5000, maks: 300000, default: 60000).
  • Penonaktifan ekspor telemetri OTLP menurut jenis sinyal. Pengekspor sinyal dinonaktifkan jika tracer_provider, meter_provider, atau logger_provider ditetapkan ke null dalam file Instrumentation.
    • OTEL_TRACES_EXPORTER: Menonaktifkan ekspor rekaman aktivitas saat disetel ke none. Nilai default: otlp.
    • OTEL_METRICS_EXPORTER: Menonaktifkan ekspor metrik saat disetel ke none. Nilai default: otlp.
    • OTEL_LOGS_EXPORTER: Menonaktifkan ekspor log saat disetel ke none. Nilai default: otlp.
  • Identifikasi Pod hostNetwork untuk mengaitkan metadata oleh Kubernetes Attributes Processor dari OpenTelemetry Collector.
    • K8S_POD_UID: UID Pod hostNetwork untuk mengisi setelan k8s.pod.uid di variabel lingkungan OTEL_RESOURCE_ATTRIBUTES.
    • OTEL_RESOURCE_ATTRIBUTES: Nilai mencakup k8s.pod.uid=$(K8S_POD_UID) untuk memungkinkan Pemroses Atribut Kubernetes mengaitkan metadata, seperti k8s.namespace.name, k8s.deployment.name, dan k8s.node.name, ke Pod hostNetwork. Pengaitan metadata dan Pod hostNetwork memungkinkan penambahan metadata yang diekstrak ke rentang, metrik, dan log sebagai atribut resource.

Konfigurasi manual

Ada berbagai metode yang dapat Anda gunakan untuk mengonfigurasi workload agar mengirim sinyal ke endpoint pengumpul yang dikelola. Jika mengonfigurasi workload secara manual, Anda dapat menambahkan dan mengubah variabel lingkungan secara manual, atau menggunakan metode lain seperti flag command line.

Sebaiknya jangan gunakan konfigurasi manual dan konfigurasi otomatis secara bersamaan untuk workload yang sama, karena konfigurasi otomatis dapat menggantikan perubahan manual. Kombinasi ini dapat mempersulit pelacakan perubahan pada konfigurasi.

Untuk mengetahui detail tentang konfigurasi otomatis, lihat Konfigurasi otomatis

Workload yang didukung

Workload yang didukung adalah workload yang menggunakan OpenTelemetry untuk mengumpulkan data tentang perilaku runtime aplikasi. Beban kerja mendukung OpenTelemetry secara native jika menggunakan OpenTelemetry SDK dan dikonfigurasi menggunakan variabel lingkungan OpenTelemetry standar. Misalnya, Agent Development Kit (ADK) mendukung OpenTelemetry secara native.

Untuk mengetahui detail selengkapnya tentang cara data perilaku runtime aplikasi Anda dibuat dan dikumpulkan, lihat Instrumentasi dan kemampuan pengamatan.

Jika beban kerja mendukung beberapa jenis data OTLP dan tidak mendukung jenis data lainnya, maka Managed OpenTelemetry untuk GKE akan mengumpulkan data OTLP. Misalnya, jika workload menggunakan OpenTelemetry SDK untuk menerapkan rekaman aktivitas, tetapi tidak menggunakannya untuk log atau metrik, maka data log dan metrik tidak dikumpulkan oleh Managed OpenTelemetry untuk GKE. Untuk mengetahui detail tentang cara mengontrol jenis data yang akan dikumpulkan, lihat Memilih jenis sinyal yang akan dikumpulkan.

Penyisipan konfigurasi OpenTelemetry tidak didukung untuk workload istimewa dari partner GKE Autopilot.

Penagihan

Saat Anda mengirim data telemetri ke Google Cloud, Anda akan ditagih berdasarkan volume penyerapan. Metrik ditagih menggunakan harga Google Cloud Managed Service for Prometheus, log ditagih menggunakan harga Cloud Logging, dan rekaman aktivitas ditagih menggunakan harga Cloud Trace.

Untuk mengetahui informasi tentang biaya yang terkait dengan penyerapan rekaman aktivitas, log, dan metrik Google Cloud Managed Service for Prometheus, lihat Harga Google Cloud Observability.

Kuota

Saat Anda menggunakan Managed OpenTelemetry untuk GKE, kuota untuk layanan Google Cloud Observability berlaku. Untuk mengetahui detailnya, lihat hal berikut:

Langkah berikutnya