Menyesuaikan koleksi menggunakan CRD (Monitor Layanan dan Pod)

Catatan

Dukungan CRD dengan Prometheus Terkelola saat ini dalam pratinjau.

Pengaktifan Prometheus Terkelola secara otomatis menyebarkan definisi sumber daya kustom (CRD) untuk monitor pod dan monitor layanan. Definisi sumber daya kustom ini adalah definisi sumber daya kustom (CRD) yang sama dengan monitor Pod OSS dan monitor layanan OSS untuk Prometheus, kecuali untuk perubahan nama grup. Jika Anda memiliki CRD Prometheus dan sumber daya kustom yang ada di kluster Anda, CRD ini tidak akan bertentangan dengan CRD yang dibuat oleh add-on. Pada saat yang sama, addon Prometheus terkelola tidak mengambil CRD yang dibuat untuk OSS Prometheus. Pemisahan ini disengaja untuk tujuan isolasi pekerjaan scrape.

Membuat Pod atau Monitor Layanan

Gunakan templat Pod dan Service Monitor dan ikuti spesifikasi API untuk membuat sumber daya kustom Anda (PodMonitor dan Service Monitor). Perhatikan bahwa satu-satunya perubahan yang diperlukan pada OSS CR (Sumber Daya Kustom) yang ada untuk diambil oleh Prometheus Terkelola adalah grup API - azmonitoring.coreos.com/v1.

Catatan - Pastikan untuk menggunakan labelLimit, labelNameLengthLimit, dan labelValueLengthLimit yang ditentukan dalam templat agar tidak dihilangkan selama pemrosesan.

Monitor pod dan layanan Anda akan terlihat seperti contoh berikut:

Contoh Monitor Pod

# Note the API version is azmonitoring.coreos.com/v1 instead of monitoring.coreos.com/v1
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor

# Can be deployed in any namespace
metadata:
  name: reference-app
  namespace: app-namespace
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023

  # The selector specifies which pods to filter for
  selector:

    # Filter by pod labels
    matchLabels:
      environment: test
    matchExpressions:
      - key: app
        operator: In
        values: [app-frontend, app-backend]

    # [Optional] Filter by pod namespace
    namespaceSelector:
      matchNames: [app-frontend, app-backend]

  # [Optional] Labels on the pod with these keys will be added as labels to each metric scraped
  podTargetLabels: [app, region, environment]

  # Multiple pod endpoints can be specified. Port requires a named port.
  podMetricsEndpoints:
    - port: metrics

Contoh Pemantau Layanan

# Note the API version is azmonitoring.coreos.com/v1 instead of monitoring.coreos.com/v1
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor

# Can be deployed in any namespace
metadata:
  name: reference-app
  namespace: app-namespace
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023

  # The selector filters endpoints by service labels.
  selector:
    matchLabels:
      app: reference-app

  # Multiple endpoints can be specified. Port requires a named port.
  endpoints:
  - port: metrics

Menyebarkan Pod atau Monitor Layanan

Anda kemudian dapat menyebarkan pod atau monitor layanan menggunakan kubectl apply.

Ketika diterapkan, kesalahan apa pun dalam sumber daya kustom harus muncul dan pod atau monitor layanan harus gagal diterapkan.
Pembuatan monitor pod yang berhasil terlihat seperti berikut ini -

podmonitor.azmonitoring.coreos.com/my-pod-monitor created

Contoh

Membuat aplikasi sampel

Sebarkan aplikasi sampel yang mengekspos metrik prometheus untuk dikonfigurasi oleh pod/monitor layanan.

kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/internal/referenceapp/prometheus-reference-app.yaml

Membuat monitor pod dan/atau monitor layanan untuk mengikis metrik

Sebarkan monitor pod yang dikonfigurasi untuk mengikis metrik dari contoh aplikasi dari langkah sebelumnya.

Pod Monitor
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/pod-monitor/pod-monitor-reference-app.yaml
Pemantau Layanan
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/service-monitor/service-monitor-reference-app.yaml

Pemecahan Masalah

Ketika pod atau monitor layanan berhasil diterapkan, addon harus secara otomatis mulai mengumpulkan metrik dari target. Untuk mengonfirmasi hal ini, ikuti instruksi di sini untuk pemecahan masalah umum sumber daya kustom dan juga untuk memastikan target muncul di 127.0.0.1/target.

Cuplikan layar memperlihatkan target untuk pod/monitor layanan

Langkah berikutnya