反模式:在 Postgres 数据库中向 Apigee 拥有的架构添加自定义信息

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

Edge API Analytics 是 Apigee Edge 提供的一项非常强大的内置功能。它会收集并分析流经 API 的大量数据。捕获的分析数据可以提供非常有用的数据洞见。例如,API 流量在一段时间内的趋势如何? 哪个 API 的使用频率最高?哪些 API 的错误率较高?

定期分析这些数据和数据洞见有助于采取适当的措施,例如根据当前用量对 API 进行未来容量规划、制定业务和未来投资决策等。

Google Analytics 数据及其存储

API Analytics 会捕获多种不同类型的数据,例如:

  • API 的相关信息 - 请求 URI、客户端 IP 地址、响应状态代码等
  • API 代理性能 - 成功/失败率、请求和响应处理时间等
  • 目标服务器性能 - 成功/失败率、处理时间
  • 错误信息 - 错误数量、故障代码、失败政策、Apigee 和目标服务器导致的错误数量。
  • 其他信息 - 开发者、开发者应用等发出的请求数量

所有这些数据都存储在 Apigee Edge 在 Postgres 数据库中创建和管理的 analytics 架构中。

通常,在常规 Edge 安装中,Postgres 将具有以下架构:

Edge 使用名为 analytics 的架构来存储每个组织和环境的所有分析数据。如果已安装创收功能,则会有一个 rkms 架构。其他架构适用于 Postgres 内部。

由于 Apigee Edge 会在运行时向 analytics 架构动态添加新的事实表,因此该架构将不断变化。Postgres 服务器组件会将事实数据汇总到汇总表中,这些表会加载到 Edge 界面中并在其中显示。

反模式

不建议直接使用 SQL 查询在专用云环境的 Postgres 数据库中向 Apigee 拥有的任何架构中添加自定义列、表和/或视图,因为这可能会产生不利影响。

下面我们通过一个示例来详细说明这一点。

假设已在分析架构下创建了一个名为 account 的自定义表,如下所示:

假设一段时间后,您需要将 Apigee Edge 从较低版本升级到较高版本。升级 Private Cloud Apigee Edge 需要升级 Postgres 及许多其他组件。如果向 Postgres 数据库添加了任何自定义列、表或视图,则 Postgres 升级会失败,并会出现引用自定义对象的错误,因为这些对象不是由 Apigee Edge 创建的。因此,Apigee Edge 升级也会失败,无法完成。

同样,在执行 Apigee Edge 维护活动(包括对 Postgres 数据库等 Edge 组件进行备份和恢复)期间,也可能会发生错误。

影响

  • 由于 Postgres 组件升级失败,并且出现了引用非 Apigee Edge 创建的自定义对象的错误,因此无法完成 Apigee Edge 升级。
  • 执行 Apigee Analytics 服务维护(备份/恢复)时出现不一致性(和失败)。

最佳做法

  • 请勿直接将任何以列、表、视图、函数和过程形式存在的自定义信息添加到 Apigee 拥有的任何架构(例如 analytics 等)
  • 如果需要支持自定义信息,可以使用 Statistics Collector 政策将其作为列(字段)添加到 analytics 架构中。

深入阅读