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. Pour obtenir des exemples, consultez Exemples de règles pour les API Exemples de langage de requête Monitoring.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 :
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.
Filtrage
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 immédiatement.
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) :
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 en savoir plus, consultez la section À propos des métriques de valeur 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 :
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.
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 :
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 :
Pour en savoir plus sur le fonctionnement des fonctions d'alignement, consultez la section 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 :
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 l'ensemble illustré ici. 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][kinds-types-conversion].
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) :
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 :
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 |
En utilisant les données alignées du tableau précédent, choisissez un réducteur et appliquez-le aux valeurs. 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 :
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. Le regroupement génère une série temporelle pour chaque groupe.
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 :
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
Cloud Monitoring effectue deux étapes d'agrégation.
L'agrégation primaire régularise les données mesurées, puis combine les séries temporelles régularisées à l'aide d'un réducteur. Lorsque vous utilisez le regroupement, la réduction effectuée lors de cette étape peut produire plusieurs séries temporelles.
Agrégation secondaire, qui s'applique aux résultats de principale d'agrégation, vous permet de combiner les séries temporelles en utilisant un deuxième réducteur.
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 :
Genres, types et conversions
Pour rappel, les points de données d'une série temporelle sont caractérisés par une métrique "kind" et un type de valeur ; voir Types de valeurs et genres de métriques pour une pour examen. 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, 9] 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, 9] 0,05 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. L'exemple suivant montre l'entrée pour ALIGN_DELTA
: