Udostępnij za pośrednictwem


Dostosowywanie kolekcji przy użyciu identyfikatorów CRD (monitorów usług i zasobników)

Uwaga

Obsługa crD w rozwiązaniu Managed Prometheus jest obecnie dostępna w wersji zapoznawczej.

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.

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.

Zrzut ekranu przedstawiający obiekty docelowe dla monitora zasobnika/usługi

Następne kroki