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.