Obtenir les données de SLO

Les données de SLO sont stockées dans des séries temporelles. Vous pouvez récupérer les séries temporelles d'un SLO en spécifiant un sélecteur de série temporelle dans le paramètre filter de la méthode timeSeries.list ou en utilisant le mode de filtrage direct dans l'explorateur de métriques.

Règles d'alerte basées sur un SLO

Si vous créez une règle d'alerte à l'aide de l'API Cloud Monitoring, vous spécifiez le filtre à l'aide d'un sélecteur de séries temporelles en tant que champ dans la condition de seuil de la règle. Pour en savoir plus sur la création de règles d'alerte basées sur le SLO à l'aide de l'API Monitoring, consultez la section Créer une règle d'alerte.

Seul un sous-ensemble des sélecteurs de séries temporelles disponibles pour les SLO peut être utilisé dans les règles d'alerte. En outre, les règles d'alerte basées sur le SLO créées avec Google Cloud Console utilisent toujours le sélecteur select_slo_burn_rate.

Utiliser un sélecteur de série temporelle dans un filtre

Pour récupérer des données de séries temporelles pour des SLO, votre filtre doit spécifier un sélecteur de série temporelle. Les données SLO ne sont pas stockées avec des types de métriques et ne peuvent pas être récupérées avec le filtre qui spécifie une paire de types de métriques et de ressources surveillées.

Noms et arguments

Les sélecteurs de séries temporelles se présentent sous l'une des formes suivantes :

SELECTOR_NAME(SLO_NAME)
SELECTOR_NAME(SLO_NAME, LOOKBACK_PERIOD)

Les sélecteurs ont des noms qui commencent par select_slo_ et acceptent un ou deux arguments :

  • Le premier argument du sélecteur correspond au nom de ressource pour un SLO, qui se présente comme suit :

    projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID
    

    L'expression précédente contient trois variables :

    • PROJECT_ID : nom ou numéro d'un projet Google Cloud.
    • SERVICE_ID : nom d'un service.
    • SLO_ID : identifiant d'un SLO défini pour le service.

    Pour savoir comment rechercher les valeurs des champs SERVICE_ID et SLO_ID dans votre projet Google Cloud, consultez la page Utiliser l'API.

  • Le second argument, s'il est accepté, correspond à une période d'analyse. Pour en savoir plus sur les périodes d'analyse, consultez la section Types d'alertes sur la marge d'erreur. Les unités de temps valides sont "ns", "us", "ms", "s", "m", "h".

Par exemple, le sélecteur select_slo_budget utilise un argument SLO_NAME. Par conséquent, un filtre utilisant ce sélecteur se présente comme suit :

select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")

En revanche, le sélecteur select_slo_burn_rate requiert les arguments SLO_NAME et LOOKBACK_PERIOD. Par conséquent, un filtre utilisant ce sélecteur se présente comme suit :

select_slo_burn_rate("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID", "3600s")

Pour obtenir la liste et la description de tous les sélecteurs, consultez la section Sélecteurs de séries temporelles.

Récupérer des données à l'aide d'un sélecteur

Une manière d'interroger les données de séries temporelles consiste à utiliser l'outil APIs Explorer sur la page de référence de la méthode timeSeries.list. Pour en savoir plus sur cet outil, consultez la page Utiliser APIs Explorer.

Par exemple, pour récupérer des informations sur le budget d'un SLO, renseignez les champs suivants dans l'outil APIs Explorer :

  • name : projects/PROJECT_ID
  • filter : select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")
  • interval.startTime : 2021-10-07T13:00:20-04:00
  • interval.endTime : 2021-10-08T13:00:20-04:00

Pour un système, après le remplacement des variables telles que PROJECT_ID par des valeurs et l'exécution de la méthode, les données de séries temporelles suivantes sont renvoyées :

Extrait de la série temporelle récupérée

Sélecteurs de séries temporelles

Cette section répertorie les sélecteurs de séries temporelles disponibles pour les SLO et décrit leur signification. Tous les sélecteurs peuvent être utilisés dans les filtres avec la méthode timeSeries.list pour récupérer les données de séries temporelles. Ils ne sont pas tous acceptés dans les règles d'alerte.

select_slo_burn_rate

Syntaxe : select_slo_burn_rate(SLO_NAME, LOOKBACK_PERIOD)

Le sélecteur de série temporelle "taux d'utilisation" renvoie le ratio entre le taux d'échec actuel (taux de requêtes insatisfaisantes dans l'intervalle d'analyse) et le taux d'échec soutenable pour le SLO. Le taux d'échec durable est le taux exact auquel le SLO est atteint.

Les valeurs de cette série temporelle peuvent être comprises entre 0 et l'infini :

  • La valeur 1 indique que le service présente le taux d'échec idéal, à savoir ni trop risqué, ni trop prudent.
  • Une valeur supérieure à 1 signifie que le taux d'échec dépasse le taux durable. Plus la valeur est élevée, plus vite le SLO ne sera plus conforme.
  • Une valeur inférieure à 1 signifie que le taux d'échec actuel est inférieur au taux durable.

Nous vous recommandons d'utiliser deux règles d'alerte pour surveiller le taux d'utilisation : une règle d'utilisation rapide qui vous avertit en cas de pics du taux, et une règle d'utilisation lente qui vous avertit des augmentations progressives.

Vous pouvez créer et modifier des règles d'alerte basées sur ce sélecteur de série temporelle à l'aide de l'API ou de la console Google Cloud.

Toutes les règles d'alerte basées sur le SLO créées à l'aide de la console Google Cloud utilisent ce sélecteur pour récupérer les données de SLO.

select_slo_health

Syntaxe : select_slo_health(SLO_NAME)

La série temporelle "état du SLO" répond à la question suivante : "Pendant une période d'alignement donnée, quel était le ratio entre les requêtes satisfaisantes et le nombre total de requêtes ?". Le SLI du service définit ce qui constitue une bonne requête. Pour en savoir plus sur les SLI, consultez la section Présentation.

Cette série temporelle mesure les performances du service : si chaque requête envoyée au service est satisfaisante, les points de données de cette série temporelle ont la valeur 1. À mesure que le nombre de requêtes insatisfaisantes augmente, la valeur des points de données diminue.

select_slo_compliance

Syntaxe : select_slo_compliance(SLO_NAME)

La série temporelle "Conformité avec le SLO" répond à la question suivante : "Quel est le ratio entre les unités satisfaisantes et le nombre total d'unités depuis le début de la période de conformité ?". Le SLO définit la période de conformité sous la forme d'une fenêtre glissante ou d'une plage de temps. L'unité peut être une requête ou une fenêtre de temps. Pour plus d'informations, consultez la section Conformité dans les SLO basés sur des requêtes et des fenêtres.

Cette série temporelle vous donne une idée générale du niveau de conformité du service avec le SLO. Il ne génère aucun signal d'urgence opérationnelle.

N'utilisez pas ce sélecteur de série temporelle dans les règles d'alerte.

select_slo_budget

Syntaxe : select_slo_budget(SLO_NAME)

La série temporelle "Marge du SLO" répond à la question suivante : "Quelle était la marge d'erreur restante au moment de la mesure ?". La marge d'erreur peut être mesurée en requêtes ou en minutes. Le calcul de la quantité restante varie selon que la période de conformité est calendaire ou glissante. Pour en savoir plus, consultez la section Marges d'erreur.

Cette série temporelle mesure le risque en termes de fiabilité d'un service. Si la marge d'erreur devient inférieure à zéro, il est possible que vous ne puissiez pas respecter le SLO pour la période en cours. Le non-respect du SLO peut avoir des conséquences réelles sur l'environnement de production d'une organisation, selon la façon dont cette organisation régit la fiabilité.

N'utilisez pas ce sélecteur de série temporelle dans les règles d'alerte.

select_slo_budget_fraction

Syntaxe : select_slo_budget_fraction(SLO_NAME)

La série temporelle "Fraction de la marge du SLO" répond à la question suivante : "À ce stade, quelle est la part restante de la marge d'erreur, sous forme de fraction comprise entre l'infini négatif et 1 ?"

N'utilisez pas ce sélecteur de série temporelle dans les règles d'alerte.

select_slo_budget_total

Syntaxe : select_slo_budget_total(SLO_NAME)

La série temporelle "Marge totale du SLO" répond à la question suivante : "Quelle est la marge d'erreur totale (exprimée en requêtes ou en minutes) prévue pour être disponible à ce stade, en fonction du comportement du service depuis le début de la période de conformité ?" Le SLO définit la période de conformité comme une fenêtre glissante ou une plage de temps calendaire.

N'utilisez pas ce sélecteur de série temporelle dans les règles d'alerte.

select_slo_counts

Syntaxe : select_slo_counts(SLO_NAME)

La série temporelle "Comptes SLO" répond à la question suivante : "Au cours d'une période d'alignement donnée, quel est le nombre de requêtes satisfaisantes et insatisfaisantes ?". Ce sélecteur fournit une série temporelle qui enregistre l'état général et qui peut être ingérée dans des systèmes de stockage à long terme.

N'utilisez pas ce sélecteur de série temporelle dans les règles d'alerte.