使用 API 查看指标数据

您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
info

使用下述 API 获取 API Monitoring 指标。指标是 API Monitoring 根据 API Monitoring 日志中包含的原始数据汇总的数据值。

以下部分介绍了如何使用 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 分钟计算一次的 tps,适用于前一个 10 分钟的时间间隔。

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 分钟。

例如,如需查看 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