

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

Os processadores de pipeline de métricas transformam os pontos de dados de métricas do OTel durante a ingestão. Um pipeline de métricas pode ter até 20 processadores aplicados sequencialmente na ordem em que são definidos.

Os processadores utilizam expressões de caminho OTTL para direcionar atributos em diferentes escopos:


| Caminho | Escopo | Exemplo | 
| --- | --- | --- | 
| `resource.attributes["key"]` | Nível de recurso | `resource.attributes["service.name"]` | 
| `instrumentation_scope.attributes["key"]` | Atributo de escopo | `instrumentation_scope.attributes["library"]` | 
| `datapoint.attributes["key"]` | Nível de ponto de dados | `datapoint.attributes["status_code"]` | 
| `attributes["key"]` | Forma abreviada para ponto de dados | `attributes["environment"]` | 

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

Adiciona ou substitui atributos em pontos de dados de métricas. Funciona com todos os tipos de temporalidade.

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

**Configuração**  
Configure o processador add\_attributes com os seguintes 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
```Parâmetros

`attributes` (obrigatório)  
Matriz de objetos de atributos a serem adicionados.

`attributes[].key` (obrigatório)  
Caminho do atributo OTTL especificando onde adicionar o atributo.

`attributes[].value` (obrigatório)  
Valor da string a ser atribuída.

`attributes[].overwrite_if_key_exists` (opcional)  
Booliano. Quando `true`, sobrescreve os valores existentes. Padronizado como `false`. Quando definida como `true`, essa operação é considerada destrutiva e não se aplica a métricas cumulativas ou métricas fornecidas.

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

Remove atributos específicos dos pontos de dados de métricas. **Não se aplica a métricas cumulativas ou métricas fornecidas.**

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

**Configuração**  
Configure o processador delete\_attributes com os seguintes parâmetros:

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

`with_keys` (obrigatório)  
Matriz de caminhos de atributos OTTL a serem removidos.

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

Renomeia as chaves de atributos em pontos de dados métricos. **Não se aplica a métricas cumulativas ou métricas fornecidas.**

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

**Configuração**  
Configure o processador rename\_attributes com os seguintes parâmetros:

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

`attributes` (obrigatório)  
Matriz de operações de renomeação.

`attributes[].from_key` (obrigatório)  
Caminho do atributo OTTL da fonte.

`attributes[].to_key` (obrigatório)  
Caminho do atributo OTTL do destino.

`attributes[].overwrite_if_to_key_exists` (opcional)  
Booliano. Quando `true`, substitui se a chave de destino existir. Padronizado como `false`.

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

Renomeia os nomes das métricas. **Não se aplica a métricas cumulativas ou métricas fornecidas.**

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

**Configuração**  
Configure o processador rename\_metrics com os seguintes parâmetros:

```
processor:
  - rename_metrics:
      metrics:
        - from: "old.metric.name"
          to: "new.metric.name"
```Parâmetros

`metrics` (obrigatório)  
Matriz de operações de renomeação.

`metrics[].from` (obrigatório)  
Nome atual da métrica.

`metrics[].to` (obrigatório)  
Novo nome de métrica.

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

Mapeia valores de atributos usando uma tabela de pesquisa. **Não se aplica a métricas cumulativas ou métricas fornecidas.**

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

**Configuração**  
Configure o processador substitute\_attribute\_values com os seguintes parâmetros:

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

`attributes` (obrigatório)  
Matriz de operações de substituição.

`attributes[].key` (obrigatório)  
Caminho do atributo OTTL para fazer correspondência.

`attributes[].from` (obrigatório)  
Valor para corresponder.

`attributes[].to` (obrigatório)  
Valor de substituição.

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

O exemplo mostrado a seguir utiliza todos os cinco processadores em um único pipeline:

```
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: {}
```

## Compatibilidade e restrições de processador
<a name="metrics-processor-restrictions"></a>

Máximo de processadores  
Um pipeline de métricas pode ter no máximo 20 processadores.

Processadores destrutivos e temporalidade  
Processadores destrutivos (`delete_attributes`, `rename_attributes`, `rename_metrics`, `substitute_attribute_values` e `add_attributes` com `overwrite_if_key_exists: true`) não se aplicam a métricas cumulativas ou métricas fornecidas. Essas métricas são transmitidas de maneira inalterada.

Proteção de métricas fornecidas  
Processadores destrutivos não podem modificar as métricas em que `instrumentation_scope.name` começa com `cloudwatch.aws/`. Essas métricas são transmitidas de maneira inalterada.