# Observabilité

## Erreurs

### Checklist

* [ ] Utiliser un outil de remontée d'erreurs avec toute la pile d'appels de fonctions (ex : [Sentry](https://sentry.io/welcome/)).
* [ ] Ajouter des alertes et des notifications sur l'environnement de production.

### Bonnes pratiques

* Les erreurs doivent être remontées avec un maximum de contexte.
* **Attention : ne pas transmettre d'informations personnelles et sensibles**.

## Suivi des performances

### Checklist

* [ ] Utiliser une solution de traces pour suivre les performances (APM : [application performance management](https://fr.wikipedia.org/wiki/Application_performance_management)).
  * Ex de solutions : [Sentry](https://sentry.io/welcome/), [Elastic APM](https://www.elastic.co/observability/application-performance-monitoring) ou [Tempo](https://grafana.com/docs/tempo/latest/) via Grafana.
* [ ] Ajouter des alertes et des notifications sur l'environnement de production.
  * Ex : alerte si le P95 des requêtes back-end dépasse 1s.

Pour la mise en place de l'observabilité avec Sentry [lien](/ressources/deployer/observabilite/documentation-sentry.md)

## Logs

### Checklist

Les logs de l'application doivent :

* [ ] Être formatés en JSON (pour être facilement filtrables dans Grafana ou Kibana).
* [ ] Ne pas contenir d'information personnelle et/ou sensible.
* [ ] Contenir un maximum de contexte (ex : requête HTTP en cours, ID utilisateur, autres informations utiles au débogage).
* [ ] Contenir la liste des requêtes http (access logs) : domaine, chemin, durée, etc.

Des alertes peuvent être mises en place sur les logs pour détecter des comportements anormaux si les alertes d'erreurs et de performance ne suffisent pas.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dnum-ministeres-sociaux.gitbook.io/ressources/deployer/observabilite.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
