Aracılığıyla paylaş


CRD'leri kullanarak koleksiyonu özelleştirme (Hizmet ve Pod İzleyicileri)

Not

Yönetilen Prometheus ile CRD desteği şu anda önizleme aşamasındadır.

Yönetilen Prometheus'un etkinleştirilmesi, pod izleyicileri ve hizmet izleyicileri için özel kaynak tanımlarını (CRD) otomatik olarak dağıtır. Bu özel kaynak tanımları, grup adındaki bir değişiklik dışında Prometheus için OSS Pod izleyicileri ve OSS hizmeti izleyicileriyle aynı özel kaynak tanımlarıdır (CRD). Kümenizde prometheus CRD'leriniz ve özel kaynaklarınız varsa, bu CRD'ler eklenti tarafından oluşturulan CRD'lerle çakışmaz. Aynı zamanda, yönetilen Prometheus eklentisi OSS Prometheus için oluşturulan CRD'leri almaz. Bu ayrım, kazıma işlerinin yalıtımı amacıyla kasıtlı olarak yapılır.

Pod veya Hizmet İzleyicisi oluşturma

Pod ve Hizmet İzleyicisi şablonlarını kullanın ve özel kaynaklarınızı (PodMonitor ve Hizmet İzleyicisi) oluşturmak için API belirtimini izleyin. Yönetilen Prometheus tarafından alınması için mevcut OSS CR'lerinde (Özel Kaynaklar) gereken tek değişikliğin API grubu olduğunu unutmayın - azmonitoring.coreos.com/v1.

Not - İşleme sırasında bırakılmamaları için şablonlarda belirtilen LabelLimit, labelNameLengthLimit ve labelValueLengthLimit etiketlerini kullandığınızdan emin olun.

Pod ve hizmet izleyicileriniz aşağıdaki örnekler gibi görünmelidir:

Örnek Pod İzleyicisi

# 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

Örnek Hizmet İzleyicisi

# 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

Pod veya Hizmet İzleyicisi dağıtma

Daha sonra kubectl apply kullanarak pod veya hizmet izleyicisini dağıtabilirsiniz.

Uygulandığında, özel kaynaklarda hatalar görünmelidir ve pod veya hizmet izleyicileri uygulanamaz.
Başarılı bir pod izleyicisi oluşturma işlemi aşağıdaki gibi görünür -

podmonitor.azmonitoring.coreos.com/my-pod-monitor created

Örnekler

Örnek uygulama oluşturma

Pod/hizmet izleyicisi tarafından yapılandırılacak prometheus ölçümlerini ortaya çıkarmak için örnek bir uygulama dağıtın.

kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/internal/referenceapp/prometheus-reference-app.yaml

Ölçümleri kazımak için pod izleyicisi ve/veya hizmet izleyicisi oluşturma

Önceki adımdaki örnek uygulamadan ölçümleri kazımak için yapılandırılmış bir pod izleyicisi dağıtın.

Pod İzleyici
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/pod-monitor/pod-monitor-reference-app.yaml
Hizmet İzleyicisi
kubectl apply -f https://github.com/Azure/prometheus-collector/blob/main/otelcollector/deploy/example-custom-resources/service-monitor/service-monitor-reference-app.yaml

Sorun giderme

Pod veya hizmet izleyicileri başarıyla uygulandığında, eklenti otomatik olarak hedeflerden ölçüm toplamaya başlamalıdır. Bunu onaylamak için, özel kaynaklarda genel sorun giderme ve hedeflerin 127.0.0.1/targets içinde gösterilmesini sağlamak için buradaki yönergeleri izleyin.

Pod/hizmet izleyicisi hedeflerini gösteren ekran görüntüsü

Sonraki adımlar