查询时序数据
功能介绍
该接口用于查询指定时间范围内的监控时序数据,可以通过参数指定需要查询的数据维度,数据周期等。
URI
POST /v2/{project_id}/samples
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
租户从IAM申请到的projectid,一般为32位字符串。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
fill_value |
否 |
String |
用于对查询到的时序数据进行断点插值,默认值为-1。 -1:断点处使用-1进行表示。 0 :断点处使用0进行表示。 null:断点处使用null进行表示。 average:断点处使用前后邻近的有效数据的平均值进行表示,如果不存在有效数据则使用null进行表示。 |
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
X-Auth-Token |
是 |
String |
从IAM服务获取的用户Token。 |
|
Content-Type |
是 |
String |
指定类型为application/json。 |
|
X-Aom-Prometheus-Id |
否 |
String |
Prometheus实例ID,不填默认为默认prometheus实例 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
samples |
是 |
Array of QuerySample objects |
时序数据对象列表。 取值范围 JSON数组大小不超过20 |
|
statistics |
是 |
Array of strings |
统计方式。 取值范围 maximum,minimum,sum,average,sampleCount |
|
period |
是 |
Integer |
监控数据粒度。 取值范围 枚举值,取值范围: 60,1分钟粒度 300,5分钟粒度 900,15分钟粒度 3600,1小时粒度 |
|
time_range |
是 |
String |
timeRange用于指标查询时间范围,主要用于解决客户端时间和服务端时间不一致情况下,查询最近N分钟的数据。另可用于精确查询某一段时间的数据。 如: -1.-1.60(表示最近60分钟),不管当前客户端是什么时间,都以服务端时间为准查询最近60分钟。 1650852000000.1650852300000.5(表示GMT+8 2022-04-25 10:00:00至2022-04-25 10:05:00指定的5分钟) 格式: startTimeInMillis.endTimeInMillis.durationInMinutes 参数解释: startTimeInMillis: 查询的开始时间,格式为UTC毫秒,如果指定为-1,服务端将按(endTimeInMillis - durationInMinutes * 60 * 1000)计算开始时间。如-1.1650852300000.5,则相当于1650852000000.1650852300000.5 endTimeInMillis: 查询的结束时间,格式为UTC毫秒,如果指定为-1,服务端将按(startTimeInMillis + durationInMinutes * 60 * 1000)计算结束时间,如果计算出的结束时间大于当前系统时间,则使用当前系统时间。如1650852000000.-1.5,则相当于1650852000000.1650852300000.5 durationInMinutes:查询时间的跨度分钟数。 取值范围大于0并且大于等于(endTimeInMillis - startTimeInMillis) / (60 * 1000) - 1。当开始时间与结束时间都设置为-1时,系统会将结束时间设置为当前时间UTC毫秒值,并按(endTimeInMillis - durationInMinutes * 60 * 1000)计算开始时间。如:-1.-1.60(表示最近60分钟) 约束: 单次请求中,查询时长与周期需要满足以下条件: durationInMinutes * 60 / period <= 1440 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
namespace |
是 |
String |
指标命名空间。 取值范围 :
|
|
dimensions |
是 |
Array of DimensionSeries objects |
时间序列维度列表。 取值范围: 数组不能为空,同时数组中任何一个dimension对象name和value属性的值也不能为空。 |
|
metric_name |
是 |
String |
时间序列名称。 取值范围 名称长度为1~255个字符 |
响应参数
状态码: 200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
samples |
Array of SampleDataValue objects |
时间序列对象列表。 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
sample |
QuerySample object |
时间序列对象列表。 |
|
data_points |
Array of MetricDataPoints objects |
时序数据。 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
namespace |
String |
指标命名空间。 取值范围 :
|
|
dimensions |
Array of DimensionSeries objects |
时间序列维度列表。 取值范围: 数组不能为空,同时数组中任何一个dimension对象name和value属性的值也不能为空。 |
|
metric_name |
String |
时间序列名称。 取值范围 名称长度为1~255个字符 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
statistics |
Array of StatisticValue objects |
统计方式。 |
|
timestamp |
Long |
时间戳。 |
|
unit |
String |
时间序列单位。 |
状态码: 400
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
error_code |
String |
错误码。 |
|
error_msg |
String |
错误信息描述。 |
|
error_type |
String |
错误类型。 |
请求示例
查询最近5分钟内的监控时序数据
POST https://{Endpoint}/v2/{project_id}/samples
{
"samples" : [ {
"namespace" : "abc",
"metric_name" : "def",
"dimensions" : [ {
"name" : "instance_id",
"value" : "demo1"
} ]
} ],
"period" : 60,
"time_range" : "-1.-1.5",
"statistics" : [ "maximum", "minimum", "sum" ]
}
响应示例
状态码: 200
OK
请求执行完成。
{
"samples" : [ {
"sample" : {
"namespace" : "abc",
"metric_name" : "def",
"dimensions" : [ {
"name" : "ghi",
"value" : "lmn"
} ]
},
"data_points" : [ {
"timestamp" : "1467892800000",
"unit" : "Percent",
"statistics" : [ {
"statistic" : "maximum",
"value" : "23"
} ]
} ]
} ]
}
状态码: 400
BadRequest
非法请求。建议直接修改该请求,不要重试该请求。
{
"error_code" : "AOM.04008500",
"error_msg" : "internal server error",
"error_type" : "INTERNAL_SERVER_ERROR"
}
状态码
|
状态码 |
描述 |
|---|---|
|
200 |
OK 请求执行完成。 |
|
400 |
BadRequest 非法请求。建议直接修改该请求,不要重试该请求。 |
|
401 |
Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 |
|
403 |
Forbidden 请求被拒绝访问。返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 |
|
500 |
InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 |
|
503 |
ServiceUnavailable 被请求的服务无效。建议直接修改该请求,不要重试该请求。 |
错误码
请参见错误码。