đ Uptrends â Monitoring Web, SynthĂ©tique & RUM
Guide complet IDEO-Lab sur la plateforme de "Digital Experience Monitoring" (DEM).
Concept : DEM
Digital Experience Monitoring (SaaS). Actif vs Passif.
DEM SaaS UptimeRUM vs. Synthetics
Le duel : Passif (Vrai Client) vs Actif (Robot).
RUM Synthetics ComparatifCheckpoints (Points de Test)
Le réseau global de sondes (+230 sites) pour Synthetics.
Checkpoints Global SondesSynthetics : Uptime
Monitoring simple (HTTP, Ping, TCP, DNS) 24/7.
Synthetics Uptime PingSynthetics : Web Performance
Full Page Check (FPC), Navigateur (Chrome), Vitals.
Synthetics FPC Core Web VitalsSynthetics : Transactions
Parcours utilisateur (Enregistreur, Clics, Scripts).
Synthetics Transactions ScénarioSynthetics : API
Monitoring Multi-Step API (Assertions, Variables).
API Multi-Step AssertionsPrivate Checkpoints
Sondes internes (Monitoring de l'Intranet / LAN).
Private Checkpoint IntranetConcurrent Monitoring
Simuler des charges (ex: 10 checks en parallĂšle).
Concurrent ChargeRUM (Real User Monitoring)
Monitoring passif (Vrais utilisateurs), Snippet JS.
RUM Passif JavaScriptRUM : Vitals & Géo
Core Web Vitals (LCP, INP, CLS), Géo, Navigateur.
RUM Core Web VitalsRUM : Erreurs JS & AJAX
Suivi des erreurs JavaScript et des requĂȘtes AJAX (Fetch).
RUM JS ErrorsInfrastructure Monitoring
Monitoring Serveurs (Agent, SNMP, Cloud).
Infrastructure Agent SNMPAlerting (Alerts)
Définitions, Niveaux d'Escalade, Services Tiers.
Alertes EscaladeIntégrations
Slack, PagerDuty, OpsGenie, Webhooks.
Integrations Slack PagerDutyDashboards
Tableaux de bord (Hubs), Partage (Public).
Dashboards VisualisationReporting (Rapports)
Rapports PDF (SLA), Email planifiés.
Rapports SLA PDFCheat-sheet
Bonnes pratiques (Checklist de configuration).
Checklist Bonnes PratiquesQu'est-ce que Uptrends ?
Uptrends (faisant partie d'ITRS Group) est une plateforme de monitoring (supervision) en mode SaaS. Elle est spécialisée dans le DEM (Digital Experience Monitoring), c'est-à -dire la surveillance de l'expérience utilisateur finale, qu'elle soit simulée ou réelle.
Son objectif principal est de rĂ©pondre Ă la question : "Mon site web (ou mon API) est-il disponible (UP), rapide (FAST) et fonctionnel (WORKING) pour mes utilisateurs, oĂč qu'ils soient dans le monde ?"
Les Deux Piliers d'Uptrends
Uptrends (comme Datadog ou New Relic) divise sa supervision en deux approches complémentaires :
- 1. Monitoring Synthétique (Actif / Proactif) : (Voir 2.x)
- Le Robot : Uptrends utilise ses propres serveurs (Checkpoints) pour simuler un utilisateur (un robot) qui teste votre site 24/7 (ex: toutes les 1 min).
- Question : "Mon site est-il UP *maintenant* ?"
- 2. Real User Monitoring (RUM) (Passif / Réel) : (Voir 4.x)
- Le Vrai Client : Un script JS sur votre site collecte les données de performance de vos visiteurs réels.
- Question : "Comment mes utilisateurs en Australie ont-ils vécu la performance ce matin ?"
C'est la distinction fondamentale du "Digital Experience Monitoring". Vous avez besoin des deux pour une image complĂšte.
| CritÚre | Synthetics (Monitoring Actif/Proactif) | RUM (Real User Monitoring - Passif/Réactif) |
|---|---|---|
| Source | Robots (Checkpoints Uptrends) | Vrais utilisateurs (Navigateurs des clients) |
| Collecte | RequĂȘtes HTTP, Navigateur "headless" (Chrome) | Snippet JavaScript (rum.js) |
| Objectif | Uptime & Baseline. (Proactif, 24/7). | Performance réelle & Démographie. (Réactif). |
| Avantage | DĂ©tecte les pannes en premier (Alerte Ă 3h du matin, mĂȘme sans trafic). Ătablit une baseline de performance (stable). | DonnĂ©es 100% rĂ©elles (Long-tail, "vraie" performance sur un PC lent / 4G). Capture les erreurs JS rĂ©elles. |
| InconvĂ©nient | Ne voit pas les problĂšmes des "vrais" utilisateurs (ex: un FAI spĂ©cifique en Australie, un bug JS sur un vieux Safari). | Ne voit que s'il y a du trafic (ne dĂ©tecte pas une panne Ă 3h du matin). Les donnĂ©es peuvent ĂȘtre "bruyantes" (Bots, extensions...). |
Les Checkpoints sont le réseau mondial de serveurs (sondes) qu'Uptrends utilise pour exécuter le monitoring Synthétique.
Uptrends maintient plus de 230 checkpoints Ă travers le monde (Paris, Francfort, New York, Tokyo, Sydney...).
Objectif (Perspective Globale)
ProblÚme : Si vous testez votre site (hébergé à Paris) depuis votre bureau (à Paris), il sera rapide. Mais est-il rapide pour vos clients à New York ?
Solution : Lors de la configuration d'un moniteur (ex: Uptime HTTP), vous sélectionnez les Checkpoints qui doivent l'exécuter (ex: "Tester depuis Paris, New York, et Singapour, toutes les 5 minutes").
Détection d'Erreurs (Anti-Faux Positifs)
Si un check échoue (ex: Timeout depuis New York), Uptrends ne déclenche pas l'alerte immédiatement.
Il re-teste immédiatement depuis un autre checkpoint (ex: Chicago) pour confirmer la panne. Si Chicago échoue aussi, l'alerte est "Confirmée" et envoyée. (Cela évite les fausses alertes dues à une micro-coupure réseau locale à New York).
C'est le type de monitoring le plus basique. "Est-ce que ça répond ?" (PING).
Uptrends vérifie la disponibilité à la fréquence définie (ex: 1 minute).
Types de Moniteurs "Uptime"
- Ping (ICMP) : (Couche 3) Vérifie si l'hÎte (serveur) est joignable sur le réseau.
- HTTP / HTTPS : (Couche 7) Tente de charger une URL.
- VĂ©rifie le code de statut HTTP (ex: doit ĂȘtre
200 OK). - VĂ©rifie le temps de rĂ©ponse (ex: doit ĂȘtre < 2 secondes).
- (HTTPS) Vérifie la validité du certificat SSL (Expiration, Chaßne).
- (Optionnel) Vérifie la présence d'un mot-clé dans le corps (Body) (ex: "Bienvenue").
- VĂ©rifie le code de statut HTTP (ex: doit ĂȘtre
- TCP / UDP : (Couche 4) Vérifie si un port spécifique est ouvert (ex:
TCP Port 3306pour MySQL). - DNS : Vérifie que le DNS résout correctement (ex:
A Record). - SMTP/POP3/IMAP : Teste les serveurs de messagerie.
ProblĂšme : Un check "HTTP" (2.1) vous dit que index.html (10 Ko) charge en 50ms (OK). Mais la page complĂšte (avec 100 images, CSS, JS) prend 10 secondes Ă s'afficher (PAS OK).
Solution : Full Page Check (FPC). Uptrends charge l'URL dans un vrai navigateur (Chrome "headless") et mesure la performance de toutes les ressources (HTML, CSS, JS, Images, Polices...).
Métriques Collectées (FPC)
- Temps de chargement total (Total Load Time).
- Nombre de requĂȘtes (ex: 120).
- Taille de la page (ex: 3.5 MB).
- Core Web Vitals (Synthétiques) : LCP, INP, CLS (tels que mesurés par le robot).
- Répartition : (Temps passé sur Réseau, Backend (TTFB), Frontend (Rendu)).
Cascade (Waterfall)
Pour chaque exécution, Uptrends sauvegarde un graphique en "cascade" (similaire aux Outils de Dev Chrome) montrant le temps de chargement de chaque ressource.
Permet de trouver les goulots d'étranglement :
- Temps de résolution DNS (lent ?)
- Temps de connexion TCP/SSL (lent ?)
- TTFB (Waiting) (Backend lent ?)
- Content Download (Ressource trop lourde ?)
- Blocking : Un
.jsqui bloque le rendu (Render-Blocking) ?
C'est le "Web Application Monitoring". Il ne teste pas 1 URL, mais un scénario métier complet (ex: "Se connecter", "Ajouter au panier", "Valider la commande").
Enregistreur de Transactions (Transaction Recorder)
Uptrends fournit une extension Chrome (Recorder) pour créer le script (sans code) :
- (Développeur) : Démarrer l'enregistrement.
- (Développeur) : Navigue sur le site (ex: /login).
- (Développeur) : Clique sur le champ "Username" (Uptrends capture le Sélecteur CSS/XPath).
- (Développeur) : Tape "mon_user".
- (Développeur) : Clique sur "Submit".
- (Développeur) : Ajoute une "Assertion" (Vérification) -> "Vérifier que le texte 'Bienvenue' est visible".
- (DĂ©veloppeur) : ArrĂȘter l'enregistrement.
- (Uptrends) : Convertit cela en un script de scénario (multi-étapes).
Exécution
Le checkpoint (robot) rejoue ce scénario (clics, saisie) dans un vrai Chrome (headless) toutes les X minutes.
Alerte : Si l'assertion ("Bienvenue") Ă©choue, le test est "Failed", mĂȘme si le statut HTTP est 200. (Permet de dĂ©tecter les pannes applicatives).
Similaire au "Transaction Monitoring", mais pour les APIs (REST, SOAP). Il permet de tester des scénarios (workflows) API en plusieurs étapes, sans navigateur.
Concept : Extraction & Assertions
Permet d'extraire des données (Variables) d'une étape pour les réutiliser dans la suivante (Corrélation).
Exemple (Workflow API)
- Ătape 1 : POST /auth (Login)
- Body :
{"user":"...", "pass":"..."} - Assertion : Vérifier
HTTP Status == 200. - Extraction : Extraire
$.token(JSONPath) et le stocker dans la variableAUTH_TOKEN.
- Body :
- Ătape 2 : GET /api/users/me
- Header :
Authorization: Bearer(Réinjection de la variable). - Assertion : Vérifier
HTTP Status == 200. - Assertion : Vérifier
JSONBody.email == "user@test.com".
- Header :
ProblÚme : Les Checkpoints (1.3) sont publics (Internet). Ils ne peuvent pas tester vos applications internes (Intranet, Serveurs dans le LAN/DMZ qui ne sont pas exposés).
Solution
Uptrends vous permet d'installer votre propre sonde (Checkpoint Privé) (un logiciel Windows ou Linux) sur une machine à l'intérieur de votre réseau (LAN ou DMZ).
[INTERNET] <ââ [FIREWALL] ââ> [LAN]
â â
â (WAN Checks) ââ [Serveur Intranet (192.168.1.50)]
â â
[Uptrends SaaS] â
â (Config) ââ [Private Checkpoint (VM Interne)]
â (RĂ©sultats) â â
ââââââââââââââââââââââââââ(Push)â â (Check local)
ââââââââââââââââââș (Ping 192.168.1.50)
Usage
- Superviser un Intranet (SharePoint, CRM interne).
- Superviser des serveurs internes (Ping, Port TCP) avant qu'ils ne soient visibles par le firewall.
- Superviser des équipements SNMP (Switchs, Routeurs) (voir 5.1).
C'est une fonctionnalitĂ© (optionnelle) qui transforme le Monitoring SynthĂ©tique (1 test Ă la fois) en Test de Charge lĂ©ger (N tests en mĂȘme temps).
Fonctionnement
Au lieu d'exécuter un "Full Page Check" (FPC) depuis 1 checkpoint, vous demandez à Uptrends d'exécuter 10 FPC simultanément (en "concurrence") depuis 10 checkpoints différents.
Usage
- Simulation de Charge : Simule un "petit" test de charge (ex: 10 utilisateurs concurrents) pour voir l'impact sur le temps de réponse (ex:
p(90)). - Test "Burst" : Vérifie comment le serveur (et le Load Balancer) réagit à un pic soudain de trafic.
Ce n'est pas un remplacement pour un outil de "stress test" (comme JMeter ou k6), mais c'est un bon test de "fumée" (smoke test) pour la performance sous charge.
RUM (Real User Monitoring), ou monitoring "passif", capture les données de performance directement depuis les navigateurs de vos utilisateurs réels.
Fonctionnement (Snippet JS)
- Vous copiez/collez un snippet JavaScript (fourni par Uptrends) dans le
<head>de votre site. - Un utilisateur (ex: Ă Sydney, sur un iPhone) visite votre site.
- Le script JS (
rum.js) se charge, collecte les métriques (Core Web Vitals, chargement...) dans son navigateur. - à la fin (ex:
onLoad), le script envoie un "beacon" (un paquet de données) aux collecteurs Uptrends.
Données Collectées
Le RUM est puissant car il collecte non seulement la performance, mais aussi le contexte :
- Performance : Temps de chargement, LCP, INP, CLS...
- Contexte : Navigateur (Chrome, Firefox), OS (Windows, iOS), Type d'appareil (Mobile, Desktop), Géolocalisation (Pays, Région).
Le RUM est la source de vérité pour les Core Web Vitals (CWV), car il mesure ce que Google (CrUX) mesure : les vrais utilisateurs.
Dashboards RUM
L'interface RUM permet de "segmenter" (FACET) les données de performance pour trouver les "Long-tail problems" :
"Montre-moi le P75 (Percentile 75) du LCP..." ... "uniquement pour les utilisateurs Mobile" ... "uniquement en Australie" ... "uniquement sur Chrome" ... "uniquement sur la page /checkout"
Résultat (Diagnostic) : "Ah, notre LCP est excellent (1.5s) partout, sauf pour les utilisateurs Chrome en Australie (4.8s). C'est un problÚme de CDN/Routage vers l'Australie."
En plus de la performance, le RUM capture les erreurs "cÎté client" (Front-end).
Suivi des Erreurs JS
L'agent JS (RUM) agit comme un "try/catch" global (window.onerror). Il capture les exceptions JavaScript non gérées (ex: TypeError, ReferenceError) et les envoie.
Usage : AgrĂšge les erreurs (ex: "'null' is not an object s'est produit 500 fois, 90% sur Safari iOS 15").
Suivi des RequĂȘtes AJAX
L'agent "wrap" (enveloppe) les appels Fetch et XMLHttpRequest. Il monitore :
- Le temps de réponse des appels API (ex:
GET /api/data). - Les échecs (ex:
404 Not Found,503 Service Unavailable) vus par le client.
C'est le Monitoring "On-Premise" d'Uptrends. Il permet de superviser la santé (CPU, RAM...) de vos serveurs et équipements réseau.
Monitoring Serveur (Agent)
Un Agent (léger) est installé sur le serveur (Windows, Linux).
Collecte : CPU, Mémoire (RAM), Disque (Utilisation, I/O), Réseau (Trafic, Erreurs), Processus.
Monitoring Réseau (SNMP)
Utilise un Private Checkpoint (3.2) pour effectuer des requĂȘtes SNMP (Polling) (voir guide SNMP) sur vos Ă©quipements rĂ©seau (Switchs, Routeurs, Firewalls).
Collecte : Utilisation de la bande passante (In/Out Octets), CPU, Mémoire (des équipements).
Monitoring Cloud
Utilise un Private Checkpoint (ou le Cloud Uptrends) pour interroger les APIs des fournisseurs Cloud (AWS, Azure) et récupérer les métriques des services managés (ex: AWS RDS, Azure SQL).
Le systÚme d'alertes d'Uptrends est basé sur deux concepts : les Définitions (Conditions) et l'Escalade (Actions).
1. Définitions d'Alertes (Conditions)
Définit quand une alerte doit se déclencher.
- Simple : Si le moniteur (ex: Ping) est "Unconfirmed" (1 échec) ou "Confirmed" (2+ échecs).
- Basée sur les erreurs : (ex: Erreur SSL, Erreur 404).
- Basée sur la performance (Seuil) : (ex:
Temps de Réponse > 5 secondespendant3 minutes).
2. Niveaux d'Escalade (Actions)
Définit qui alerter et comment.
Permet de créer des "niveaux" (ex: P1, P2...) basés sur la durée de la panne.
Exemple (Escalade P1) : - SI (Alerte "Confirmed") - ALORS (Niveau 1) : Envoyer un (Email) Ă "Support N1" - SI (Alerte > 15 minutes) - ALORS (Niveau 2) : Envoyer un (SMS) + (Slack) Ă "Support N2" - SI (Alerte > 1 heure) - ALORS (Niveau 3) : Appeler (PagerDuty) "Admin Astreinte"
Uptrends s'intĂšgre nativement avec les outils de "dispatching" d'alertes et de collaboration (ChatOps).
Types d'Intégrations (Destinations)
- Email : (Base)
- SMS : (Alerte)
- ChatOps : (Collaboration)
- Slack
- Microsoft Teams
- Incident Management (Astreinte) : (Escalade)
- PagerDuty
- OpsGenie (Atlassian)
- VictorOps (Splunk)
- Ticketing (ITSM) :
- ServiceNow
- JIRA
- Webhook (Générique) :
- Envoyer un payload JSON (POST) Ă n'importe quelle API (ex: votre propre outil interne).
Les Dashboards (Tableaux de bord) sont l'interface de visualisation (Monitoring) d'Uptrends. Ils permettent de combiner des données de Synthetics, RUM, et Infra en une seule vue.
Types de Dashboards (Hubs)
- Synthétics Hub : Vue d'ensemble des moniteurs (Uptime, Transactions...).
- RUM Hub : Vue d'ensemble de l'expérience utilisateur réelle (Vitals, Géo...).
- Infrastructure Hub : Vue d'ensemble des serveurs/switchs.
- Custom Dashboards : Tableaux de bord personnalisés (Drag & Drop).
Statut Public (Public Status Page)
Permet de créer un dashboard public (ex: status.ideolab.com) qui affiche l'état (Up/Down) de vos services (sélectionnés) pour vos clients.
Les "Dashboards" sont pour le temps réel. Les Rapports (Reports) sont pour l'analyse historique (hebdomadaire, mensuelle), souvent utilisés pour le management (SLA).
Fonctionnalités
- Rapports SLA (Service Level Agreement) : GénÚre un rapport de disponibilité (ex: "Uptime de 99.95% ce mois-ci") et de performance (P90) pour prouver le respect des SLAs.
- Planification (Scheduling) : Permet d'envoyer automatiquement un rapport (ex: "Rapport PDF Hebdomadaire") par email Ă une liste de destinataires (ex: le client, le manager).
- Export : (PDF, Excel).
Checklist de Démarrage (Nouveau Site)
- (Synthetics) Configurer un Moniteur "Uptime" (HTTPS) :
- Intervalle : 1 ou 5 minutes.
- Checkpoints : Sélectionner au moins 3-5 checkpoints (Géo).
- Check : Vérifier (Assertion) le code de statut (200) ET la présence d'un mot-clé (ex: "Bienvenue").
- (Synthetics) Configurer un Moniteur "Full Page Check" (Performance) :
- Intervalle : 15 ou 30 minutes.
- Checkpoints : 1 ou 2 (ex: "Paris").
- Alerting : Mettre une alerte si
Temps de chargement > 4 secondes.
- (RUM) Déployer l'Agent RUM (JS) :
- Copier/Coller le snippet JS dans le
<head>de toutes les pages.
- Copier/Coller le snippet JS dans le
- (Alerting) Configurer les Intégrations :
- Ajouter l'intégration Slack (pour le N1/N2) et PagerDuty (pour l'astreinte N3).
- Configurer les Niveaux d'Escalade.
