Monitoring Config Connector dengan Prometheus


Anda dapat menggunakan Prometheus untuk mengumpulkan dan menampilkan dari Config Connector.

Sebelum memulai

Untuk menyelesaikan langkah-langkah di halaman ini, Anda perlu menginstal Prometheus pada . Anda bisa melakukannya dengan:

Metrik penyalinan

Prometheus mengumpulkan metrik dengan mengoreksi endpoint HTTP. Bagian ini menjelaskan endpoint scraping Config Connector dan konfigurasi Prometheus.

Endpoint salinan Config Connector

Untuk Config Connector, endpoint layanan berada di port 8888 di cnrm-controller-manager-service dan cnrm-resource-stats-recorder-service. Layanan ini memiliki prometheus.io/scrape: "true" dan prometheus.io/port: "8888" anotasi. Layanan ini juga menyertakan label cnrm.cloud.google.com/monitored: "true" dan cnrm.cloud.google.com/system: "true". Anda mengkonfigurasi Prometheus untuk lakukan scraping komponen Config Connector dari anotasi dan label ini.

Mengonfigurasi Prometheus

Sebelum Anda dapat melakukan scraping metrik, Anda mungkin perlu mengkonfigurasi Prometheus untuk Kubernetes Service Discovery (SD) untuk menemukan target scrape dari REST API Kubernetes.

Cara Anda mengonfigurasi Prometheus untuk melakukan scraping metrik dari Config Connector bergantung pada bagaimana Anda menginstal Prometheus. Periksa dokumentasi untuk Prometheus Anda untuk mengetahui cara memperbarui konfigurasi.

Misalnya, jika Anda menggunakan Operator Prometheus dan mengkonfigurasinya dengan ServiceMonitor, Anda dapat menerapkan konfigurasi berikut untuk menyalin metrik dari Konektor Konfigurasi.

  spec:
    endpoints:
    - interval: 10s
      port: metrics
    namespaceSelector:
      matchNames:
      - cnrm-system
    selector:
      matchLabels:
        cnrm.cloud.google.com/monitored: "true"
        cnrm.cloud.google.com/system: "true"

Untuk informasi selengkapnya tentang menyiapkan ServiceMonitor, lihat Memulai dalam dokumentasi Operator Prometheus.

Contoh kueri

Prometheus menggunakan bahasa kueri yang disebut PromQL. Bagian ini berisi contoh kueri PromQL untuk metrik Config Connector. Anda dapat mengkonfigurasi Prometheus untuk menghasilkan pemberitahuan dari kueri PromQL yang valid.

Mengkueri permintaan rekonsiliasi menurut jenis dan status resource

Anda dapat melihat jumlah permintaan rekonsiliasi yang gagal berdasarkan jenis dan status resource.

Misalnya, untuk memeriksa jumlah total error untuk resource PubSubTopic, gunakan kueri berikut.

configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}

Memeriksa status gabungan resource berdasarkan jenis dan Namespace

Anda dapat melihat jumlah resource yang ada di Namespace.

Misalnya, untuk memeriksa jumlah total resource PubSubTopic di Namespace default, gunakan kueri berikut.

configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}

Mengkueri penggunaan pekerja rekonsiliasi per jenis resource

(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)

Metrik yang tersedia

Config Connector mengumpulkan metrik berikut dan menyediakannya.

Nama Jenis Label Deskripsi
configconnector_reconcile_requests_total Penghitung Namespace
group_version_kind
status
Jumlah total permintaan rekonsiliasi.
configconnector_reconcile_request_duration_seconds Histogram Namespace
group_version_kind
status
Distribusi waktu untuk menyelesaikan permintaan rekonsiliasi.
configconnector_applied_resources_total Meteran Namespace
group_version_kind
status
Jumlah total resource yang dikelola.
configconnector_build_info Meteran versi Config Connector versi saat ini.
configconnector_reconcile_workers_total Meteran group_version_kind Jumlah total pekerja rekonsiliasi yang digabungkan menurut jenis resource.
configconnector_reconcile_occupied_workers_total Meteran group_version_kind Jumlah total pekerja yang direkonsiliasi dan digabungkan menurut jenis resource.

Mengaktifkan label nama resource

Secara default, metrik digabungkan berdasarkan jenis resource (misalnya, PubSubTopic). Anda dapat mengaktifkan metrik untuk digabungkan berdasarkan resource individual.

Untuk mengaktifkan agregasi berdasarkan nama resource, lakukan langkah-langkah berikut.

  1. Mengedit objek StatefulSet cnrm-controller-manager

    kubectl edit statefulset cnrm-controller-manager -n cnrm-system

    Jika Anda menggunakan Mode dengan namespace, ganti NAMESPACE_NAME dengan Namespace Anda.

    kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
  2. Temukan array spec.args dan tambahkan --resource-name-label=true.

    apiVersion: apps/v1
    kind: StatefulSet
      name: cnrm-controller-manager
    spec:
      template:
        spec:
          containers:
          - name: manager
      args:
            - --resource-name-label=true
    

Langkah selanjutnya

Untuk informasi selengkapnya tentang penulisan kueri, lihat Prometheus Dokumentasi bahasa kueri dan Contoh