đĄ New Relic â APM, Observability & Infrastructure Monitoring
Guide complet IDEO-Lab sur la plateforme d'observabilité "Full-Stack".
Observabilité (Full-Stack)
Concept (MELT), Plateforme SaaS, All-in-One.
Observability SaaS MELTMonitoring vs Observabilité
"Connus" (Dashboards) vs "Inconnus" (Exploration).
Monitoring ObservabilityL'Agent New Relic
Agent (APM, Infra), Collector, NRDB.
Agent Collector NRDBAPM (Application)
Application Performance Monitoring. (CĆur de NR).
APM PerformanceAPM : Transactions
Suivi des "Transactions" (Web/Non-Web), Apdex.
Transactions ApdexAPM : Distributed Tracing
Trace (Trajet) vs Span (Ătape). (Microservices).
Distributed Tracing Trace SpanAPM : Bases de Données
Identification des requĂȘtes lentes (N+1).
Slow Queries N+1APM : Error Tracking
Agrégation des exceptions (Stack Traces).
Error Tracking ExceptionsAPM : JVM / CLR
Monitoring bas-niveau (Heap, Garbage Collector).
JVM GC HeapInfrastructure (Hosts)
Monitoring Serveurs (CPU, RAM, Disque, Processus).
Infrastructure CPU RAMInfra : Intégrations
On-Host (Nginx, MySQL) & Cloud (AWS, Azure).
Integrations AWSInfra : Kubernetes (K8s)
Monitoring K8s (NĆuds, Pods, Deployments).
Kubernetes PixieBrowser (RUM)
Real User Monitoring (Performance Front-End, JS Errors).
RUM Front-endSynthetics
Monitoring Proactif (Ping, Scripted Browser).
Synthetics UptimeLog Management
Agrégation de Logs (Fluentd, Logstash), Logs in Context.
Logs Logs in ContextNRDB (Data Platform)
La base de données Time-Series (TSDB) (Metrics, Events, Logs).
NRDB TSDBNRQL (Query Language)
Le "SQL" de New Relic (SELECT, FACET, TIMESERIES).
Dashboards
Visualisation des données (via NRQL).
Dashboards GrafanaAlerting
Alertes (Static, Baseline, NRQL), Destinations (Slack).
Alerts NRQL AlertSLM / SLO
Service Level Management (SLI, SLO, Error Budgets).
SLM SLO SLIvs. Datadog
Comparaison des plateformes d'observabilité.
Datadog ComparatifQu'est-ce que New Relic ?
New Relic est une plateforme d'observabilité "Full-Stack", fournie en mode SaaS. Son objectif est de collecter, stocker et analyser toutes les données de télémétrie d'une application et de l'infrastructure qui la supporte.
Historiquement, c'était un pur outil d'APM (Application Performance Monitoring), mais il couvre maintenant l'ensemble du spectre de la supervision.
Les 3 Piliers de l'Observabilité (MELT)
L'observabilité repose sur la corrélation de 3 (parfois 4) types de données :
| Pilier | Anglais | Description | Question Répondue |
|---|---|---|---|
| Métriques | Metrics | Une mesure numérique sur une période (ex: CPU=80%). | "Quoi ?" (Quoi est en panne ?) |
| ĂvĂ©nements | Events | Une action ponctuelle (ex: "DĂ©ploiement", "Reboot"). | "Quand ?" |
| Logs | Logs | Un enregistrement texte d'un événement (ex: "User login failed"). | "Pourquoi ?" (Le contexte) |
| Traces | Traces | Le "trajet" d'une requĂȘte Ă travers plusieurs services. | "OĂč ?" (OĂč est le goulot d'Ă©tranglement ?) |
La force de New Relic est de stocker ces 4 types de données dans une base unique (NRDB) et de permettre de les interroger (NRQL).
Ces deux termes sont souvent confondus, mais décrivent deux approches complémentaires.
Monitoring (Supervision)
"Les Inconnus Connus" (Known Unknowns)
Le monitoring est basé sur ce que vous savez devoir surveiller. C'est un ensemble de Dashboards et d'Alertes pré-définis.
Exemple : "Je *sais* que le CPU est important. Je vais créer un dashboard qui trace le CPU et une alerte si CPU > 90%."
Outils : Nagios, Zabbix, Prometheus.
Observabilité (Observability)
"Les Inconnus Inconnus" (Unknown Unknowns)
L'observabilité est la capacité à explorer et interroger vos données pour comprendre des problÚmes que vous n'aviez pas anticipés.
Exemple : "L'alerte CPU s'est dĂ©clenchĂ©e. *Pourquoi* ? (Exploration). Ah, en corrĂ©lant les traces et les logs, je vois que c'est liĂ© Ă la requĂȘte /api/user/123, uniquement pour les clients sur iOS, qui cause une boucle N+1 en BDD."
Outils : New Relic, Datadog, ELK Stack.
New Relic est une plateforme SaaS. La collecte des données (Télémétrie) se fait via des Agents (logiciels légers) que vous installez sur vos hÎtes ou dans votre application.
Architecture de Collecte
[ VOTRE INFRASTRUCTURE ]
ââ [ Serveur 1 (Agent Infra) ]
ââ [ Serveur 2 (Agent Infra) ]
ââ [ App PHP (Agent APM) ]
ââ [ App Java (Agent APM) ]
ââ [ Navigateur User (Agent Browser) ]
â
â (TĂ©lĂ©mĂ©trie (Metrics, Logs, Traces)
â envoyĂ©e via HTTPS / TLS)
âŒ
[ NEW RELIC (SaaS) ]
ââ [ Data Collector (Ingestion) ]
â (Point d'entrĂ©e)
â
ââ [ NRDB (Database) ]
â (Stockage Time-Series)
â
ââ [ New Relic One (UI) ]
(NRQL, Dashboards, Alerts)Types d'Agents Principaux
| Agent | Objectif | Installation |
|---|---|---|
| Agent APM | Performance Applicative (L7) | BibliothĂšque/Extension (ex: php_newrelic.so, -javaagent:). Se "hook" dans le runtime du langage. |
| Agent Infrastructure | Performance SystÚme (L3/L4) | Service (daemon) installé sur l'OS (ex: apt install newrelic-infra). |
| Agent Browser (RUM) | Performance Front-End | Snippet JavaScript (copié/collé dans le <head> HTML). |
L'APM est le produit phare historique de New Relic. C'est un outil (Couche 7) qui analyse la performance de votre code de l'intérieur.
Objectif : Répondre à la question "Pourquoi cette page est-elle lente ?".
Fonctionnement (Auto-Instrumentation)
L'agent APM (ex: pour PHP, Java, Node.js, Python, .NET) s'attache au runtime de votre application. Il "observe" (instrumente) automatiquement les fonctions clés :
- Frameworks Web (Symfony, Laravel, Spring)
- Appels de Base de Données (MySQL, Postgres)
- Appels Externes (API REST, gRPC)
- BibliothĂšques (Redis, Memcached)
Métriques Clés (Dashboard APM)
- Response Time (Temps de réponse) : (ex: 200ms) Le temps moyen d'une transaction.
- Throughput (DĂ©bit) : (ex: 1000 rpm) RequĂȘtes par minute.
- Error Rate (Taux d'erreur) : (ex: 0.5%) Pourcentage de requĂȘtes Ă©chouĂ©es (5xx, Exceptions).
- Apdex Score : (Voir 2.2).
Transactions
Une Transaction est l'unité de travail principale de l'APM. C'est un "segment" de code instrumenté.
| Type | Exemple | Ce qui est mesuré |
|---|---|---|
| Web Transaction | GET /api/users | Le cycle de vie complet de la requĂȘte (du contrĂŽleur Ă la rĂ©ponse). |
| Non-Web Transaction | Job Cron (worker.php) | L'exécution du script (tùches de fond). |
New Relic agrĂšge les performances par nom de transaction (ex: UserController::get) et vous montre les "Top 5 transactions les plus lentes".
Apdex Score (Satisfaction Utilisateur)
Apdex est un standard industriel (inventé par New Relic) pour mesurer la satisfaction utilisateur perçue, plutÎt qu'une simple moyenne.
Il nécessite 1 seuil : T (Tolérable) (ex: 0.5 sec).
Calcul
Chaque requĂȘte est classĂ©e :
- Satisfied (Satisfait) : Réponse < T (ex: < 0.5s).
- Tolerating (Tolérant) : T < Réponse < 4T (ex: 0.5s - 2.0s).
- Frustrated (Frustré) : Réponse > 4T (ex: > 2.0s) ou Erreur.
Apdex Score (0 Ă 1) = (Nb Satisfied + (Nb Tolerating / 2)) / (Nb Total)
Ex: Score 0.85 = "Bon". Score 0.50 = "Inacceptable".
ProblĂšme : Dans une architecture Microservices, une requĂȘte (ex: "Acheter Produit") ne touche pas 1 serveur, but 5 (Frontend -> API Gateway -> Service Commande -> Service Paiement -> Service Stock).
Distributed Tracing est la solution pour suivre le "trajet" complet de cette requĂȘte.
Trace vs. Span
- Trace : L'ensemble du "trajet" (l'ID de la requĂȘte globale).
- Span (Ătendue) : Une "Ă©tape" (une opĂ©ration) dans ce trajet (ex: l'appel Ă l'API Paiement).
Flux (W3C Trace Context)
L'agent APM 1 (API Gateway) injecte un en-tĂȘte HTTP (traceparent) dans sa requĂȘte vers le Service Commande. L'agent APM 2 (Commande) lit cet en-tĂȘte et "sait" qu'il fait partie de la mĂȘme Trace.
Visualisation (Waterfall)
(Trace ID: abc-123. Temps Total: 800ms)
[API Gateway (Span 1 - 800ms)]
â
ââ [Service Auth (Span 2 - 50ms)]
â
ââ [Service Commande (Span 3 - 750ms)]
â
âââ [DB Query (Span 4 - 300ms)]
â
âââ [Service Paiement (Span 5 - 400ms)]
(Diagnostic : Le goulot d'étranglement est le Service Paiement)L'une des causes les plus fréquentes de lenteur applicative est la base de données.
L'agent APM (ex: php_newrelic) instrumente les pilotes de BDD (PDO, MySQLi) pour chronomĂ©trer chaque requĂȘte.
Rapports Disponibles (APM -> Databases)
- Response Time : Temps moyen de réponse de la BDD.
- Throughput : RequĂȘtes BDD par minute.
- Slowest Queries (RequĂȘtes Lentes) : Le rapport le plus utile. Liste les requĂȘtes (ex:
SELECT * ...) qui prennent le plus de temps (ex: > 500ms). - ProblÚme N+1 : New Relic détecte les "N+1 Query Problems" (ex: une boucle
foreachqui exĂ©cute 100 requĂȘtesSELECTau lieu d'un seulJOIN).
L'agent APM capture automatiquement toutes les exceptions non gérées (Erreurs 500, Fatal Errors, Exceptions) de votre application.
Error Inbox
PlutĂŽt que de chercher dans des fichiers logs (.log) sur 10 serveurs, New Relic agrĂšge toutes les erreurs dans une interface unique ("Error Inbox").
Il groupe les erreurs similaires et vous montre :
- Le Message de l'exception (ex:
NullPointerException). - La Stack Trace complĂšte (fichier, ligne de code).
- Le Nombre d'Occurrences (ex: "Vu 500 fois dans la derniĂšre heure").
- Logs in Context : Les logs (niveau INFO/DEBUG) qui ont eu lieu juste avant l'exception.
Pour les langages managĂ©s (Java, .NET), l'agent APM fournit une visibilitĂ© "bas niveau" dans la Machine Virtuelle (VM) elle-mĂȘme.
Métriques (Exemple JVM - Java)
- Heap Memory (Mémoire de Tas) : Utilisation (ex: 1.5 Go / 2 Go).
- Garbage Collection (GC) : Fréquence et durée des "stop-the-world" (pauses GC). (Une cause majeure de latence).
- Thread Pool : Nombre de threads actifs, bloqués (wait), ou en attente.
Le produit New Relic Infrastructure (NRI) supervise l'HĂŽte (Host) : le serveur (VM, bare-metal, ou conteneur) sur lequel tourne votre application.
Il utilise l'Agent Infrastructure (un service newrelic-infra) pour collecter les métriques systÚme de base (Couche 3/4).
Métriques Collectées (Exemples)
- SystĂšme : Load Average (1, 5, 15 min), Uptime.
- CPU : % Utilisation (Total, User, System, I/O Wait).
- Mémoire : % Utilisation (RAM totale, utilisée, cache).
- Disque : % Utilisation (Espace disque), I/O (opérations/sec).
- Réseau : Trafic (Octets entrants/sortants), Erreurs.
- Processus : Liste des processus (ex:
nginx) et leur consommation CPU/RAM.
Logs in Context
L'agent Infra est aussi (souvent) le composant qui collecte et transfĂšre (Forward) les fichiers logs (ex: /var/log/syslog) vers New Relic Log Management.
La force de l'agent Infra est qu'il peut ĂȘtre Ă©tendu avec des IntĂ©grations (On-Host Integrations - OHI) pour superviser des services tiers tournant sur le mĂȘme hĂŽte.
Intégrations "On-Host"
L'agent Infra détecte un service (ex: Nginx) et utilise une configuration (nginx-config.yml) pour "scraper" (récupérer) les métriques de ce service.
- Nginx : RequĂȘte le
/stub_status(Connexions actives, Waiting...). - MySQL : Exécute
SHOW GLOBAL STATUS;(Connexions, Slow Queries...). - Redis : Exécute
INFO(Mémoire, Clés...).
Permet de corréler la performance de l'application (APM) avec la santé de ses dépendances (Infra).
Intégrations "Cloud" (API Polling)
New Relic peut aussi se connecter (via API, en "read-only") à vos comptes Cloud (AWS, Azure, GCP) pour récupérer les métriques de services managés (PaaS) que vous ne pouvez pas "agentifier".
- AWS : RĂ©cupĂšre les mĂ©triques CloudWatch (ex: RDS (CPU BDD), Lambda (Invocations), ELB (RequĂȘtes)).
- Azure : Azure Monitor.
- GCP : Google Cloud Monitoring.
Le monitoring de Kubernetes est une brique essentielle de l'observabilité moderne. New Relic fournit une intégration K8s complÚte (généralement installée via un Helm Chart).
Composants
- Agent (DaemonSet) : DĂ©ploie l'agent Infra sur chaque NĆud (Node) du cluster.
- Intégration API K8s : RécupÚre les métriques du Control Plane (état des Deployments, Pods...).
- Pixie (eBPF) : (Optionnel, puissant) Utilise eBPF (au niveau Kernel Linux) pour tracer toutes les communications (Réseau, HTTP) entre les Pods, sans avoir besoin d'installer un agent APM dans chaque application (Auto-instrumentation).
Ce qui est monitoré
Permet de voir la performance au niveau de : NĆuds, Pods, Conteneurs, Deployments, Services, et Namespace.
RUM répond à la question : "Comment mes utilisateurs réels (Real Users) perçoivent-ils la performance (cÎté client) ?"
Fonctionnement (Agent Browser)
L'agent APM (back-end) injecte automatiquement un snippet JavaScript dans le <head> des pages HTML.
Ce JS s'exécute dans le navigateur du client et collecte des métriques (LCP, INP, Erreurs JS) puis les envoie aux Collectors New Relic.
Métriques Clés (Front-End)
- Core Web Vitals : (Voir 4.2) LCP, INP, CLS.
- Temps de chargement de page (Page Load Time) : Décomposé (Network, DOM Processing, Page Rendering).
- Erreurs JavaScript (JS Errors) : Agrégation des erreurs (ex:
TypeError: 'null' is not an object) avec stack trace. - RequĂȘtes AJAX : Suivi des appels
fetch()(Temps de réponse, Erreurs). - Session Traces : (Détaillé) Capture (échantillonnée) de la chronologie complÚte (waterfall) du chargement d'une page pour un utilisateur lent.
ProblÚme : L'APM et le RUM sont réactifs (ils attendent un utilisateur pour détecter une panne). Que se passe-t-il si votre site tombe à 3h du matin (zéro trafic) ?
Solution : Synthetics. C'est un monitoring proactif (robotisé). New Relic utilise des "minions" (robots) depuis des localisations mondiales (ex: Dublin, Tokyo, Ohio) pour tester votre site 24/7.
Checks Simples (Uptime)
- Ping : Un ICMP (vérifie si l'hÎte est UP).
- Simple Browser : (Le plus courant) Charge l'URL dans un Chrome "headless". Vérifie que le HTTP 200 OK est reçu et que le temps de chargement est acceptable.
- API Test : Fait un appel
GET/POSTà une API et vérifie la réponse JSON.
Checks Scriptés (Parcours Utilisateur)
Utilise un framework (basé sur Selenium) pour simuler un parcours utilisateur complet.
(Exemple de script) 1. Aller sur /login 2. Entrer "user@test.com" 3. Entrer "password" 4. Cliquer sur "Connexion" 5. Vérifier que le texte "Tableau de bord" est présent 6. Cliquer sur "Ajouter au Panier" 7. Vérifier que le panier contient "1" (Si l'étape 5 échoue -> Alerte !)
Permet de tester le bon fonctionnement des tunnels de conversion critiques.
C'est la solution de Log Aggregation (type ELK/Splunk) de New Relic.
Ingestion (Forwarding)
New Relic peut recevoir des logs de plusieurs façons :
- Agent Infrastructure : L'agent (via config YAML) "tail" (suit) les fichiers (ex:
/var/log/nginx/access.log) et envoie les nouvelles lignes. - Plugins (Fluentd, Logstash) : Vous pouvez configurer vos pipelines de logs existants pour "forwarder" les logs vers l'API d'ingestion New Relic.
- API : Envoyer des logs directement via l'API HTTP.
Logs in Context (La "Magie")
C'est la fonctionnalité la plus puissante. L'agent APM (ex: PHP) enrichit automatiquement les logs (ex: Monolog) en y injectant l'ID de la Trace et du Span actuels.
Log (Standard) : [2025-11-08] ERROR: Failed to process payment. Log (Enrichi par New Relic) : [2025-11-08] ERROR: Failed to process payment. (TraceID: abc-123, SpanID: def-456)
Résultat : Lorsque vous regardez une Trace APM lente (abc-123), l'interface vous montre automatiquement tous les logs (ERROR, INFO...) qui ont été générés pendant cette transaction spécifique.
NRDB est le "cerveau" de New Relic. C'est une base de donnĂ©es Time-Series (TSDB) massivement parallĂšle, conçue pour ingĂ©rer et requĂȘter des pĂ©taoctets de donnĂ©es de tĂ©lĂ©mĂ©trie en temps rĂ©el.
Toutes les données (APM, Infra, RUM, Logs, Synthetics) sont stockées ici.
Types de Données (Data Types)
NRDB stocke 3 types de données (MELT) :
| Type | Nom (NRDB) | Description | Exemple (Table NRDB) |
|---|---|---|---|
| Metrics | (Metrics) | Données numériques agrégées (ex: CPU moyen sur 1 min). | Metric |
| Events | Event | Un événement ponctuel avec des attributs (ex: un chargement de page). | Transaction, Page View, SyntheticCheck |
| Logs | Log | Une ligne de log textuelle. | Log |
| Traces | (Events) | Les Traces sont stockées sous forme d'Events (Spans). | Span |
C'est sur ces "Tables" (ex: Transaction) que l'on exĂ©cute les requĂȘtes NRQL.
NRQL (prononcé "Nerkel") est le langage (similaire à SQL) utilisé pour interroger la base de données NRDB. C'est l'outil fondamental de l'Observabilité (exploration).
RequĂȘtes Simples (AgrĂ©gations)
-- Syntaxe: SELECT fonction(attribut) FROM Table WHERE ... SINCE ... -- Taux d'erreur des transactions (APM) SELECT percentage(count(*), WHERE error IS true) FROM Transaction SINCE 1 day ago -- 95e percentile du temps de chargement (RUM) SELECT percentile(duration, 95) FROM PageView WHERE appName = 'MonApp-Production' -- Compter les erreurs 500 par URL (APM) SELECT count(*) FROM Transaction WHERE http.responseCode = '503' FACET name -- (FACET = GROUP BY)
Graphiques (TIMESERIES)
L'opérateur TIMESERIES est utilisé pour générer des graphiques (ex: pour les Dashboards).
-- Graphique du temps de réponse moyen -- (par minute) des 6 derniÚres heures SELECT average(duration) FROM Transaction SINCE 6 hours ago TIMESERIES 1 minute -- Graphique du CPU (Infra) SELECT average(cpuPercent) FROM SystemSample TIMESERIES AUTO -- Graphique du LCP (RUM) SELECT percentile(largestContentfulPaint, 90) FROM PageViewTiming TIMESERIES
Group By (FACET)
FACET est l'Ă©quivalent de GROUP BY en SQL. Il est extrĂȘmement puissant pour segmenter les donnĂ©es.
-- Top 10 des pays avec des erreurs JS (RUM)
SELECT count(*)
FROM JavaScriptError
FACET countryCode
LIMIT 10
-- Taux d'erreur (APM) par NĆud Kubernetes
SELECT percentage(count(*), WHERE error IS true)
FROM Transaction
FACET kubernetes.podName
-- Funnel (Tunnel de conversion)
SELECT funnel(
session,
WHERE name = 'Page A' as 'A',
WHERE name = 'Page B' as 'B',
WHERE name = 'Page C' as 'C'
)
FROM PageView
SINCE 1 day agoLes Dashboards (Tableaux de bord) sont la composante Monitoring (les "Inconnus Connus") de New Relic. (Similaire Ă Grafana).
Un dashboard est une grille de "Widgets" (graphiques), oĂč chaque widget est alimentĂ© par une requĂȘte NRQL.
Types de Widgets
- Line Chart (Graphique linéaire) : (Utilise
TIMESERIES) ex: CPU au fil du temps. - Area Chart (Graphique en aires) : (Utilise
TIMESERIES) - Bar Chart (Barres) / Pie Chart (Camembert) : (Utilise
FACET) ex: Répartition des erreurs par type. - Billboard (Panneau) : Affiche un seul chiffre (ex: Taux d'erreur actuel).
- Table : (Utilise
FACET) ex: Top 10 des requĂȘtes les plus lentes.
Le systĂšme d'alertes de New Relic (Alerts & AI) est la composante "proactive".
Conditions (Ce qui déclenche)
Une "Condition" définit le seuil de déclenchement.
- Statique : Seuil fixe (ex:
CPU Percent > 90%pendant5 minutes). - Baseline (Dynamique) : Seuil basé sur la "norme" (ex:
CPU Percentest3 dĂ©viations standardau-dessus de la baseline). - NRQL (Le plus puissant) : L'alerte est basĂ©e sur le rĂ©sultat d'une requĂȘte NRQL.
- Ex:
SELECT count(*) FROM Log WHERE level = 'ERROR'-> Alerte si le résultat est> 50en10 minutes.
- Ex:
Workflows & Destinations (Qui reçoit)
Workflows : Le "routeur" d'alertes. (ex: Si (Alerte P1 ET Heure = Nuit) -> Envoyer Ă PagerDuty. Si (Alerte P3) -> Envoyer Ă Slack).
Destinations : Les "endpoints" de notification :
- Slack
- PagerDuty (Outil d'astreinte)
- JIRA (Créer un ticket)
- Webhook (API générique)
Le SLM (gestion du niveau de service) est une fonctionnalité (basée sur NRQL) pour suivre la fiabilité de vos services par rapport à des objectifs business.
| Terme | Description | Exemple |
|---|---|---|
| SLI (Service Level Indicator) | La MĂ©trique. (Ce que l'on mesure). | "Le % de requĂȘtes /login plus rapides que 500ms." |
| SLO (Service Level Objective) | L'Objectif (Cible interne). | "Le SLI doit ĂȘtre de 99.9% sur 30 jours." (Les "3 Nines") |
| SLA (Service Level Agreement) | Le Contrat (Business). | "Si le SLO n'est pas tenu, nous remboursons 10% au client." |
| Error Budget (Budget d'erreur) | L'inverse du SLO (100% - 99.9% = 0.1%). | "Nous avons le 'droit' d'avoir 0.1% de requĂȘtes /login lentes ce mois-ci." (Permet d'arbitrer entre fiabilitĂ© et innovation). |
New Relic et Datadog sont les deux leaders incontestés de l'Observabilité (SaaS). Ils sont devenus trÚs similaires ("convergence").
| CritĂšre | New Relic | Datadog |
|---|---|---|
| Point Fort (Historique) | APM (Application Monitoring). (Apdex, Tracing). | Infrastructure & Logs. (Intégrations, Dashboards). |
| Logs | TrÚs bon (Log Management, Logs in Context). | Considéré comme leader (Log Pipelines, Analyse L7). |
| Infrastructure | TrÚs bon (Agent Infra, K8s, Cloud). | Considéré comme leader (Intégrations, Network Monitoring). |
| APM | Leader (Tracing, JVM/CLR, Apdex). | TrÚs bon (Tracing, mais souvent jugé moins "profond" que NR). |
| Langage (Query) | NRQL (SQL-like). | (Langage de recherche propriétaire). |
| Tarification | ModÚle "Per-User" + Ingestion Go (souvent jugé plus simple/prévisible). | ModÚle "Per-Host" / "Per-Metric" / "Per-Log" (trÚs granulaire, mais complexe). |
