> ## 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.

# Supprimer les logs après en avoir extrait des métriques

> Enregistrez une métrique à partir de lignes de log à fort volume dès leur arrivée, puis supprimez ces lignes pour conserver le nombre sans stocker chacune d'elles. Configurez cela via AppSignal MCP.

Certaines lignes de log méritent d'être comptées mais pas d'être conservées. Une boutique en ligne peut journaliser chaque recherche dans le catalogue effectuée par un client, chaque page produit qu'il ouvre et chaque health check de son load balancer. Chaque ligne prise isolément apporte peu d'information, mais le rythme, lui, compte. Vous voulez savoir à quelle fréquence cela se produit, sans stocker chaque ligne.

AppSignal peut enregistrer une métrique à partir des lignes de log correspondantes dès leur arrivée, puis supprimer ces lignes pour qu'elles ne soient jamais stockées. Vous conservez le nombre pour vos dashboards et vos triggers, et votre stockage de logs reste faible. Mesurez d'abord, puis jetez — comme dans un pipeline d'observabilité.

L'interface de l'application AppSignal ne le prend pas encore en charge. Vous pouvez le configurer via [AppSignal MCP](/mcp-server) en demandant à votre agent IA de créer deux log line actions.

## Comment cela fonctionne

Les log line actions s'exécutent au moment où AppSignal ingère vos logs, dans un ordre que vous définissez. Il en existe trois types :

* **metrics** : enregistre une métrique à partir des lignes correspondantes.
* **filter** : supprime les lignes correspondantes pour qu'elles ne soient jamais stockées.
* **trigger** : déclenche une alerte et un incident lorsque la requête correspond.

Pour conserver la métrique tout en supprimant les lignes, utilisez une action metrics et une action filter, avec l'action metrics en premier. Un filter empêche une ligne d'atteindre toute action ultérieure ; si le filter s'exécutait en premier, la ligne serait supprimée avant d'avoir été comptée.

<Note>
  Les log line actions n'affectent que les lignes ingérées après leur création. Elles ne modifient pas les logs déjà stockés.
</Note>

### Enregistrer la métrique dès l'arrivée des logs

Enregistrer la métrique à l'ingestion est ce qui rend la suppression sûre. Une [métrique basée sur les logs](/logging/metrics) construite depuis la page Logs lit des lignes de log déjà stockées ; une fois les lignes supprimées, il n'y a plus rien à lire. Une log line action de type metrics enregistre la valeur de chaque ligne à son arrivée, avant que le filter ne la supprime, si bien que le nombre est préservé.

## Avant de commencer, vous aurez besoin de

* [AppSignal MCP](/mcp-server) configuré dans votre agent IA, avec un accès en écriture aux outils de logging
* Une source de log qui reçoit les lignes que vous souhaitez mesurer
* Une requête qui correspond à ces lignes

## Étape 1 : Enregistrer une métrique à partir des lignes

Demandez à votre agent d'ajouter une action metrics. Par exemple, pour compter la fréquence des recherches dans votre catalogue :

> Sur MyStore production, ajoute une log line action metrics qui compte les lignes de log correspondant à `message:search` sous forme de counter nommé `log.catalog_searches`, limitée à la source de log de l'application.

Cela appelle `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" }
  ]
}
```

Trois points à bien traiter :

* **Écrivez la requête dans la syntaxe de requête de log d'AppSignal, la même que celle de la page Logs.** `message:search` correspond aux lignes dont le message contient `search`. Voir [Query syntax](/logging/query-syntax).
* **Choisissez à quelles sources elle s'applique.** Listez-les dans `source_ids`, ou omettez `source_ids` pour appliquer l'action à toutes les sources.
* **Choisissez le type de métrique.** Un `counter` compte les lignes correspondantes et ne nécessite pas de champ. Un `gauge` ou une `distribution` lit un nombre dans chaque ligne, donc nécessite un `field` indiquant quelle valeur lire.

## Étape 2 : Vérifiez la métrique avant de supprimer quoi que ce soit

Attendez quelques lignes correspondantes, puis relisez la métrique :

> Montre-moi le counter `log.catalog_searches` pour MyStore production sur les 15 dernières minutes.

<Warning>
  Confirmez que le counter enregistre bien les valeurs avant d'ajouter le filter. Un filter supprime les lignes correspondantes de manière définitive ; si la requête est incorrecte, vous perdez les lignes sans avoir capturé le nombre.
</Warning>

## Étape 3 : Supprimer les lignes correspondantes

Ajoutez une action filter avec la même requête :

> Sur MyStore production, ajoute une log line action filter qui supprime les lignes de log correspondant à `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>"]
}
```

## Étape 4 : Gardez l'action metrics avant le filter

Les nouvelles actions sont ajoutées à la fin de l'ordre, donc le filter s'exécute déjà après l'action metrics. Confirmez l'ordre :

> Liste les log line actions sur MyStore production, et garde l'action metrics avant le filter.

Cela utilise `get_app_resources` pour lire l'ordre, et `reorder_log_line_actions` uniquement si le filter précède l'action metrics. Si le filter s'exécutait en premier, il supprimerait les lignes avant que l'action metrics ne les compte.

## Vérifier que cela fonctionne

Laissez quelques minutes aux actions pour prendre effet, puis vérifiez les deux moitiés sur un petit échantillon :

1. Lisez la métrique. Le counter continue de monter à mesure que des lignes correspondantes arrivent.
2. Cherchez dans vos logs les mêmes lignes. Les nouvelles n'apparaissent plus, parce que le filter les supprime.

Si le counter ne monte pas, ou si les lignes sont toujours stockées, l'action n'a peut-être pas encore pris effet, ou la requête ne correspond pas. Vérifiez la requête sur la page Logs, puis réessayez sur de nouvelles lignes.

## Comportement et limites

* **Les actions ne sont pas rétroactives.** Elles n'agissent que sur les nouvelles lignes. Les logs stockés avant la création de l'action restent inchangés.
* **Prévoyez quelques minutes.** Une action nouvelle ou modifiée met un court instant à prendre effet. Les lignes qui arrivent dans les tout premiers instants peuvent ne pas être traitées par elle.
* **Les lignes supprimées ne peuvent pas être récupérées.** Conservez la métrique — ainsi qu'une action trigger si vous souhaitez des alertes — afin que le filter ne supprime jamais la seule trace d'un événement.
* **Les deux requêtes sont indépendantes.** Comptez un ensemble de lignes et supprimez-en un autre si cela correspond à votre objectif. Pour compter et supprimer les mêmes lignes, utilisez la même requête pour les deux.

## Voir aussi

* [AppSignal MCP](/mcp-server) et la [référence des outils MCP](/mcp/reference)
* [Métriques basées sur les logs](/logging/metrics), construites à partir des lignes de log stockées
* [Ignorer les logs](/guides/filter-data/ignore-logs), pour éviter que votre intégration n'envoie ces lignes en premier lieu
