Dokumen ini menjelaskan cara data metrik yang dikirim ke project Google Cloud Anda menggunakan Telemetry (OTLP) API dipetakan ke struktur Cloud Monitoring. API ini mengimplementasikan
OpenTelemetry OTLP Protocol. Anda dapat mengirim data ke API ini saat menginstrumentasikan aplikasi dengan pengekspor otlphttp dan OpenTelemetry Collector, atau saat menggunakan SDK OpenTelemetry.
OpenTelemetry adalah project open source yang didukung Google Cloud-dengan staf engineer yang memastikan dukungan untuk penyerapan dan visualisasi telemetri Anda. Google Cloud
Metrik OTLP di Cloud Monitoring
Saat metrik dimasukkan ke Cloud Monitoring menggunakan
OpenTelemetry Collector dan pengekspor otlphttp atau dikirim langsung menggunakan
OpenTelemetry SDK, metrik OTLP
dipetakan ke struktur metrik Cloud Monitoring.
Bagian ini menjelaskan hal berikut:
- Pemetaan antara resource OTLP dan resource yang dipantau Cloud Monitoring.
- Pemetaan antara metrik OTLP dan metrik Cloud Monitoring.
Pemetaan resource yang dipantau
Semua titik metrik ditulis sebagaimana adanya untuk Google Cloud Managed Service for Prometheus, dengan menggunakan pemetaan Prometheus.
Pemetaan Prometheus
Metrik Prometheus memerlukan penggunaan jenis resource yang dimonitor
prometheus_target.
Label berikut pada jenis resource prometheus_target digunakan untuk membuat skema dan menyimpan data secara efisien dalam Monarch. Makin akurat Anda menentukan nilai untuk atribut ini, makin baik kemampuan kueri dan skalabilitas Anda.
Sebaiknya tetapkan nilai untuk label ini sejelas mungkin, meskipun kami telah menerapkan logika penggantian untuk digunakan jika tidak ada nilai eksplisit.
Tabel berikut menunjukkan sumber nilai untuk label, berdasarkan urutan prioritas:
Label prometheus-target |
Nilai yang digunakan (dalam urutan prioritas) |
|---|---|
location (diperlukan) |
|
cluster |
|
namespace |
|
job |
|
instanceTolak titik jika kosong |
|
Pemetaan metrik
Metrik dikonversi ke format deret waktu Prometheus. Nama metrik tidak boleh memiliki domain atau harus memiliki domainprometheus.googleapis.com.
Setelah konversi, nama metrik akan menyertakan
awalan prometheus.googleapis.com dan sufiks tambahan, berdasarkan
jenis titik OTLP. Metrik Cloud Monitoring yang dihasilkan memiliki struktur berikut:
prometheus.googleapis.com/{metric_name}/{suffix}
Selain itu, untuk setiap resource OpenTelemetry yang unik, konversi menambahkan metrik target_info yang berisi semua atribut resource kecuali service.name, service.instance.id, dan service.namespace.
Semua metrik OTLP INT64 diterjemahkan ke
jenis nilai DOUBLE di Cloud Monitoring,
meskipun pengumpul menentukan jenis nilai sebagai INT64.
Perubahan ini dilakukan karena setelah deret waktu berada di Monarch, Anda tidak dapat mengubah jenis nilai. Konsekuensi paling umum dari mendukung nilai INT64 adalah Anda akan mengalami konflik yang hanya dapat diselesaikan dengan menghapus metrik.
Pemetaan metrik Prometheus
Jenis metrik dipetakan sebagai berikut:
- Pengukur OTLP dipetakan ke pengukur Cloud Monitoring.
- OTLP Sum dipetakan sebagai berikut:
- Histogram OTLP dipetakan ke distribusi Cloud Monitoring dengan jenis metrik kumulatif atau delta, bergantung pada nilai
aggregation_temporality. - Metrik Ringkasan OTLP diperluas menjadi deret waktu individual
untuk setiap komponen:
count,sum, dan setiapquantile.
Tabel berikut merangkum pemetaan metrik:
| Jenis titik OTLP | Memantau jenis metrik | Pemantauan jenis nilai | Akhiran | Catatan |
|---|---|---|---|---|
| GAUGE | GAUGE | DOUBLE | /gauge | |
| GAUGE (metric.metadata["prometheus.type"]="unknown") | GAUGE | DOUBLE | /unknown | Prometheus Unknowns dibagi menjadi penghitung dan pengukur oleh OpenTelemetry Collector. |
| SUM (monoton, CUMULATIVE) | KUMULATIF | DOUBLE | /counter | |
| SUM (monotonic, CUMULATIVE, metric.metadata["prometheus.type"]="unknown") | KUMULATIF | DOUBLE | /unknown:counter | Prometheus Unknowns dibagi menjadi penghitung dan pengukur oleh OpenTelemetry Collector. |
| SUM (monotonik, DELTA) | DELTA | DOUBLE | /delta | |
| SUM (non-monotonik, KUMULATIF) | GAUGE | DOUBLE | /gauge | |
| HISTOGRAM (KUMULATIF) | KUMULATIF | DISTRIBUSI dengan bucket eksplisit | /histogram | |
| HISTOGRAM EKSPONENSIAL (KUMULATIF) | KUMULATIF | DISTRIBUSI dengan bucket eksponensial | /histogram | |
| HISTOGRAM (DELTA) | DELTA | DISTRIBUSI dengan bucket eksplisit | /histogram:delta | |
| HISTOGRAM EKSPONENSIAL (DELTA) | DELTA | DISTRIBUSI dengan bucket eksponensial | /histogram:delta | |
| RINGKASAN (sum, count, quantile) |
KUMULATIF KUMULATIF GAUGE |
DOUBLE DOUBLE DOUBLE |
_sum/summary:counter _count/summary /summary |
Titik data ringkasan ditulis sebagai beberapa deret waktu, satu untuk
jumlah, jumlah, dan setiap kuantil yang dihitung. Metrik kuantil juga dihasilkan dengan label quantile. |
Perbedaan antara eksportir googlemanagedprometheus dan Telemetry API
Telemetry API (telemetry.googleapis.com) menangani metrik secara berbeda
dari pengekspor googlemanagedprometheus:
Telemetry API mengizinkan karakter titik (
.) dan garis miring (/) dalam nama metrik. Eksportergooglemanagedprometheusmengonversi semua kemunculan karakter ini menjadi karakter garis bawah (_). Misalnya, metrik OTLP yang disebutprometheus.googleapis.com/foo.bar/gaugediekspor secara verbatim oleh eksportir OTLP, tetapi diekspor sebagaiprometheus.googleapis.com/foo_bar/gaugeoleh eksportirgooglemanagedprometheus.Saat metrik di-ingest, Cloud Monitoring membuat deskriptor metrik berdasarkan nama. Perbedaan cara penanganan karakter titik (
.) dan garis miring (/) oleh jalur penyerapan berarti deskriptor metrik yang dihasilkan berbeda antara metrik yang diserap menggunakan eksportirgooglemanagedprometheusdan yang diserap menggunakan eksportirotlphttp. Jika menggunakan kedua jalur penyerapan, Anda akan memiliki dua set metrik; untuk mendapatkan hasil lengkap saat membuat kueri, Anda harus menggabungkan hasil secara manual dari metrik versi Prometheus dan OTLP.Telemetry API tidak menambahkan unit ke nama metrik jika ada unit, dan tidak menambahkan akhiran
_totalke penghitung. Jadi, metrik yang diekspor sebagaiprometheus.googleapis.com/foo/countersaat menggunakan Telemetry API diekspor sebagaiprometheus.googleapis.com/foo_seconds_total/counteroleh pengeksporgooglemanagedprometheus. Perbedaan ini juga berlaku untuk sufiks_totaldan_ratio.API mensintesis nilai
sum_of_squared_deviationuntuk nilai distribusi yang berasal dari histogram eksponensial. Pengeksporgooglemanagedprometheustidak menetapkan kolom ini untuk histogram eksponensial.API mengonversi semua nilai titik bilangan bulat menjadi nilai ganda untuk metrik Prometheus.
API tidak menetapkan label
scope_versionatauscope_namejika label tersebut memiliki nilai kosong.
Tempat melihat data yang diserap
Data metrik yang dimasukkan melalui Telemetry API dapat dilihat menggunakan halaman Metrics Explorer. Untuk informasi tentang cara melihat dan membuat diagram data metrik, lihat Membuat diagram dengan Metrics Explorer.