Personalizzare la raccolta usando cRL (Monitoraggi di servizi e pod)
Nota
Il supporto CRD con Managed Prometheus è attualmente in anteprima.
L'abilitazione di Managed Prometheus distribuisce automaticamente le definizioni di risorse personalizzate (CRD) per i monitoraggi dei pod e i monitoraggi dei servizi. Queste definizioni di risorse personalizzate sono le stesse definizioni di risorse personalizzate (CRD) dei monitoraggi dei pod OSS e dei monitoraggi del servizio OSS per Prometheus, ad eccezione di una modifica nel nome del gruppo. Se nel cluster sono presenti CD Prometheus e risorse personalizzate, questi CRL non saranno in conflitto con i CRL creati dal componente aggiuntivo. Allo stesso tempo, il componente aggiuntivo Prometheus gestito non preleva i CRL creati per OSS Prometheus. Questa separazione è intenzionale ai fini dell'isolamento dei lavori di raschiatura.
Creare un pod o un monitoraggio del servizio
Usare i modelli pod e monitoraggio dei servizi e seguire la specifica dell'API per creare le risorse personalizzate (PodMonitor e Monitoraggio dei servizi). Si noti che l'unica modifica necessaria per i CR OSS esistenti per essere prelevata da Managed Prometheus è il gruppo di API , azmonitoring.coreos.com/v1.
Nota: assicurarsi di usare labelLimit , labelNameLengthLimit e labelValueLengthLimit specificati nei modelli in modo che non vengano eliminati durante l'elaborazione.
I monitoraggi dei pod e dei servizi dovrebbero essere simili agli esempi seguenti:
Monitoraggio pod di esempio
# 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
Monitoraggio dei servizi di esempio
# 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
Distribuire un pod o un monitoraggio del servizio
È quindi possibile distribuire il pod o il monitoraggio del servizio usando kubectl apply.
Se applicato, eventuali errori nelle risorse personalizzate devono essere visualizzati e i monitoraggi del pod o del servizio non devono essere applicati.
La creazione di un monitoraggio pod con esito positivo è simile alla seguente:
podmonitor.azmonitoring.coreos.com/my-pod-monitor created
Esempi
Creare un'applicazione di esempio
Distribuire un'applicazione di esempio che espone le metriche prometheus da configurare tramite il monitoraggio pod/servizio.
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/internal/referenceapp/prometheus-reference-app.yaml
Creare un monitoraggio pod e/o un monitoraggio del servizio per raschiare le metriche
Distribuire un monitoraggio dei pod configurato per raschiare le metriche dall'applicazione di esempio del passaggio precedente.
Monitoraggio pod
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/pod-monitor/pod-monitor-reference-app.yaml
Monitoraggio dei servizi
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/service-monitor/service-monitor-reference-app.yaml
Risoluzione dei problemi
Quando i monitoraggi del pod o del servizio vengono applicati correttamente, il componente aggiuntivo deve iniziare automaticamente a raccogliere le metriche dalle destinazioni. Per confermare questo problema, seguire le istruzioni riportate qui per la risoluzione dei problemi generali delle risorse personalizzate e anche per assicurarsi che le destinazioni vengano visualizzate nella versione 127.0.0.1/targets.
Passaggi successivi
- Altre informazioni sulla raccolta di metriche di Prometheus.