Ringkasan contoh instrumentasi

Dokumen ini menjelaskan struktur contoh instrumentasi yang disediakan untuk bahasa Go, Java, Node.js, dan Python. Contoh ini memberikan panduan tentang cara menginstrumentasi aplikasi.

Anda mungkin tertarik dengan contoh lain yang menggambarkan berbagai konfigurasi:

Cara kerja sampel

Contoh untuk Go, Java, Node.js, dan Python menggunakan protokol OpenTelemetry untuk mengumpulkan data trace dan metrik. Contoh mengonfigurasi framework logging untuk menulis log terstruktur dan pengumpul OpenTelemetry dikonfigurasi untuk membaca dari aliran stdout aplikasi. Untuk rekomendasi framework, lihat Memilih pendekatan instrumentasi.

Aplikasi dibangun dan di-deploy menggunakan Docker. Anda tidak perlu menggunakan Docker saat menginstrumentasi aplikasi dengan OpenTelemetry.

Anda dapat menjalankan contoh di Cloud Shell, di Google Cloud resource, atau di lingkungan pengembangan lokal.

Pembahasan mendalam

Contoh ini menggunakan OpenTelemetry Collector sebagai file bantuan untuk menerima dan memperkaya telemetri aplikasi, yang kemudian dikirim ke projectGoogle Cloud Anda menggunakan pengeksporGoogle Cloud . Exporter mengonversi telemetri ke dalam format yang kompatibel dengan Cloud Trace API, Cloud Monitoring API, atau Cloud Logging API. Selanjutnya, mereka mengirimkan data yang telah diubah ke project Google Cloud Anda dengan menjalankan perintah API.

Contoh menunjukkan cara melakukan hal berikut:

  1. Konfigurasi OpenTelemetry untuk mengumpulkan metrik dan trace menggunakan OpenTelemetry Collector.

    Jika meninjau sampel, 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.

  2. Konfigurasi framework logging untuk menulis log terstruktur.

    Sebaiknya aplikasi Anda menulis log terstruktur, yang menghasilkan payload log yang diformat sebagai objek JSON. Untuk log ini, Anda dapat membuat kueri yang menelusuri jalur JSON tertentu dan mengindeks kolom tertentu dalam payload log.

    Beberapa layanan, seperti Google Kubernetes Engine, memiliki agen bawaan yang meng-scrape log terstruktur dan mengirimkan log tersebut ke project Anda. Google Cloud Layanan lainnya, seperti Compute Engine, mengharuskan Anda menginstal agen, yang meng-scrape dan mengirim log Anda. Jika Anda ingin mempelajari agen yang Anda instal, lihat Ringkasan Agen Operasional.

    Anda tidak perlu menginstal agen apa pun untuk menggunakan sampel ini.

  3. Konfigurasi file Docker. Semua sampel berisi file YAML berikut:

    • docker-compose.yaml: Mengonfigurasi layanan untuk aplikasi, OpenTelemetry Collector, dan generator beban. Misalnya, layanan untuk pengumpul OpenTelemetry, otelcol, menentukan image, volume, dan variabel lingkungan. Endpoint untuk pengumpul OpenTelemetry ditetapkan oleh variabel lingkungan OTEL_EXPORTER_OTLP_ENDPOINT, yang ditentukan dalam layanan app.

    • otel-collector-config.yaml: Mengonfigurasi penerima, pengekspor, pemroses, dan pipeline.

      Layanan telemetry menentukan pipeline untuk data log, metrik, dan rekaman aktivitas. Setiap entri pipeline menentukan penerima, pemroses, dan pengekspor. 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, Google Cloud exporter digunakan. Exporter mengonversi telemetri ke dalam format yang kompatibel dengan Cloud Trace API, Cloud Monitoring API, atau Cloud Logging API. Selanjutnya, data yang telah diubah akan dikirim ke Google Cloud project Anda dengan menjalankan perintah API.

    • docker-compose.creds.yaml: File ini secara opsional memasang file kredensialGoogle Cloud di penampung otelcol. File ini diperlukan saat sampel dijalankan di komputer lokal tempat Kredensial Default Aplikasi (ADC) hanya tersedia sebagai file.

Izin yang diperlukan

Jika Anda menjalankan sampel di Cloud Shell, di Google Cloud resource, atau di lingkungan pengembangan lokal, izin yang tercantum di bagian ini sudah cukup. 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 aktivitas, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

API yang diperlukan

Berikut ini informasi tentang API yang diperlukan untuk mengirim data telemetri ke project Google Cloud :

Google Cloud console

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

Enable the APIs

Google Cloud CLI

Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.

Enable the APIs

Langkah berikutnya