Menginstrumentasikan aplikasi untuk Pemantauan Aplikasi

Anda dapat menginstrumentasikan aplikasi App Hub sehingga Google Cloud Observability melampirkan label khusus aplikasi ke metrik dan data trace yang dihasilkan aplikasi Anda. Untuk workload yang berjalan di Google Kubernetes Engine, Anda juga dapat mengekspor metrik server HTTP OpenTelemetry yang digunakan Application Monitoring untuk melaporkan tingkat traffic, rasio error server, dan latensi untuk permintaan HTTP.

Tentang label khusus aplikasi

Label khusus aplikasi merujuk pada label atau atribut yang disisipkan ke dalam data log, metrik, atau rekaman aktivitas. Label ini mengidentifikasi layanan atau workload yang menghasilkan data. Anda dapat menggunakan label khusus aplikasi seperti label lainnya. Misalnya, Anda dapat memfilter data menurut ID aplikasi. Telemetri yang dihasilkan oleh infrastruktur yang didukung secara otomatis menyertakan label ini. Dengan instrumentasi, metrik dan rekaman aktivitas yang ditulis oleh aplikasi Anda dapat menyertakan label ini.

Di bagian ini, tafsirkan a.b.{x,y} sebagai a.b.x dan a.b.y.

Data metrik dari instrumentasi yang Anda tambahkan ke aplikasi dapat mencakup label metrik berikut:

  • metric.labels.apphub_application_{container,id,location}
  • metric.labels.apphub_workload_{criticality_type,environment_type,id}

Span rekaman aktivitas yang dibuat oleh instrumentasi yang Anda tambahkan ke aplikasi Anda dapat mencakup atribut resource berikut:

  • gcp.apphub.application.{container,id,location}
  • gcp.apphub.{workload,service}.{criticality_type,environment_type,id}

Tentang metrik server HTTP OpenTelemetry

Tidak ada metrik sistem untuk workload yang berjalan di Google Kubernetes Engine yang dapat melaporkan tingkat traffic, rasio error server, atau latensi untuk permintaan HTTP. Namun, nilai untuk sinyal keemasan ini dapat diperoleh dari metrik http.server.request.duration, yang dikumpulkan secara otomatis oleh library klien HTTP OpenTelemetry.

Pengekspor googlemanagedprometheus mengonversi metrik OpenTelemetry http.server.request.duration menjadi metrik Prometheus yang memiliki properti berikut:

  • Nama: prometheus/http_server_request_duration_seconds/histogram
  • Metrik: prometheus.googleapis.com/http_server_request_duration_seconds/histogram
  • Jenis resource: prometheus_target
  • Unit: s
  • Jenis: CUMULATIVE
  • Jenis nilai: DISTRIBUTION

Jika project Google Cloud Anda berisi metrik http_server_request_duration_seconds, dasbor Pemantauan Aplikasi akan menampilkan tingkat traffic, tingkat error server, dan latensi untuk permintaan HTTP.

Untuk mempelajari cara mengonfigurasi aplikasi Anda agar mengekspor metrik http_server_request_duration_seconds, lihat bagian Menggunakan OpenTelemetry di Kubernetes dalam dokumen ini.

Menambahkan label aplikasi ke data metrik

Google Cloud Observability mencoba mengidentifikasi sumber metrik Prometheus dengan membandingkan atribut yang dilampirkan ke metrik Prometheus yang dikirim ke project Anda dengan data yang ditampilkan dari App Hub API. Bagian selanjutnya dalam bagian ini mencantumkan konfigurasi yang memungkinkan Google Cloud Observability mengidentifikasi aplikasi Pusat Aplikasi.

Menggunakan OpenTelemetry di Kubernetes

Agar Google Cloud Observability melampirkan label aplikasi ke data metrik yang dihasilkan oleh workload aplikasi Anda yang berjalan di Google Kubernetes Engine, lakukan hal berikut:

  1. Instrumentasi aplikasi dengan OpenTelemetry.

  2. Deploy Collector buatan Google atau OpenTelemetry Collector, dan konfigurasi collector sebagai berikut:

    • Mengekspor data metrik dengan eksportir googlemanagedprometheus.
    • Konfigurasi prosesor k8sattributes untuk mengekstrak metadata, seperti namespace, dari lingkungan.
    • Konfigurasi pemroses transform/collision untuk menetapkan atribut project_id, location, cluster, dan namespace.
    • Konfigurasi pemroses transform/aco-gke untuk mengisi label top_level_controller_name dan top_level_controller_type.

    Sebagai contoh, lihat otlp-k8s-ingest/config/collector.yaml, yang merupakan file konfigurasi untuk Pengumpul yang dibuat Google. Untuk mempelajari lebih lanjut pengumpul ini, lihat Men-deploy Pengumpul OpenTelemetry Buatan Google di GKE.

  3. Daftarkan beban kerja aplikasi Anda ke Pusat Aplikasi.

Menggunakan Google Cloud Managed Service for Prometheus di GKE

Agar Google Cloud Observability melampirkan label aplikasi ke data metrik yang dihasilkan oleh workload aplikasi Anda yang berjalan di cluster Google Kubernetes Engine, lakukan hal berikut:

  1. Gunakan Google Cloud Managed Service for Prometheus dengan pengumpulan terkelola.

  2. Deploy workload Anda di cluster Google Kubernetes Engine yang versinya minimal 1.32.1-gke.1439000.

  3. Daftarkan beban kerja aplikasi Anda ke Pusat Aplikasi.

Google Cloud Managed Service for Prometheus menemukan nilai label aplikasi melalui metadata penemuan layanan, lalu menambahkan label top_level_controller_{name,type} ke targetLabels.metadata. Selama penyerapan metrik, Google Cloud Observability menggunakan label top_level_controller_{name,type} dan App Hub API untuk mengidentifikasi aplikasi App Hub Anda dan menambahkan label yang sesuai ke data metrik Anda.

Menggunakan Cloud Run

Agar Google Cloud Observability melampirkan label aplikasi ke data metrik yang dihasilkan oleh workload Cloud Run Anda, lakukan hal berikut:

  1. Instrumentasikan aplikasi Anda menggunakan OpenTelemetry atau file bantuan Managed Service for Prometheus untuk Cloud Run. Untuk mengetahui informasi tentang pendekatan ini, lihat dokumen berikut:

  2. Daftarkan beban kerja aplikasi Anda ke Pusat Aplikasi.

Memverifikasi label metrik

Untuk memverifikasi bahwa aplikasi Anda mengirimkan metrik Prometheus ke project Anda, lakukan hal berikut:

  1. Verifikasi bahwa aplikasi Anda mengirimkan metrik Prometheus ke project Anda:
    1. Di konsol Google Cloud , buka halaman  Metrics explorer:

      Buka Metrics explorer

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

    2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda. Untuk konfigurasi Pusat Aplikasi, pilih project host Pusat Aplikasi atau project pengelolaan folder khusus aplikasi.
    3. Pada elemen Metrik, luaskan menu Pilih metrik, masukkan Prometheus Target di panel filter, lalu gunakan submenu untuk memilih jenis dan metrik resource tertentu:
      1. Di menu Active resources, pilih Prometheus Target.
      2. Untuk memilih metrik, gunakan menu Kategori metrik aktif dan Metrik aktif.
      3. Klik Terapkan.
    4. Untuk menambahkan filter, yang menghapus deret waktu dari hasil kueri, gunakan elemen Filter.

    5. Konfigurasi cara data dilihat.

      Untuk melihat label, luaskan menu Filter. Setiap entri di menu Filter sesuai dengan label.

      Untuk informasi selengkapnya tentang cara mengonfigurasi diagram, lihat Memilih metrik saat menggunakan Metrics Explorer.

    Jika Anda tidak melihat metrik Prometheus, tinjau konfigurasi Anda.

Jika metrik Prometheus Anda tidak berisi label aplikasi, lakukan hal berikut:

  1. Pastikan Anda telah mendaftarkan beban kerja atau layanan Anda ke Pusat Aplikasi.

  2. Periksa log Anda untuk menentukan apakah ada error.

    Misalnya, jika Anda men-deploy OpenTelemetry Collector atau Collector buatan Google dan berjalan di Google Kubernetes Engine, Anda dapat melakukan hal berikut:

    1. Di konsol Google Cloud , buka halaman Workloads:

      Buka Workloads

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.

    2. Pilih deployment pengumpul Anda, lalu pilih tab Log.
  3. Jika Anda menggunakan OpenTelemetry Collector atau Collector buatan Google, tinjau konfigurasi pengumpul Anda. Pengumpul data Anda harus melakukan tindakan berikut:

    • Mengekspor data metrik dengan eksportir googlemanagedprometheus.
    • Konfigurasi prosesor k8sattributes untuk mengekstrak metadata, seperti namespace, dari lingkungan.
    • Konfigurasi pemroses transform/collision untuk menetapkan atribut project_id, location, cluster, dan namespace.
    • Konfigurasi pemroses transform/aco-gke untuk mengisi label top_level_controller_name dan top_level_controller_type.

    Sebagai contoh, lihat file konfigurasi Pengumpul data buatan Google: otlp-k8s-ingest/config/collector.yaml.

Menambahkan atribut aplikasi ke rentang rekaman aktivitas

Anda tidak menginstrumentasi aplikasi sehingga atribut khusus aplikasi dilampirkan ke rentang yang dikirim ke project Google Cloud Anda. Sebagai gantinya, Google Cloud Observability menggunakan atribut resource OpenTelemetry dan App Hub API untuk mengidentifikasi aplikasi App Hub yang terkait dengan rentang, lalu menambahkan atribut khusus aplikasi sebelum menyimpan rentang.

Agar Google Cloud Observability melampirkan atribut resource khusus aplikasi ke data aktivitas yang dihasilkan oleh layanan dan workload aplikasi Anda, lakukan semua hal berikut:

Untuk mengetahui informasi selengkapnya tentang atribut ini, lihat Konvensi semantik Pusat AplikasiGoogle Cloud .

Atribut yang diperlukan

Bagian ini berlaku untuk konfigurasi yang tidak menggunakan salah satu pengumpul yang direkomendasikan. Misalnya, Anda mungkin ingin menulis pengumpul Anda sendiri, atau Anda mungkin lebih suka mengekspor data rekaman aktivitas secara langsung.

Atribut yang mengidentifikasi project dan lokasi resource Anda

Tetapkan atribut berikut:

  • Tetapkan cloud.provider ke "gcp".
  • cloud.account.id: Setel ke project ID Anda.
  • cloud.availability_zone atau cloud.region: Setel ke zona atau region tempat resource Anda berada. Anda dapat menetapkan kedua atribut.

Detektor resource dapat membantu Anda menetapkan atribut sebelumnya:

Atribut untuk workload Google Kubernetes Engine

Untuk workload Google Kubernetes Engine, konfigurasi pengumpul atau instrumentasi Anda untuk melakukan hal berikut:

  • Ekstrak metadata, seperti namespace, dari lingkungan.
  • Ekstrak metadata yang relevan dari pemroses k8sattributes.
  • Tetapkan atribut project_id, location, cluster, dan namespace untuk metrik.
  • Tetapkan label top_level_controller_name dan top_level_controller_type untuk metrik.

Untuk contoh berbasis pengumpul, lihat otlp-k8s-ingest/config/collector.yaml. Pengumpul tersebut menggunakan prosesor k8sattributesprocessor.

Atribut untuk workload VM

Jika Anda men-deploy aplikasi di VM, VM tersebut harus dikaitkan dengan Grup Instance Terkelola (MIG). Anda juga harus melampirkan atribut berikut:

  • gcp.gce.instance_group_manager.name
  • gcp.gce.instance_group_manager.region atau gcp.gce.instance_group_manager.zone