Casos de uso de procesadores comunes
A continuación, se presentan situaciones habituales y configuraciones de ejemplo para combinar procesadores.
Ejemplos de canalizaciones de registros
ejemplo Estandarización de formatos de registro y adición de metadatos
Analice registros JSON, estandarice los nombres de los campos y agregue información del entorno:
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"
ejemplo Limpieza y normalización de valores de campos
Estandarice los códigos de estado y elimine información confidencial:
processor: - uppercase_string: with_keys: ["status", "method"] - delete_entries: with_keys: ["credit_card", "password"] - substitute_string: entries: - source: "status" from: "SUCCESS" to: "OK"
ejemplo Extracción y transformación de campos específicos
Extraiga el formato y la información del usuario para su análisis:
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"
ejemplo Procesamiento condicional con condiciones de entrada
Agregue diferentes metadatos en función de la gravedad del registro mediante condiciones when 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'"
ejemplo Eliminación de entradas de registro no deseadas
Filtre las entradas del registro de depuración y rastreo de orígenes externos para reducir el ruido y los costos de almacenamiento:
processor: - drop_events: when: "log.level in {'DEBUG', 'TRACE'}" handle_expression_failure: "skip"
ejemplo Condicional a nivel de procesador con delete_entries
Elimine los campos confidenciales solo cuando el entorno sea de producción:
processor: - delete_entries: with_keys: ["password", "api_key", "ssn"] when: "environment in {'prod', 'staging'}"
Ejemplos de canalizaciones de métricas
En los siguientes ejemplos se muestran configuraciones de procesadores para canalizaciones de métricas. Los procesadores de métricas utilizan expresiones de ruta de OTTL para dirigirse a atributos de distintos ámbitos.
ejemplo Incorporación de contexto empresarial a las métricas
Incorpore etiquetas de propiedad del equipo y del entorno a los puntos de datos de las métricas:
processor: - add_attributes: attributes: - key: resource.attributes["team"] value: "platform-engineering" - key: resource.attributes["cost_center"] value: "CC-1234"
ejemplo Eliminación de atributos de cardinalidad alta
Elimine los atributos que incrementan los costos de almacenamiento. No se aplica a las métricas acumulativas ni a las métricas suministradas. Si alguna métrica de los criterios de selección tiene una temporalidad no compatible, la canalización emite una métrica de advertencia UnsupportedTemporality que puede supervisar en el espacio de nombres AWS/Observability Admin.
processor: - delete_attributes: with_keys: - resource.attributes["host.id"] - datapoint.attributes["http.request.id"]
ejemplo Estandarización de las convenciones de nomenclatura
Cambie el nombre de las métricas y los atributos para adaptarlos a las convenciones semánticas de OpenTelemetry. No se aplica a las métricas acumulativas ni a las métricas suministradas.
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"]