Casos de uso comuns de processador
Aqui estão cenários comuns e exemplos de configurações para combinar processadores:
exemplo Padronizar os formatos de log e adicionar metadados
Analisar logs JSON, padronizar nomes de campos e adicionar informações do ambiente:
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"
exemplo Limpar e normalizar valores de campo
Padronizar os códigos de status e remover dados sensíveis:
processor: - uppercase_string: with_keys: ["status", "method"] - delete_entries: with_keys: ["credit_card", "password"] - substitute_string: entries: - source: "status" from: "SUCCESS" to: "OK"
exemplo Extrair e transformar campos específicos
Extrair informações do usuário e formatar para análise:
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"
exemplo Processamento condicional com condições no nível de entrada
Adicione metadados diferentes com base na gravidade dos logs usando condições when no nível de entrada:
processor: - add_entries: entries: - key: "alert_level" value: "critical" when: "log.level == 'ERROR'" - key: "alert_level" value: "info" when_else: "log.level == 'ERROR'"
exemplo Descartar entradas de logs indesejadas
Filtre as entradas de logs de depuração e rastreamento de uma fonte terceira para reduzir o ruído e os custos de armazenamento:
processor: - drop_events: when: "log.level in {'DEBUG', 'TRACE'}" handle_expression_failure: "skip"
exemplo Condicional no nível de processador com delete_entries
Remova campos sensíveis somente quando o ambiente for de produção:
processor: - delete_entries: with_keys: ["password", "api_key", "ssn"] when: "environment in {'prod', 'staging'}"