更新时间:2024-08-02 GMT+08:00

统计事件告警信息

功能介绍

该接口用于分段统计指定条件下的事件、告警。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/events/statistic

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户从IAM申请到的projectid,一般为32位字符串。

表2 Query参数

参数

是否必选

参数类型

描述

type

String

查询类型。type=active_alert代表查询活动告警,type=history_alert代表查询历史告警。不传或者传其他值则返回指定查询条件的所有信息。

枚举值:

  • history_alert

  • active_alert

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

从IAM服务获取的用户Token。

Content-Type

String

指定类型为application/json。

枚举值:

  • application/json

表4 请求Body参数

参数

是否必选

参数类型

描述

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

step

Long

统计步长。毫秒数,例如一分钟则填写为60000。

search

String

模糊查询匹配字段,可以为空。如果值不为空,可以模糊匹配metadata字段中的必选字段的值。

sort

sort object

返回列表的排序方式,可以为空。

metadata_relation

Array of RelationModel objects

查询条件组合,可以为空。

表5 sort

参数

是否必选

参数类型

描述

order_by

Array of strings

排序字段列表。会根据列表中定义顺序对返回列表进行排序。

order

String

排序方式枚举值。asc代表正序,desc代表倒序。

枚举值:

  • asc

  • desc

表6 RelationModel

参数

是否必选

参数类型

描述

key

String

指定查询字段的key,对应metadata里面的key 。

value

Array of strings

查询条件中指定key的值。

relation

String

该条件与其他条件的组合方式。 AND:必须满足所有条件; OR:可以满足其中一个条件; NOT:必须不满足所有条件。

枚举值:

  • AND

  • OR

  • NOT

响应参数

状态码: 200

表7 响应Body参数

参数

参数类型

描述

step

Long

统计步长。毫秒数,例如一分钟则填写为60000。

timestamps

Array of longs

统计结果对应的时间序列。

series

Array of EventSeries objects

事件或者告警不同级别相同时间序列对应的统计结果。

summary

Map<String,Integer>

各类告警信息的数量汇总

表8 EventSeries

参数

参数类型

描述

event_severity

String

事件或者告警级别枚举类型。

枚举值:

  • Critical

  • Major

  • Minor

  • Info

values

Array of integers

事件或者告警统计结果。

状态码: 400

表9 响应Body参数

参数

参数类型

描述

error_code

String

响应码。

error_msg

String

调用失败响应信息描述。

error_type

String

调用失败类型。

trace_id

String

请求id

状态码: 401

表10 响应Body参数

参数

参数类型

描述

error_code

String

响应码。

error_msg

String

调用失败响应信息描述。

error_type

String

调用失败类型。

trace_id

String

请求id

状态码: 403

表11 响应Body参数

参数

参数类型

描述

error_code

String

响应码。

error_msg

String

调用失败响应信息描述。

error_type

String

调用失败类型。

trace_id

String

请求id

状态码: 500

表12 响应Body参数

参数

参数类型

描述

error_code

String

响应码。

error_msg

String

调用失败响应信息描述。

error_type

String

调用失败类型。

trace_id

String

请求id

状态码: 503

表13 响应Body参数

参数

参数类型

描述

error_code

String

响应码。

error_msg

String

调用失败响应信息描述。

error_type

String

调用失败类型。

trace_id

String

请求id

请求示例

以步长step查询当前时间范围(time_range)内的事件、告警统计信息。

https://{endpoint}/v2/{project_id}/events/statistic

{
  "time_range" : "-1.-1.5",
  "step" : 60000
}

响应示例

状态码: 200

OK 请求响应成功。

{
  "series" : [ {
    "event_severity" : "Critical",
    "values" : [ 2, 3, 3, 1, 0 ]
  }, {
    "event_severity" : "Major",
    "values" : [ 4, 3, 5, 4, 0 ]
  }, {
    "event_severity" : "Minor",
    "values" : [ 3, 1, 1, 1, 0 ]
  }, {
    "event_severity" : "Info",
    "values" : [ 0, 0, 0, 0, 0 ]
  } ],
  "step" : 60000,
  "summary" : {
    "critical_count" : 9,
    "info_count" : 0,
    "major_count" : 16,
    "minor_count" : 6
  },
  "timestamps" : [ 1711788600000, 1711788660000, 1711788720000, 1711788780000, 1711788840000 ]
}

状态码: 400

BadRequest。非法请求。 建议直接修改该请求,不要重试该请求。

{
  "error_code" : "AOM.08033002",
  "error_message" : "The request body is illegal",
  "trace_id" : ""
}

状态码: 401

Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。

{
  "error_code" : "AOM.0403",
  "error_message" : "auth failed.",
  "error_type" : "AUTH_FAILED",
  "trace_id" : null
}

状态码: 403

Forbidden 请求被拒绝访问。返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。

{
  "error_code" : "AOM.0403",
  "error_message" : "auth failed.",
  "error_type" : "AUTH_FAILED",
  "trace_id" : null
}

状态码: 500

InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。

{
  "error_code" : "APM.00000500",
  "error_message" : "Internal Server Error",
  "trace_id" : ""
}

状态码: 503

ServiceUnavailable 被请求的服务无效。建议直接修改该请求,不要重试该请求。

{
  "error_code" : "AOM.0503",
  "error_message" : "SC_NOT_IMPLEMENTED",
  "error_type" : "SC_NOT_IMPLEMENTED"
}

状态码

状态码

描述

200

OK 请求响应成功。

400

BadRequest。非法请求。 建议直接修改该请求,不要重试该请求。

401

Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。

403

Forbidden 请求被拒绝访问。返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。

500

InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。

503

ServiceUnavailable 被请求的服务无效。建议直接修改该请求,不要重试该请求。

错误码

请参见错误码