您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
您可以使用下面介绍的 API 获取 API Monitoring 指标。指标是 API 监控根据 API 监控日志中包含的原始数据汇总的数据值。
以下部分介绍了如何使用 API 管理指标。
如需详细了解 Metrics API,请参阅 Metrics API。
如需了解这些示例中使用的 c网址 选项,请参阅使用 c网址。
Metrics API
用于向 Metrics API 发出 GET 请求的基本网址如下:
https://apimonitoring.enterprise.apigee.com/metrics/resource
其中 resource 对应于特定指标。下表列出了指标资源:
资源 | 说明 |
/traffic
|
获取流量指标。指定代理名称、间隔时间、时间范围、目标、状态代码等过滤条件。 |
/latency
|
获取请求的延迟时间指标
到 Edge 和后端目标。指定代理名称、间隔时间、目标、状态代码等过滤条件。 |
/targets
|
获取特定组织和环境的所有目标网域。 |
/alerthistory
|
获取特定组织和时间范围的提醒历史记录指标。 |
/alertinstance/instanceid
|
获取特定提醒实例 ID 的提醒历史记录指标。 |
/alertsummary
|
获取组织和时间范围内的提醒总数。 |
/faultcodenames
|
获取所有 faultcode 名称。 |
/faultcodes
|
获取故障代码。 |
/faultcodecategories
|
获取故障代码类别。 |
/faultcodesubcategories
|
获取故障代码子类别。 |
/faultcodedetails
|
获取所有故障代码及详细信息。 |
获取故障信息
/fault*
资源都会返回与 Edge 上可能存在的故障相关的元数据。例如,如需查看所有可能故障类别的列表,请执行以下操作:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/faultcodecategories" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $ACCESS_TOKEN
设置为您的 OAuth 2.0 访问令牌。
响应如下所示:
{
"faultCodeCategories":[
"","API Protocol","Developer/App","Extension Policy","Gateway",
"Mediation Policy","Mint","Security Policy","Sense","Traffic Mgmt Policy"
]
}
然后,您可以确定 API Protocol
类别的故障代码列表:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/faultcodes?faultCodeCategory=API Protocol" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
如需了解其他选项,请参阅 Metrics API。
捕获流量和延迟时间指标
Metrics API 提供了一些过滤条件,您可以将这些过滤条件应用于该 API,以便为计算指标指定自定义时间范围、代理、区域、环境和其他过滤条件。例如,如需查看过去一小时内所有环境每 10 分钟的每秒事务数 (tps) 指标,请执行以下操作:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=10m&groupBy=env&org=myorg" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $ACCESS_TOKEN
设置为您的 OAuth 2.0 访问令牌。
此调用会以如下形式返回结果:
{
"results":[
{
"series":[
{
"name":"proxy",
"tags":
{
"env":"prod",
"intervalSeconds":"60",
"org":"myorg",
"region":"myregion"
},
"columns":["time","tps"],
"values":[
["2018-08-15T13:10:00Z",5.03],
["2018-08-15T13:20:00Z",5.01],
["2018-08-15T13:30:00Z",5.81],
["2018-08-15T13:40:00Z",5.95],
…
]
},
…
}
}]
}
请注意 columns
属性如何指定 values
的格式。values
属性包含每 10 分钟计算一次的过去 10 分钟间隔内的 tps。
interval
查询参数用于定义指标保存到结果中的频率,以及结果中值的抽样窗口。在上面的示例中,系统会根据过去 10 分钟的数据计算该指标,并每 10 分钟将结果写入到结果中。
使用 from
和 to
查询参数指定采用 ISO 格式的时间范围。from
和 to
指定的时长上限为 24 小时。
日期格式可以是:
yyyy-mm-ddThh:mm:ssZ
yyyy-mm-ddThh:mm:ss+00:00
例如:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
或者,使用 from
和 to
查询参数指定相对时间范围,例如过去 1 小时:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
另一种方法是使用 proxy
查询参数显示单个代理的每秒事务数 (tps):
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
对于延迟时间指标,请指定与流量指标相同的许多条件。不过,对于 /latency
资源:
- 您必须将
percentile
查询参数指定为50
、90
、95
或99
。例如,如果您指定90
,API 会返回第 90 百分位的总响应延迟时间值。 windowsize
固定为 1 分钟。
例如,如需查看 1 分钟时间段内第 90 个百分位的总延迟时间指标,请执行以下操作:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/latency?percentile=90&select=totalLatency&from=-1h&to=now&interval=5m&windowsize=1m&groupBy=org,env,region&org=myorg" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
如需了解其他选项,请参阅 Metrics API。
捕获提醒的指标
Metrics API 可返回所有提醒、特定提醒或提醒摘要的指标。例如,如需获取某个组织过去一小时内的提醒历史记录,请使用以下语句:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&from=-1h&to=now" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $ACCESS_TOKEN
设置为您的 OAuth 2.0 访问令牌。
此 API 调用会以如下形式返回响应:
[
{
"id":"983c4c7a-c301-4697-95cc-9a7c53e05fac",
"organization":"myorg",
"environment":"prod",
"name":"Public Api 5xx error rate",
"type":"Alert",
"source":"https://www.apigee.net/sonar",
"raw_payload":"
{
\"reportUUID\":\"\",
\"reportEnabled\":false,
\"organization\":\"myorg\",
\"name\":\"Public Api 5xx error rate\",
\"self\":\"/alerts/95cc9ef4-345f-11e8-9fd3-12774584e062\",
\"description\":\"\",
\"conditions\":[
{
\"comparator\":\"\u003e\",
\"metric\":\"rate\",
\"durationSeconds\":3600,
\"name\":\"\",
\"description\":\"\",
\"threshold\":0.01,
\"dimensions\":
{
\"proxy\":\"myAPI\",
\"org\":\"myorg\",
\"env\":\"prod\",
\"region\":\"myRegion\",
\"statusCode\":\"5xx\"
}
}],
\"uuid\":\"95cc9ef4-345f-11e8-9fd3-12774584e062\",
\"playbook\":\"This is a test alert.\"
}",
"time":"2018-08-14T12:45:28Z"
},
…
]
然后,您可以使用返回的数组中的 id
来获取特定提醒的相关信息:
curl -X GET \ "https://apimonitoring.enterprise.apigee.com/metrics/alertinstance/983c4c7a-c301-4697-95cc-9a7c53e05fac" \ -H "accept: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN"
如需了解其他选项,请参阅 Metrics API。