自定义变量对 Google Analytics(分析)自定义报告不可见

<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 服务器 问题。由于此错误,自定义变量可能不会出现在 自定义报告。

要确定自定义变量的缺失部分,请执行以下操作

  1. 使用以下命令生成 ZooKeeper 树:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. 在 ZooKeeper 树输出中搜索自定义变量。
  3. 如果 ZooKeeper 树中存在自定义变量,则执行 使用以下命令检查自定义变量是否已添加到 Postgres 数据库: <ph type="x-smartling-placeholder">
      </ph>
    1. 在 Postgres 节点上,登录 PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. 运行以下 SQL 查询:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. 您很有可能会在 事实表,这就是它没有显示在自定义维度中的原因。

分辨率

解决方案 #1:重启 Postgres 服务器

  1. 重启 Postgres 服务器,以强制其读取与 来自 ZooKeeper 的分析:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    如果问题仍然存在,请采用解决方案 2。

解决方案 2:启用属性强制添加功能

请按照以下步骤启用 forceonboard 属性:

  1. 在以下设备上创建 /opt/apigee/customer/application/postgres-server.properties 文件: 如果 Postgres 服务器计算机尚不存在,则将其更改为
  2. 将以下代码行添加到此文件中:
    conf_pg-agent_forceonboard=true
  3. 使用以下命令确保此文件归 Apigee 所有:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. 重启 Postgres 服务器:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. 如果您有多个 Postgres 服务器,请对所有的 Postgres 服务器。
  6. 取消部署和部署使用 StatisticsCollector 的 API 代理 政策。
  7. 运行 API 调用。
  8. 检查自定义变量是否显示在“自定义”的自定义维度中 举报。

如果问题仍然存在,请与 Apigee Edge 支持团队联系。