Casos de uso comuns de processador
Aqui estão cenários comuns e exemplos de configurações para combinar processadores.
Exemplos de pipeline de logs
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'}"
Exemplo de pipeline de métricas
Os exemplos mostrados a seguir mostram as configurações do processador para pipelines de métricas. Os processadores de métricas utilizam expressões de caminho OTTL para direcionar atributos em escopos diferentes.
exemplo Adicione contexto de negócios às métricas
Adicione tags de propriedade da equipe e de ambiente aos pontos de dados de métricas:
processor: - add_attributes: attributes: - key: resource.attributes["team"] value: "platform-engineering" - key: resource.attributes["cost_center"] value: "CC-1234"
exemplo Remover atributos de alta cardinalidade
Elimine os atributos que aumentam os custos de armazenamento. Não se aplica a métricas cumulativas ou métricas fornecidas — se alguma métrica nos critérios de seleção tiver temporalidade não suportada, o pipeline emitirá uma métrica de aviso UnsupportedTemporality que pode ser monitorado no namespace AWS/Observability Admin:
processor: - delete_attributes: with_keys: - resource.attributes["host.id"] - datapoint.attributes["http.request.id"]
exemplo Padronizar convenções de nomenclatura
Renomeie métricas e atributos para alinhá-los às convenções semânticas do OpenTelemetry. Não se aplica a métricas cumulativas ou métricas fornecidas:
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"]