Config Sync-Messwerte an ein benutzerdefiniertes Monitoringsystem senden

Auf dieser Seite wird gezeigt, wie Sie Messwerte von Config Sync an einen benutzerdefinierten OpenTelemetry-Exporter senden.

Config Sync verwendet OpenCensus, um Messwerte zu erstellen und aufzuzeichnen und es verwendet OpenTelemetry, um deren Messwerte zu exportieren. Auf dieser Seite wird erläutert, wie Sie diese Messwerte für einen benutzerdefinierten Exporter konfigurieren. Weitere Möglichkeiten zum Exportieren von Messwerten finden Sie unter Config Sync mit Cloud Monitoring überwachen oder Config Sync mit Prometheus überwachen.

Benutzerdefinierten OpenTelemetry-Exporteur konfigurieren

Wenn Sie Ihre Messwerte an ein anderes Monitoringsystem als Prometheus oder Cloud Monitoring senden möchten, können Sie die OpenTelemetry-Konfiguration ändern. Eine Liste der unterstützten Monitoringsysteme finden Sie unter OpenTelemetry Collector Exporter und OpenTelemetry Collector-Contrib Exporters.

OpenTelemetry-Monitoringressourcen werden in einem separaten config-management-monitoring-Namespace verwaltet. Um einen benutzerdefinierten OpenTelemetry-Exporter für Config Sync zu konfigurieren, müssen Sie eine ConfigMap mit dem Namen otel-collector-custom in diesem config-management-monitoring-Namespace erstellen. Die ConfigMap sollte einen otel-collector-config.yaml-Schlüssel enthalten und der Wert sollte der Dateiinhalt der benutzerdefinierten OpenTelemetry-Konfiguration sein. Weitere Informationen zu den Konfigurationsoptionen finden Sie in der Konfigurationsdokumentation zu OpenTelemetry Collector.

Die folgende ConfigMap ist ein Beispiel für eine ConfigMap mit einem benutzerdefinierten Logging-Exporter:

# otel-collector-custom-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: otel-collector-custom
  namespace: config-management-monitoring
  labels:
    app: opentelemetry
    component: otel-collector
data:
  otel-collector-config.yaml: |
    receivers:
      opencensus:
    exporters:
      logging:
        logLevel: debug
    processors:
      batch:
    extensions:
      health_check:
    service:
      extensions: [health_check]
      pipelines:
        metrics:
          receivers: [opencensus]
          processors: [batch]
          exporters: [logging]

Alle benutzerdefinierten Konfigurationen müssen einen opencensus-Empfänger und eine metrics-Pipeline definieren. Die restlichen Felder sind optional und konfigurierbar. Wir empfehlen jedoch, wie im Beispiel eine batch-Prozessor- und eine Systemdiagnoseerweiterung anzugeben.

Nachdem Sie die ConfigMap erstellt haben, verwenden Sie kubectl, um die Ressource zu erstellen:

kubectl apply -f otel-collector-custom-cm.yaml

Das OpenTelemetry-Collector-Deployment erfasst diese ConfigMap und startet automatisch neu, um die benutzerdefinierte Konfiguration anzuwenden.

Beschränkungen

Wenn Sie Config Sync auf eine neue Version aktualisieren und eine otel-collector-custom-ConfigMap für eine vorherige Version erstellt haben, sind Ihre benutzerdefinierten Einstellungen möglicherweise nicht mit der neuen Version von Config Sync kompatibel. Beispielsweise können sich Messwertnamen, Labels und Attribute zwischen Config Sync-Versionen ändern.

Wenn Änderungen an Config Sync-Messwerten vorgenommen werden, werden diese in den Versionshinweisen angekündigt. Für diese Änderungen müssen Sie möglicherweise Ihre benutzerdefinierte otel-collector-Konfiguration aktualisieren.

Aufgrund dieser Einschränkung empfehlen wir, nur für temporäre Problemumgehungen benutzerdefinierte Messwertkonfigurationen zu verwenden. Wenn Sie eine benutzerdefinierte Konfiguration verwenden müssen, reichen Sie ein Support-Ticket ein, um die Problemumgehung als Feature oder Fehlerkorrektur anzufordern.