En utilisant NRQL, vous pouvez diviser vos résultats de requête en compartiments qui couvrent certaines plages à l'aide de la fonctionbuckets
.
Vous pouvez utiliser la fonction FACET buckets()
pour regrouper et catégoriser des données dans des compartiments en fonction de plages spécifiées, par exemple pour créer des histogrammes ou des distributions de fréquences. Utilisez-le en combinaison avec des fonctions d'agrégation telles que count()
ou sum()
pour analyser la distribution des données sur différentes plages.
Voici quelques cas d’utilisation :
- Analyse des temps de réponse: vous pouvez utiliser
FACET buckets()
pour regrouper les temps de réponse en plages (par exemple, 0 à 100 ms, 100 à 200 ms, 200 à 300 ms) et calculer le nombre ou le temps de réponse moyen dans chaque plage. Cela vous permet de comprendre la distribution des temps de réponse et d'identifier les problèmes de performances. - Examen des tailles de requête: en utilisant
FACET buckets()
sur les tailles de requête, vous pouvez classer la taille des requests dans différents compartiments (par exemple, 0-1 Ko, 1-5 Ko, 5-10 Ko) et analyser la fréquence des requests appartenant à chaque compartiment. Cela peut vous aider à identifier les modèles et à optimiser l’allocation des ressources. - Monitoring du taux d'erreur: Vous pouvez utiliser
FACET buckets()
sur les codes d'erreur ou le taux d'erreur pour les regrouper dans des plages spécifiques. Par exemple, vous pouvez créer des buckets pour différents codes d'erreur HTTP (comme 400, 500 et autres) ou plages de taux d'erreur (par exemple, 0 à 1 % ou 1 à 5 %). Cela vous permet de suivre la distribution de vos erreurs et d’identifier les domaines nécessitant une attention particulière. - Suivi de l'engagement des utilisateurs: si vous disposez d'une mesure liée à l'engagement des utilisateurs, telle que la durée des sessions ou les pages vues, vous pouvez utiliser
FACET buckets()
pour les regrouper en intervalles de temps. Cela vous permet d'analyser la manière dont les utilisateurs interagissent avec votre application ou votre site Web sur différentes plages horaires.
Créer une requête NRQL groupée
Pour renvoyer des résultats groupés, utilisez la clause FACET buckets()
dans une requête NRQL. Une requête groupée a la structure suivante :
SELECT FUNCTION(ATTRIBUTE) FROM DATA_TYPE FACET buckets(ATTRIBUTE, CEILING_VALUE, NUMBER_OF_BUCKETS)
Vous pouvez utiliser une requête NRQL groupée avec n'importe quel attribut stocké sous forme de valeur numérique dans la base de données New Relic.
Exemple de requête de bucket
Pour construire une requête de bucket :
- Créez une instruction NRQL avec une instruction
SELECT
pour un attribut ; par exemple,SELECT average(duration)
. - Ajoutez une clause
FACET
qui facette surbuckets()
. Par exemplebuckets(duration, 40, 10)
. Vous pouvez également regrouper un attribut différent de celui de l'instructionSELECT
. Par exemple, pour afficher la durée moyenne des appels de base de données :buckets(databaseCallCount, 40, 10)
.
La requête suivante calcule la durée moyenne d'un chemin de page spécifique sur 10 compartiments, avec une limite supérieure de 40. Toutes les valeurs supérieures à notre limite supérieure de 40 sont regroupées dans le dernier compartiment, >=36.0
.
SELECT average(duration) FROM PageView WHERE pageUrl LIKE 'http://webportal.telco%' SINCE 1 week ago FACET buckets(duration, 40, 10)
Cette requête renvoie ces résultats :

Voici un exemple de requête NRQL avec des segments divisés en dix compartiments. Le panier inférieur comprend une valeur hors norme, vous devrez donc peut-être l'ajuster en conséquence.