您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
使用下述 API 获取 API 监控指标。指标是 API Monitoring 根据 API 监控日志中包含的原始数据汇总的数据值。
以下部分介绍了如何使用 API 管理指标。
如需详细了解 Metrics API,请参阅 Metrics API。
如需了解这些示例中使用的 c网址 选项,请参阅使用 c网址。
Metrics API
用于向 Metrics API 发出 GET 请求的基础网址是:
https://apimonitoring.enterprise.apigee.com/metrics/resource
其中 resource 对应于一个特定指标。下表列出了指标资源:
资源 | 说明 |
/traffic
|
获取流量指标。指定代理名称、间隔、时间范围、目标、状态代码等过滤条件。 |
/latency
|
获取请求的延迟时间指标
到边缘和后端目标指定代理名称、间隔时间、目标、状态代码等过滤条件。 |
/targets
|
获取特定组织和环境的所有目标网域。 |
/alerthistory
|
获取特定组织和时间范围的提醒历史记录指标。 |
/alertinstance/instanceid
|
获取特定提醒实例 ID 的提醒历史记录指标。 |
/alertsummary
|
获取某个组织和时间范围的提醒总数。 |
/faultcodenames
|
获取所有错误代码名称。 |
/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"
将 $ACCESS_TOKEN
设置为 OAuth 2.0 访问令牌,如获取 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,以便为所计算的指标指定自定义时间范围、代理、区域、环境和其他过滤条件。例如,如需查看所有环境前一小时的每秒事务数 (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"
将 $ACCESS_TOKEN
设置为 OAuth 2.0 访问令牌,如获取 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
查询参数指定相对时间范围,例如过去一小时:
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 分钟时间段内第 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"
将 $ACCESS_TOKEN
设置为 OAuth 2.0 访问令牌,如获取 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。