Agar kode aplikasi Anda tetap netral terhadap vendor saat mengumpulkan dan mengirim telemetri ke Google Cloud, Anda dapat menggunakan contoh instrumentasi berbasis kolektor OpenTelemetry untuk Go, Java, Node.js, dan Python.
Contoh ini menunjukkan cara mengonfigurasi OpenTelemetry SDK dalam proses untuk mengekspor metrik, log, dan trace ke kolektor OpenTelemetry lokal yang merutekan telemetri Anda ke Google Cloud. Contoh ini mengirimkan data log, metrik, dan trace dalam format OpenTelemetry Protocol (OTLP) ke project Google Cloud Anda menggunakan Telemetry API.
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 mengonfigurasi kolektor OpenTelemetry untuk membaca dari aliran data stdout aplikasi. Untuk rekomendasi framework, lihat
Memilih pendekatan instrumentasi.
Aplikasi dibangun dan di-deploy menggunakan Docker. Anda tidak perlu menggunakan Docker saat melengkapi 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 file bantuan untuk menerima dan memperkaya telemetri aplikasi, yang kemudian dikirim oleh pengekspor ke project Google Cloud Anda. Contoh ini mengirimkan data log, metrik, dan trace ke project Anda menggunakan Telemetry API, yang mendukung format OTLP.
Contoh ini menunjukkan cara melakukan hal berikut:
Konfigurasikan OpenTelemetry untuk mengumpulkan metrik dan trace menggunakan kolektor OpenTelemetry.
Kompleksitas langkah ini bergantung pada bahasa. Misalnya, di Go, Anda memperbarui fungsi
mainuntuk menginisialisasi pengumpulan telemetri dan mengonfigurasi server dan klien HTTP.Konfigurasikan framework logging untuk menulis log terstruktur.
Sebaiknya aplikasi Anda menulis log terstruktur, yang memformat payload log sebagai objek JSON. Untuk log ini, Anda dapat membuat kueri yang menelusuri jalur JSON tertentu dan Anda dapat mengindeks kolom tertentu dalam payload log.
Beberapa layanan, seperti Google Kubernetes Engine, memiliki agen bawaan yang mengumpulkan log terstruktur dan mengirimkan log tersebut ke project Google Cloud Anda. Layanan lain, seperti Compute Engine, mengharuskan Anda menginstal agen, yang akan mengumpulkan dan mengirim log Anda. Untuk mempelajari agen yang Anda instal, 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 kolektor OpenTelemetry:Contoh ini menggunakan penerima
otlpuntuk data metrik dan trace, serta penerimafileloguntuk data log.Contoh ini menggunakan pengekspor
otlphttpuntuk data log, metrik, dan trace.Pengekspor
otlphttpmengirimkan data ke project Anda menggunakan Telemetry API, yang mendukung OTLP.
docker-compose.creds.yaml: File ini secara opsional memasang file kredensial Google Clouddi containerotelcol. Anda memerlukan file ini saat menjalankan contoh di komputer lokal tempat Kredensial Default Aplikasi (ADC) hanya tersedia sebagai file.
Izin yang diperlukan
-
Untuk mendapatkan izin yang Anda perlukan agar aplikasi contoh dapat menulis data log, metrik, dan trace, minta administrator untuk memberi Anda peran IAM berikut:
- Logs Writer (
roles/logging.logWriter) di project Anda - Monitoring Metric Writer (
roles/monitoring.metricWriter) di project Anda - Cloud Telemetry Traces Writer (
roles/telemetry.tracesWriter) di project Anda - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) di project kuota Anda
Izin ini sudah cukup jika Anda menjalankan contoh di Cloud Shell, di resource Google Cloud , atau di lingkungan pengembangan lokal. Untuk mempelajari cara mengonfigurasi project kuota, lihat Menetapkan project kuota.
- Logs Writer (
-
Untuk mendapatkan izin yang Anda perlukan untuk melihat data log, metrik, dan trace, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:
- Logs Viewer (
roles/logging.viewer) - Monitoring Viewer (
roles/monitoring.viewer) - Cloud Trace User (
roles/cloudtrace.user)
Untuk mengetahui informasi selengkapnya tentang pemberian 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
Aktifkan Cloud Logging, Cloud Monitoring, Cloud Trace, dan Telemetry API, jika belum diaktifkan:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda
membuat project, kemungkinan Anda sudah memiliki izin ini melalui
peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui
peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin).
Pelajari cara memberikan peran.
gcloud services enable logging.googleapis.commonitoring.googleapis.com cloudtrace.googleapis.com telemetry.googleapis.com
Pendekatan instrumentasi alternatif
Anda mungkin tertarik dengan contoh lain yang menggambarkan berbagai konfigurasi:
Bermigrasi dari pengekspor Trace ke endpoint OTLP menjelaskan cara menggunakan instrumentasi dalam proses untuk mengirim data trace langsung ke project Google Cloud Anda.
Sebaiknya gunakan kolektor OpenTelemetry untuk mengekspor data telemetri Anda saat lingkungan Anda mendukung penggunaan kolektor. Jika tidak dapat menggunakan kolektor, Anda harus menggunakan pengekspor dalam proses yang langsung mengirim data ke project Google Cloud Anda.
Menghubungkan metrik dan trace menggunakan contoh menjelaskan cara mengonfigurasi aplikasi Go untuk menghasilkan contoh. Contoh adalah contoh titik data yang dilampirkan ke titik data metrik. Anda dapat menggunakan contoh untuk menghubungkan data trace dan metrik.
Menggunakan Agen Operasional dan OpenTelemetry Protocol (OTLP) menjelaskan cara mengonfigurasi Agen Operasional dan penerima OTLP untuk mengumpulkan metrik dan trace dari aplikasi.
Langkah berikutnya
Untuk mempelajari lebih lanjut kolektor, lihat Kolektor OpenTelemetry Buatan Google.
Pelajari contoh yang menggunakan ekspor berbasis kolektor.