Anpassa samlingen med hjälp av CRD:er (tjänst- och poddövervakare)
Aktiveringen av Managed Prometheus distribuerar automatiskt anpassade resursdefinitioner (CRD) för poddövervakare och tjänstövervakare. Dessa anpassade resursdefinitioner är samma anpassade resursdefinitioner (CRD) som OSS Pod-övervakare och OSS-tjänstövervakare för Prometheus, förutom en ändring i gruppnamnet. Om du har befintliga Prometheus CRD:er och anpassade resurser i klustret kommer dessa CRD:er inte att vara i konflikt med de CRD:er som skapats av tillägget. Samtidigt hämtar det hanterade Prometheus-tillägget inte de CRD:er som skapats för OSS Prometheus. Denna separation är avsiktlig för isolering av skrapjobb.
Kommentar
Stöd för anpassade resursdefinitioner (CRD) i Azure ARC-aktiverade Kubernetes är för närvarande inte tillgängligt.
Skapa en podd eller tjänstövervakare
Använd mallarna Pod och Service Monitor och följ API-specifikationen för att skapa dina anpassade resurser (PodMonitor och Service Monitor). Observera att den enda ändring som krävs för befintliga OSS CR(anpassade resurser) för att hämtas av Managed Prometheus är API-gruppen – azmonitoring.coreos.com/v1.
Obs! Se till att använda etikettenLimit, labelNameLengthLimit och labelValueLengthLimit som anges i mallarna så att de inte tas bort under bearbetningen.
Dina podd- och tjänstövervakare bör se ut som följande exempel:
Exempel på poddövervakare
# 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
Exempel på tjänstövervakare
# 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
Distribuera en podd eller tjänstövervakare
Du kan sedan distribuera podden eller tjänstövervakaren med kubectl apply.
När de tillämpas bör eventuella fel i de anpassade resurserna visas och podd- eller tjänstövervakarna bör inte tillämpas.
En lyckad skapande av poddar ser ut så här :
podmonitor.azmonitoring.coreos.com/my-pod-monitor created
Exempel
Skapa ett exempelprogram
Distribuera ett exempelprogram som exponerar prometheus-mått som ska konfigureras av podd-/tjänstövervakaren.
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/internal/referenceapp/prometheus-reference-app.yaml
Skapa en poddövervakare och/eller tjänstövervakare för att skrapa mått
Distribuera en poddövervakare som är konfigurerad för att skrapa mått från exempelprogrammet från föregående steg.
Poddövervakare
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/pod-monitor/pod-monitor-reference-app.yaml
Tjänstövervakare
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/service-monitor/service-monitor-reference-app.yaml
Felsökning
När podd- eller tjänstövervakarna har tillämpats ska tillägget automatiskt börja samla in mått från målen. Bekräfta detta genom att följa anvisningarna här för allmän felsökning av anpassade resurser och se till att målen visas i 127.0.0.1/mål.