日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

時序數據查詢和分析簡介

本文介紹時序數據的查詢和分析語法及使用限制。

日志服務提供如下三種時序數據查詢和分析方式:

  • PromQL語法:使用PromQL(Prometheus的查詢語言)語法簡化對時序數據的查詢和分析。更多信息,請參見Prometheus官方文檔

  • SQL語法:根據時序數據的編碼方式進行查詢和分析。

  • SQL+PromQL語法:使用SQL語法與日志服務提供5個PromQL函數進行嵌套查詢。使用PromQL語法的同時,您還可以使用日志服務機器學習語法。更多信息,請參見機器學習語法

PromQL語法

PromQL語法示例如下所示。

  • 查詢指標名為http_requests_totaljob標簽為apiserverhandler標簽為/api/comments的時間序列。

    http_requests_total{job="apiserver", handler="/api/comments"}
  • 查詢過去5分鐘內,按照應用程序app和進程類型proc分組的前3個CPU用戶。

    topk(3, sum by (app, proc) (rate(instance_cpu_time_ns[5m])))
  • 查找不健康的Pod。

    min_over_time(sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[15m:1m]) > 0
  • 查詢K8s DaemonSet CPU 使用率。

    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

PromQL語法的更多信息,請參見Prometheus官方文檔查詢示例

SQL語法

SQL語法示例如下所示。

  • 查詢和分析全部數據。

    *| SELECT * FROM "my_metric_store.prom" WHERE __name__ != '' 
  • 針對指標 http_request_count,查詢__labels__中'domain'值為www.example.com的數據,并對__value__字段進行求和計算。

    *| SELECT sum(__value__) FROM "my_metric_store.prom" WHERE __name__='http_request_count' and element_at(__labels__, 'domain')='www.example.com' 
  • 針對指標 http_request_count,查詢__labels__中 'domain'值為www.example.com的數據,并對__value__字段按小時粒度執行聚合求和計算。

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

SQL語法相關說明如下所示。

  • 時序數據的SQL語法與日志的SQL語法一致。更多信息,請參見分析語法。但在時序數據的SQL語法中,FROM的表名只能為{metrics_store_name}.prom,其中{metrics_store_name}為您已創建的MetricStore名稱。

    說明

    請保留表名兩端的雙引號('''')。

  • __labels__可使用element_at()函數獲取其中某個Key的值,例如element_at(__labels__, 'key')

  • 表結構請參見編碼方式

SQL+PromQL語法

日志服務提供7個PromQL函數,其中promql_query、promql_labels、promql_label_values和promql_series函數只能在MetricStore的自定義查詢分析頁面中執行。詳細說明如下表所示。

重要
  • 當使用SQL+PromQL語法查詢和分析時序數據時,您FROM的表名固定為metrics

  • PromQL函數的詳細接口特性和說明,請參見Prometheus官方文檔

函數名

說明

樣例

promql_query(string)

即時查詢和分析。查詢離時間區間中結束時間(EndTime)最近的數據。該函數對應Prometheus的/query API,參數為query=<string>,參數time為<EndTime>。

*| SELECT promql_query('up') FROM metrics

promql_query_range(string, string)

查詢特定時間范圍(即時間框中的StartTime與EndTime)內的數據。對應Prometheus的/query_range API,參數為query=<string>、step=<duration>、start=<StartTime>、end=<EndTime>。

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

promql_labels()

返回所有的Label Key。

*| SELECT promql_labels() FROM metrics

promql_labels(string)

支持添加match[]參數,用于返回對應<series_selector>的Label Key。

當前僅支持添加一個match[]參數值,例如 promql_labels('up')

*| SELECT promql_labels('up') FROM metrics

promql_label_values(string)

返回某個Label的值。

*| SELECT promql_label_values('__name__') FROM metrics

promql_label_values(string, string)

支持添加match[]參數,用于返回對應<series_selector>下特定Label的Value列表。

當前僅支持添加一個match[]參數值,需設置match[]參數在前,Label參數在后,例如promql_label_values('up', '__label_name__')

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

promql_series(string)

返回匹配的時間序列。

*| SELECT promql_series('up') FROM metrics

PromQL函數相當于UDTF,即返回一個表。

  • promql_query(string)、promql_query_range(string, string)函數返回的表的結構如下表所示。

    字段名

    字段類型

    說明

    metric

    varchar

    時序名稱。如果使用了Group By語法,那么該值可能為空。

    labels

    map<varchar, varchar>

    Labels信息,Map類型。

    time

    bigint

    時間。

    value

    double

    某個時間點對應的值。

    查詢示例如下:

    • promql_query(string)函數query

    • promql_query_range(string, string)函數promql_query_range

  • promql_labels()、promql_labels(string)、promql_label_values(string)、promql_label_values(string, string)函數返回的表的結構如下表所示。

    字段

    字段類型

    說明

    label

    varchar

    Label Key

    查詢示例如下:

    • promql_labels()函數labels

    • promql_labels(string)函數labels_match

    • promql_label_values(string)函數labelValues

    • promql_label_values(string, string)函數label_values_match

  • promql_series(string)函數返回的表的結構如下表所示。

    字段

    字段類型

    說明

    series

    map<varchar, varchar>

    時間序列

    查詢示例如下:series

使用限制

  • MetricStore僅支持Prometheus查詢和分析API(例如/query API、/query_range API等),其它API如/admin API、/alerts API、/rules API等均不支持。

  • 使用PromQL語法、SQL+PromQL語法時,最多返回11000個時間點對應的值。

  • 使用PromQL語法、SQL+PromQL語法時,您的Metric name和Label命名應符合命名規范。更多信息,請參見時序標識