Tentang label khusus aplikasi
Label khusus aplikasi mengacu pada label atau atribut yang dimasukkan ke dalam data log, metrik, atau trace. 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 trace 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 menyertakan label metrik berikut:
metric.labels.apphub_application_{container,id,location}metric.labels.apphub_workload_{criticality_type,environment_type,id}
Span trace yang dihasilkan oleh instrumentasi yang Anda tambahkan ke aplikasi dapat menyertakan 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 emas ini
dapat diperoleh dari metrik
http.server.request.duration, yang otomatis dikumpulkan 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 - Kind:
CUMULATIVE - Jenis nilai:
DISTRIBUTION
Jika project Google Cloud Anda berisi metrik http_server_request_duration_seconds, dasbor Pemantauan Aplikasi akan menampilkan tingkat traffic, rasio 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 berupaya 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 mencantumkan konfigurasi yang memungkinkan Google Cloud Observability mengidentifikasi aplikasi App Hub.
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:
Instrumentasikan aplikasi dengan OpenTelemetry.
- Untuk mengetahui informasi umum, lihat Kemampuan observasi untuk developer aplikasi.
- Untuk link ke contoh Go, Java, Node.js, dan Python beserta informasi tentang contoh tersebut, lihat Ringkasan contoh instrumentasi.
Deploy Collector buatan Google atau OpenTelemetry Collector, dan konfigurasikan collector sebagai berikut:
- Ekspor data metrik dengan pengekspor
googlemanagedprometheus. - Konfigurasikan pemroses
k8sattributesuntuk mengekstrak metadata, sepertinamespace, dari lingkungan. - Konfigurasikan pemroses
transform/collisionuntuk menetapkan atributproject_id,location,cluster, dannamespace. - Konfigurasikan pemroses
transform/aco-gkeuntuk mengisi labeltop_level_controller_namedantop_level_controller_type.
Sebagai contoh, lihat
otlp-k8s-ingest/config/collector.yaml, yang merupakan file konfigurasi untuk Kolektor buatan Google. Untuk mempelajari kolektor ini lebih lanjut, lihat Men-deploy Kolektor OpenTelemetry Buatan Google di GKE.- Ekspor data metrik dengan pengekspor
Daftarkan workload aplikasi Anda ke App Hub.
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:
Gunakan Google Cloud Managed Service for Prometheus dengan koleksi terkelola.
Deploy workload Anda di cluster Google Kubernetes Engine yang versinya minimal
1.32.1-gke.1439000.Daftarkan workload aplikasi Anda ke App Hub.
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:
Lakukan instrumentasi pada aplikasi Anda menggunakan OpenTelemetry atau Managed Service for Prometheus sidecar untuk Cloud Run. Untuk mengetahui informasi tentang pendekatan ini, lihat dokumen berikut:
Daftarkan workload aplikasi Anda ke App Hub.
Memverifikasi label metrik
Untuk memverifikasi bahwa aplikasi Anda mengirim metrik Prometheus ke project Anda, lakukan hal berikut:
-
Pastikan aplikasi Anda mengirim metrik Prometheus ke project Anda:
-
Di konsol Google Cloud , buka halaman leaderboard Metrics explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Di toolbar konsol Google Cloud , pilih project Google Cloud Anda. Untuk konfigurasi App Hub, pilih project host App Hub atau project pengelolaan folder khusus aplikasi.
- Pada elemen Metrik, luaskan menu Pilih metrik, masukkan
Prometheus Targetdi kolom filter, lalu gunakan submenu untuk memilih jenis dan metrik resource tertentu:- Di menu Active resources, pilih Prometheus Target.
- Untuk memilih metrik, gunakan menu Kategori metrik aktif dan Metrik aktif.
- Klik Terapkan.
Untuk menambahkan filter, yang menghapus deret waktu dari hasil kueri, gunakan elemen Filter.
- Konfigurasi cara data dilihat.
Untuk melihat label, luaskan menu Filter. Setiap entri dalam 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:
Pastikan Anda mendaftarkan workload atau layanan Anda ke App Hub.
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:
-
Di konsol Google Cloud , buka halaman Workloads:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Kubernetes Engine.
- Pilih deployment kolektor Anda, lalu pilih tab Logs.
-
Jika Anda menggunakan OpenTelemetry Collector atau Collector buatan Google, tinjau konfigurasi collector Anda. Kolektor Anda harus melakukan hal berikut:
- Ekspor data metrik dengan pengekspor
googlemanagedprometheus. - Konfigurasikan pemroses
k8sattributesuntuk mengekstrak metadata, sepertinamespace, dari lingkungan. - Konfigurasikan pemroses
transform/collisionuntuk menetapkan atributproject_id,location,cluster, dannamespace. - Konfigurasikan pemroses
transform/aco-gkeuntuk mengisi labeltop_level_controller_namedantop_level_controller_type.
Sebagai contoh, lihat file konfigurasi Collector yang dibuat Google:
otlp-k8s-ingest/config/collector.yaml.- Ekspor data metrik dengan pengekspor
Menambahkan atribut aplikasi ke span trace
Anda tidak menginstrumentasikan aplikasi sedemikian rupa sehingga atribut khusus aplikasi dilampirkan ke span 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 span, lalu menambahkan atribut khusus aplikasi sebelum menyimpan span.
Agar Google Cloud Observability melampirkan atribut resource khusus aplikasi ke data trace yang dihasilkan oleh layanan dan workload aplikasi Anda, lakukan semua hal berikut:
Lakukan instrumentasi pada aplikasi Anda dengan OpenTelemetry dan konfigurasikan pengekspor untuk mengirim data trace ke endpoint Telemetry (OTLP) API.
Sebaiknya gunakan ekspor berbasis kolektor. Dokumen berikut menjelaskan kolektor yang melampirkan semua atribut yang diperlukan ke data span:
- Men-deploy Kolektor OpenTelemetry Buatan Google di Google Kubernetes Engine.
- Men-deploy Kolektor OpenTelemetry Buatan Google di Cloud Run.
- Deploy OpenTelemetry Collector di Container-Optimized OS.
Jika tidak menggunakan salah satu kolektor sebelumnya, Anda harus mengonfigurasi instrumentasi atau kolektor untuk melampirkan semua atribut yang diperlukan.
Deploy layanan dan workload Anda di infrastruktur yang didukung.
Daftarkan layanan dan workload Anda ke App Hub.
Untuk mengetahui informasi selengkapnya tentang atribut ini, lihat Google Cloud Konvensi semantik App Hub.
Atribut yang diperlukan
Bagian ini berlaku untuk konfigurasi yang tidak menggunakan salah satu kolektor yang direkomendasikan. Misalnya, Anda mungkin ingin menulis kolektor sendiri, atau mungkin lebih memilih untuk mengekspor data trace secara langsung.
Atribut yang mengidentifikasi project dan lokasi resource Anda
Tetapkan atribut berikut:
- Tetapkan
cloud.providerke"gcp". cloud.account.id: Tetapkan ke project ID Anda.cloud.availability_zoneataucloud.region: Tetapkan ke zona atau region tempat resource Anda berada. Anda dapat menetapkan kedua atribut.
Detektor resource dapat membantu Anda menetapkan atribut sebelumnya:
resourcedetectionprocessor- Go: Google Cloud resource detector
- Java:
opentelemetry-java-contrib/gcp-resources - Node.js:
resource-detector-gcp - Python:
opentelemetry-resourcedetector-gcp
Atribut untuk workload Google Kubernetes Engine
Untuk workload Google Kubernetes Engine, konfigurasikan kolektor atau instrumentasi Anda untuk melakukan hal berikut:
- Ekstrak metadata, seperti
namespace, dari lingkungan. - Mengekstrak metadata yang relevan dari pemroses
k8sattributes. - Tetapkan atribut
project_id,location,cluster, dannamespaceuntuk metrik. - Tetapkan label
top_level_controller_namedantop_level_controller_typeuntuk metrik.
Untuk contoh berbasis kolektor, lihat
otlp-k8s-ingest/config/collector.yaml.
Kolektor tersebut menggunakan pemroses
k8sattributesprocessor.
Atribut untuk workload VM
Jika Anda men-deploy aplikasi di VM, VM tersebut harus dikaitkan dengan Grup Instance Terkelola (MIG). Anda juga harus menyertakan atribut berikut:
gcp.gce.instance_group_manager.namegcp.gce.instance_group_manager.regionataugcp.gce.instance_group_manager.zone