Dokumen ini menjelaskan struktur sampel instrumentasi yang disediakan untuk bahasa Go, Java, Node.js, dan Python. Contoh ini memberikan panduan tentang cara membuat instrumentasi aplikasi.
Anda mungkin tertarik dengan contoh lain yang mengilustrasikan konfigurasi yang berbeda:
Mengaitkan metrik dan rekaman aktivitas menggunakan contoh menjelaskan cara mengonfigurasi aplikasi Go untuk membuat contoh. Contoh adalah contoh titik data yang dilampirkan ke titik data metrik. Anda dapat menggunakan contoh untuk mengaitkan data rekaman aktivitas dan metrik.
Menggunakan Agen Operasional dan OpenTelemetry Protocol (OTLP) menjelaskan cara mengonfigurasi Agen Operasional dan penerima OTLP untuk mengumpulkan metrik dan trace dari aplikasi.
Cara kerja sampel
Contoh untuk Go, Java, Node.js, dan Python menggunakan
protokol OpenTelemetry untuk mengumpulkan data trace dan metrik.
Contoh ini mengonfigurasi framework logging untuk menulis
log terstruktur dan
collector OpenTelemetry dikonfigurasi untuk membaca dari
aliran stdout
aplikasi. Untuk rekomendasi framework, lihat
Memilih pendekatan instrumentasi.
Aplikasi di-build dan di-deploy menggunakan Docker. Anda tidak perlu menggunakan Docker saat membuat instrumen aplikasi dengan OpenTelemetry.
Anda dapat menjalankan contoh di Cloud Shell, di resource Google Cloud, atau di lingkungan pengembangan lokal.
Pembahasan mendalam
Contoh ini menggunakan OpenTelemetry Collector sebagai sidecar untuk menerima dan memperkaya telemetri aplikasi, yang kemudian dikirim ke project Google Cloud Anda menggunakan eksportirGoogle Cloud . Eksporter mengonversi telemetri menjadi format yang kompatibel dengan Cloud Trace API, Cloud Monitoring API, atau Cloud Logging API. Selanjutnya, agen tersebut akan mengirim data yang diubah ke project Google Cloud Anda dengan mengeluarkan perintah API.
Contoh ini menunjukkan cara melakukan hal berikut:
Konfigurasikan OpenTelemetry untuk mengumpulkan metrik dan trace menggunakan OpenTelemetry collector.
Jika meninjau contoh, Anda akan melihat bahwa kompleksitas langkah ini bergantung pada bahasa. Misalnya, untuk Go, langkah ini mengonfigurasi fungsi
main
untuk memanggil fungsi yang mengonfigurasi pengumpulan metrik dan rekaman aktivitas. Untuk Go, server dan klien HTTP juga diperbarui.Konfigurasikan framework logging untuk menulis log terstruktur.
Sebaiknya aplikasi Anda menulis log terstruktur, yang mengakibatkan payload log diformat sebagai objek JSON. Untuk log ini, Anda dapat membuat kueri yang menelusuri jalur JSON tertentu dan dapat menginindeks kolom tertentu dalam payload log.
Beberapa layanan, seperti Google Kubernetes Engine, memiliki agen bawaan yang mengambil log terstruktur dan mengirim log tersebut ke project Google Cloud Anda. Layanan lain, seperti Compute Engine, mengharuskan Anda menginstal agen, yang mengambil dan mengirim log Anda. Jika Anda ingin mempelajari agen yang diinstal, lihat ringkasan Agen Operasional.
Anda tidak perlu menginstal agen apa pun untuk menggunakan contoh ini.
Mengonfigurasi file Docker. Semua contoh berisi file yaml berikut:
docker-compose.yaml
: Mengonfigurasi layanan untuk aplikasi, OpenTelemetry collector, dan generator beban. Misalnya, layanan untuk kolektor OpenTelemetry,otelcol
, menentukan image, volume, dan variabel lingkungan. Endpoint untuk kolektor OpenTelemetry ditetapkan oleh variabel lingkunganOTEL_EXPORTER_OTLP_ENDPOINT
, yang ditentukan dalam layananapp
.otel-collector-config.yaml
: Mengonfigurasi penerima, eksportir, pemroses, dan pipeline.Layanan
telemetry
menentukan pipeline untuk data trace, metrik, dan log. Setiap entri pipeline menentukan penerima, pemroses, dan eksportir. Penerima yang sama,otlp
, digunakan untuk metrik dan rekaman aktivitas.Bagian
exporters
menjelaskan cara data yang dikumpulkan diekspor ke project Google Cloud. Untuk semua telemetri, ekspor Google Cloud digunakan. Eksporter mengonversi telemetri ke dalam format yang kompatibel dengan Cloud Trace API, Cloud Monitoring API, atau Cloud Logging API. Selanjutnya, agen ini akan mengirim data yang diubah ke project Google Cloud Anda dengan mengeluarkan perintah API.docker-compose.creds.yaml
: File ini secara opsional memasang file kredensialGoogle Cloud di penampungotelcol
. File ini diperlukan saat sampel dijalankan di komputer lokal tempat Kredensial Default Aplikasi (ADC) hanya tersedia sebagai file.
Izin yang diperlukan
Jika Anda menjalankan contoh di Cloud Shell, pada resource Google Cloud, atau di lingkungan pengembangan lokal, izin yang tercantum di bagian ini sudah memadai. Untuk aplikasi produksi, biasanya akun layanan menyediakan kredensial untuk menulis data log, metrik, dan trace.
-
Untuk mendapatkan izin yang Anda perlukan agar aplikasi contoh dapat menulis data log, metrik, dan rekaman aktivitas, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
-
Logs Writer (
roles/logging.logWriter
) -
Monitoring Metric Writer (
roles/monitoring.metricWriter
) -
Agen Cloud Trace (
roles/cloudtrace.agent
)
-
Logs Writer (
-
Untuk mendapatkan izin yang Anda perlukan guna melihat data log, metrik, dan rekaman aktivitas, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
-
Logs Viewer (
roles/logging.viewer
) -
Monitoring Viewer (
roles/monitoring.viewer
) -
Cloud Trace User (
roles/cloudtrace.user
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Logs Viewer (
API yang diperlukan
Berikut ini informasi tentang API yang diperlukan untuk mengirim data telemetri ke project Google Cloud:
Konsol Google Cloud
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Google Cloud CLI
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs:
gcloud services enable logging.googleapis.commonitoring.googleapis.com cloudtrace.googleapis.com