

# Procesadores de canalizaciones de métricas
<a name="metrics-pipeline-processors"></a>

Los procesadores de canalizaciones de métricas transforman los puntos de datos de las métricas de OTel durante la ingesta. Una canalización de métricas puede tener hasta 20 procesadores, que se aplican de forma secuencial en el orden en que se definen.

Los procesadores utilizan expresiones de ruta de OTTL para dirigirse a atributos de distintos ámbitos:


| Ruta | Ámbito | Ejemplo | 
| --- | --- | --- | 
| `resource.attributes["key"]` | Nivel de recurso | `resource.attributes["service.name"]` | 
| `instrumentation_scope.attributes["key"]` | Atributo de ámbito | `instrumentation_scope.attributes["library"]` | 
| `datapoint.attributes["key"]` | Nivel de punto de datos | `datapoint.attributes["status_code"]` | 
| `attributes["key"]` | Forma abreviada para el punto de datos | `attributes["environment"]` | 

## Procesador add\_attributes
<a name="add-attributes-processor"></a>

Agrega o sobrescribe atributos en los puntos de datos de las métricas. Funciona con todos los tipos de temporalidad.

**Equivalente de OTTL:** `set(attributes["key"], "value")`

**Configuración**  
Configure el procesador add\_attributes con los siguientes parámetros:

```
processor:
  - add_attributes:
      attributes:
        - key: resource.attributes["team"]
          value: "payments"
        - key: attributes["environment"]
          value: "production"
        - key: instrumentation_scope.attributes["version"]
          value: "1.0"
          overwrite_if_key_exists: true
```Parameters

`attributes` (obligatorio)  
Matriz de objetos de atributo que se agregarán.

`attributes[].key` (obligatorio)  
Ruta de atributo de OTTL que especifica dónde se agregará el atributo.

`attributes[].value` (obligatorio)  
Valor de cadena que se asignará.

`attributes[].overwrite_if_key_exists` (opcional)  
Booleano. Cuando el valor es `true`, sobrescribe los valores existentes. El valor predeterminado es `false`. Cuando se establece en `true`, esta operación se considera destructiva y no se aplica a las métricas acumulativas ni a las métricas suministradas.

## Procesador delete\_attributes
<a name="delete-attributes-processor"></a>

Elimina atributos específicos de los puntos de datos de las métricas. **No se aplica a las métricas acumulativas ni a las métricas suministradas.**

**Equivalente de OTTL:** `delete_key(attributes, "key")`

**Configuración**  
Configure el procesador delete\_attributes con los siguientes parámetros:

```
processor:
  - delete_attributes:
      with_keys:
        - resource.attributes["obsolete"]
        - attributes["temp"]
        - datapoint.attributes["debug"]
```Parameters

`with_keys` (obligatorio)  
Matriz de rutas de atributos de OTTL que se eliminarán.

## Procesador rename\_attributes
<a name="rename-attributes-processor"></a>

Cambia el nombre de las claves de atributos en los puntos de datos de las métricas. **No se aplica a las métricas acumulativas ni a las métricas suministradas.**

**Equivalente de OTTL:** `set() + delete_key()`

**Configuración**  
Configure el procesador rename\_attributes con los siguientes parámetros:

```
processor:
  - rename_attributes:
      attributes:
        - from_key: resource.attributes["old_key"]
          to_key: resource.attributes["new_key"]
          overwrite_if_to_key_exists: true
```Parameters

`attributes` (obligatorio)  
Matriz de operaciones de cambio de nombre.

`attributes[].from_key` (obligatorio)  
Ruta de origen del atributo de OTTL.

`attributes[].to_key` (obligatorio)  
Ruta de destino del atributo de OTTL.

`attributes[].overwrite_if_to_key_exists` (opcional)  
Booleano. Cuando el valor es `true`, sobrescribe el valor si existe la clave de destino. El valor predeterminado es `false`.

## Procesador rename\_metrics
<a name="rename-metrics-processor"></a>

Cambia el nombre de las métricas. **No se aplica a las métricas acumulativas ni a las métricas suministradas.**

**Equivalente de OTTL:** `set(name, "new.metric.name") where name == "old.metric.name"`

**Configuración**  
Configure el procesador rename\_metrics con los siguientes parámetros:

```
processor:
  - rename_metrics:
      metrics:
        - from: "old.metric.name"
          to: "new.metric.name"
```Parameters

`metrics` (obligatorio)  
Matriz de operaciones de cambio de nombre.

`metrics[].from` (obligatorio)  
Nombre actual de la métrica.

`metrics[].to` (obligatorio)  
Nuevo nombre de la métrica.

## Procesador substitute\_attribute\_values
<a name="substitute-attribute-values-processor"></a>

Asigna valores de atributos mediante una tabla de búsqueda. **No se aplica a las métricas acumulativas ni a las métricas suministradas.**

**Equivalente de OTTL:** `replace_match()`

**Configuración**  
Configure el procesador substitute\_attribute\_values con los siguientes parámetros:

```
processor:
  - substitute_attribute_values:
      attributes:
        - key: resource.attributes["region"]
          from: "us-east-1a"
          to: "us-east-1"
```Parameters

`attributes` (obligatorio)  
Matriz de operaciones de sustitución.

`attributes[].key` (obligatorio)  
Ruta de atributo de OTTL con la que se realizará la comparación.

`attributes[].from` (obligatorio)  
Valor que debe coincidir.

`attributes[].to` (obligatorio)  
Valor de sustitución.

## Ejemplo completo
<a name="metrics-processors-full-example"></a>

En el siguiente ejemplo se utilizan los cinco procesadores en una única canalización:

```
pipeline:
  source:
    cloudwatch_metrics:
      format: otlp
      selection_criteria:
        - match_all:
            - 'resource.attributes["service.name"] == "my-service"'
            - 'metric.name == "CPUUtilization"'
  processor:
    - add_attributes:
        attributes:
          - key: resource.attributes["env"]
            value: "prod"
            overwrite_if_key_exists: true
    - delete_attributes:
        with_keys:
          - resource.attributes["internal.trace"]
    - rename_attributes:
        attributes:
          - from_key: resource.attributes["old_key"]
            to_key: resource.attributes["new_key"]
    - rename_metrics:
        metrics:
          - from: "CPUUtilization"
            to: "system.cpu.utilization"
    - substitute_attribute_values:
        attributes:
          - key: resource.attributes["environment"]
            from: "dev"
            to: "development"
  sink:
    - cloudwatch_metrics: {}
```

## Compatibilidad y restricciones de procesadores
<a name="metrics-processor-restrictions"></a>

Número máximo de procesadores  
Una canalización de métricas puede tener un máximo de 20 procesadores.

Procesadores destructivos y temporalidad  
Los procesadores destructivos (`delete_attributes`, `rename_attributes`, `rename_metrics`, `substitute_attribute_values` y `add_attributes` con `overwrite_if_key_exists: true`) no se aplican a las métricas acumulativas ni a las métricas suministradas. Estas métricas se transmiten sin cambios.

Protección de las métricas suministradas  
Los procesadores destructivos no pueden modificar las métricas en las que `instrumentation_scope.name` comienza con `cloudwatch.aws/`. Estas métricas se transmiten sin cambios.