Façonnez les opérations logicielles de demain et faites entendre votre voix en répondant à l'enquête 2021 sur l'état du DevOps.

Filtrage et agrégation : manipuler des séries temporelles

Cette page décrit les techniques utilisées pour manipuler les données de séries temporelles, en s'appuyant sur les concepts et l'analyse exposés à la page Métriques, séries temporelles et ressources.

Les données de séries temporelles brutes doivent être manipulées avant d'être analysées. L'analyse implique souvent de filtrer certaines données et de les agréger. Cette page décrit deux techniques principales pour affiner les données brutes :

  • Le filtrage, qui supprime certaines données à ne pas prendre en compte.
  • L'agrégation, qui combine plusieurs éléments de données en un ensemble plus petit le long des dimensions que vous spécifiez.

Le filtrage et l'agrégation sont des outils puissants qui aident à identifier des modèles intéressants, et à mettre en évidence les tendances ou les anomalies dans les données, entre autres.

Cette page décrit les concepts du filtrage et de l'agrégation, mais n'explique pas concrètement comment les appliquer. Pour appliquer un filtrage ou une agrégation à vos données de séries temporelles, utilisez l'API Cloud Monitoring ou les outils de création de graphiques et d'alertes de Google Cloud Console.

Données brutes de séries temporelles

La quantité de données brutes de métrique d'une série temporelle peut être considérable. Or, à un type de métrique donné sont généralement associées de nombreuses séries temporelles. Si vous voulez analyser un ensemble de données complet pour rechercher les similarités, les tendances ou les anomalies, vous devez procéder à un traitement sur les séries temporelles qu'il contient. Sans quoi il y aurait trop de données à prendre en compte.

Pour illustrer les notions de filtrage et d'agrégation, les exemples de cette page utilisent un petit nombre de séries temporelles fictives. Le graphique suivant, par exemple, montre l'évolution des données brutes de trois séries temporelles sur plusieurs heures :

Graphique illustrant trois séries temporelles brutes : rouge, bleu et vert.
Figure 1 : Trois séries temporelles brutes

Chaque série temporelle est représentée en rouge, bleu ou vert pour refléter la valeur d'un libellé color hypothétique. Il existe une série temporelle pour chaque valeur du libellé. Notez que les valeurs ne s'alignent pas parfaitement, car elles ont été enregistrées à des moments différents.

Filtrer

L'un des outils d'analyse les plus puissants est le filtrage, qui permet de masquer les données qui ne vous intéressent pas.

Vous pouvez filtrer les données de séries temporelles en fonction des éléments suivants :

  • Vous devez disposer de suffisamment de temps.
  • Valeur d'un ou plusieurs libellés

L'illustration suivante montre le résultat du filtrage pour n'afficher que les séries temporelles rouges de l'ensemble d'origine de la série temporelle brute (illustré dans la Figure 1) :

Graphique illustrant l'une des séries temporelles brutes : rouge.
Figure 2 : Après le filtrage, une série temporelle brute

Cette série temporelle, sélectionnée par filtrage, est utilisée dans la section suivante pour illustrer l'alignement.

Agrégation

Un autre moyen de réduire la quantité de données consiste à résumer ou agréger ces données. L'agrégation se décompose en deux étapes :

  • L'alignement, ou la régularisation des données dans une seule série temporelle
  • La réduction, ou la combinaison de plusieurs séries temporelles

Vous devez aligner les séries temporelles avant de pouvoir les réduire. Les sections suivantes décrivent l'alignement et la réduction à l'aide de séries temporelles qui stockent des valeurs entières. Ces concepts généraux s'appliquent également lorsqu'une série temporelle possède le type de valeur Distribution. Toutefois, ce cas présente certaines contraintes supplémentaires. Pour plus d'informations, consultez la section Représentation graphique des métriques de distribution.

Alignement : régularisation au sein de la série

La première étape de l'agrégation des données de séries temporelles est l'alignement. L'alignement crée une nouvelle série temporelle dans laquelle les données brutes ont été régularisées dans le temps afin d'être combinées avec d'autres séries temporelles alignées. L'alignement génère des séries temporelles avec des données régulièrement espacées.

L'alignement comprend deux étapes :

  1. Diviser la série temporelle en intervalles de temps réguliers, également appelés binning des données. L'intervalle est appelé période, période d'alignement ou intervalle d'alignement.

  2. Calculer une seule valeur pour les points de la période d'alignement. Vous choisissez le mode de calcul de ce point unique, en additionnant toutes les valeurs, en calculant la moyenne ou en utilisant la valeur maximale.

Étant donné que la nouvelle série temporelle créée par alignement représente toutes les valeurs de la série temporelle brute dans la période d'alignement avec une seule valeur, elle est également appelée réduction dans la série ou agrégation au sein de la série.

Régulariser les intervalles de temps

L'analyse des données de séries temporelles nécessite que les points de données soient disponibles sur des limites temporelles homogènes. L'alignement est le processus permettant d'atteindre cet objectif.

L'alignement crée une série temporelle avec un intervalle constant, dit période d'alignement, entre les points de données. L'alignement est généralement appliqué à plusieurs séries temporelles en vue d'une manipulation ultérieure.

Cette section illustre les étapes du processus d'alignement en les appliquant à une seule série temporelle. Dans cet exemple, on applique une période d'alignement d'une heure à la série temporelle d'exemple présentée en Figure 2. La série temporelle contient des données capturées sur une période de trois heures. En répartissant les points de données par périodes d'une heure, on obtient les points suivants pour chaque période :

Durée Valeurs
1:01–2:00 400, 350, 300, 200
2:01–3:00 200, 100
3:01–4:00 300, 250, 200

Choisir les périodes d'alignement

La durée de la période d'alignement dépend de deux facteurs :

  • La précision de ce que vous essayez de trouver dans les données.
  • La période d'échantillonnage des données c'est-à-dire la fréquence de signalement.

Ces facteurs sont expliqués plus en détail dans les sections suivantes.

Par ailleurs, Cloud Monitoring ne conserve les données de métriques que pendant une durée limitée. Cette durée varie en fonction du type de métrique. Pour en savoir plus, consultez la section Conservation des données. La période d'alignement ne doit pas excéder la durée de conservation des données.

Précision

Si vous savez qu'un événement s'est produit en quelques heures et que vous souhaitez approfondir la question, vous pouvez utiliser une période d'une heure ou de quelques minutes pour l'alignement.

Si vous souhaitez explorer les tendances sur des périodes plus longues, il peut être judicieux de choisir une période d'alignement plus longue. Les longues périodes d'alignement ne sont généralement pas adéquates pour examiner des anomalies transitoires. Par exemple, si vous utilisez une période d'alignement longue de plusieurs semaines, vous pourrez sans doute détecter si une anomalie est survenue au cours d'une période, mais les données alignées ne pourront probablement pas vous en apprendre davantage car elles manquent de précision.

Taux d'échantillonnage

La fréquence à laquelle les données sont écrites, soit le taux d'échantillonnage, peut également affecter le choix de la période d'alignement. Consultez la liste de métriques pour connaître les taux d'échantillonnage des métriques intégrées. Considérons la figure suivante, qui illustre une série temporelle avec un taux d'échantillonnage de 1 point par minute :

Graphique des données brutes avec une période d'échantillonnage d'une minute

Si la période d'alignement est identique à la période d'échantillonnage, il existe un point de données dans chaque période d'alignement. Cela signifie, par exemple, que l'application de l'un des aligneurs max, mean ou min engendre la même série temporelle alignée. L'illustration suivante montre ce résultat, ainsi que la série temporelle originale sous forme de ligne en fondu :

Graphique d'une série temporelle alignée dont la période correspondant à la période d'échantillonnage

Pour en savoir plus sur le fonctionnement des fonctions d'alignement, consultez la page Aligneurs.

Si la période d'alignement est définie sur deux minutes ou le double de la période d'échantillonnage, chaque période comporte deux points de données. Si les aligneurs max, mean ou min sont appliqués aux points de la période d'alignement de deux minutes, la série temporelle résultante diffère. L'illustration suivante montre ces résultats, ainsi que la série temporelle d'origine, sous forme de ligne en fondu :

Graphique d'une série temporelle alignée avec une période deux fois plus longue que la période d'échantillonnage

Lorsque vous choisissez une période d'alignement, faites en sorte qu'elle soit plus longue que la période d'échantillonnage, mais suffisamment courte pour indiquer des tendances pertinentes. Vous devrez peut-être effectuer des tests pour déterminer la période d'alignement adéquate. Par exemple, si les données sont collectées à raison d'un point par jour, une période d'alignement d'une heure est trop courte pour être utile, car la plupart du temps, il n'y aura pas de donnée à aligner.

Aligneurs

Une fois les données réparties par périodes d'alignement, vous devez sélectionner une fonction, appelée aligneur, à appliquer aux points de données de chaque période. L'aligneur génère une valeur unique et la positionne à la fin de chaque période d'alignement.

Les options d'alignement incluent sommer les valeurs, trouver la valeur maximale, minimale ou moyenne de ces valeurs, rechercher une valeur de centile choisie, compter les valeurs, etc. L'API Cloud Monitoring est compatible avec un grand nombre de fonctions d'alignement, bien plus que le jeu d'exemples présenté ci-dessous. Pour obtenir la liste complète, consultez la page Aligner. Pour obtenir une description des aligneurs "rate" (taux) et "delta", qui transforment les données de séries temporelles, consultez la section Genres, types et conversions.

Par exemple, en prenant les données segmentées de la série temporelle brute (illustrée à la figure 1), choisissez un aligneur et appliquez-le aux données de chaque bucket. Le tableau suivant présente les valeurs brutes et les résultats de trois aligneurs différents, max, mean et min :

Durée Valeurs Aligneur : max Aligneur : mean Aligneur : min
1:01–2:00 400, 350, 300, 200 400 312.5 200
2:01–3:00 200, 100 200 150 100
3:01–4:00 300, 250, 200 300 250 200

L'illustration suivante montre les résultats de l'application des aligneurs max, moyenne ou min à l'aide d'une période d'alignement d'une heure à la série temporelle rouge d'origine. (représenté par la ligne en fondu dans l'illustration) :

Graphique montrant la série temporelle rouge après avoir appliqué l'un des trois aligneurs différents
Figure 3 : série temporelle alignée sur trois points

Autres aligneurs

Le tableau suivant présente les mêmes valeurs brutes et les résultats de trois autres aligneurs :

  • Count compte le nombre de valeurs dans la période d'alignement.
  • Sum additionne toutes les valeurs de la période d'alignement.
  • La valeur Next older utilise la valeur d'alignement la plus récente de la période.
Durée Valeurs Aligneur : count Aligneur : sum Aligneur : next-older
1:01–2:00 400, 350, 300, 200 4 1250 200
2:01–3:00 200, 100 2 300 100
3:01–4:00 300, 250, 200 3 750 200

Nous n'avons pas préparé de graphique montrant ces résultats.

Réduction : combiner des séries temporelles

L'étape suivante du processus, la réduction, consiste à combiner plusieurs séries temporelles alignées en une nouvelle série temporelle. Toutes les valeurs se trouvant sur la graduation entre deux périodes d'alignement sont remplacées par une valeur unique. Comme elle opère sur des séries temporelles distinctes, la réduction est également appelée agrégation interséries.

Réducteurs

Un réducteur est une fonction appliquée aux valeurs d'un ensemble de séries temporelles et renvoyant une valeur unique.

Les options de réduction comprennent sommer les valeurs alignées ou trouver la valeur maximale, minimale ou moyenne des valeurs. L'API Cloud Monitoring est compatible avec un grand nombre de fonctions de réduction. Pour obtenir la liste complète, consultez la page Reducer. La liste des réducteurs reflète la liste des aligneurs.

Les séries temporelles doivent être alignées avant de pouvoir être réduites. L'illustration suivante montre les résultats de l'alignement sur les trois séries temporelles brutes (à partir de la Figure 1) en périodes d'une heure avec l'aligneur mean :

Graphique représentant trois séries temporelles alignées en moyenne.
Figure 4 : Trois séries temporelles, alignées en moyenne

Les valeurs des trois séries temporelles alignées sur la moyenne (illustrées à la Figure 4) sont présentées dans le tableau suivant :

Graduation après alignement Rouge Bleu Vert
2:00 312,5 133,3 400
3:00 150 283,3 433,3
4:00 250 300 350

On choisit ensuite un réducteur et on l'applique aux valeurs des données alignées du tableau ci-dessus. Le tableau suivant montre les résultats de l'application de différents réducteurs aux données alignées sur la moyenne :

Graduation après alignement Réducteur : max Réducteur : mean Réducteur : min Réducteur : sum
2:00 400 281,9 133,3 845,8
3:00 433,3 288.9 150 866,7
4:00 350 300 250 900

Par défaut, la réduction s'applique à toutes vos séries temporelles, ce qui donne lieu à une seule série temporelle. L'illustration suivante montre le résultat de l'agrégation des trois séries temporelles alignées sur la moyenne avec le réducteur maximum, qui donne les valeurs moyennes les plus élevées de toute la série temporelle :

Graphique illustrant le résultat de l'utilisation du réducteur maximal sur les séries temporelles alignées sur la moyenne
Figure 5 : Réduction maximale des trois séries temporelles alignées sur la moyenne

La réduction peut également être combinée avec le regroupement : les séries temporelles sont organisées en catégories, et le réducteur est appliqué à toutes les séries temporelles de chaque groupe.

Regroupement

Le regroupement vous permet d'appliquer un réducteur à des sous-ensembles de séries temporelles plutôt qu'à l'ensemble complet. Pour regrouper des séries temporelles, vous devez sélectionner un ou plusieurs libellés. Les séries temporelles sont alors regroupées en fonction des valeurs des libellés sélectionnés.

  • Vous obtenez une série temporelle pour chaque groupe.
  • Vous pouvez ensuite appliquer un réducteur différent aux séries temporelles par groupe. Il s'agit de la réduction secondaire, qui réduit toutes les séries temporelles regroupées en un seul résultat.

Si un type de métrique enregistre les valeurs des libellés zone et color, vous pouvez regrouper les séries temporelles selon l'un des libellés ou les deux. Lorsque vous appliquez le réducteur, chaque groupe est réduit à une seule série temporelle. Si vous regroupez par couleur, vous obtenez une série temporelle pour chaque couleur représentée dans les données. Si vous regroupez par zone, vous obtenez une série temporelle pour chaque zone qui apparaît dans les données. Si vous regroupez par les deux, vous obtenez une série temporelle pour chaque combinaison de couleurs et de zones.

Par exemple, supposons que vous ayez capturé de nombreuses séries temporelles avec les valeurs "rouge", "bleu" et "vert" pour le libellé color. Après avoir aligné toutes les séries temporelles, elles peuvent être regroupées par la valeur color, puis regroupées par groupe. Vous obtenez trois séries temporelles spécifiques à une couleur :

Graphique montrant les séries temporelles regroupées par couleur puis réduites
Figure 6 : Séries temporelles, regroupées par couleur et réduites

L'exemple ne spécifie pas l'aligneur ou le réducteur utilisés. Ici, le regroupement vous permet de réduire un grand nombre de séries temporelles en un ensemble plus petit, chaque série représentant un groupe partageant un attribut commun (dans cet exemple, la valeur de l'attribut color).

Agrégation secondaire

Lorsque vous utilisez le regroupement, la réduction peut produire plusieurs séries temporelles. L'agrégation secondaire vous permet de choisir un second réducteur à appliquer après le regroupement.

Le tableau suivant indique les valeurs des séries temporelles regroupées (illustrées à la figure 6) :

Graduation après alignement Groupe rouge Groupe bleu Groupe vert
2:00 400 150 450
3:00 200 350 450
4:00 300 300 400

Ces trois séries temporelles déjà réduites peuvent être réduite ultérieurement en appliquant l'agrégation secondaire. Le tableau suivant montre les résultats de l'application des réducteurs sélectionnés :

Graduation après alignement Réducteur : max Réducteur : mean Réducteur : min Réducteur : sum
2:00 450 333,3 150 1000
3:00 450 333,3 200 1000
4:00 400 333,3 300 1000

L'illustration suivante montre le résultat de l'agrégation des trois séries groupées avec le réducteur moyenne :

Graphique illustrant le résultat d'un réducteur moyenne dans des séries temporelles réduites par groupes.
Figure 7 : séries temporelles groupées, après agrégation secondaire moyenne

Genres, types et conversions

Rappelez-vous que les points de données d'une série temporelle sont caractérisés par un genre de métrique et un type de valeur. Pour en savoir plus, consultez la page Types de valeurs et genres de métriques. Les aligneurs et les réducteurs qui conviennent pour un ensemble de données peuvent ne pas convenir pour un autre. Par exemple, un aligneur ou un réducteur qui compte le nombre de valeurs fausses convient pour des données booléennes, mais pas pour des données numériques. Réciproquement, un aligneur ou un réducteur qui calcule la moyenne peut être appliqué à des données numériques, mais pas à des données booléennes.

Certains aligneurs et réducteurs peuvent également être utilisés pour modifier explicitement le genre de métrique ou le type de valeur des données dans une série temporelle. Certains, comme AlIGN_COUNT, effectuent cette opération comme effet secondaire.

  • Genre de métrique : une métrique cumulée est une métrique dans laquelle chaque valeur représente le total depuis le début de la collecte des valeurs. Vous ne pouvez pas utiliser les métriques cumulées directement dans les graphiques, mais vous pouvez utiliser des métriques delta, dans lesquelles chaque valeur représente la variation depuis la mesure précédente.

    Vous pouvez également convertir les métriques cumulées et delta en jauges. Prenons l'exemple d'une métrique delta dont la série temporelle est la suivante :

    (heure de début, heure de fin] (en minutes) valeur (en Mio)
    (0, 2] 8
    (2, 5] 6
    (6, 9] 9

    Supposons que vous ayez sélectionné l'aligneur ALIGN_DELTA et une période d'alignement de trois minutes. Étant donné que la période d'alignement ne correspond pas à (heure de début, heure de fin] pour chaque échantillon, une série temporelle est créée avec des valeurs interpolées. Dans notre exemple, la série temporelle interpolée est la suivante :

    (heure de début, heure de fin] (en minutes) valeur interpolée (en Mio)
    (0, 1] 4
    (1, 2] 4
    (2, 3] 2
    (3, 4] 2
    (4, 5] 2
    (5, 6] 0
    (6, 7] 3
    (7, 8] 3
    (8, 9] 3

    Ensuite, pour chaque période d'alignement de 3 minutes, on fait la somme des points de données. On génère ainsi les valeurs alignées :

    (heure de début, heure de fin] (en minutes) valeur alignée (en Mio)
    (0, 3] 10
    (3, 6] 4
    (6, 10] 9

    Si ALIGN_RATE est sélectionné, le processus est identique, sauf que les valeurs alignées sont divisées par la période d'alignement. Pour cet exemple, la période d'alignement est de trois minutes. La série temporelle alignée a donc les valeurs suivantes :

    (heure de début, heure de fin] (en minutes) valeur alignée (en Mio / seconde)
    (0, 3] 0,056
    (3, 6] 0,022
    (6, 10] 0,050

    Pour représenter graphiquement une métrique cumulative, elle doit être convertie en métrique delta ou en métrique de taux. Le processus des métriques cumulatives est semblable à celui décrit précédemment. Vous pouvez calculer une série temporelle delta à partir d'une série temporelle cumulative en calculant la différence de conditions adjacentes.

  • Type de valeur : certains aligneurs et réducteurs ne modifient pas le type de valeur des données d'entrée. Par exemple, les données entières sont toujours des données entières après l'alignement. D'autres aligneurs et réducteurs convertissent les données d'un type à un autre, ce qui signifie que les informations peuvent être analysées de manière inappropriée par rapport au type de valeur d'origine.

    Par exemple, le réducteur REDUCE_COUNT peut être appliqué aux données numériques et booléennes, aux chaînes de données et aux données de distribution, mais le résultat produit est un entier de 64 bits comptant le nombre de valeurs dans la période. REDUCE_COUNT ne peut être appliqué qu'à des métriques delta et des métriques de jauges, et le genre de métrique reste inchangé.

Les tableaux de référence pour Aligner et Reducer indiquent le type de données approprié pour chacun et la conversion obtenue. Par exemple, voici l'entrée correspondant à ALIGN_DELTA :

Entrée de référence pour l'aligneur delta