跨时序库(Metricstore)查询

时序型数据集(StoreView) 支持时序库(Metricstore)联合查询。本文介绍如何利用PromQL语句在StoreView中进行数据查询、StoreView如何对接Grafana以及如何使用API接口获取StoreView信息。

使用前提

已创建Project和MetricStore。具体操作,请参见管理Project管理MetricStore

关联时序库(Metricstore)创建时序数据集(StoreView

1. 创建时序型数据集

  1. 登录日志服务控制台,在Project列表,单击打开目标Project。

  2. 在左侧导航栏选择数据集 > 时序型数据集,进入数据集页面后单击image创建时序型数据集。

    image

  3. 在创建数据集面板,参考下图,输入Storeview名称,并添加关联的Metricstore,然后单击确定

    重要

    时序数据集(Storeview) 支持多Store联合查询分析能力,为保证查询分析结果正确性,有以下两个建议:

    • 不建议将存在重复时间线的Metricstore关联在同一个StoreView中。

    • 不建议将多个数据量庞大(例如,时序库的Shard已大于64)的Metricstore关联在一起执行计算。

    image

2. 使用PromQL语句查询数据集

说明
  • 时序型数据集(Storeview)中关联多个Metricstore后,查询分析结果将展示跨多个时序库的计算处理结果。

  • 时序型数据集(Storeview)不支持使用SQL和预定义处理。支持直接在查询框中输入PromQL语句,后端计算引擎会自行完成跨多个时序库的计算处理。

image

时序型数据集(StoreView)对接Grafana

  1. 安装Grafana后登录Grafana。在左侧导航栏,选择Configuration > Data Sources

  2. Data Sources页签,单击Add data source。然后选择Prometheus,单击Select

  3. Settings页签中,请参考如下说明配置数据源。

    image

    配置数据源参数说明

    参数

    说明

    Name

    请您自定义一个数据源的名称,例如Prometheus-1。

    HTTP

    • URL:日志服务StoreView的URL,格式为https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}。其中{sls-endpoint}为Project所在地域的Endpoint{project}{storeview}为您已创建的日志服务的Project和StoreView,请根据实际值替换。例如:https://sls-prometheus-test.cn-hangzhou.log.aliyuncs.com/prometheus/sls-prometheus-test/test

      说明

      为保证传输安全性,请务必设置为https

    • Whitelisted Cookies:添加访问白名单,可选。

    Auth

    打开Basic auth开关。

    Basic Auth Details

    • User为阿里云账号AccessKeyID。

    • Password为阿里云账号AccessKeySecret。

    建议您使用仅具备指定Project只读权限的RAM用户账号,详情请参见指定Project只读授权策略

  4. 单击Save & Test

StoreView HTTP API接口

概述

日志服务提供多个用于查询时序型数据集(StoreView)的API,这些API兼容Prometheus开源协议。Prometheus所提供的接口都在/api/v1目录下,StoreView相关的API同样遵循此规则,其完整的URL为https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/。

变量

是否必填

说明

{project}

日志服务Project名称,更多信息,请参见管理Project

{sls-endpoint}

Project所在地域的Endpoint

{storeview}

创建的StoreView。

时序指标查询API

Instant Queries API

Instant Queries API用于查询指定时间点的指标数据。

GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query

参数说明如下表所示。

变量

是否必填

说明

query

具体的PromQL语句。更多信息,请参见PromQL语法

time

执行查询的时间点,Unix时间戳格式,精确到秒。默认为最新时间。

timeout

执行查询的超时时间,单位:秒。

同时支持1s、2m、3h、4d等用法。更多信息,请参见Time Durations

lookback-delta

可用于自定义设置query.lookback-delta这项flag参数值,仅对当次Query有效,该值需遵循Time Durations用法,更多信息,请参见Time Durations。此参数表示PromQL计算中寻点过程的最大回溯区间,SLS时序库中该值默认为"3m"。

Range Queries API

Range Queries API用于查询指定时间范围内多个时间点的指标数据。

GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query_range
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query_range

参数说明如下表所示。

变量

是否必填

说明

query

具体的PromQL语句。更多信息,请参见PromQL语法

start

查询的起始时间点,Unix时间戳格式,精确到秒。

end

查询的截止时间点,Unix时间戳格式,精确到秒。

step

执行查询的间隔时间,单位:秒。

同时支持1s、2m、3h、4d等用法。更多信息,请参见Time Durations

timeout

执行查询的超时时间,单位:秒。

同时支持1s、2m、3h、4d等用法。更多信息,请参见Time Durations

lookback-delta

可用于自定义设置query.lookback-delta这项flag参数值,仅对当次Query有效,该值需遵循Time Durations用法,更多信息,请参见Time Durations。此参数表示PromQL计算中寻点过程的最大回溯区间,SLS时序库中该值默认为"3m"。

配置示例,请参考时序指标查询API

元数据查询API

Query Series API

Query Series API用于查询指定时间段内特定条件下的所有StoreView以及该StoreView下所有的Label数值对。

GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/series
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/series

参数说明如下表所示。

变量

是否必填

说明

match[]

筛选条件,例如up{instance="demo.*"}。

您可以设置一个或多个值。

start

查询的起始时间点,Unix时间戳格式,精确到秒。

默认为当前时间的5分钟之前。

end

查询的截止时间点,Unix时间戳格式,精确到秒。

默认为当前时间。

重要

如果startend参数都是自定义的,该API也只支持查询end时间点之前5分钟的数据,即查询 (end - 5 minute, end) 区间内的数据

Query Label Names API

查询指定时间段内特定条件下所有的LabelName。

GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/labels
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/labels

参数说明如下表所示。

变量

是否必填

说明

match[]

筛选条件,例如up{instance="demo.*"}。

您可以设置零个、一个或多个值。

start

查询区间的起始时间点,Unix时间戳格式,精确到秒。

默认为当前时间的5分钟之前。

end

查询区间的截止时间点,Unix时间戳格式,精确到秒。

默认为当前时间。

重要

如果startend参数都是自定义的,该API也只支持查询end时间点之前5分钟的数据,即查询 (end - 5 minute, end) 区间内的数据

Query Label Values API

Query Label Values API用于查询指定时间段内特定条件以及特定LabelName下所有的LabelValue信息。

重要

该接口URL中的<label_name>需替换为具体的LabelName。

GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/label/<label_name>/values

参数说明如下表所示。

变量

是否必填

说明

match[]

筛选条件,例如up{instance="demo.*"}。

您可以设置一个或多个值。

start

查询的起始时间点,Unix时间戳格式,精确到秒。

默认为当前时间的5分钟之前。

end

查询区间的截止时间点,Unix时间戳格式,精确到秒。

默认为当前时间。

重要

如果startend参数都是自定义的,该API也只支持查询end时间点之前5分钟的数据,即查询 (end - 5 minute, end) 区间内的数据

配置示例,请参考元数据查询API

后续步骤

查询时序型数据集

在左侧导航栏选择数据集 > 时序型数据集,查看已创建的时序型数据集。

image

更新时序型数据集

  1. 在数据集列表,鼠标悬浮在目标数据集上,单击image,然后单击修改

    image

  2. 修改数据集面板,您可以修改已关联的时序库,然后单击确定

    image

删除时序型数据集

在数据集列表,鼠标悬浮在目标数据集上,单击image,然后单击删除

image

相关文档