使用 API 查看指标数据

您正在查看的是 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 分钟向结果写入一次结果。

使用 fromto 查询参数指定 ISO 格式的时间范围。fromto 指定的最长时长为 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"

或者使用 fromto 查询参数指定相对时间范围,例如过去一小时:

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 查询参数指定为 50909599。例如,如果您指定 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