Memilih pendekatan instrumentasi

Anda dapat memilih pendekatan instrumentasi yang paling efektif untuk aplikasi Anda berdasarkan persyaratan telemetri dan platform komputasi Google Cloud Anda. Panduan ini memberikan rekomendasi untuk Google Kubernetes Engine (GKE), Compute Engine, dan Cloud Run, yang membantu Anda memutuskan antara Google-Built OpenTelemetry Collector, Agen Operasional, dan ekspor OpenTelemetry dalam proses langsung.

Dokumen ini memberikan rekomendasi umum, serta panduan untuk platform berikut:

Untuk aplikasi contoh, lihat Contoh dan panduan penerapan.

Rekomendasi di halaman ini bukan satu-satunya solusi, dan pendekatan lain juga dapat berhasil. Untuk panduan tambahan, hubungi Cloud Customer Care.

Rekomendasi umum

Bagian ini berisi rekomendasi umum tentang cara mengukur aplikasi Anda. Untuk panduan khusus platform, lihat Rekomendasi platform.

  • Data log: Sebaiknya gunakan framework yang dapat dikonfigurasi untuk menghasilkan log berstruktur JSON untuk Cloud Logging. Untuk menulis data log, sebaiknya lakukan hal berikut:

  • Data metrik: Sebaiknya gunakan OpenTelemetry atau library klien Prometheus:

    • OpenTelemetry menyediakan framework dan library klien open source yang netral terhadap vendor untuk menginstrumentasi aplikasi untuk metrik.
    • Library klien Prometheus (Go, Java, Python, dll.) menghasilkan metrik yang dapat ditampilkan di endpoint HTTP dan di-scrape oleh agen.
  • Data rekaman aktivitas: Sebaiknya gunakan OpenTelemetry untuk membuat data rekaman aktivitas terdistribusi dari kode aplikasi Anda.

Arsitektur pengumpulan OpenTelemetry

Saat menginstrumentasi aplikasi dengan library OpenTelemetry, Anda dapat merutekan telemetri melalui OpenTelemetry Collector mandiri atau mengekspor langsung dari proses aplikasi Anda. File konfigurasi OpenTelemetry Collector mengontrol cara collector menerima, memproses, dan mengekspor telemetri. Secara umum, sebaiknya pengumpul menerima dan mengekspor telemetri menggunakan OpenTelemetry Protocol (OTLP). Telemetry (OTLP) API menerapkan protokol ini.

Ada dua pendekatan mendasar untuk mengirim telemetri ke Google Cloud project Anda:

  • Ekspor berbasis pengumpul (netral vendor): Anda menginstrumentasikan kode aplikasi dengan OpenTelemetry SDK dan menggunakan pengekspor OTLP dalam proses untuk mengirim data ke pengumpul OpenTelemetry, seperti Pengumpul OpenTelemetry Buatan Google atau penerima Agen Operasional. Pengumpul menerima telemetri dan meneruskannya ke project Google Cloud Anda. Kode aplikasi Anda tetap sepenuhnya netral terhadap vendor.

  • Ekspor langsung (khusus vendor): Anda melengkapi kode aplikasi dengan SDK OpenTelemetry dan mengonfigurasi OpenTelemetry untuk mengirim telemetri ke project Anda dengan menggunakan Telemetry API. Anda tidak perlu men-deploy pengumpul, tetapi kode aplikasi Anda menyertakan dependensi khusus vendor.

Sebaiknya gunakan pengumpul OpenTelemetry jika lingkungan komputasi Anda mendukungnya. Untuk lingkungan yang tidak memungkinkan menjalankan proses pengumpul terpisah, gunakan ekspor langsung dalam proses.

Rekomendasi platform

Karena Google Cloud lingkungan komputasi memiliki siklus proses dan kemampuan sidecar yang berbeda, pola pengumpulan yang optimal bervariasi menurut platform. Bagian berikut memberikan rekomendasi khusus untuk lingkungan deployment Anda.

GKE

Untuk mengetahui informasi umum tentang GKE, lihat Ringkasan GKE.

Jenis Rekomendasi
Metrik

Sebaiknya gunakan Google Cloud Managed Service for Prometheus.

Untuk instrumentasi, lakukan salah satu hal berikut:

Trace

Lakukan tindakan berikut:

  1. Deploy Google-Built OpenTelemetry Collector di Google Kubernetes Engine.

    Pengumpul menerima data rekaman aktivitas dari eksportir OTLP dalam proses SDK, memproses data tersebut, lalu mengirimkan data yang diproses ke project Google Cloud Anda menggunakan Telemetry (OTLP) API.

  2. Gunakan OpenTelemetry SDK dan pengekspor OTLP untuk bahasa Anda.
Log

Konfigurasi aplikasi Anda untuk menghasilkan log berstruktur JSON ke stdout dan stderr. Untuk mengetahui daftar framework, lihat Framework logging yang direkomendasikan.

GKE mengumpulkan log yang ditulis ke stdout dan stderr secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Tentang log GKE.

Compute Engine

Untuk informasi umum tentang Compute Engine, lihat Instance virtual machine.

Jenis Rekomendasi
Metrik dan Trace

Lakukan tindakan berikut:

  1. Gunakan Agen Operasional untuk mengumpulkan metrik dan rekaman aktivitas.

    Untuk melihat contoh, lihat Mengumpulkan metrik dan trace OpenTelemetry Protocol (OTLP). Panduan ini menjelaskan cara mengonfigurasi Agen Operasi untuk menerima data metrik dan data pelacakan dari eksportir OTLP dalam proses SDK, mentransformasi data tersebut, lalu mengirimkan data ke project Google Cloud Anda. Data metrik dikirim dengan menggunakan Cloud Monitoring API dan data trace dikirim dengan menggunakan Cloud Trace API.

  2. Gunakan OpenTelemetry SDK dan pengekspor OTLP untuk bahasa Anda.

Atau, jika Anda hanya ingin mengonfigurasi pengumpulan untuk metrik format Prometheus, gunakan penerima Prometheus Agen Operasional untuk mengumpulkan metrik yang diinstrumentasikan menggunakan library klien Prometheus atau SDK OpenTelemetry.

Log

Lakukan tindakan berikut:

  1. Konfigurasi aplikasi Anda untuk menghasilkan log berstruktur JSON ke file. Untuk mengetahui daftar framework, lihat Framework logging yang direkomendasikan.
  2. Instal Agen Operasional dan konfigurasi penerima. Sebagai contoh, lihat Penerima logging.

Cloud Run

Untuk mengetahui informasi umum tentang Cloud Run, lihat Apa itu Cloud Run.

Jenis Rekomendasi
Metrik dan Trace

Lakukan tindakan berikut:

  1. Gunakan OpenTelemetry SDK dan pengekspor OTLP untuk bahasa Anda.
  2. Deploy file bantuan OpenTelemetry untuk mengumpulkan metrik dan trace.

    Untuk contoh, lihat dokumen berikut:

  3. Untuk layanan Cloud Run Anda, gunakan penagihan berbasis instance. Dengan penagihan berbasis instance, CPU dialokasikan untuk seluruh siklus proses instance, yang diperlukan karena instrumentasi OpenTelemetry melakukan pemrosesan di latar belakang. Untuk mengetahui informasi selengkapnya, lihat Setelan penagihan untuk layanan Cloud Run.

Atau, jika Anda hanya ingin mengonfigurasi pengumpulan untuk metrik format Prometheus, gunakan sidecar Prometheus untuk Cloud Run guna mengumpulkan metrik yang diinstrumentasikan menggunakan library klien Prometheus atau SDK OpenTelemetry.

Log

Konfigurasi aplikasi Anda untuk menghasilkan log berstruktur JSON ke stdout dan stderr. Untuk mengetahui daftar framework, lihat Framework logging yang direkomendasikan.

Cloud Run mengumpulkan log yang ditulis ke stdout dan stderr secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Menulis log container.

Cloud Run Functions

Untuk mengetahui informasi umum tentang Cloud Run Functions, lihat Ringkasan Cloud Run Functions.

Jenis Rekomendasi
Metrik Penulisan data metrik secara langsung tidak didukung di Cloud Run Functions. Anda dapat membuat metrik berbasis log.
Trace Gunakan OpenTelemetry SDK dan pengekspor Cloud Trace untuk bahasa Anda.
Log

Konfigurasi aplikasi Anda untuk menghasilkan log berstruktur JSON ke stdout dan stderr. Untuk mengetahui daftar framework, lihat Framework logging yang direkomendasikan.

Fungsi Cloud Run mengumpulkan log yang ditulis ke stdout dan stderr secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Fungsi Cloud Run: Ringkasan pemantauan dan logging.

App Engine

Untuk informasi umum tentang App Engine, lihat Ringkasan App Engine.

Jenis Rekomendasi
Metrik Gunakan OpenTelemetry SDK dan eksportir Cloud Monitoring untuk bahasa Anda.
Trace Gunakan OpenTelemetry SDK dan pengekspor Cloud Trace untuk bahasa Anda.
Log

Konfigurasi aplikasi Anda untuk menghasilkan log berstruktur JSON ke stdout dan stderr. Untuk mengetahui daftar framework, lihat Framework logging yang direkomendasikan.

App Engine mengumpulkan log yang ditulis ke stdout dan stderr secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Menulis dan melihat log.

Contoh dan panduan penerapan

Dokumentasi OpenTelemetry

Bagian ini menyediakan link ke OpenTelemetry SDK dan eksportir untuk OTLP, Cloud Trace, dan Cloud Monitoring.

Referensi umum:

Go

Java

JavaScript

Python