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.
Häufige 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 die Protokollformate und fügen Sie Metadaten hinzu
Analysieren Sie JSON-Protokolle, 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 Bereinigen und normalisieren Sie Feldwerte
Standardisieren Sie Statuscodes und entfernen Sie vertrauliche 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 Bedingungen der Einstiegsklasse
Fügen Sie je nach Schweregrad des Protokolls mithilfe von Einstiegsbedingungen when unterschiedliche Metadaten 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 Logeinträge
Filtern Sie Debug- und Trace-Logeinträge aus einer Drittanbieterquelle 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
Löschen Sie sensible Felder nur, wenn die Umgebung produktiv ist:
processor: - delete_entries: with_keys: ["password", "api_key", "ssn"] when: "environment in {'prod', 'staging'}"
Beispiele für Metriken, Pip
Die folgenden Beispiele zeigen Prozessorkonfigurationen für Metrik-Pipelines. Metrikprozessoren verwenden OTTL-Pfadausdrücke, um auf Attribute mit unterschiedlichen Gültigkeitsbereichen abzuzielen.
Beispiel Fügen Sie den Metriken einen Geschäftskontext hinzu
Fügen Sie den Metrik-Datenpunkten Tags für Teamverantwortung und Umgebung 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 ausverkaufte Metriken — falls für Metriken in den Auswahlkriterien eine Zeitlichkeit nicht unterstützt wird, gibt die Pipeline eine UnsupportedTemporality Warnmetrik 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 Benennungskonventionen
Benennen Sie Metriken und Attribute um, damit sie den OpenTelemetry semantischen Konventionen entsprechen. Gilt nicht für kumulative Metriken oder verkaufte Metriken:
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"]