> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Descartar logs após extrair métricas

> Registre uma métrica a partir de linhas de log de alto volume assim que elas chegam, e depois descarte essas linhas para manter o número sem armazenar cada uma delas. Configure isso pelo AppSignal MCP.

Algumas linhas de log valem a pena ser contadas, mas não guardadas. Uma loja online pode registrar cada busca no catálogo feita por um cliente, cada página de produto que ele abre e cada health check do seu load balancer. Cada linha isoladamente diz pouco, mas a taxa importa. Você quer saber com que frequência isso acontece, sem armazenar cada linha.

O AppSignal pode registrar uma métrica a partir das linhas de log correspondentes assim que elas chegam, e depois descartar essas linhas para que nunca sejam armazenadas. Você mantém o número para dashboards e triggers, e o consumo de armazenamento de logs permanece baixo. Meça primeiro, depois descarte — como em um pipeline de observability.

A interface da aplicação AppSignal ainda não suporta isso. Você pode configurar pelo [AppSignal MCP](/mcp-server) pedindo ao seu agente de IA que crie duas log line actions.

## Como funciona

As log line actions são executadas conforme o AppSignal ingere seus logs, em uma ordem que você define. Existem três tipos:

* **metrics**: registra uma métrica a partir das linhas correspondentes.
* **filter**: descarta as linhas correspondentes para que nunca sejam armazenadas.
* **trigger**: dispara um alerta e um incident quando a consulta corresponde.

Para manter a métrica e descartar as linhas, use uma action metrics e uma action filter, com a action metrics em primeiro lugar. Um filter impede que uma linha alcance qualquer action posterior; portanto, se o filter fosse executado primeiro, a linha seria descartada antes de ser contada.

<Note>
  As log line actions afetam apenas linhas ingeridas depois de sua criação. Elas não alteram logs que já estão armazenados.
</Note>

### Registrar a métrica conforme os logs chegam

Registrar a métrica na ingestão é o que torna o descarte seguro. Uma [métrica baseada em logs](/logging/metrics) construída a partir da página Logs lê linhas de log já armazenadas — assim, uma vez descartadas as linhas, não há mais nada para ler. Uma log line action do tipo metrics registra o valor de cada linha assim que ela chega, antes de o filter descartá-la, de modo que o número é preservado.

## Antes de começar, você vai precisar de

* [AppSignal MCP](/mcp-server) configurado no seu agente de IA, com acesso de escrita às ferramentas de logging
* Uma fonte de log que recebe as linhas que você quer medir
* Uma consulta que corresponda a essas linhas

## Passo 1: Registrar uma métrica a partir das linhas

Peça ao seu agente que adicione uma action metrics. Por exemplo, para contar com que frequência os clientes fazem buscas no seu catálogo:

> No MyStore production, adicione uma log line action metrics que conte as linhas de log correspondentes a `message:search` como um counter chamado `log.catalog_searches`, limitado à fonte de log da aplicação.

Isso chama `manage_log_line_action`:

```json theme={null}
{
  "app_name": "MyStore",
  "app_environment": "production",
  "name": "Catalog search rate",
  "action_type": "metrics",
  "query": "message:search",
  "source_ids": ["<YOUR_LOG_SOURCE_ID>"],
  "log_line_metrics": [
    { "name": "log.catalog_searches", "metric_type": "counter" }
  ]
}
```

Três pontos para acertar:

* **Escreva a consulta na sintaxe de consulta de logs do AppSignal, a mesma sintaxe da página Logs.** `message:search` corresponde às linhas cujo message contém `search`. Veja [query syntax](/logging/query-syntax).
* **Escolha a quais fontes ela se aplica.** Liste-as em `source_ids`, ou omita `source_ids` para aplicar a action a todas as fontes.
* **Escolha o tipo de métrica.** Um `counter` conta as linhas correspondentes e não precisa de um campo. Um `gauge` ou uma `distribution` lê um número de cada linha, portanto precisa de um `field` indicando qual valor ler.

## Passo 2: Verifique a métrica antes de descartar qualquer coisa

Aguarde algumas linhas correspondentes e depois releia a métrica:

> Mostre-me o counter `log.catalog_searches` do MyStore production nos últimos 15 minutos.

<Warning>
  Confirme se o counter está registrando antes de adicionar o filter. Um filter descarta as linhas correspondentes de forma permanente; se a consulta estiver errada, você perde as linhas sem ter capturado o número.
</Warning>

## Passo 3: Descartar as linhas correspondentes

Adicione uma action filter com a mesma consulta:

> No MyStore production, adicione uma log line action filter que descarte as linhas de log correspondentes a `message:search`.

```json theme={null}
{
  "app_name": "MyStore",
  "app_environment": "production",
  "name": "Drop catalog search logs",
  "action_type": "filter",
  "query": "message:search",
  "source_ids": ["<YOUR_LOG_SOURCE_ID>"]
}
```

## Passo 4: Mantenha a action metrics antes do filter

Novas actions são adicionadas ao final da ordem, portanto o filter já roda depois da action metrics. Confirme a ordem:

> Liste as log line actions do MyStore production e mantenha a action metrics antes do filter.

Isso usa `get_app_resources` para ler a ordem, e `reorder_log_line_actions` apenas se o filter estiver antes da action metrics. Se o filter rodasse primeiro, ele descartaria as linhas antes que a action metrics as contasse.

## Verifique que está funcionando

Dê alguns minutos para as actions entrarem em vigor, e então confirme as duas partes em uma pequena amostra:

1. Leia a métrica. O counter continua subindo à medida que linhas correspondentes chegam.
2. Pesquise em seus logs pelas mesmas linhas. As novas não aparecem mais, porque o filter as descarta.

Se o counter não estiver subindo, ou se as linhas ainda estiverem sendo armazenadas, a action pode ainda não ter entrado em vigor, ou a consulta pode não estar correspondendo. Verifique a consulta na página Logs e depois tente novamente em linhas novas.

## Comportamento e limitações

* **As actions não são retroativas.** Elas atuam apenas em novas linhas. Logs armazenados antes de você criar a action permanecem como estão.
* **Reserve alguns minutos.** Uma action nova ou alterada leva um pequeno intervalo para entrar em vigor. Linhas que chegam nos primeiros momentos podem não ser processadas por ela.
* **Linhas descartadas não podem ser recuperadas.** Mantenha a métrica — e uma action trigger se quiser alertas — para que o filter nunca remova o único registro de um evento.
* **As duas consultas são independentes.** Conte um conjunto de linhas e descarte outro se isso atender ao seu objetivo. Para contar e descartar as mesmas linhas, use a mesma consulta em ambas.

## Relacionado

* [AppSignal MCP](/mcp-server) e a [referência de ferramentas do MCP](/mcp/reference)
* [Métricas baseadas em logs](/logging/metrics), construídas a partir de linhas de log armazenadas
* [Ignorar logs](/guides/filter-data/ignore-logs), para impedir que sua integração envie essas linhas em primeiro lugar
