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

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

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

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

Google Analytics(分析)数据及其存储

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

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

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

通常,在原版 Edge 安装中,Postgres 将采用以下架构:

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

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

反模式

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

让我们举个例子来详细解释一下。

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

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

同样地,在 Apigee Edge 维护活动期间,系统会执行 Edge 组件(包括 Postgres 数据库)的备份和恢复操作。

影响

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

最佳做法

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

深入阅读