Mengumpulkan metrik Prometheus

Dokumen ini menjelaskan konfigurasi dan penggunaan penerima metrik Ops Agent 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 menggunakan Google Cloud Managed Service for Prometheus. Penerima Prometheus Agen Operasional 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 dalam Konsol Google Cloud untuk Pemantauan, untuk membuat kueri data. 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 di 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 informasi tentang integrasi yang ada dengan Agen Operasional, lihat Memantau aplikasi pihak ketiga. Jika sudah ada integrasi, sebaiknya gunakan integrasi tersebut. Untuk informasi selengkapnya, lihat Memilih integrasi yang ada.

Sebaiknya gunakan penerima Prometheus Ops Agent jika hal berikut terpenuhi:

  • 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 kumpulan integrasi Agen Operasi yang ada.

Integrasi yang ada

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

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

Metrik yang diserap menggunakan integrasi yang ada tunduk pada harga berbasis byte untuk metrik yang dikumpulkan agen. Jumlah dan jenis metrik diketahui sebelumnya, dan Anda dapat menggunakan informasi tersebut untuk memperkirakan biaya.

Misalnya, jika Anda menggunakan integrasi Apache Web Server (httpd), Ops Agent akan mengumpulkan lima metrik skalar; setiap titik data dihitung sebagai 8 byte. Jika Anda mempertahankan frekuensi sampling default Ops Agent sebesar 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 informasi selengkapnya tentang cara memperkirakan biaya, lihat 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 dikeluarkan oleh aplikasi Anda berada di bawah kontrol Anda. Tidak ada kumpulan metrik yang diseleksi. Jumlah data yang Anda serap ditentukan oleh konfigurasi aplikasi Prometheus dan penerima Prometheus Agen Operasional.

  • Metrik diserap ke Cloud Monitoring sebagai metrik prometheus.googleapis.com. Metrik ini diklasifikasikan sebagai jenis metrik "kustom" saat diserap ke 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 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 perlu menentukan jumlah sampel yang kemungkinan akan dikumpulkan 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 sampel (2 + jumlah bucket dalam histogram)
    • Frekuensi sampling setiap metrik
    • Jumlah host tempat metrik diambil sampelnya

    Untuk informasi selengkapnya tentang cara menghitung sampel dan memperkirakan biaya, lihat Contoh harga berdasarkan sampel yang diserap.

Prasyarat

Untuk mengumpulkan metrik Prometheus menggunakan penerima Prometheus, Anda harus menginstal Ops Agent versi 2.25.0 atau yang lebih tinggi.

Penerima Agen Operasional memerlukan endpoint yang memunculkan metrik Prometheus. Oleh karena itu, aplikasi Anda harus menyediakan endpoint tersebut secara langsung atau menggunakan library atau eksportir Prometheus untuk mengekspos 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 eksportir Prometheus untuk memunculkan metrik bergaya Prometheus. Misalnya, untuk menampilkan metrik Prometheus:

Saat metrik Prometheus dikeluarkan oleh aplikasi, secara langsung atau menggunakan library atau pengekspor, metrik tersebut kemudian dapat dikumpulkan oleh Ops Agent yang dikonfigurasi dengan penerima Prometheus.

Mengonfigurasi Agen Operasional

Model konfigurasi Agen Operasi biasanya melibatkan menentukan hal berikut:

  • Penerima, yang menentukan metrik yang dikumpulkan.
  • Pemroses, yang menjelaskan cara Agen Operasional dapat mengubah metrik.
  • Pipeline, yang menautkan penerima dan pemroses menjadi satu layanan.

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

Konfigurasi untuk metrik Prometheus

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

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

    Daripada menggunakan pemroses Agen Operasi, 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 Pemberian label ulang: Mengubah data yang di-scrap.

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

Sebagian besar konfigurasi penerima adalah spesifikasi opsi scrape-config. Dengan menghilangkan opsi tersebut agar lebih ringkas, berikut ini menunjukkan struktur konfigurasi Agen Operasi 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 contoh fungsional penerima dan pipeline, lihat Menambahkan penerima dan pipeline Ops Agent.

Penerima Prometheus

Untuk menentukan penerima metrik Prometheus, Anda membuat penerima metrik berjenis prometheus dan menentukan serangkaian opsi scrape_config. Penerima mendukung semua opsi scrape_config Prometheus, kecuali opsi berikut:

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

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

Struktur lengkap penerima Prometheus ditampilkan dalam hal 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 konfigurasi pemberian label ulang, lihat Konfigurasi penerima tambahan.

Contoh: Mengonfigurasi Agen Operasional untuk Prometheus

Bagian ini menunjukkan contoh cara mengonfigurasi Ops Agent untuk mengumpulkan metrik Prometheus dari aplikasi. Contoh ini menggunakan JSON Exporter yang disediakan komunitas Prometheus (json_exporter), yang mengekspos metrik Prometheus di port 7979.

Penyiapan contoh memerlukan resource berikut, yang mungkin harus Anda instal:

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

Membuat atau mengonfigurasi aplikasi

Untuk mendapatkan dan menjalankan JSON Exporter, gunakan prosedur berikut:

  1. Clone repositori json_exporter dan lihat ekspor dengan menjalankan perintah berikut:

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

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

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

    ./json_exporter --config.file examples/config.yml &
    
  5. Buat kueri JSON Exporter untuk memverifikasi bahwa aplikasi tersebut berjalan dan mengekspos metrik di port 7979:

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

    Jika kueri berhasil, Anda akan melihat output yang menyerupai 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 set label.

Menambahkan penerima dan pipeline Ops Agent

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

  1. Edit file konfigurasi Ops Agent, /etc/google-cloud-ops-agent/config.yaml, dan tambahkan entri penerima dan 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 ada. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi metrik.

    Untuk contoh konfigurasi pemberian label ulang di penerima, lihat Konfigurasi penerima tambahan.

Memulai ulang Agen Operasional

Untuk menerapkan perubahan konfigurasi, Anda harus memulai ulang Ops Agent.

LINUX

  1. Untuk memulai ulang agen, jalankan perintah berikut di 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 dengan 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 dalam 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. Untuk mengetahui 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 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 termudah untuk memverifikasi bahwa data Prometheus Anda sedang ditransfer adalah dengan menggunakan halaman Metrics Explorer Cloud Monitoring di konsol Google Cloud:

  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 panel pembuat kueri, pilih tombol yang namanya adalah  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 sedang ditransfer, Anda akan melihat diagram seperti berikut:

Diagram Metrics Explorer untuk metrik json-exporter up.

Jika menjalankan contoh JSON Exporter, Anda juga dapat membuat kueri seperti berikut:

  • Buat kueri semua data untuk metrik tertentu yang diekspor berdasarkan nama, misalnya:

    example_value_count
    

    Berikut ini diagram untuk example_value_count, termasuk label yang ditentukan oleh aplikasi JSON Exporter dan label yang ditambahkan oleh Ops Agent:

    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 terlihat seperti berikut:

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

    example_value_count{id=~"id.*"}
    

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

Menggunakan MQL

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

  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. 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 yang namanya adalah  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 menampilkan data yang sama dengan diagram yang ditampilkan dengan contoh PromQL.

Resource prometheus_target

Di Cloud Monitoring, data deret waktu ditulis berdasarkan jenis resource yang dimonitor. Untuk metrik Prometheus, jenis resource yang dimonitor 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 Ops Agent berjalan.
  • location: Region Google Cloud atau AWS tempat Ops Agent berjalan; misalnya, us-east1-a (Google Cloud) atau aws:us-east-1a (AWS).
  • cluster: Selalu __gce__ untuk metrik Prometheus yang dikumpulkan menggunakan Ops Agent.
  • namespace: ID instance Compute Engine dari VM tempat Ops Agent berjalan.
  • job: Nilai kolom job_name dalam konfigurasi penerima.
  • instance: Label instance target Prometheus, diambil dari konfigurasi penerima; secara default 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, Ops Agent akan menambahkan awalan string exported_ ke label yang diambil.

Melihat penggunaan dan diagnostik metrik di Cloud Monitoring

Halaman Pengelolaan Metrik Cloud Monitoring memberikan informasi yang dapat membantu Anda mengontrol jumlah yang Anda belanjakan untuk metrik yang dapat ditagih tanpa memengaruhi visibilitas. Halaman Pengelolaan Metrik melaporkan informasi berikut:

  • Volume transfer untuk penagihan berbasis byte dan sampel, di seluruh domain metrik dan untuk setiap metrik.
  • Data tentang label dan kardinalitas metrik.
  • Jumlah pembacaan untuk setiap metrik.
  • Penggunaan metrik dalam kebijakan pemberitahuan dan dasbor kustom.
  • Rasio error penulisan metrik.

Anda juga dapat menggunakan Pengelolaan Metrik untuk mengecualikan metrik yang tidak diperlukan, sehingga menghilangkan biaya penyerapannya.

Untuk melihat halaman Pengelolaan Metrik, lakukan tindakan berikut:

  1. Di konsol Google Cloud, buka halaman  Metrics management:

    Buka Pengelolaan metrik

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

  2. Di toolbar, pilih jangka waktu. Secara default, halaman Pengelolaan Metrik menampilkan informasi tentang metrik yang dikumpulkan dalam satu hari sebelumnya.

Untuk informasi selengkapnya tentang halaman Pengelolaan Metrik, lihat Melihat dan mengelola penggunaan metrik.

Pemberian label ulang: Mengubah data yang di-scrape

Anda dapat menggunakan pemberian label ulang untuk mengubah kumpulan label target pengambilan data atau metriknya sebelum target diambil. Jika Anda memiliki beberapa langkah dalam konfigurasi pemberian label ulang, langkah tersebut akan diterapkan sesuai urutan yang muncul dalam file konfigurasi.

Ops Agent membuat kumpulan label meta (label yang diawali dengan string __meta_. Label meta ini mencatat informasi tentang instance Compute Engine tempat Ops Agent berjalan. Label yang diawali dengan string __, termasuk label meta, hanya tersedia selama pemberian label ulang. Anda dapat menggunakan pemberian label ulang untuk mengambil nilai label ini dalam label yang di-scrap.

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

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

Label meta Compute Engine tersedia selama pemberian label ulang

Saat meng-scrape metrik, Agen Operasional akan menyertakan serangkaian label meta yang nilainya didasarkan pada konfigurasi VM Compute Engine tempat agen berjalan. Anda dapat menggunakan label ini dan bagian relabel_configs penerima Prometheus untuk menambahkan metadata tambahan ke metrik tentang VM tempat metrik tersebut diserap. Misalnya, 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); Ops Agent secara otomatis menempatkan nilai ini dalam label instance_name yang dapat diubah pada metrik Anda.
  • __meta_gce_machine_type: URL lengkap atau sebagian dari jenis mesin instance; Ops Agent secara otomatis menempatkan nilai ini dalam 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 bernama
  • __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 Ops Agent dimulai. Jika mengubah nilai, Anda harus memulai ulang Ops Agent untuk memuat ulang nilai.

Konfigurasi penerima tambahan

Bagian ini memberikan contoh yang menggunakan bagian relabel_configs dan metric_relabel_configs penerima Prometheus untuk mengubah jumlah dan struktur metrik yang diserap. Bagian ini juga menyertakan versi penerima yang dimodifikasi untuk contoh JSON Exporter yang menggunakan opsi pemberian label ulang.

Menambahkan 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 Ops untuk membuat label metrik, zone, yang dipertahankan setelah pemberian label ulang, karena zone tidak memiliki awalan __.

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

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

Penerima Prometheus yang ditampilkan di Contoh: Mengonfigurasi Agen Operasi untuk Prometheus menyertakan penambahan label ini.

Metrik drop

Anda dapat menggunakan bagian metrics_relabel_configs untuk menghapus metrik yang tidak ingin ditransfer; 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 JSON Exporter menggunakan pola konfigurasi ini untuk melakukan hal berikut:

  • Tetapkan label zone dari nilai label meta __meta_gce_zone yang disediakan oleh Agen Operasi.
  • Hapus metrik example_global_value eksportir.
  • Tambahkan label staticLabel dengan nilai "Nilai statis" ke semua metrik yang ditransfer.
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