Vous pouvez utiliser la fonction de fenêtres coulissantes pour créer des graphiques à l'aide de la clause SLIDE BY
en conjonction avec la clause TIMESERIES
, qui vous permet de collecter des données dans des « fenêtres » temporelles qui se chevauchent.
Conseil
Vous pouvez également utiliser des fenêtres coulissantes via l'interface utilisateur dans les paramètres de signal avancés.
Par exemple, dans l’image ci-dessous, une requête collecte des données avec des fenêtres de 5 minutes. Les fenêtres « glissent » d’une minute. Chaque fenêtre chevauche la fenêtre précédente de 4 minutes.

Fenêtres de 5 minutes avec un « diaporama » de 1 minute
Contrairement aux fenêtres coulissantes, les fenêtres « basculantes » ou « en cascade » ne se chevauchent pas. Par exemple, dans cette requête NRQL TIMESERIES 3 minutes
, les fenêtres ont une durée de 3 minutes, chacune commençant lorsque l'autre se termine sans chevauchement dans l'intervalle de mesure.

Fenêtres de 3 minutes sans chevauchement ni « glissement ».
Quand utiliser des fenêtres coulissantes
Les fenêtres coulissantes sont utiles lorsque vous avez besoin de lisser des graphiques « en pointe ». Vous pouvez utiliser des fenêtres coulissantes pour lisser les graphiques linéaires qui présentent de nombreuses variations sur de courtes périodes. Ceci est particulièrement utile dans les cas où l'agrégat mobile (par exemple une moyenne mobile) est plus important que les agrégats provenant de fenêtres temporelles étroites.
Dans l'exemple ci-dessous, les données varient considérablement d'une minute à l'autre, de sorte que le graphique à fenêtre mobile d'une minute montre de nombreux pics élevés et de faibles vallées.

Requête TIMESERIES sans clause SLIDE BY
Cependant, dans cet exemple, des fenêtres TIMESERIES
de 5 minutes de large sont lissées à l'aide d'intervalles SLIDE BY
de 1 minute. La requête renvoie des données similaires mais crée un graphique beaucoup plus fluide.

Requête TIMESERIES avec clause SLIDE BY
Tarifs
Lorsque vous convertissez une requête avec la fonction de fenêtre coulissante en alerte, vous pouvez encourir des frais CCU supplémentaires si vous utilisez les plans tarifaires Advanced et Core. Bien que cette méthode améliore l'analyse des données en atténuant les fluctuations, son utilisation peut entraîner une augmentation des coûts par rapport à d'autres méthodes, car les événements qui existent dans les fenêtres de requêtes qui se chevauchent sont comptés plusieurs fois, une fois pour chaque fenêtre dans laquelle ils apparaissent. En d'autres termes, le même événement peut être interrogé plusieurs fois en raison du chevauchement dans les différentes fenêtres qui incluent ce même événement.
Par exemple, s'il y a un événement dans une fenêtre de série temporelle de 10 minutes et que l'intervalle de défilement est de 2 minutes, l'événement sera interrogé dans 5 fenêtres qui se chevauchent. La répétition de l'événement correspondant est calculée en divisant la durée de la fenêtre de la série chronologique par l'intervalle de défilement.

Pour déterminer si vous utilisez les plans tarifaires Advanced ou Core Compute, reportez-vous à votre commande.
SLIDE BY
La syntaxe NRQL valide pour la clause SLIDE BY
suit le format ci-dessous.
SELECT ... TIMESERIES integer1 units SLIDE BY integer2 units
integer1
spécifie la largeur de la fenêtre glissante et integer2
spécifie l'intervalle SLIDE BY
. units
est une unité de temps, telle que second
, minute
, hour
ou day
. Toutes les unités de temps NRQL standard sont acceptées.
Voici un exemple réel montrant des fenêtres TIMESERIES
de 5 minutes avec un intervalle SLIDE BY
de 1 minute.
SELECT average(duration) from Transaction TIMESERIES 5 minutes SLIDE BY 1 minute
Conseil
Associé à SLIDE BY
, TIMESERIES
ne prend pas en charge AUTO
ou MAX
. La valeur TIMESERIES
doit être une valeur d'unité de temps entière. En d'autres termes, SLIDE BY AUTO
ou SLIDE BY MAX
fonctionneront, mais TIMESERIES AUTO
ou TIMESERIES MAX
suivi de SLIDE BY
et MAX
, AUTO
ou une unité de temps entière spécifique n'est pas pris en charge.
Traduction à partir d'une requête de style PromQL
Le cas échéant, une requête de style PromQL est traduite en une requête à fenêtre glissante NRQL. Par exemple, si votre requête de style PromQL utilise rate(request_count[5m])
pour les 60 dernières minutes avec un chevauchement de fenêtre d'une minute, voici comment cette requête se traduirait en NRQL.
SELECT rate(sum(request_count), 1 SECONDS) FROM Metric SINCE 3600 SECONDS AGO UNTIL NOW FACET dimensions() LIMIT 100 TIMESERIES 300000 SLIDE BY 60000
Dans la sortie de traduction, l'unité par défaut de milliseconde est utilisée pour les clauses TIMESERIES
et SLIDE BY
. Pour TIMESERIES
, 300 000 ms correspond à 300 secondes, ou 5 minutes, spécifiant une taille de fenêtre de 5 minutes. Pour SLIDE BY
, 60 000 ms correspond à 60 secondes, spécifiant un intervalle de diapositive de 1 minute.
Utilisez SLIDE BY
avec MAX
et AUTO
Vous pouvez combiner SLIDE BY
avec les arguments MAX
et AUTO
pour personnaliser davantage les résultats de la requête, comme indiqué dans les exemples ci-dessous.
SELECT average(duration) FROM Transaction TIMESERIES 5 minutes SLIDE BY MAX
SELECT average(duration) FROM Transaction TIMESERIES 5 minutes SLIDE BY AUTO
Conseil
La valeur SLIDE BY
déterminée par AUTO
ou MAX
peut produire un intervalle d'étape supérieur à la taille de la fenêtre, ce qui se traduira par des écarts et des résultats inattendus. Si vous rencontrez ces problèmes avec les résultats de la requête, pensez à vérifier par exemple SLIDE BY
où l'intervalle d'étape dépasse la taille de la fenêtre.