Mengumpulkan metrik Prometheus

Dokumen ini menjelaskan konfigurasi dan penggunaan penerima metrik Agen Operasional yang dapat Anda gunakan untuk mengumpulkan metrik dari Prometheus di Compute Engine. Dokumen ini juga menjelaskan contoh yang dapat Anda gunakan untuk mencoba penerima.

Pengguna Google Kubernetes Engine dapat mengumpulkan metrik Prometheus dengan menggunakan Google Cloud Managed Service for Prometheus. Penerima Ops Agent Prometheus memberi pengguna Compute Engine kemampuan yang sama.

Anda dapat menggunakan semua alat yang disediakan oleh Cloud Monitoring, termasuk PromQL, untuk melihat dan menganalisis data yang dikumpulkan oleh penerima Prometheus. Misalnya, Anda dapat menggunakan Metrics Explorer, seperti yang dijelaskan di Konsol Google Cloud untuk Monitoring, untuk mengkueri data Anda. Anda juga dapat membuat dasbor dan kebijakan pemberitahuan Cloud Monitoring untuk memantau metrik Prometheus. Sebaiknya gunakan PromQL sebagai bahasa kueri untuk metrik Prometheus Anda.

Anda juga dapat melihat metrik Prometheus pada antarmuka di luar Cloud Monitoring, seperti UI Prometheus dan Grafana.

Memilih penerima yang tepat

Sebelum memutuskan untuk menggunakan penerima Prometheus, tentukan apakah sudah ada integrasi Agen Operasional untuk aplikasi yang Anda gunakan. Untuk mendapatkan informasi tentang integrasi yang ada dengan Agen Operasional, lihat Memantau aplikasi pihak ketiga. Jika sudah ada integrasi, sebaiknya gunakan integrasi tersebut. Untuk mengetahui informasi selengkapnya, lihat Memilih integrasi yang ada.

Sebaiknya gunakan penerima Prometheus Agen Operasional jika hal berikut benar:

  • Anda memiliki pengalaman menggunakan Prometheus, mengandalkan standar Prometheus, dan memahami bagaimana faktor seperti interval scraping dan kardinalitas dapat memengaruhi biaya Anda. Untuk mengetahui informasi selengkapnya, lihat Memilih penerima Prometheus.

  • Software yang Anda pantau belum menjadi bagian dari rangkaian integrasi Agen Operasional yang ada.

Integrasi yang ada

Agen Operasional menyediakan integrasi untuk sejumlah aplikasi pihak ketiga. Integrasi ini memberikan hal-hal berikut untuk Anda:

  • Kumpulan metrik workload.googleapis.com yang dipilih untuk aplikasi
  • Dasbor untuk memvisualisasikan metrik.

Metrik yang diserap menggunakan integrasi yang ada akan dikenai harga berdasarkan byte untuk metrik yang dikumpulkan agen. Jumlah dan jenis metrik diketahui sebelumnya, dan Anda dapat menggunakan informasi itu untuk memperkirakan biaya.

Misalnya, jika Anda menggunakan integrasi Server Web Apache (httpd), Agen Operasional mengumpulkan lima metrik skalar; setiap titik data dihitung sebagai 8 byte. Jika Anda mempertahankan frekuensi pengambilan sampel default Agen Operasional selama 60 detik, jumlah byte yang diserap per hari adalah 57.600 * jumlah host:

  • 8 (byte) * 1440 (menit per hari) * 5 (metrik) * n (host), atau
  • 57.600 * n (host)

Untuk mengetahui informasi selengkapnya tentang memperkirakan biaya, baca Contoh harga berdasarkan byte yang diserap.

Penerima Prometheus

Saat Anda menggunakan Agen Operasional untuk mengumpulkan metrik Prometheus, hal berikut berlaku:

  • Jumlah dan kardinalitas metrik yang dimunculkan oleh aplikasi berada di bawah kendali Anda. Tidak ada kumpulan metrik yang diseleksi. Jumlah data yang Anda serap ditentukan oleh konfigurasi aplikasi Prometheus dan penerima Ops Agent Prometheus.

  • Metrik ditransfer ke Cloud Monitoring sebagai metrik prometheus.googleapis.com. Metrik ini diklasifikasikan sebagai jenis metrik "kustom" saat diserap ke dalam Cloud Monitoring dan tunduk pada kuota dan batas untuk metrik kustom.

  • Anda harus mendesain dan membuat dasbor Cloud Monitoring yang diperlukan, berdasarkan kumpulan metrik yang Anda serap dan sesuai kebutuhan bisnis Anda. Untuk informasi tentang cara membuat dasbor, lihat Dasbor dan diagram.

  • Harga untuk penyerapan metrik didasarkan pada jumlah sampel yang diserap. Untuk memperkirakan biaya saat menggunakan penerima Prometheus, Anda harus menentukan jumlah sampel yang kemungkinan akan Anda kumpulkan selama siklus penagihan. Estimasi ini didasarkan pada faktor-faktor berikut:

    • Jumlah metrik skalar; setiap nilai adalah satu sampel
    • Jumlah metrik distribusi; setiap histogram dihitung sebagai (2 + jumlah bucket dalam histogram)
    • Frekuensi pengambilan sampel setiap metrik
    • Jumlah host tempat metrik diambil sampelnya

    Untuk mengetahui informasi lebih lanjut tentang cara menghitung sampel dan memperkirakan biaya, baca artikel Contoh harga berdasarkan sampel yang diserap.

Prasyarat

Untuk mengumpulkan metrik Prometheus menggunakan penerima Prometheus, Anda harus menginstal Agen Operasional versi 2.25.0 atau yang lebih baru.

Penerima Agen Operasional memerlukan endpoint yang memunculkan metrik Prometheus. Oleh karena itu, aplikasi Anda harus menyediakan endpoint tersebut secara langsung atau menggunakan library atau pengekspor Prometheus untuk menampilkan endpoint. Banyak library dan framework bahasa seperti Spring dan DropWizard, atau aplikasi seperti StatsD, DogStatsD, dan Graphite, yang memunculkan metrik non-Prometheus dapat menggunakan library klien atau pengekspor Prometheus untuk menghasilkan metrik bergaya Prometheus. Misalnya, untuk memunculkan metrik Prometheus:

Saat metrik Prometheus dimunculkan oleh aplikasi, secara langsung atau menggunakan library atau pengekspor, metrik tersebut kemudian dapat dikumpulkan oleh Agen Operasional yang dikonfigurasi dengan penerima Prometheus.

Mengonfigurasi Agen Operasional

Model konfigurasi Agen Operasional biasanya melibatkan penentuan hal-hal berikut:

  • Penerima, yang menentukan metrik mana yang dikumpulkan.
  • Pemroses, yang menjelaskan cara Agen Operasional dapat mengubah metrik.
  • Pipeline, yang menghubungkan penerima dan prosesor bersama-sama ke dalam sebuah layanan.

Konfigurasi untuk menyerap metrik Prometheus sedikit berbeda: tidak ada prosesor yang terlibat.

Konfigurasi untuk metrik Prometheus

Mengonfigurasi Agen Operasional untuk menyerap metrik Prometheus berbeda dengan konfigurasi biasa sebagai berikut:

  • Anda tidak perlu membuat pemroses Agen Operasional untuk metrik Prometheus. Penerima Prometheus mendukung hampir semua opsi konfigurasi yang ditentukan oleh spesifikasi scrape_config Prometheus, termasuk opsi pelabelan ulang.

    Alih-alih menggunakan pemroses Agen Operasional, semua pemrosesan metrik dilakukan dengan menggunakan bagian relabel_configs dan metric_relabel_configs dari konfigurasi scape, seperti yang ditentukan dalam penerima Prometheus. Untuk informasi selengkapnya, lihat Pelabelan ulang: Mengubah data yang sedang disalin.

  • Anda menentukan pipeline Prometheus hanya dalam hal penerima Prometheus. Anda tidak menentukan pemroses apa pun. Anda juga tidak dapat menggunakan penerima non-Prometheus pada pipeline untuk metrik Prometheus.

Sebagian besar konfigurasi penerima merupakan spesifikasi opsi konfigurasi scrape. Jika opsi tersebut tidak diperlukan agar lebih singkat, gambar berikut akan menunjukkan struktur konfigurasi Agen Operasional yang menggunakan penerima Prometheus. Anda menentukan nilai RECEIVER_ID dan PIPELINE_ID.

metrics:
  receivers:
    RECEIVER_ID:
      type: prometheus
      config:
        scrape_configs:
          [... omitted for brevity ...]

  service:
    pipelines:
      PIPELINE_ID:
        receivers: [RECEIVER_ID]

Bagian berikut menjelaskan penerima Prometheus secara lebih mendetail. Untuk mengetahui contoh fungsi penerima dan pipeline, lihat Menambahkan penerima dan pipeline Agen Operasional.

Penerima Prometheus

Untuk menentukan penerima metrik Prometheus, Anda harus membuat penerima metrik jenis prometheus dan menentukan kumpulan opsi scrape_config. Penerima mendukung semua opsi scrape_config Prometheus, kecuali hal berikut:

  • Bagian penemuan layanan, *_sd_config.
  • Setelan honor_labels.

Oleh karena itu, Anda dapat menyalin konfigurasi scrape yang ada dan menggunakannya untuk Agen Operasional dengan sedikit atau tanpa modifikasi.

Struktur lengkap penerima Prometheus ditampilkan sebagai berikut:

metrics:
  receivers:
    prom_application:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'STRING' # must be unique across all Prometheus receivers
              scrape_interval: # duration, like 10m or 15s
              scrape_timeout:  # duration, like 10m or 15s
              metrics_path: # resource path for metrics, default = /metrics
              honor_timestamps: # boolean, default = false
              scheme: # http or https, default = http
              params:
                - STRING: STRING
              basic_auth:
                username: STRING
                password: SECRET
                password_file: STRING
              authorization:
                type: STRING # default = Bearer
                credentials: SECRET
                credentials_file: FILENAME

              oauth2: OAUTH2 # See Prometheus oauth2
              follow_redirects: # boolean, default = true
              enable_http2: # boolean, default = true
              tls_config: TLS_CONFIG # See Prometheus tls_config
              proxy_url: STRING

              static_configs:
                STATIC_CONFIG # See Prometheus static_config
              relabel_configs:
                RELABEL_CONFIG # See Prometheus relabel_config
              metric_relabel_configs:
                METRIC_RELABEL_CONFIGS # See Prometheus metric_relabel_configs

Untuk contoh pelabelan ulang konfigurasi, lihat Konfigurasi penerima tambahan.

Contoh: Mengonfigurasi Agen Operasional untuk Prometheus

Bagian ini menunjukkan contoh cara mengonfigurasi Agen Operasional untuk mengumpulkan metrik Prometheus dari aplikasi. Contoh ini menggunakan Pengekspor JSON yang disediakan komunitas Prometheus (json_exporter), yang mengekspos metrik Prometheus pada port 7979.

Untuk menyiapkan contoh, diperlukan resource berikut, yang mungkin harus diinstal:

  • git
  • curl
  • make
  • python3
  • Bahasa Go, versi 1.19 atau yang lebih tinggi

Membuat atau mengonfigurasi aplikasi

Untuk mendapatkan dan menjalankan Pengekspor JSON, gunakan prosedur berikut:

  1. Clone repositori json_exporter dan periksa pengekspor dengan menjalankan perintah berikut:

    git clone https://github.com/prometheus-community/json_exporter.git
    
    cd json_exporter
    
    git checkout v0.5.0
    
  2. Buat pengekspor dengan menjalankan perintah berikut:

    make build
    
  3. Mulai server HTTP Python dengan menjalankan perintah berikut:

    python3 -m http.server 8000 &
    
  4. Mulai Pengekspor JSON dengan menjalankan perintah berikut:

    ./json_exporter --config.file examples/config.yml &
    
  5. Buat kueri Pengekspor JSON untuk memverifikasi bahwa JSON sedang berjalan dan mengekspos metrik pada port 7979:

    curl "http://localhost:7979/probe?module=default&target=http://localhost:8000/examples/data.json"
    

    Jika kueri berhasil, Anda akan melihat output yang terlihat seperti berikut:

    # HELP example_global_value Example of a top-level global value scrape in the json
    # TYPE example_global_value untyped
    example_global_value{environment="beta",location="planet-mars"} 1234
    # HELP example_value_active Example of sub-level value scrapes from a json
    # TYPE example_value_active untyped
    example_value_active{environment="beta",id="id-A"} 1
    example_value_active{environment="beta",id="id-C"} 1
    # HELP example_value_boolean Example of sub-level value scrapes from a json
    # TYPE example_value_boolean untyped
    example_value_boolean{environment="beta",id="id-A"} 1
    example_value_boolean{environment="beta",id="id-C"} 0
    # HELP example_value_count Example of sub-level value scrapes from a json
    # TYPE example_value_count untyped
    example_value_count{environment="beta",id="id-A"} 1
    example_value_count{environment="beta",id="id-C"} 3
    

    Dalam output ini, string seperti example_value_active adalah nama metrik, dengan label dan nilai dalam tanda kurung kurawal. Nilai data mengikuti kumpulan label.

Menambahkan penerima dan pipeline Agen Operasional

Untuk mengonfigurasi Agen Operasional guna menyerap metrik dari aplikasi Pengekspor JSON, Anda harus mengubah konfigurasi agen untuk menambahkan penerima dan pipeline Prometheus. Untuk contoh Pengekspor JSON, gunakan prosedur berikut:

  1. Edit file konfigurasi Agen Operasional, /etc/google-cloud-ops-agent/config.yaml, lalu tambahkan penerima dan entri pipeline Prometheus berikut:

    metrics:
      receivers:
        prometheus:
            type: prometheus
            config:
              scrape_configs:
                - job_name: 'json_exporter'
                  scrape_interval: 10s
                  metrics_path: /probe
                  params:
                    module: [default]
                    target: [http://localhost:8000/examples/data.json]
                  static_configs:
                    - targets: ['localhost:7979']
      service:
        pipelines:
          prometheus_pipeline:
            receivers:
              - prometheus
     

    Jika Anda sudah memiliki entri konfigurasi lain dalam file ini, tambahkan penerima dan pipeline Prometheus ke entri metrics dan service yang sudah ada. Untuk informasi selengkapnya, lihat Konfigurasi metrik.

    Untuk contoh pelabelan ulang konfigurasi di penerima, lihat Konfigurasi penerima tambahan.

Memulai ulang Agen Operasional

Untuk menerapkan perubahan konfigurasi, Anda harus memulai ulang Agen Operasional.

LINUX

  1. Untuk memulai ulang agen, jalankan perintah berikut pada instance Anda:

    sudo service google-cloud-ops-agent restart
    
  2. Untuk mengonfirmasi bahwa agen dimulai ulang, jalankan perintah berikut dan verifikasi bahwa komponen "Metrics Agent" dan "Logging Agent" dimulai:

    sudo systemctl status google-cloud-ops-agent"*"
    

Windows

  1. Hubungkan ke instance Anda menggunakan RDP atau alat serupa, lalu login ke Windows.

  2. Buka terminal PowerShell yang menggunakan hak istimewa administrator dengan mengklik kanan ikon PowerShell dan memilih Run as Administrator.

  3. Untuk memulai ulang agen, jalankan perintah PowerShell berikut:

    Restart-Service google-cloud-ops-agent -Force
    
  4. Untuk mengonfirmasi bahwa agen dimulai ulang, jalankan perintah berikut dan verifikasi bahwa komponen "Metrics Agent" dan "Logging Agent" dimulai:

    Get-Service google-cloud-ops-agent*
    

Metrik Prometheus di Cloud Monitoring

Anda dapat menggunakan alat yang disediakan oleh Cloud Monitoring dengan data yang dikumpulkan oleh penerima Prometheus. Misalnya, Anda dapat membuat diagram data menggunakan Metrics Explorer, seperti yang dijelaskan di Konsol Google Cloud untuk Monitoring. Bagian berikut menjelaskan alat kueri yang tersedia di Cloud Monitoring dengan Metrics Explorer:

Anda dapat membuat dasbor Cloud Monitoring dan kebijakan pemberitahuan untuk metrik Anda. Untuk informasi tentang dasbor dan jenis diagram yang dapat Anda gunakan, lihat Dasbor dan diagram. Untuk mengetahui informasi tentang kebijakan pemberitahuan, lihat Menggunakan kebijakan pemberitahuan.

Anda juga dapat melihat metrik di antarmuka lain, seperti UI Prometheus dan Grafana. Untuk mengetahui informasi tentang cara menyiapkan antarmuka ini, lihat bagian berikut dalam dokumentasi Google Cloud Managed Service for Prometheus:

Menggunakan PromQL

PromQL adalah bahasa kueri yang direkomendasikan untuk metrik yang diserap menggunakan penerima Prometheus.

Cara paling sederhana untuk memastikan bahwa data Prometheus Anda diserap adalah dengan menggunakan halaman Cloud Monitoring Metrics Explorer di Konsol Google Cloud:

  1. Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics Explorer:

    Buka Metrics Explorer

  2. Di toolbar panel pembuat kueri, pilih tombol dengan nama  MQL atau  PromQL.

  3. Pastikan PromQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.

  4. Masukkan kueri berikut ke editor, lalu klik Run query:

    up
    

Jika data Anda diserap, Anda akan melihat diagram seperti berikut:

Diagram Metrics Explorer untuk metrik atas pengekspor json.

Jika menjalankan contoh Pengekspor JSON, Anda juga dapat mengeluarkan kueri seperti berikut:

  • Mengkueri semua data untuk metrik tertentu yang diekspor menurut nama, misalnya:

    example_value_count
    

    Berikut adalah diagram untuk example_value_count, termasuk label yang ditentukan oleh aplikasi Pengekspor JSON dan label yang ditambahkan oleh Agen Operasional:

    Diagram Metrics Explorer untuk metrik example_value_count json-exporter.

  • Mengkueri data untuk metrik yang diekspor yang berasal dari namespace tertentu. Nilai label namespace adalah ID instance Compute Engine, angka panjang seperti 5671897148133813325, yang ditetapkan ke VM. Kueri akan terlihat seperti berikut:

    example_value_count{namespace="INSTANCE_ID"}
    
  • Kueri data yang cocok dengan ekspresi reguler tertentu. Pengekspor JSON memberikan metrik dengan label id yang memiliki nilai seperti id-A, id-B, id-C. Untuk memfilter metrik dengan label id yang cocok dengan pola ini, gunakan kueri berikut:

    example_value_count{id=~"id.*"}
    

Untuk mengetahui informasi selengkapnya tentang penggunaan PromQL dalam diagram Metrics Explorer dan Cloud Monitoring, lihat PromQL di Cloud Monitoring.

Gunakan MQL

Untuk melihat data Prometheus sebagai deret waktu Cloud Monitoring serta membuat diagram dan dasbor, Anda juga dapat menggunakan antarmuka berbasis menu atau MQL. Berikut adalah kueri sederhana di Metrics Explorer:

  1. Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics Explorer:

    Buka Metrics Explorer

  2. Tentukan data yang akan muncul pada diagram. Selain menggunakan tab PromQL yang dijelaskan sebelumnya, Anda juga dapat menggunakan MQL.

    • Untuk menggunakan MQL, lakukan hal berikut:

      1. Di toolbar panel pembuat kueri, pilih tombol dengan nama  MQL atau  PromQL.
      2. Pastikan MQL dipilih di tombol Language. Tombol bahasa berada di toolbar yang sama yang memungkinkan Anda memformat kueri.
      3. Masukkan kueri berikut:

        fetch prometheus_target::prometheus.googleapis.com/up/gauge
        
      4. Klik Run Query.

    • Untuk menggunakan antarmuka berbasis menu, lakukan hal berikut:

      1. Di kolom Resource type, ketik "prometheus" untuk memfilter daftar, lalu pilih Prometheus Target.

      2. Di kolom Metric, ketik "up/" untuk memfilter daftar, lalu pilih prometheus/up/gauge.

Diagram yang dihasilkan dari salah satu kueri ini akan menampilkan data yang sama dengan diagram yang ditampilkan dengan contoh PromQL.

Resource prometheus_target

Dalam Cloud Monitoring, data deret waktu ditulis berdasarkan jenis resource yang dipantau. Untuk metrik Prometheus, jenis resource yang dipantau adalah prometheus_target. Kueri pemantauan untuk metrik Prometheus yang tidak ditulis dalam PromQL harus menentukan jenis resource ini.

Resource prometheus_target memiliki label berikut, yang dapat Anda gunakan untuk memfilter dan memanipulasi data yang dikueri:

  • project_id: ID project Google Cloud, seperti my-project, tempat Agen Operasional dijalankan.
  • location: Region Google Cloud atau AWS tempat Agen Operasional dijalankan; misalnya, us-east1-a (Google Cloud) atau aws:us-east-1a (AWS).
  • cluster: Selalu __gce__ untuk metrik Prometheus yang dikumpulkan menggunakan Agen Operasional.
  • namespace: ID instance Compute Engine VM tempat Agen Operasional dijalankan.
  • job: Nilai kolom job_name di konfigurasi penerima.
  • instance: Label instance target Prometheus, yang diambil dari konfigurasi penerima; setelan default-nya adalah target.

Nilai untuk label ini ditetapkan selama pengumpulan. Nilai label namespace, location, dan cluster tidak dapat diubah. Jika metrik yang diambil dari aplikasi Anda juga memiliki label ini, Agen Operasional akan mengawali label salinan dengan string exported_.

Lihat penggunaan dan diagnostik metrik di Cloud Monitoring

Halaman Metrics Management Cloud Monitoring menyediakan informasi yang dapat membantu Anda mengontrol jumlah biaya yang dikeluarkan untuk metrik yang dapat dikenakan biaya tanpa memengaruhi kemampuan observasi. Halaman Pengelolaan Metrik melaporkan informasi berikut:

  • Volume penyerapan untuk penagihan berbasis byte dan sampel, di seluruh domain metrik dan untuk masing-masing metrik.
  • Data tentang label dan kardinalitas metrik.
  • Penggunaan metrik dalam kebijakan pemberitahuan dan dasbor kustom.
  • Rasio error penulisan metrik.

Untuk menampilkan halaman Metrics Management, lakukan hal berikut:

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics management:

    Buka Pengelolaan metrik

  2. Di toolbar, pilih periode waktu. Secara default, halaman Metrics Management menampilkan informasi tentang metrik yang dikumpulkan dalam satu hari sebelumnya.

Untuk informasi selengkapnya tentang halaman Metrics Management, baca artikel Melihat dan mengelola penggunaan metrik.

Pelabelan ulang: Memodifikasi data yang sedang disalin

Anda dapat menggunakan pelabelan ulang untuk mengubah kumpulan label target scrape atau metriknya sebelum target disalin. Jika Anda memiliki beberapa langkah dalam konfigurasi pelabelan ulang, langkah tersebut akan diterapkan sesuai urutan kemunculannya di file konfigurasi.

Agen Operasional membuat kumpulan label meta (label yang diawali dengan string __meta_. Label meta ini merekam informasi tentang instance Compute Engine tempat Agen Operasional dijalankan. Label dengan awalan string __, termasuk label meta, hanya tersedia selama pelabelan ulang. Anda dapat menggunakan pelabelan ulang untuk mencatat nilai label ini pada label yang disalin.

Pelabelan ulang metrik diterapkan pada sampel; ini adalah langkah terakhir sebelum penyerapan. Anda dapat menggunakan pelabelan ulang metrik untuk menghapus deret waktu yang tidak perlu diserap; menurunkan deret waktu ini akan mengurangi jumlah sampel yang diserap, sehingga dapat menurunkan biaya.

Untuk informasi selengkapnya tentang pelabelan ulang, lihat dokumentasi Prometheus untuk relabel_config dan metric_relabel_configs.

Label meta Compute Engine tersedia selama pelabelan ulang

Saat Agen Operasional mengekstrak metrik, sekumpulan label meta yang nilainya didasarkan pada konfigurasi VM Compute Engine tempat agen dijalankan. Anda dapat menggunakan label ini dan bagian relabel_configs penerima Prometheus untuk menambahkan metadata tambahan ke metrik tentang VM tempat VM tersebut diserap. Untuk contoh, lihat Konfigurasi penerima tambahan.

Label meta berikut tersedia di target untuk Anda gunakan di bagian relabel_configs:

  • __meta_gce_instance_id: ID numerik instance Compute Engine (lokal)
  • __meta_gce_instance_name: nama instance Compute Engine (lokal); Agen Operasional secara otomatis menempatkan nilai ini pada label instance_name yang dapat diubah di metrik Anda.
  • __meta_gce_machine_type: URL lengkap atau sebagian dari jenis mesin instance; Agen Operasional secara otomatis menempatkan nilai ini di label machine_type yang dapat diubah pada metrik Anda.
  • __meta_gce_metadata_NAME: setiap item metadata instance
  • __meta_gce_network: URL jaringan instance
  • __meta_gce_private_ip: alamat IP pribadi instance
  • __meta_gce_interface_ipv4_NAME: Alamat IPv4 dari setiap antarmuka yang diberi nama
  • __meta_gce_project: project Google Cloud tempat instance berjalan (lokal)
  • __meta_gce_public_ip: alamat IP publik instance, jika ada
  • __meta_gce_tags: daftar tag instance yang dipisahkan koma
  • __meta_gce_zone: URL zona Compute Engine tempat instance berjalan

Nilai label ini ditetapkan saat Agen Operasional dimulai. Jika nilai diubah, Anda harus memulai ulang Agen Operasional untuk memperbarui nilai.

Konfigurasi penerima tambahan

Bagian ini memberikan contoh yang menggunakan bagian relabel_configs dan metric_relabel_configs pada penerima Prometheus untuk mengubah jumlah dan struktur metrik yang diserap. Bagian ini juga mencakup versi penerima yang dimodifikasi untuk contoh Pengekspor JSON yang menggunakan opsi pelabelan ulang.

Tambahkan metadata VM

Anda dapat menggunakan bagian relabel_configs untuk menambahkan label ke metrik. Misalnya, kode berikut menggunakan label meta, __meta_gce_zone, yang disediakan oleh Agen Operasional untuk membuat label metrik, zone, yang dipertahankan setelah pelabelan ulang, karena zone tidak memiliki awalan __.

Untuk daftar label meta yang tersedia, lihat Label meta Compute Engine yang tersedia selama pelabelan ulang. Beberapa label meta diberi label ulang untuk Anda melalui konfigurasi Agen Operasional default.

relabel_configs:
  - source_labels: [__meta_gce_zone]
    regex: '(.+)'
    replacement: '${1}'
    target_label: zone

Penerima Prometheus yang ditampilkan dalam Contoh: Mengonfigurasi Agen Operasional untuk Prometheus menyertakan penambahan label ini.

Metrik penurunan

Anda dapat menggunakan bagian metrics_relabel_configs untuk menghapus metrik yang tidak ingin diserap; pola ini berguna untuk pembatasan biaya. Misalnya, Anda dapat menggunakan pola berikut untuk menghapus metrik apa pun dengan nama yang cocok dengan METRIC_NAME_REGEX_1 atau METRIC_NAME_REGEX_2:

metric_relabel_configs:
  - source_labels: [ __name__ ]
    regex: 'METRIC_NAME_REGEX_1'
    action: drop
  - source_labels: [ __name__ ]
    regex: 'METRIC_NAME_REGEX_2'
    action: drop

Menambahkan label statis

Anda dapat menggunakan bagian metrics_relabel_configs untuk menambahkan label statis ke semua metrik yang diserap oleh penerima Prometheus. Anda dapat menggunakan pola berikut untuk menambahkan label staticLabel1 dan staticLabel2 ke semua metrik yang diserap:

metric_relabel_configs:
  - source_labels: [ __address__ ]
    action: replace
    replacement: 'STATIC_VALUE_1'
    target_label: staticLabel1
  - source_labels: [ __address__ ]
    action: replace
    replacement: 'STATIC_VALUE_2'
    target_label: staticLabel2

Versi penerima Prometheus berikut untuk contoh Pengekspor JSON menggunakan pola konfigurasi ini untuk melakukan hal berikut:

  • Tetapkan label zone dari nilai label meta __meta_gce_zone yang disediakan oleh Agen Operasional.
  • Lepaskan metrik example_global_value pengekspor.
  • Tambahkan label staticLabel dengan nilai "Nilai statis" ke semua metrik yang diserap.
metrics:
  receivers:
    prometheus:
        type: prometheus
        config:
          scrape_configs:
            - job_name: 'json_exporter'
              scrape_interval: 10s
              metrics_path: /probe
              params:
                module: [default]
                target: [http://localhost:8000/examples/data.json]
              static_configs:
                - targets: ['localhost:7979']
              relabel_configs:
                - source_labels: [__meta_gce_zone]
                  regex: '(.+)'
                  replacement: '${1}'
                  target_label: zone
              metric_relabel_configs:
                - source_labels: [ __name__ ]
                  regex: 'example_global_value'
                  action: drop
                - source_labels: [ __address__ ]
                  action: replace
                  replacement: 'A static value'
                  target_label: staticLabel