Obtenir les données de SLO

Les données d'objectif de niveau de service (SLO, Service Level Objective) sont stockées dans une série temporelle. Toutefois, elles ne peuvent pas être récupérées en spécifiant un type de métrique et une ressource surveillée à un composant de console tel qu'un explorateur de métriques ou la méthode timeSeries.list de l'API Cloud Monitoring.

À la place, vous récupérez les séries temporelles SLO en spécifiant un sélecteur de série temporelle dans le paramètre filter de la méthode timeSeries.list.

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

L'approche habituelle pour récupérer des données de séries temporelles consiste à spécifier un filtre composé d'un type de métrique et d'un type de ressource surveillée qui identifient un ensemble de séries temporelles. Les données SLO ne sont pas stockées avec des types de métriques standards et ne peuvent pas être récupérées avec ce genre de 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 à la place.

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]
        

  • 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 n'accepte que l'argument de nom de SLO. 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 accepte également l'argument de période d'analyse. 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

Un moyen simple pour interroger des données de séries temporelles consiste à utiliser l'outil API Explorer sur la page de référence de la méthode timeSeries.list. Pour plus d'informations sur l'outil API Explorer, consultez la page Utiliser l'API Explorer.

La capture d'écran suivante montre l'utilisation, dans l'API Explorer, du sélecteur de séries temporelles select_slo_budget en tant que filtre pour timeSeries.list :

Spécification d'un sélecteur de série temporelle dans la méthode timeSeries.list.

Voici un fragment des données de séries temporelles 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 pour que timeSeries.list récupère 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éries temporelles "taux d'utilisation" renvoie le rapport entre le taux d'échec actuel (taux de requêtes insatisfaisantes dans l'intervalle d'analyse) et le taux d'échec durable pour le SLO. Le taux d'échec durable est le taux exact auquel le SLO est atteint : la valeur 1 signifie que le service présente le taux d'échec idéal, à savoir ni trop risqué, ni trop prudent.

Les valeurs de cette série temporelle peuvent être comprises entre 0 et l'infini. 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.

Utilisez 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. Pour plus d'informations, consultez la section Créer la règle d'alerte.

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 de sortie donnée, quel était le ratio entre les requêtes satisfaisantes et le nombre total de requêtes ?". L'indicateur de niveau de service (SLI, Service Level Indicator) du service est ce qui qualifie une requête satisfaisante.

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.

Vous pouvez créer des règles d'alerte qui utilisent ce sélecteur de série temporelle à l'aide de l'API. De plus, vous ne pouvez les modifier qu'avec l'API.

select_slo_compliance

Syntaxe : select_slo_compliance(SLO_NAME)

La série temporelle "Conformité avec le SLO" répond à la question suivante : "Si l'on mesure le comportement du service depuis le début de la période de conformité (calendaire ou glissante), quel est le ratio entre les unités satisfaisantes et le nombre total d'unités à ce stade ?". 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 plus d'informations, 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 passe en dessous de 0, même si le service fonctionne parfaitement à l'avenir, il peut être impossible de respecter le SLO pendant la période en cours. Le non-respect du SLO peut avoir des conséquences tangibles sur l'environnement de production d'une organisation, selon la façon dont l'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 SLO" répond à la question suivante : "Quelle est la part restante de la marge d'erreur, sous forme de fraction comprise entre 0 et 1, à ce stade ?"

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é, qui est calendaire ou glissante ?"

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 de sortie donnée, quel est le nombre de requêtes satisfaisantes et insatisfaisantes ?" Ce sélecteur fournit une série temporelle qui enregistre l'état de santé général et qui peut être intégré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.