本文介绍时序数据的查询分析语法及使用限制。
日志服务提供如下两种时序数据查询分析方式:
- SQL查询分析:使用SQL语法,根据时序数据的编码方式进行查询分析。
- SQL + PromQL查询分析:使用PromQL(Prometheus的查询语言)简化对时序数据的查询分析,并使用SQL语法进行嵌套查询。其中PromQL语法请参见Prometheus官方文档。
SQL查询分析
SQL查询分析语句示例如下所示:
- 查询分析全部数据
*| SELECT * FROM "my_metric_store.prom" WHERE __name__ != ''
- 查询__labels__, 'domain'值为www.example.com的数据,并对__value__字段进行求和计算。
*| SELECT sum(__value__) FROM "my_metri_store.prom" WHERE element_at(__labels__, 'domain')='www.example.com'
- 查询__labels__, 'domain'值为www.example.com的数据,并对__value__字段进行求和计算以及对数据按小时聚合。
*| SELECT sum(__value__),date_trunc('hour', __time_nano__/1000000) as t FROM "my_metric_store.prom" WHERE element_at(__labels__, 'domain')='www.example.com' GROUP BY t ORDER BY t DESC
SQL+PromQL查询分析
通过SQL+PromQL查询分析方式,不仅可以使用PromQL语法,还可以使用日志服务提供的机器学习语法、安全检测函数等高级功能。
说明 当使用SQL+PromQL查询分析时序数据时,您FROM的表名固定为metrics。
日志服务提供5个PromQL函数,如下表所示。
函数名 | 说明 | 样例 |
---|---|---|
promql_query(string) | 即时查询分析,查询分析离结束时间最近的数据。该函数对应Prometheus的/query API,参数为query=<string>。 | *| SELECT promql_query('up') FROM metrics |
promql_query_range(string, string) | 查询分析一定时间范围内的数据。对应Prometheus的/query_range API,参数为query=<string>、step=<duration>。 | *| SELECT promql_query_range('up', '5m') FROM metrics |
promql_labels() | 返回所有的Label Key。 | *| SELECT promql_labels() FROM metrics |
promql_label_values(string) | 返回某个Label的值。 | *| SELECT promql_label_values('__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> Lables信息,Map类型。 time bigint 时间。 value double 某个时间点对应的值。 - promql_labels()、promql_label_values(string)函数返回的表的结构如下表所示。
字段 字段类型 说明 label varchar Label Key - promql_series(string)函数返回的表的结构如下表所示。
字段 字段类型 说明 series map<varchar, varchar> 时间序列
使用限制
- MetricStore仅支持Prometheus查询分析API(例如/query API、/query_range API等),其它API如/admin API、/alerts API、/rules API等均不支持。
- 当使用SQL+PromQL查询分析时,最多返回11000个时间点。
- 当使用SQL+PromQL查询分析时,您的Metric name和Label命名应符合命名规范,详情请参见时序标识。
在文档使用中是否遇到以下问题
更多建议
匿名提交