<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
问题
使用 StatisticsCollector 政策: 不会显示在 Edge 界面 Google Analytics 自定义报告的“自定义维度”下。
错误消息
未观察到任何错误。
可能的原因
下表列出了此问题的可能原因:
原因 | 适用于 |
---|---|
自定义变量不符合标准指南 | Edge 私有云和公有云用户 |
在实现 StatisticsCollector 政策的 API 代理上没有流量 | Edge 私有云和公有云用户 |
自定义变量未推送到 Postgres 服务器 | Edge Private Cloud 用户 |
点击表格中的链接可查看针对该问题的可能解决方案。
自定义变量不符合标准指南
诊断
如果 StatisticsCollector 政策中使用的自定义变量名称 遵循标准指南(请参阅 解决方案),则报告不会显示在自定义报告中。
以下代码段显示,变量名称“product id”包含空格 因此不会显示在自定义报告的自定义维度下。
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="productID" ref="product id" type="string">999999</Statistic> </Statistics> </StatisticsCollector>
分辨率
API 内的 StatisticsCollector 政策中使用的自定义变量名称 代理应遵循以下准则:
- 名称可包含 [a-z][0-9] 和“_”。
- 名称不能包含空格。例如,在上述代码示例中,变量名称 应更改为“product_id”。
- 忽略大小写。
- 通过以下链接的表格中列出的预留关键字 。例如,“user”开头。如需了解详情,请参阅 SQL 关键字。
如果问题仍然存在,请继续 在实现 StatisticsCollector 政策的 API 代理上没有流量。
实现了 StatisticsCollector 政策的 API 代理没有流量
诊断
如果实现 StatisticsCollector 的 API 代理上没有流量 则自定义变量不会显示在自定义报告中。
分辨率
对实现 StatisticsCollector 的 API 代理进行一些调用 政策。
等待一段时间,然后检查自定义变量是否显示在以下位置的自定义维度中: 自定义报告。
如果问题仍然存在,请继续执行自定义变量未推送至 Postgres Server。
自定义变量未推送到 Postgres 服务器
诊断
在 API 代理中创建自定义变量并执行 API 调用时, 变量首先会存储在消息处理器的内存中。讯息 然后,处理器将有关新变量的信息发送给 ZooKeeper, 接着将其发送到 Postgres 服务器,以将其作为一列添加到 Postgres 中 数据库。
有时,由于网络原因,ZooKeeper 发出的通知可能无法到达 Postgres 服务器 问题。由于此错误,自定义变量可能不会出现在 自定义报告。
要确定自定义变量的缺失部分,请执行以下操作:
- 使用以下命令生成 ZooKeeper 树:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
- 在 ZooKeeper 树输出中搜索自定义变量。
- 如果 ZooKeeper 树中存在自定义变量,则执行
使用以下命令检查自定义变量是否已添加到 Postgres
数据库:
<ph type="x-smartling-placeholder">
- </ph>
- 在 Postgres 节点上,登录 PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- 运行以下 SQL 查询:
select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'orgname.envname.fact';
- 在 Postgres 节点上,登录 PostgreSQL:
- 您很有可能会在 事实表,这就是它没有显示在自定义维度中的原因。
分辨率
解决方案 #1:重启 Postgres 服务器
- 重启 Postgres 服务器,以强制其读取与
来自 ZooKeeper 的分析:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
如果问题仍然存在,请采用解决方案 2。
解决方案 2:启用属性强制添加功能
请按照以下步骤启用 forceonboard 属性:
- 在以下设备上创建
/opt/apigee/customer/application/postgres-server.properties
文件: 如果 Postgres 服务器计算机尚不存在,则将其更改为 - 将以下代码行添加到此文件中:
conf_pg-agent_forceonboard=true
- 使用以下命令确保此文件归 Apigee 所有:
chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
- 重启 Postgres 服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- 如果您有多个 Postgres 服务器,请对所有的 Postgres 服务器。
- 取消部署和部署使用 StatisticsCollector 的 API 代理 政策。
- 运行 API 调用。
- 检查自定义变量是否显示在“自定义”的自定义维度中 举报。
如果问题仍然存在,请与 Apigee Edge 支持团队联系。