API 分析概览

您正在查看 Apigee Edge 文档。
请查看 Apigee X 文档

本主题介绍 Edge API Analytics。

视频 :观看一段短视频,大致了解 Edge API Analytics 服务。

通过分析改善 API

Edge API Analytics 会收集并计算流经 API 代理的大量信息。您可以在 Edge 界面中使用图形和图表直观呈现这些数据,也可以使用 Edge Management API 下载原始数据进行离线分析。

Analytics(分析)可帮助您解答常见问题,例如:

  • 我的 API 流量在一段时间内的趋势如何?
  • 哪些 API 方法最受欢迎?
  • 我的主要开发者有哪些?
  • 什么时候 API 响应时间最快?最慢
  • 从地理位置角度看,在哪里查看 API 流量最多?

这些问题解答可帮助您改进 API、排查问题,并做出更好的与您的 API 程序相关的业务决策。

API Analytics 可帮助每个人改善

通过持续收集、分析和直观呈现数据,Edge API Analytics 可帮助您的 API 团队改进 API,并帮助应用开发者改进其应用:

alt_text
  • API 团队 - API 团队正逐渐探索内部系统,以创建有趣的 API。API 团队想要了解 API 程序的整体执行情况、各个 API 的运行方式以及如何改进其 API。
  • 应用开发者 - 与应用开发者共享分析信息,即可获得更好的应用。这些开发者正使用您的 API 进行创新,并构建创意应用,帮助企业增加收入。Analytics 可帮助应用开发者了解其应用的执行情况,以及他们对企业利润的贡献有多大。应用开发者希望了解如何改进其应用。
  • 运营团队 - 运营团队希望了解流量模式并预计何时添加后端资源或做出其他关键调整。
  • 企业所有者 - 企业所有者希望查看他们的 API 投资的收益情况,以及今后将来的 API 资金投向。

哪些类型的数据会收集并分析?

Edge API Analytics 会收集和分析流经 API 代理的各种数据,例如:

  • 响应时间
  • 请求延迟时间
  • 请求大小
  • 目标错误
  • API 产品名称
  • 开发者电子邮件地址
  • 应用名称
  • 其他

如需 API Analytics 收集的数据的完整列表,请参阅分析指标、维度和过滤器参考文档

如何收集自定义分析数据?

Edge 本身会收集大量数据。您可能还希望收集特定于 API 代理、应用、产品或开发者的自定义分析数据。例如,您可能希望从查询参数、请求标头、请求和响应正文或者您在 API 中定义的变量中收集分析数据。

您可以使用 StatsCollector 政策收集自定义分析数据。提取自定义数据后,您可以使用 Google Analytics(分析)界面或 API 来检查数据。 如需查看有关如何收集自定义分析数据的完整示例,请参阅使用自定义分析分析 API 消息内容

Google Analytics(分析)数据与 API Monitoring 数据之间的差异

本部分将介绍 Edge Analytics 收集的数据与 API 监控之间的一些细微差异。由于 API 监控和 Analytics(分析)使用不同的数据流水线,因此您可能会发现 Monitoring 生成的自定义报告与 Analytics 生成的报告之间存在细微的差异。例如,您可能会看到超时错误报告结果存在差异 - 后端超时(请求的 HTTP 状态代码 504)和客户端超时(HTTP 状态代码 499)。这些 ID 在 Google Analytics(分析)自定义报告中显示为状态代码 200,但在 Monitoring 自定义报告中显示为 504 或 499。

我的分析数据在何时可用,可用时长是多少?

可以通过以下两种时间间隔来控制您查看分析数据的时间和时长:

  • 数据延迟间隔 - 调用 API 代理后,系统最多可能需要 10 分钟才能获取数据以供显示或通过管理 API 调用。
  • 数据保留 - Edge 分析数据的保留时长因方案而异。根据您的方案,系统可能会提供过去 30 天、60 天、90 天或 365 天的分析数据。

如何访问我的分析数据?

Edge API Analytics 提供内置于 Edge 界面中的数据可视化工具。这些工具包括预定义的分析信息中心和自定义报告,让您可以在图表和图表中显示数据,并且可以深入了解按不同维度分组的数据(例如通过 API 代理、IP 地址或 HTTP 状态代码)。

此外,您还可以使用 Edge Management API 下载分析数据。下载后,您可以将这些数据导入到您自己的数据可视化工具或分析系统中。

分析信息中心

Edge 界面提供了一组预定义的信息中心,可用于查看分析数据。例如,以下图像显示了代理性能信息中心:

此信息中心包含如下图表:

  • 总流量 - Edge 为组织中 API 环境收到的 API 请求总数。
  • 流量成功 - 产生成功响应的请求总数。错误响应不计入。
  • 流量错误 - 所有失败的 API 请求总数;也就是说,请求不提供响应。计数包括代理错误(Apigee 端)和目标错误(后端服务)。
  • 平均 TPS - 每秒 API 请求数和生成的响应数。

其他预定义的信息中心包括:

如需详细了解这些预定义信息中心,请参阅使用分析信息中心

自定义报告

利用自定义报告,您可以深入到特定 API 指标,也可以查看想要查看的确切数据。您可以使用 Edge 中内置的任何分析数据或 StatsCollector 政策收集的自定义分析数据来创建自定义报告。

构建自定义报告时,您可选择要查看的数据(指标),以有意义的方式对数据进行分组(维度),并视情况限制根据数据的特定特征返回的数据(过滤)。

您还可以将自定义报告中显示的图表类型设置为柱形图或折线图。 下图显示了按 API 代理分组的每秒事务数示例:

  • 柱形 - 每个 API 代理由不同的柱形表示:

    自定义柱形图

  • 线条 - 每个 API 由不同的线条表示:

    自定义折线图

有关详情,请参阅 创建和管理自定义报告

Analytics API

使用 Edge Management API 下载分析数据。例如,您可以使用 API 构建自己的可视化工具,并将其嵌入到门户或自定义应用中。

下面是一个检索 API 代理分析数据的 API 调用示例:

curl  https://api.enterprise.apigee.com/v1/o/org_name/environments/test/stats/apiproxy?"select=sum(message_count)&timeRange=6/24/2018%2000:00~6/24/2018%2023:59&timeUnit=hour" \
-u email:password

此调用会返回:

  • 每个 API 代理的请求总数(消息计数)
  • 对于 24 小时期间
  • 按小时分组

timeRange 查询参数以以下形式指定时间段:

?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM

请注意 HH:MM 之前的 %20timeRange 参数要求在 HH:MM 之前使用采用网址编码的空格字符或 + 字符,例如 MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM

如需了解详情,请参阅 使用 Metrics API 衡量 API 计划性能。

将分析数据导出到 Google Cloud

您可以使用 Edge Management API 将一整天的所有分析数据从 Edge 导出到您自己的数据存储库,例如 Google Cloud StorageBigQuery。然后,您可以利用 Google Cloud BigQuery 和 TensorFlow 提供的强大的查询和机器学习功能来执行您自己的数据分析。

如需了解详情,请参阅从分析中导出数据

如何与应用开发者共享数据?

将应用开发者视为您的客户时,您想要确保他们拥有所需的工具和信息,以便充分利用您的 API。

alt_text

应用开发者不仅关注应用的质量,他们对您的 API 也非常感兴趣。基于 Drupal 的开发者门户包含一个可选的应用性能页面,旨在让应用开发者访问其应用的重要指标。本页面向开发者提供有关以下内容的信息:

  • 错误:我的应用发现了哪些 API 错误?
  • 性能:API 的速度目前是否较慢?哪些 API 方法通常较慢或目前较慢?
  • 可用性:API 现在是启动还是关闭?
  • 配额:您的 API 是否有配额?作为应用开发者,我如何处理配额?

如需了解详情,请参阅:

此外,您还可以通过以下方式与开发者共享分析:

如何生成完整的分析数据?

完整的分析是指什么?例如,您可以创建 API 代理,Edge 会收集该代理的分析数据。但是,调用 API 代理的开发者或应用的指标会怎么样?如果 Edge 不知道 API 调用是谁发出的,则无法收集这些数据。

您需要执行几个步骤,才能让 Edge 确定哪些开发者和哪些应用正在调用您的 API 代理。下面列出了这些步骤,其中包含指向更详细信息的链接:

  1. 创建一个或多个 API 产品,这是 API 代理和服务计划的分组。请参阅管理 API 产品
  2. 向 Edge 注册应用开发者。请参阅 注册应用开发者
  3. 为您的开发者注册应用并生成 API 密钥。请参阅 注册应用和管理 API 密钥
  4. 向您的 API 代理添加安全政策,以验证 API 密钥和/或安全令牌。请参阅以下主题:验证 API 密钥政策OAuthV2 政策验证 JWT 政策
  5. 如果您使用的是 Edge Microgate,请确保您已启用 Google Analytics(分析)插件(默认情况下处于启用状态)。如果停用分析插件,Edge Microgate 不会将分析数据发送到 Edge analytics。

以下教程将引导您完成必要步骤,从而查看开发者和应用的分析:通过要求 API 密钥保护 API使用 OAuth 保护 API

将 API Analytics 与 API Monitoring 进行比较

您可以同时使用 Edge API Monitoring 和 API Analytics。API Monitoring 会检查分析数据,以提供关于 API 性能的实时上下文数据洞见,让您可以快速诊断问题,并采取补救措施来确保业务连续性。API Monitoring 旨在快速发现 API 和后端中的问题。API Analytics 旨在捕获各种分析数据,以供多个不同团队使用,但数据通常用于在非实时场景中进行分析。

API 监控与 API 分析之间的主要区别之一是 API 监控中内置的提醒机制。借助提醒,您可以指定 HTTP 状态代码 (2xx/4xx/5xx)、延迟时间或故障代码阈值,一旦超过阈值,会向您的 Ops 团队触发提醒通知。您可以通过各种渠道(例如电子邮件、Slack、寻呼机或网络钩子)发送提醒通知,以便立即响应问题。

如需查看这些服务之间的更详细的比较,请参阅将 API Monitoring 与 Edge API Analytics 进行比较

更多信息