1. Deux approches complémentaires #
Réel et simulé.
Comparaison #
| RUM | Synthetics | |
|---|---|---|
| Données | Vraies sessions d'utilisateurs | Parcours scriptés, planifiés |
| Détecte | Lenteurs réelles, erreurs JavaScript, impact par navigateur ou pays | Indisponibilité, régression, avant même qu'un utilisateur ne la subisse |
| Fonctionne la nuit sans trafic | Non | Oui |
| Facturation | Sessions | Exécutions de tests |
2. RUM #
Le navigateur.
Installation #
import { datadogRum } from '@datadog/browser-rum';
datadogRum.init({
applicationId: '<APPLICATION_ID>', clientToken: '<CLIENT_TOKEN>', site: 'datadoghq.eu',
service: 'shop-front', env: 'prod', version: '2.3.0',
sessionSampleRate: 100, sessionReplaySampleRate: 20,
trackUserInteractions: true, trackResources: true, trackLongTasks: true,
allowedTracingUrls: ['https://api.example.com'], // relie les requêtes aux traces backend
defaultPrivacyLevel: 'mask-user-input',
});- Core Web Vitals (LCP, INP, CLS) par page, navigateur et pays.
- Session Replay pour revoir une session, avec masquage des saisies (
defaultPrivacyLevel). allowedTracingUrlsajoute les en-têtes de traçage aux appels d'API : d'un clic, on passe d'une action lente à la trace backend.
3. Synthetics #
Tester en continu.
Types de tests #
| Test | Vérifie |
|---|---|
| API (HTTP, SSL, DNS, TCP, gRPC, WebSocket) | Statut, temps de réponse, contenu, expiration de certificat |
| API multi-étapes | Un enchaînement d'appels avec variables (connexion, puis commande) |
| Navigateur | Un parcours enregistré dans un vrai navigateur |
| Mobile | Un parcours dans une application mobile |
- Emplacements gérés (régions cloud) ou emplacements privés (un conteneur dans votre réseau) pour tester les applications internes.
- Exécution des tests en CI (
datadog-ci synthetics run-tests) pour bloquer un déploiement qui casse un parcours. - Tests et emplacements gérés en Terraform (
datadog_synthetics_test).
Bonne Pratique : Alertez sur plusieurs emplacements en échec (par exemple 2 sur 3) plutôt que sur un seul : un problème réseau local ne doit pas réveiller l'astreinte.
