Ringkasan v1.metrics

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 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)
  • Atribut location
  • Atribut cloud.availability_zone
  • Atribut cloud.region
cluster
  • Atribut cluster
  • Atribut k8s.cluster.name
  • __gce__, jika atribut cloud.platform adalah gcp_compute_engine
  • __run__, jika atribut cloud.platform adalah gcp_cloud_run
  • String kosong
namespace
  • Atribut namespace
  • Atribut k8s.namespace.name
  • Atribut service.namespace
  • String kosong
job
  • Atribut job
  • "service.namespace" + "/" + atribut service.namespace
  • Atribut service.name
  • Atribut service.name, jika bukan unknown_service:foo
  • Atribut faas.name
  • Atribut k8s.deployment.name
  • Atribut k8s.statefulset.name
  • Atribut k8s.job.name
  • Atribut k8s.cronjob.name
  • Atribut service.name, jika unknown_service:foo
  • String kosong
instance
Tolak titik jika kosong
  • Atribut instance
  • Atribut service.instance.id
  • Atribut faas.instance
  • Atribut k8s.pod.name:k8s.container.name
  • Atribut k8s.pod.name, jika tidak ada nama penampung
  • Atribut host.id

Pemetaan metrik

Metrik dikonversi ke format deret waktu Prometheus. Nama metrik tidak boleh memiliki domain atau harus memiliki domain prometheus.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:
    • Untuk mengukur pengukur Cloud Monitoring saat is_monotonic disetel ke false.
    • Ke Cloud Monitoring kumulatif saat aggregation_temporality disetel ke AGGREGATION_TEMPORALITY_CUMULATIVE.
    • Untuk delta Cloud Monitoring saat aggregation_temporality disetel ke AGGREGATION_TEMPORALITY_DELTA.
  • 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 setiap quantile.
    • Nama untuk metrik jumlah dan jumlah total diberi akhiran _count atau _sum, dan ditulis sebagai metrik kumulatif Cloud Monitoring berjenis DOUBLE.
    • Setiap kuantil menjadi deret waktu pengukur sendiri berjenis DOUBLE, dengan label quantile.

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. Eksporter googlemanagedprometheus mengonversi semua kemunculan karakter ini menjadi karakter garis bawah (_). Misalnya, metrik OTLP yang disebut prometheus.googleapis.com/foo.bar/gauge diekspor secara verbatim oleh eksportir OTLP, tetapi diekspor sebagai prometheus.googleapis.com/foo_bar/gauge oleh eksportir googlemanagedprometheus.

    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 eksportir googlemanagedprometheus dan yang diserap menggunakan eksportir otlphttp. 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 _total ke penghitung. Jadi, metrik yang diekspor sebagai prometheus.googleapis.com/foo/counter saat menggunakan Telemetry API diekspor sebagai prometheus.googleapis.com/foo_seconds_total/counter oleh pengekspor googlemanagedprometheus. Perbedaan ini juga berlaku untuk sufiks _total dan _ratio.

  • API mensintesis nilai sum_of_squared_deviation untuk nilai distribusi yang berasal dari histogram eksponensial. Pengekspor googlemanagedprometheus tidak menetapkan kolom ini untuk histogram eksponensial.

  • API mengonversi semua nilai titik bilangan bulat menjadi nilai ganda untuk metrik Prometheus.

  • API tidak menetapkan label scope_version atau scope_name jika 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.