Share via


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.

Screenshot che mostra le destinazioni per il monitoraggio di pod/servizio

Passaggi successivi