Rollup
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Rollup

.rollup()

Conseillé pour les utilisateurs experts uniquement.

Ajoutez la fonction .rollup() à la fin d’une requête pour effectuer une agrégation temporelle personnalisée. Cette fonction vous permet ainsi de définir :

La fonction accepte deux paramètres, <MÉTHODE> et <INTERVALLE> : .rollup(<MÉTHODE>,<INTERVALLE>).

ParamètreDescription
<MÉTHODE>Ce paramètre détermine la façon dont les points de données sont agrégés dans un intervalle de temps donné. Il peut être défini sur sum/min/max/count/avg.
<INTERVALLE>Intervalle (en secondes) entre deux points de données affichés.

Ces paramètres peuvent être utilisés séparément ou ensemble, par exemple .rollup(sum,120). Le graphique à barres suivant affiche l’évolution de la charge CPU sur une semaine pour un host sans utiliser la fonction .rollup() :

Le graphique à barres suivant affiche la même métrique, mais un cumul d’une journée est cette fois-ci appliqué avec .rollup(avg,86400) :

Intervalle de cumul : imposé ou personnalisé

Datadog impose une limite de 350 points de données par graphique créé. Afin de respecter cette limite, Datadog effectue automatiquement un cumul des points de données via la méthode avg de façon à afficher la moyenne de l’ensemble des points de données dans un intervalle de temps pour une métrique donnée.

Une fonction .rollup() personnalisée peut être utilisée pour obliger Datadog à appliquer un autre type d’agrégation temporelle (avg, min, max, count ou sum) et un autre intervalle de temps entre deux points de données. Toutefois, si la fonction .rollup() appliquée utilise un intervalle de temps inférieur à la limite de Datadog, la limite de Datadog est utilisée (la méthode de cumul spécifiée est toutefois appliquée). Par exemple, si vous demandez un intervalle de .rollup(20) pour un mois entier, les données sont renvoyées avec un cumul supérieur à 20 secondes pour éviter que le nombre de points de données soit supérieur à 350.

Remarque : lorsqu’une requête concerne des métriques de type COUNT ou RATE, le modificateur .as_count() est automatiquement ajouté à l’interface. La méthode de cumul est alors définie sur sum et l’interpolation est désactivée. Le modificateur .as_count() est affiché explicitement à la fin de la requête :

Pour en savoir plus sur l’utilisation des modificateurs .as_count() et .as_rate(), consultez cet article de blog (en anglais) ou lisez la documentation sur les modificateurs intégrés à l’application pour mieux comprendre les effets de ces fonctions.

Fonction rollup dans les monitors

L’utilisation d’une fonction rollup dans une requête de monitor est généralement à éviter en raison du risque de décalage entre l’intervalle de cumul et la fenêtre d’évaluation du monitor. Le début et la fin des intervalles de cumul sont alignés sur l’heure UNIX, et non sur le début et la fin des requêtes du monitor : les monitors sont par conséquent susceptibles d’évaluer un intervalle de cumul incomplet contenant uniquement un faible volume de données, et donc de se déclencher par erreur. Pour éviter ce problème, il est nécessaire de retarder l’évaluation du monitor pendant une durée correspondant à l’intervalle de cumul (au minimum).

Autres fonctions