Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Allgemeine Anwendungsfälle für Prozessoren
Im Folgenden finden Sie gängige Szenarien und Beispielkonfigurationen für die Kombination von Prozessoren.
Beispiele für Protokoll-Pipelines
Beispiel Standardisieren Sie Protokollformate und fügen Sie Metadaten hinzu
Analysieren Sie JSON-Logs, standardisieren Sie Feldnamen und fügen Sie Umgebungsinformationen hinzu:
processor: - parse_json: {} - rename_keys: entries: - from_key: "timestamp" to_key: "@timestamp" - from_key: "log_level" to_key: "level" - add_entries: entries: - key: "environment" value: "production" - key: "application" value: "payment-service"
Beispiel Feldwerte bereinigen und normalisieren
Standardisieren Sie Statuscodes und entfernen Sie sensible Daten:
processor: - uppercase_string: with_keys: ["status", "method"] - delete_entries: with_keys: ["credit_card", "password"] - substitute_string: entries: - source: "status" from: "SUCCESS" to: "OK"
Beispiel Extrahieren und transformieren Sie bestimmte Felder
Extrahieren Sie Benutzerinformationen und Format für die Analyse:
processor: - extract_value: entries: - source: "user_agent" target: "browser" from: "(?<browser>Chrome|Firefox|Safari)" to: "${browser}" - lowercase_string: with_keys: ["browser"] - move_keys: entries: - from_key: "browser" to_key: "user_data.browser"
Beispiel Bedingte Verarbeitung mit Einstiegsbedingungen
Fügen Sie anhand von Bedingungen auf when Einstiegsebene unterschiedliche Metadaten basierend auf dem Schweregrad des Protokolls hinzu:
processor: - add_entries: entries: - key: "alert_level" value: "critical" when: "log.level == 'ERROR'" - key: "alert_level" value: "info" when_else: "log.level == 'ERROR'"
Beispiel Löschen Sie unerwünschte Protokolleinträge
Filtert Debug- und Trace-Logeinträge aus Drittanbieterquellen heraus, um Störungen und Speicherkosten zu reduzieren:
processor: - drop_events: when: "log.level in {'DEBUG', 'TRACE'}" handle_expression_failure: "skip"
Beispiel Processor-level bedingt mit delete_entries
Entfernen Sie sensible Felder nur, wenn es sich um eine Produktionsumgebung handelt:
processor: - delete_entries: with_keys: ["password", "api_key", "ssn"] when: "environment in {'prod', 'staging'}"
Beispiele für die Pipeline von Kennzahlen
Die folgenden Beispiele zeigen Prozessorkonfigurationen für Metrik-Pipelines. Prozessoren für Metriken verwenden OTTL-Pfadausdrücke, um auf Attribute in unterschiedlichen Bereichen abzuzielen.
Beispiel Fügen Sie den Kennzahlen einen Geschäftskontext hinzu
Fügen Sie Kennzeichnungen für Teameigentum und Umgebung zu metrischen Datenpunkten hinzu:
processor: - add_attributes: attributes: - key: resource.attributes["team"] value: "platform-engineering" - key: resource.attributes["cost_center"] value: "CC-1234"
Beispiel Entfernen Sie Attribute mit hoher Kardinalität
Entfernen Sie Attribute, die die Speicherkosten in die Höhe treiben. Gilt nicht für kumulative Metriken oder vergebene Metriken — wenn Metriken in den Auswahlkriterien nicht zeitlich begrenzt sind, gibt die Pipeline eine UnsupportedTemporality Warnmeldung aus, die Sie im Namespace überwachen können: AWS/Observability Admin
processor: - delete_attributes: with_keys: - resource.attributes["host.id"] - datapoint.attributes["http.request.id"]
Beispiel Standardisieren Sie die Namenskonventionen
Benennen Sie Metriken und Attribute um, um sie an OpenTelemetry semantische Konventionen anzupassen. Gilt nicht für kumulative Metriken oder Verkaufsmetriken:
processor: - rename_metrics: metrics: - from: "cpu_usage_percent" to: "system.cpu.utilization" - rename_attributes: attributes: - from_key: resource.attributes["hostname"] to_key: resource.attributes["host.name"]