Tous les produits
Search
Centre de documentation

Simple Log Service:Syntaxe d'interrogation et d'analyse des données de métriques

Dernière mise à jour :Aug 21, 2026

Simple Log Service (SLS) prend en charge les syntaxes PromQL, SQL et une combinaison SQL+PromQL pour interroger et analyser les données de métriques, avec des conventions de nommage et des limites d'interrogation spécifiques.

SLS propose trois syntaxes pour interroger et analyser les données de métriques :

Lorsque vous utilisez PromQL ou la combinaison SQL+PromQL, les noms de métriques et les libellés doivent respecter les conventions de nommage. Pour plus d'informations, consultez la section Identificateur de métrique.

Syntaxe PromQL

Exemples PromQL :

  • Interrogez les séries temporelles dont le nom de métrique est http_requests_total, le libellé job a la valeur apiserver et le libellé handler a la valeur /api/comments.

    http_requests_total{job="apiserver", handler="/api/comments"}
  • Recherchez les 3 principaux consommateurs de CPU regroupés par application et processus au cours des 5 dernières minutes. Le paramètre app spécifie les applications et proc spécifie les types de processus.

    topk(3, sum by (app, proc) (rate(instance_cpu_time_ns[5m])))
  • Recherchez les pods non sains.

    min_over_time(sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[15m:1m]) > 0
  • Calculez la somme de l'utilisation du CPU pour les DaemonSets Kubernetes.

    sum (rate (container_cpu_usage_seconds_total{pod=~"^x.*$",cluster=~".*",namespace=~".*"}[1m])) / sum (kube_pod_container_resource_limits_cpu_cores{pod=~"^null.*$",cluster=~".*",namespace=~".*"}) * 100

Pour plus d'informations sur la syntaxe PromQL, consultez la documentation Prometheus, les exemples d'interrogation et les cas d'utilisation de PromQL.

Syntaxe SQL

Exemples SQL. Pour plus d'informations, consultez les cas d'utilisation SQL.

  • Interrogez et analysez toutes les données.

    *| SELECT * FROM "my_metric_store.prom" WHERE __name__ != '' 
  • Pour la métrique http_request_count, interrogez les données dont la valeur de domaine du champ __labels__ est www.example.com et obtenez la somme des valeurs du champ __value__.

    *| SELECT sum(__value__) FROM "my_metric_store.prom" WHERE __name__='http_request_count' and element_at(__labels__, 'domain')='www.example.com' 
  • Pour la métrique http_request_count, interrogez les données dont la valeur de domaine du champ __labels__ est www.example.com, agrégez les valeurs du champ __value__ par heure et obtenez la somme des valeurs.

    *| SELECT sum(__value__),date_trunc('hour', __time_nano__/1000000) as t
    FROM "my_metric_store.prom" 
    WHERE __name__='http_request_count' and element_at(__labels__, 'domain')='www.example.com'
    GROUP BY t
    ORDER BY t DESC

Détails de la syntaxe SQL :

  • La syntaxe SQL pour les données de métriques correspond à celle des données de journaux (Syntaxe d'analyse). Lors de l'interrogation des données de métriques avec SQL, le nom de la table dans une clause FROM doit être au format {metrics_store_name}.prom. {metrics_store_name} spécifie le nom du Metricstore que vous avez créé.

    Remarque

    Entourez le nom de la table de guillemets doubles ("").

  • Utilisez la fonction element_at() pour obtenir la valeur d'une clé à partir du champ __labels__. Exemple : element_at(__labels__, 'key').

  • Pour plus d'informations sur les schémas de table, consultez la section Format d'encodage.

Syntaxe SQL+PromQL

SLS fournit sept fonctions PromQL. Les fonctions promql_query, promql_labels, promql_label_values et promql_series ne peuvent être appelées que sur la page d'interrogation et d'analyse personnalisée d'un Metricstore.

Important
  • Lors de la combinaison de SQL et PromQL, le nom de la table dans une clause FROM doit être metrics.

  • Endpoints d'API et descriptions des fonctions PromQL : documentation Prometheus.

Nom de la fonction

Description

Exemple

promql_query(string)

Évalue une requête instantanée à l'heure de fin (EndTime) d'une plage de temps. Équivalent à l'API /query de Prometheus. Paramétrage : query=<string>.

*| SELECT promql_query('up') FROM metrics

promql_query_range(string, string)

Évalue une requête dans la plage de temps allant de StartTime à EndTime. Équivalent à l'API /query_range de Prometheus. Paramétrages : query=<string> et step=<duration>.

*| SELECT promql_query_range('up', '5m') FROM metrics

promql_labels()

Renvoie toutes les clés de libellé.

Par défaut, cette fonction renvoie uniquement les données dans la plage de temps suivante : [<EndTime> - 5min, <EndTime>].

*| SELECT promql_labels() FROM metrics

promql_labels(string)

Prend en charge le paramètre match[] pour renvoyer les clés de libellé correspondant à <series_selector>.

Prend en charge une seule valeur match[]. Exemple : promql_labels('up').

Par défaut, cette fonction renvoie uniquement les données dans la plage de temps suivante : [<EndTime> - 5min, <EndTime>].

*| SELECT promql_labels('up') FROM metrics

promql_label_values(string)

Renvoie les valeurs d'un libellé.

Par défaut, cette fonction renvoie uniquement les données dans la plage de temps suivante : [<EndTime> - 5min, <EndTime>].

*| SELECT promql_label_values('__name__') FROM metrics

promql_label_values(string, string)

Prend en charge le paramètre match[] pour renvoyer les valeurs d'un libellé correspondant à <series_selector>.

Prend en charge une seule valeur match[], qui doit précéder le paramètre Label. Exemple : promql_label_values('up', '__label_name__') .

Par défaut, cette fonction renvoie uniquement les données dans la plage de temps suivante : [<EndTime> - 5min, <EndTime>].

*| SELECT promql_label_values('up', '__label_name__') FROM metrics

promql_series(string)

Renvoie les séries temporelles correspondantes.

Par défaut, cette fonction renvoie uniquement les données dans la plage de temps suivante : [<EndTime> - 5min, <EndTime>].

*| SELECT promql_series('up') FROM metrics

Chaque fonction PromQL renvoie une table, similaire à une fonction définie par l'utilisateur renvoyant une table (UDTF).

  • Schéma de table renvoyé par promql_query(string) et promql_query_range(string, string) :

    Champ

    Type de champ

    Description

    metric

    varchar

    Le nom de la métrique. Peut être vide si la requête inclut une clause GROUP BY.

    labels

    map<varchar, varchar>

    Les libellés sous forme de map clé-valeur.

    time

    bigint

    L'heure.

    value

    double

    La valeur à un instant donné.

    Exemples de requêtes :

    • Fonction promql_query(string)

      Saisissez *| select promql_query('up') from metrics dans l'éditeur de requête et cliquez sur Search & Analyze. Le résultat de la requête est renvoyé dans un tableau comportant quatre colonnes : time, metric, labels et value, affichant les valeurs de la métrique up pour chaque instance.

    • Fonction promql_query_range(string, string)

      Exécutez l'instruction SQL select promql_query_range('up', '30s') from metrics pour interroger les données de plage de la métrique PromQL up avec un pas de 30s. Le résultat de la requête s'affiche dans un tableau présentant les données de séries temporelles.

  • Schéma de table renvoyé par promql_labels(), promql_labels(string), promql_label_values(string) et promql_label_values(string, string) :

    Champ

    Type de champ

    Description

    label

    varchar

    Clé de libellé

    Exemples de requêtes :

    • Fonction promql_labels()

      *| select promql_labels() from metrics. Le résultat de la requête renvoie la colonne label, contenant cinq noms de libellés : code, instance, job, le et method.

    • Fonction promql_labels(string)

      Par exemple, exécutez la requête *| select promql_labels('up') from metrics pour interroger tous les noms de libellés de la métrique up. Le résultat inclut __name__, instance et job.

    • Fonction promql_label_values(string)

      Par exemple, exécutez la requête *| select promql_label_values('instance') from metrics. La colonne label du résultat de la requête renvoie trois adresses d'instance : demo.promlabs.com:10000, demo.promlabs.com:10001 et demo.promlabs.com:10002.

    • Fonction promql_label_values(string, string)

      Exemple de requête : *| select promql_label_values('up{demo!="a"}','instance') from metrics. Le résultat de la requête renvoie la colonne label avec trois lignes : demo.promlabs.com:10000, demo.promlabs.com:10001 et demo.promlabs.com:10002.

  • Schéma de table renvoyé par promql_series(string) :

    Champ

    Type de champ

    Description

    series

    map<varchar, varchar>

    La série temporelle.

    Exemple de requête :

    Par exemple, exécutez la requête *| select promql_series('up') from metrics. La colonne series du résultat contient trois lignes correspondant à demo.promlabs.com:10001, demo.promlabs.com:10000 et demo.promlabs.com:10002. Chaque ligne est une map contenant les champs instance, __name__ (valeur : up) et job (valeur : demo).

Limites

  • Un Metricstore prend uniquement en charge les endpoints d'API de requête Prometheus (/query et /query_range). Les autres endpoints tels que /admin, /alerts et /rules ne sont pas pris en charge.

  • Les requêtes PromQL et combinées SQL+PromQL renvoient des valeurs pour un maximum de 11 000 points de données.