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
Instrumentationmemungkinkan 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
Instrumentationuntuk beban kerja yang menggunakan OpenTelemetry SDK dan dikonfigurasi dengan variabel lingkungan OpenTelemetry standar. Resource kustomInstrumentationini,instrumentations.telemetry.googleapis.com, adalah resource yang berbeda dari resourceInstrumentationuntuk 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_traceidratiosaat pengambilan sampel rekaman aktivitas dikonfigurasi di resource kustom.parentbased_always_onadalah 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, ataulogger_providerditetapkan kenulldalam fileInstrumentation.OTEL_TRACES_EXPORTER: Menonaktifkan ekspor rekaman aktivitas saat disetel kenone. Nilai default:otlp.OTEL_METRICS_EXPORTER: Menonaktifkan ekspor metrik saat disetel kenone. Nilai default:otlp.OTEL_LOGS_EXPORTER: Menonaktifkan ekspor log saat disetel kenone. Nilai default:otlp.
- Identifikasi Pod hostNetwork untuk mengaitkan metadata oleh
Kubernetes Attributes Processor
dari OpenTelemetry Collector.
K8S_POD_UID: UID Pod hostNetwork untuk mengisi setelank8s.pod.uiddi variabel lingkunganOTEL_RESOURCE_ATTRIBUTES.OTEL_RESOURCE_ATTRIBUTES: Nilai mencakupk8s.pod.uid=$(K8S_POD_UID)untuk memungkinkan Pemroses Atribut Kubernetes mengaitkan metadata, sepertik8s.namespace.name,k8s.deployment.name, dank8s.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
- Untuk men-deploy pengumpul, lihat Men-deploy Managed OpenTelemetry untuk GKE.
- Untuk alternatif Managed OpenTelemetry for GKE yang di-deploy sendiri, lihat Google-Built OpenTelemetry Collector.
- Untuk mengetahui informasi tentang cara menyiapkan instrumentasi OpenTelemetry untuk menghasilkan rekaman aktivitas, metrik, dan log dari aplikasi Anda, lihat topik berikut:
- Tambahkan metrik dan rekaman aktivitas kustom ke aplikasi Anda dengan OpenTelemetry.