使用 API 查看日志

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

下载 API 监控日志,查看用于计算 API 监控信息中心中显示的指标的原始数据。您可以下载自定义时间范围、特定代理、特定状态代码和许多其他变量的日志。

注意:默认情况下,对 Logs API 的调用只会返回状态代码为 4xx 和 5xx 的结果,而不会返回状态代码为 2xx 的结果。这样做是为了限制结果数量,因为大多数结果的状态代码为 2xx。如需获取状态代码为 2xx 的结果,请在请求中添加 status=2xx。例如:https://apimonitoring.enterprise.apigee.com/logs?status=2xx

以下部分介绍了如何使用 API 管理日志:

如需详细了解 Logs API,请参阅 Logs API

如需了解这些示例中使用的 c网址 选项,请参阅使用 c网址

下载组织和环境的日志

使用 Logs API 下载特定组织和环境的日志:

https://apimonitoring.enterprise.apigee.com/logs

您必须使用 orgenv 查询参数传递组织和环境的名称。

默认情况下,该 API 会返回过去一小时内最新的 10 条日志条目。例如:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/logs?org=myorg&env=prod" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

按照获取 OAuth 2.0 访问令牌中的说明,将 $ACCESS_TOKEN 设置为您的 OAuth 2.0 访问令牌。

响应为日志条目的数组,格式如下:

[   
  {
"request":"GET /v1/o/myorg/z HTTP/1.1",
    "request_length":1349,
    "request_message_id":"rrt-0623eb157b650315c-c-ne-7785-16029140-1",
    "virtual_host":"api.enterprise.apigee.com",
    "response_size":144,
    "response_time":0.551,
    "response_status":"404",
    "timestamp":"2018-08-14T17:31:07Z",
    "fault_code":"messaging.adaptors.http.flow.ErrorResponseCode",
    "fault_flow":"-",
    "fault_policy":"null/null",
    "fault_proxy":
        "/organizations/myorg/environments/prod/apiproxies/myAPI/revisions/50",
    "fault_source":"target"
  },
  …
]

使用 fromto 查询参数指定采用 ISO 格式的时间范围。日期格式可以是:

  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss+00:00

例如:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/logs?org=myorg&env=prod&from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

该 API 包含许多可选查询参数。例如,如需查看名为 myAPI 的代理生成 HTTP 404 响应的日志,请执行以下操作:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/logs?org=myorg&env=prod&proxy=myAPI&status=404" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

如需返回超过 10 条日志条目,请设置 limit 查询参数。您可以将其设置为不超过 1000 的值:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/logs?org=myorg&env=prod&proxy=myAPI&status=404&limit=200" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

如需了解其他选项,请参阅 Logs API

列出与虚拟主机和基本路径关联的代理

借助边缘路由器上的虚拟主机,您可以指定域名、协议(例如 HTTP/HTTPS)和端口号。例如,您在边缘路由器上使用以下设置定义虚拟主机:

  • 主机别名 = apis.acme.com
  • port = 443
  • TLS 已启用

根据这些设置,向与此虚拟主机关联的 API 代理发出的请求采用以下形式:

https://apis.acme.com/proxy-base-path/resource-path

其中:

  • proxy-base-path 是在创建 API 代理时定义的,并且每个 API 代理都有唯一的 proxy-base-path
  • resource-path 是指可通过 API 代理访问的资源的路径。

如需详细了解虚拟主机,请参阅虚拟主机简介

通过向 Logs API 的以下资源发出 GET 请求,下载与特定虚拟主机和基本路径关联的 API 代理列表:

https://apimonitoring.enterprise.apigee.com/logs/apiproxies

您必须使用 orgenv 查询参数以及与虚拟主机和基本路径关联的 URI 传递组织和环境的名称。

例如,以下 API 调用会返回与虚拟主机 http://apis.acme.com 相关联且基本路径为 /v1/perf 的代理:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/logs/apiproxies?org=myorg&env=prod&select=http://apis.acme.com/v1/perf" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" 

按照获取 OAuth 2.0 访问令牌中的说明,将 $ACCESS_TOKEN 设置为您的 OAuth 2.0 访问令牌。

如需了解其他选项,请参阅 Logs API