Dostosowywanie kolekcji przy użyciu identyfikatorów CRD (monitorów usług i zasobników)
Włączenie zarządzanego rozwiązania Prometheus automatycznie wdraża niestandardowe definicje zasobów (CRD) dla monitorów zasobników i monitorów usługi. Te niestandardowe definicje zasobów są tymi samymi niestandardowymi definicjami zasobów (CRD), co monitory zasobnika systemu operacyjnego i monitory usługi systemu operacyjnego dla rozwiązania Prometheus, z wyjątkiem zmiany nazwy grupy. Jeśli masz istniejące dyski CRD rozwiązania Prometheus i zasoby niestandardowe w klastrze, te identyfikatory CRD nie będą powodować konfliktów z identyfikatorami CRD utworzonymi przez dodatek. Jednocześnie zarządzany dodatek Prometheus nie pobiera identyfikatorów CRD utworzonych dla rozwiązania Prometheus systemu operacyjnego. Ta separacja jest celowa dla celów izolacji zadań złomowania.
Uwaga
Obsługa niestandardowych definicji zasobów (CRD) w rozwiązaniu Kubernetes z obsługą usługi Azure ARC jest obecnie niedostępna.
Tworzenie zasobnika lub monitora usługi
Użyj szablonów Zasobnik i Monitor usługi, a następnie postępuj zgodnie ze specyfikacją interfejsu API, aby utworzyć zasoby niestandardowe (PodMonitor i Service Monitor). Należy pamiętać , że jedyną zmianą wymaganą do istniejących wystąpień CRS systemu operacyjnego (zasobów niestandardowych) do pobrania przez zarządzany prometheus jest grupa interfejsów API — azmonitoring.coreos.com/v1.
Uwaga — pamiętaj, aby użyć etykietyLimit, labelNameLengthLimit i labelValueLengthLimit określonego w szablonach, aby nie zostały usunięte podczas przetwarzania.
Monitory zasobnika i usługi powinny wyglądać podobnie do następujących przykładów:
Przykładowy monitor zasobnika
# 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
Przykładowy monitor usługi
# 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
Wdrażanie zasobnika lub monitora usługi
Następnie można wdrożyć monitor zasobnika lub usługi przy użyciu narzędzia kubectl apply.
Po zastosowaniu wszelkie błędy w zasobach niestandardowych powinny być wyświetlane, a monitory zasobników lub usług powinny zakończyć się niepowodzeniem.
Pomyślne utworzenie monitora zasobnika wygląda następująco:
podmonitor.azmonitoring.coreos.com/my-pod-monitor created
Przykłady
Tworzenie przykładowej aplikacji
Wdróż przykładową aplikację, która uwidacznia metryki prometheus do skonfigurowania przez monitor zasobnika/usługi.
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/internal/referenceapp/prometheus-reference-app.yaml
Tworzenie monitora zasobnika i/lub monitora usługi w celu złomowania metryk
Wdróż monitor zasobnika skonfigurowany do złomowania metryk z przykładowej aplikacji z poprzedniego kroku.
Monitor zasobnika
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/pod-monitor/pod-monitor-reference-app.yaml
Monitor usługi
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/service-monitor/service-monitor-reference-app.yaml
Rozwiązywanie problemów
Po pomyślnym zastosowaniu monitorów zasobnika lub usługi dodatek powinien automatycznie rozpocząć zbieranie metryk z obiektów docelowych. Aby to potwierdzić, postępuj zgodnie z instrukcjami w tym miejscu , aby uzyskać ogólne rozwiązywanie problemów z zasobami niestandardowymi, a także upewnić się, że obiekty docelowe są wyświetlane w wersji 127.0.0.1/targets.
Następne kroki
- Dowiedz się więcej o zbieraniu metryk rozwiązania Prometheus.