Todos os produtos
Search
Central de documentação

Simple Log Service:Sintaxe de consulta e análise de dados de métricas

Última atualização: Jul 03, 2026

O Simple Log Service (SLS) oferece suporte às sintaxes PromQL, SQL e SQL+PromQL combinadas para consultar e analisar dados de métricas, com convenções de nomenclatura e limites de consulta específicos.

O SLS oferece suporte a três sintaxes para consulta e análise de dados de métricas:

Ao usar PromQL ou a combinação SQL+PromQL, os nomes das métricas e os rótulos devem seguir as convenções de nomenclatura. Para mais detalhes, consulte Identificador de métrica.

Sintaxe PromQL

Exemplos de PromQL:

  • Consulte as séries temporais em que o nome da métrica é http_requests_total, o rótulo job é apiserver e o rótulo handler é /api/comments.

    http_requests_total{job="apiserver", handler="/api/comments"}
  • Obtenha os 3 maiores consumidores de CPU agrupados por app e proc nos últimos 5 minutos. O parâmetro app especifica aplicações e proc indica tipos de processo.

    topk(3, sum by (app, proc) (rate(instance_cpu_time_ns[5m])))
  • Identifique pods não saudáveis.

    min_over_time(sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[15m:1m]) > 0
  • Calcule a soma da utilização de CPU para DaemonSets do 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

Para obter mais informações sobre a sintaxe PromQL, consulte a documentação do Prometheus, os Exemplos de consulta e os Casos de uso do PromQL.

Sintaxe SQL

Confira exemplos de SQL. Para mais informações, veja os Casos de uso de SQL.

  • Consulte e analise todos os dados.

    *| SELECT * FROM "my_metric_store.prom" WHERE __name__ != '' 
  • Para a métrica http_request_count, consulte os dados em que o valor de domain no campo __labels__ seja www.example.com e obtenha a soma dos valores do campo __value__.

    *| SELECT sum(__value__) FROM "my_metric_store.prom" WHERE __name__='http_request_count' and element_at(__labels__, 'domain')='www.example.com' 
  • Na métrica http_request_count, filtre os dados onde o valor de domain no campo __labels__ corresponda a www.example.com, agrupe os valores do campo __value__ por hora e calcule a soma total.

    *| 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

Detalhes da sintaxe SQL:

  • A sintaxe SQL para dados de métricas corresponde à sintaxe SQL para dados de log (Sintaxe de análise). Ao consultar dados de métricas com SQL, o nome da tabela na cláusula FROM deve estar no formato {metrics_store_name}.prom. {metrics_store_name} representa o nome do Metricstore criado por você.

    Nota

    Coloque o nome da tabela entre aspas duplas ("").

  • Use a função element_at() para extrair um valor de chave do campo __labels__. Exemplo: element_at(__labels__, 'key').

  • Para mais detalhes sobre esquemas de tabelas, consulte o Formato de codificação.

Sintaxe SQL+PromQL

O SLS disponibiliza sete funções PromQL. As funções promql_query, promql_labels, promql_label_values e promql_series só podem ser chamadas na página personalizada de consulta e análise de um Metricstore.

Importante
  • Ao combinar SQL e PromQL, o nome da tabela na cláusula FROM deve ser metrics.

  • Endpoints de API e descrições das funções PromQL: documentação do Prometheus.

Nome da função

Descrição

Exemplo

promql_query(string)

Avalia uma consulta instantânea no EndTime de um intervalo de tempo. Equivale à API /query do Prometheus. Definição de parâmetro: query=<string>.

*| SELECT promql_query('up') FROM metrics

promql_query_range(string, string)

Avalia uma consulta dentro do intervalo de tempo de StartTime até EndTime. Corresponde à API /query_range do Prometheus. Definições de parâmetros: query=<string> e step=<duration>.

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

promql_labels()

Retorna todas as chaves de rótulo.

Por padrão, esta função retorna apenas os dados dentro do seguinte intervalo de tempo: [<EndTime> - 5min, <EndTime>].

*| SELECT promql_labels() FROM metrics

promql_labels(string)

Oferece suporte ao parâmetro match[] para retornar chaves de rótulo correspondentes a <series_selector>.

Aceita apenas um valor match[]. Exemplo: promql_labels('up').

Por padrão, esta função retorna apenas os dados dentro do seguinte intervalo de tempo: [<EndTime> - 5min, <EndTime>].

*| SELECT promql_labels('up') FROM metrics

promql_label_values(string)

Retorna os valores de um rótulo.

Por padrão, esta função retorna apenas os dados dentro do seguinte intervalo de tempo: [<EndTime> - 5min, <EndTime>].

*| SELECT promql_label_values('__name__') FROM metrics

promql_label_values(string, string)

Oferece suporte ao parâmetro match[] para retornar valores de um rótulo correspondente a <series_selector>.

Aceita apenas um valor match[], que deve preceder o parâmetro Label. Exemplo: promql_label_values('up', '__label_name__') .

Por padrão, esta função retorna apenas os dados dentro do seguinte intervalo de tempo: [<EndTime> - 5min, <EndTime>].

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

promql_series(string)

Retorna as séries temporais correspondentes.

Por padrão, esta função retorna apenas os dados dentro do seguinte intervalo de tempo: [<EndTime> - 5min, <EndTime>].

*| SELECT promql_series('up') FROM metrics

Cada função PromQL retorna uma tabela, semelhante a uma função com valor de tabela definida pelo usuário (UDTF).

  • Esquema de tabela retornado por promql_query(string) e promql_query_range(string, string):

    Campo

    Tipo de campo

    Descrição

    metric

    varchar

    Nome da métrica. Pode estar vazio se a consulta incluir uma cláusula GROUP BY.

    labels

    map<varchar, varchar>

    Rótulos como um mapa de chave-valor.

    time

    bigint

    Timestamp.

    value

    double

    Valor em um ponto específico no tempo.

    Exemplos de consulta:

    • Função promql_query(string)query

    • Função promql_query_range(string, string)promql_query_range

  • Esquema de tabela retornado por promql_labels(), promql_labels(string), promql_label_values(string) e promql_label_values(string, string):

    Campo

    Tipo de campo

    Descrição

    label

    varchar

    Chave do rótulo

    Exemplos de consulta:

    • Função promql_labels()labels

    • Função promql_labels(string)labels_match

    • Função promql_label_values(string)labelValues

    • Função promql_label_values(string, string)label_values_match

  • Esquema de tabela retornado por promql_series(string):

    Campo

    Tipo de campo

    Descrição

    series

    map<varchar, varchar>

    Série temporal.

    Exemplo de consulta:series

Limites

  • Um Metricstore oferece suporte apenas aos endpoints da API de consulta do Prometheus (/query e /query_range). Outros endpoints, como /admin, /alerts e /rules, não são suportados.

  • Consultas PromQL e SQL+PromQL combinadas retornam valores para até 11.000 pontos de dados.