• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Tutoriel d'introduction NRQL : votre première requête

Après avoir appris les bases de NRQL dans nos autres sujets, tels que ce qu'est NRQL , comment fonctionne NRQL et comment NRQL se rapporte aux graphiques et aux tableaux de bord, vous êtes prêt à essayer les exemples de ce didacticiel ! Le didacticiel couvre certains concepts fondamentaux du langage pour vous aider à créer des requêtes NRQL de base à l'aide de vos données, notamment comment :

  • Utilisez SELECT et FROM
  • Utiliser LIMIT
  • Spécifier l'attribut
  • Agrégation utilisant average(), max(), min(), sum() et count()
  • Utilisez SINCE et UNTIL
  • Tracer des graphiques linéaires avec TIMESERIES
  • Filtrer en utilisant WHERE
  • Attribut de groupe utilisant FACET

Prérequis

Vous n'avez besoin que de quelques données entrant dans la plateforme New Relic pour suivre ce tutoriel. Si vous êtes nouveau sur New Relic et que vous souhaitez voir à quel point vous pouvez facilement utiliser NRQL, vous pouvez démarrer gratuitement avec la plateforme et suivre le didacticiel. Tout ce que vous avez à faire est :

  1. Créez un compte gratuit si vous ne l'avez pas déjà fait.
  2. Utilisez nos agents et notre intégration pour collecter automatiquement des données à partir de n'importe quel framework et outils courants.
  3. Consultez le guide de lancement rapide pour connaître le chemin recommandé sur la configuration de New Relic. Vous pouvez commencer à ingérer des données dans la requête, puis vous êtes prêt à utiliser ce didacticiel ou l'un des autres didacticiels de cette série.

Prêt à commencer ? Allons-y!

1. Créez votre première requête

Le meilleur endroit pour commencer dans le générateur de requêtes est de regarder un seul type d'événement dans NRDB appelé Transaction, collecté par New Relic APM. Chaque requête NRQL doit avoir des clauses SELECT et FROM : vous devez SELECT certaines données et nous dire où elles se trouvent FROM. Commencez par cette requête de base qui sélectionne tout à partir du type d’événement Transaction :

SELECT *
FROM Transaction
A screenshot of a query with Select and From

Cela renvoie de nombreux résultats, chacun avec un horodatage et une collection d'attributs. Pour l'instant, vous ne souhaitez qu'un seul résultat, vous pouvez donc limiter les résultats à un seul enregistrement en utilisant LIMIT 1.

SELECT *
FROM Transaction
LIMIT 1
A screenshot of a query with Select, From, and Limit

Important

Lorsqu'un LIMIT n'est pas fourni, la requête renvoie la valeur par défaut de 100 lignes de table pour la requête SELECT * ou 10 valeurs agrégées pour la requête FACET et la requête SELECT (attributes) . Vous pouvez spécifier n'importe quelle limite jusqu'au maximum en utilisant LIMIT MAX.

Vous disposez désormais d’un moyen de contrôler le volume des résultats. Mais que faire si vous ne voulez pas tous les attributs ? Que faire si vous souhaitez voir uniquement des points de données spécifiques ? Comme SQL, vous pouvez le faire avec seulement quelques caractères en remplaçant * par le nom du ou des attributs souhaités. Dans ce cas, vous pouvez demander le nom d'une transaction et la durée qu'elle a pris.

SELECT name, duration
FROM Transaction

Avec cela, vous avez écrit une requête qui peut renvoyer tout ou partie des attributs spécifiques d'un événement, ainsi qu'interroger un nombre spécifique d'événements. Il est temps de passer à l’étape suivante : l’agrégation des données.

A screenshot of a query with Select and From using Duration

2. Données agrégées

Parfois, vous souhaiterez peut-être afficher des données agrégées résumées sur plusieurs événements au lieu d'afficher des points de données individuels. C'est là que NRDB brille. NRDB peut analyser des milliards d'événements et fournir des réponses instantanées et en temps réel aux questions sur vos données. Par exemple, chaque événement Transaction possède un attribut de durée qui représente le nombre de secondes nécessaires à l’exécution de l’appel. Utilisez la requête suivante pour découvrir la durée moyenne de tous Transaction événements :

SELECT average(duration)
FROM Transaction
A screenshot of a query selecting the average duration from transaction

NRQL dispose de nombreuses fonctions intégrées que vous pouvez utiliser pour agréger les données d'événements. Les fonctions couramment utilisées incluent max(), min(),average(), median() et percentile(). Vous pouvez utiliser la requête suivante pour demander à NRDB la durée de la transaction la plus lente des 60 dernières minutes. Pour ce faire, demandez à NRDB le max(duration).

SELECT max(duration)
FROM Transaction
A screenshot of a query selecting the maximum duration from transaction

Vous savez maintenant combien de temps a duré l’expérience client la plus lente au cours des 60 dernières minutes. Ensuite, trouvez l'inverse et voyez combien de temps a duré l'expérience la plus rapide en demandant à NRDB le min(duration).

SELECT min(duration)
FROM Transaction
A screenshot of a query selecting the minimum duration from transaction

Comme vous pouvez le voir, max() et min() renvoient tous deux des points de données importants. Mais que faire si vous souhaitez effectuer des opérations arithmétiques sur les données ? Avec sum(), vous pouvez effectuer une addition de base sur un attribut numérique. Dans cette requête, utilisez un nouvel attribut appelé databaseCallCount. Cet attribut compte le nombre d'appels de base de données effectués par chaque transaction. En les ajoutant, vous pouvez obtenir le volume total des appels de base de données dans la fenêtre de temps par défaut de 60 minutes (ce sera 0 si vos applications ne communiquent pas avec une base de données).

SELECT sum(databaseCallCount)
FROM Transaction
A screenshot of a query selecting the sum of the databaseCallCount from transaction

Enfin, vous pouvez également compter tous les événements de transaction enregistrés avec count(*). En utilisant cette requête, vous pouvez compter tous les événements enregistrés pour toutes les applications rapportant à New Relic APM:

SELECT count(*)
FROM Transaction
A screenshot of a query selecting all recorded transactions

Vous pouvez désormais en savoir beaucoup sur vos données : vous pouvez mesurer les limites de vos performances, regrouper les données d'événements et même calculer des informations sur l'attribut que vous avez choisi. Vous avez choisi une durée et calculé les valeurs average, max et min , ajouté un attribut numérique et compté tous les événements sur une période donnée. La manipulation de données comme celle-ci vous aidera lorsque vous souhaiterez présenter des données dans des visualisations, ce qui vous aidera à repérer les problèmes de performances. Il est temps de passer à l’étape suivante : utiliser les plages horaires.

3. Utilisez des plages horaires

Chaque élément de données dans NRDB possède un timestamp et chaque requête fonctionne sur un sous-ensemble de données dans une plage de temps. Si vous ne fournissez pas de plage horaire dans votre requête NRQL, elle renverra les 60 dernières minutes par défaut, comme nous l'avons vu précédemment. Mais que faire si vous souhaitez voir des données provenant de différentes plages de temps ? Comment contrôlez-vous la fenêtre de données que vous voyez ? Vous pouvez le faire en utilisant les mots-clés SINCE et UNTIL pour fournir un début et une fin à la plage horaire de votre requête.

SELECT average(duration)
FROM Transaction
SINCE 1 day ago
A screenshot of a query selecting the average duration since 1 day ago

Vous pouvez également spécifier des plages de temps relatives au moment où vous effectuez la requête en utilisant des mots-clés tels que day, week, hour, minute ou leurs équivalents pluriels. Vous pouvez également utiliser des expressions logiques comme SINCE today ou SINCE this week.

SELECT average(duration)
FROM Transaction
SINCE this week
A screenshot of a query selecting the average duration since 1 week ago

Voici une autre requête qui démontre des plages de temps relatives. Notez que lorsque vous spécifiez une heure relative, vous devez inclure le mot-clé ago.

SELECT average(duration)
FROM Transaction
SINCE 1 week ago
UNTIL 2 days ago
A screenshot of a query selecting the average duration since 1 week ago until 2 days ago

Vous avez désormais encore plus de contrôle sur vos données. En ajoutant une période à une requête, vous définissez exactement la fenêtre de données que vous souhaitez voir. Ces contrôles vous permettent de vous concentrer sur les données souhaitées en définissant où le rapport des données commence et se termine. Vous avez également choisi la fenêtre et utilisé des termes courants tels que week, day, hour, minute et leurs pluriels. Il est temps de passer à l’étape suivante : interroger une série chronologique.

4. requête de séries chronologiques

Un cas d’utilisation courant de NRQL consiste à interroger la manière dont les valeurs évoluent au fil du temps. Ce type de requête fournit des données pour les graphiques linéaires, les graphiques en aires et d'autres visualisations. Vous avez déjà exécuté certaines requêtes pour explorer les fonctions d'agrégation average(), max(), min(), sum() et count(). Maintenant, utilisez cet exemple pour voir comment prendre n’importe quelle requête effectuée avec des fonctions d’agrégation et ajouter le mot-clé TIMESERIES pour tracer les valeurs au fil du temps.

SELECT average(duration)
FROM Transaction
SINCE 1 day ago
TIMESERIES
A screenshot of a query that selects the average duration since 1 day ago with a time series

Une requête de série chronologique divise les données en un certain nombre de régions appelées compartiments sur la période spécifiée. Vous pouvez demander à NRDB de choisir une valeur pour la largeur de ce bucket ou de choisir la vôtre. Utilisez cette requête pour demander à NRDB d'afficher la durée moyenne des transactions d'application avec les données renvoyées organisées en tranches d'une heure.

SELECT average(duration)
FROM Transaction
SINCE 1 day ago
TIMESERIES 1 hour
A screenshot of a query selecting the average duration since 1 day ago using 1 hour buckets

Notez que cela peut renvoyer un graphique plus plat, puisque nous n'avons que 24 points de données sur la période d'un jour tracée. Mais que faire si vous souhaitez voir la granularité maximale possible ? Toute requête de série chronologique peut contenir jusqu'à 366 groupes de données, ce qui signifie que la granularité maximale possible pour 24 heures consiste à regrouper nos données dans des fenêtres de 4 minutes. interrogez ceci en utilisant TIMESERIES 4 minutes ou TIMESERIES MAX:

SELECT average(duration)
FROM Transaction
SINCE 1 day ago
TIMESERIES MAX
A screenshot of a query selecting the average duration since 1 ago using the maximum number of buckets

Vous avez désormais atteint de nouveaux niveaux de visualisation des données, passant des chiffres résumés aux graphiques linéaires des tendances des données au fil du temps. Comme vous pouvez le voir, l’utilisation de TIMESERIES offre un contrôle total sur les visualisations, la granularité et la moyenne des données sur des fenêtres spécifiées. Il est temps de passer à l’étape suivante : utiliser la clause WHERE .

5. Utilisez la clause WHERE

Parfois, vous souhaiterez peut-être que votre requête fonctionne sur un sous-ensemble spécifique de données NRDB. Par exemple, lorsque vous interrogez le temps de réponse moyen de votre application, vous pouvez utiliser un attribut appelé transactionType, qui spécifie si la transaction était une transaction Web ou Non-Web (comme une tâche cron ou une tâche en file d'attente). Utilisez cet exemple pour créer une requête qui renvoie uniquement des données pour le type de transaction Web :

SELECT average(duration)
FROM Transaction
WHERE transactionType='Web'
TIMESERIES
A screenshot of a query selecting the average duration for Web transaction types with a time series

Vous pouvez également combiner AND et OR pour créer une requête plus complexe, en utilisant les parenthèses ( et ) pour contrôler la manière dont elles fonctionnent ensemble. Cette requête affiche les temps de réponse moyens des « transactions Web » qui étaient à la fois plus rapides que 100 ms et avaient un code de réponse de 200 ou 302. Notez l’utilisation de parenthèses pour contrôler le OR.

SELECT average(duration)
FROM Transaction
WHERE transactionType='Web'
AND duration < 0.1
AND (httpResponseCode=200
OR httpResponseCode=302)
TIMESERIES
A screenshot of a query selecting the average duration for Web transaction types with a duration of less than 0.1 seconds with the response codes 200 or 302 with a time series

Jusqu'à présent, chaque requête que vous avez effectuée a effectué des actions sur toutes les données disponibles dans la fenêtre de temps donnée. Mais il est également important de filtrer les données indésirables. Les exemples ci-dessus sont utiles pour filtrer un type de transaction ou lorsqu'un code de réponse spécifique se produit. De même, vous pouvez filtrer sur un appName spécifique, une transaction name ou même un attribut personnalisé que vous avez marqué sur vos données. Il est temps de passer à l’étape finale du tutoriel : utiliser la requête à facettes.

6. Facettez votre requête

Souvent, vous souhaiterez déterminer les « N meilleures valeurs » regroupées par un attribut spécifique. Dans NRQL, vous faites cela en utilisant FACET. Par exemple, vous pouvez interroger les appels Transaction les plus lents observés en moyenne, regroupés par nom. Considérez cela comme « à facettes par nom ».

SELECT average(duration)
FROM Transaction
FACET name
SINCE 1 day ago
A screenshot of a query that selects the average duration since 1 day ago faceted by name

Par défaut, une requête à facettes renvoie les 10 premiers résultats, mais vous pouvez personnaliser le nombre de résultats renvoyés en plaçant un LIMIT. Dans cet exemple, utilisez TIMESERIES pour récupérer les 5 premiers résultats affichés sur un graphique linéaire.

SELECT average(duration)
FROM Transaction
FACET name
SINCE 3 hours ago
LIMIT 5
TIMESERIES
A screenshot of a query selecting the average duration from the top 4 results since 3 hours ago grouped by name with a time series

Mais peut-être que vous ne voulez pas de graphique linéaire ou que vous souhaitez une liste de transactions plus longue. En supprimant TIMESERIES, vous pouvez afficher un graphique à barres ou à secteurs et vous pouvez augmenter la portée de la liste en augmentant LIMIT.

SELECT average(duration)
FROM Transaction
FACET name
SINCE 3 hours ago
LIMIT 20
A screenshot of a query selecting the average duration from the top 20 results since 3 hours ago grouped by name without a time series

Enfin, voici une requête légèrement plus complexe qui compare la quantité de transactions Web, réparties par applications individuelles qui rendent compte à New Relic :

SELECT count(*)
FROM Transaction
WHERE transactionType='Web'
FACET appName
LIMIT 5
SINCE 6 hours ago
TIMESERIES
A screenshot of a query selecting all web transactions from the top 5 results since 6 hours ago grouped by appName with a time series

Le regroupement ou le « facettage » vous permet d'obtenir une dimension avec vos données. Lors de l'application d'une fonction d'agrégation, vous pouvez utiliser FACET pour regrouper par n'importe quel attribut, par défaut ou personnalisé, qui signale des données d'événement (tout comme la clause WHERE ). Nous vous recommandons d'ajouter un attribut personnalisé à vos données ou de signaler un nouvel événement personnalisé pour vous permettre d'étudier plus directement l'ensemble de données résultant.

Félicitations : vous avez terminé le premier tutoriel NRQL ! Si vous êtes arrivé jusqu'ici, vous connaissez maintenant les bases de l'interrogation des données d'événements à l'aide de NRQL.

Quelle est la prochaine étape ?

Nous avons encore plus de NRQL à vous proposer d'explorer avec trois autres tutoriels qui couvrent des concepts et des cas d'utilisation plus avancés ! Nous vous recommandons de suivre d'abord le tutoriel sur le traitement de vos données , puis de passer au tutoriel sur l'avancement de votre dashboard, et enfin de terminer la série avec notre tutoriel sur les fonctions NRQL les plus avancées.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.