<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
问题
分析信息中心(代理性能、目标性能等)未显示任何信息 数据所有信息中心都会显示以下消息:
No traffic in the selected date range
错误消息
此问题不会导致可观察的错误。
可能的原因
下表列出了此问题的可能原因:
原因 | 适用于 |
---|---|
组织环境没有 API 流量 | 面向 Private Cloud 用户的 Edge |
数据在 Postgres 数据库中可用,但不在 界面 | 面向 Private Cloud 用户的 Edge |
Analytics 数据未推送到 Postgres 数据库 | 面向 Private Cloud 用户的 Edge |
Google Analytics 部署不正确 | 面向 Private Cloud 用户的 Edge |
Google Analytics 服务器 UUID 已过时 | 面向 Private Cloud 用户的 Edge |
没有组织环境的 API 流量
诊断
- 检查特定组织环境中的 API 代理是否有流量
尝试使用以下某个日期查看分析数据的具体时长
方法:
<ph type="x-smartling-placeholder">
- </ph>
- 为您的用户当前使用的任何 API 启用跟踪,并 检查您是否能够在跟踪记录中获取任何请求。
- 查看 NGINX 访问日志
(
/opt/apigee/var/log/edge-router/nginx/logs/access.log)
,看看是否有 特定持续时间内 API 代理的新条目。 - 如果您将 API 代理中的信息记录到 Syslog、Splunk、Loggly、 则您可以检查 API 代理的这些日志服务器中是否有任何条目, 具体时长
- 如果在指定时长内没有流量(没有 API 请求),则 Google Analytics 数据 不可用。您会看到“在所选日期范围内没有任何流量”数据分析中 信息中心。
分辨率
- 在特定组织环境中对一个或多个 API 代理进行一些调用。
- 等待几秒钟,然后查看“小时”标签页中的数据分析信息中心,看看是否 系统会显示数据
- 如果问题仍然存在,请继续执行 Postgres 中提供的数据 数据库,但不显示在界面中。
Postgres 数据库中可用的数据,但不显示在界面中
问题
首先,确定 Postgres 数据库中最新 Analytics 数据的可用性。
检查 Postgres Master 中是否提供最新的 Analytics 数据 节点:
- 登录到每个 Postgres 服务器,然后运行以下命令来验证您是否
在 Postgres 主节点上运行:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- 在 Postgres 主实例节点上,登录 PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- 在 Postgres 中使用以下 SQL 查询检查您的组织环境是否存在该表
数据库:
\d analytics."orgname.envname.fact"
- 使用以下 SQL 检查 Postgres 数据库中是否有最新数据
查询:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- 如果最新的时间戳很旧(或为 null),则表示数据 在 Postgres 数据库中提供。此问题的可能原因是 不会从 Qpid 服务器推送到 Postgres 数据库。请参阅未将 Analytics 数据推送到 Postgres 数据库。
- 如果主节点上的 Postgres 数据库中有最新数据,则遵循 以下步骤来诊断 Edge 界面中未显示数据的原因。
诊断
- 启用开发者工具
并在 Chrome 浏览器中使用
具体步骤如下:
<ph type="x-smartling-placeholder">
- </ph>
- 从开发者工具中选择“Network”(网络)标签。
- 开始录制。
- 重新加载 Analytics 信息中心。
- 在开发者工具的左侧面板中,选择 “apiproxy?_优化...”。
- 在开发者工具的右侧面板上,选择“Headers”并注意 “请求网址”。
- 以下是开发者工具的输出示例:
示例输出,显示了“网络”标签页的代理性能信息中心中使用的 API 的“开发者工具性能”信息中心
- 直接运行 Management API 调用,并检查是否获得了结果。下面是一个示例 API
调用代理性能信息中心内的“天”标签页:
curl -u username:password "http://management_server_IP_address:8080/v1/organizations/ org_name/environments/env_name/stats/apiproxy?limit=14400& select=sum(message_count),sum(is_error),avg(total_response_time), avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error), avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+ 18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
- 如果您看到成功响应但没有任何数据,则表示 由于网络原因,管理服务器无法从 Postgres 服务器提取数据 连接问题。
- 检查您是否能够从管理服务器连接到 Postgres 服务器:
telnet Postgres_server_IP_address 5432
- 如果无法连接到 Postgres 服务器,请检查是否有任何防火墙 对端口 5432 的限制
- 如果存在防火墙限制,则这可能是导致管理服务器的原因 但无法从 Postgres 服务器提取数据。
分辨率
- 如果存在防火墙限制,则删除这些限制,以便管理服务器可以 与 Postgres 服务器通信。
- 如果没有防火墙限制,则此问题可能是网络故障所致。
- 如果管理服务器出现任何网络故障,则重新启动可能可以解决 问题。
- 使用以下命令逐个重启所有管理服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- 检查您是否能够在 Edge 界面中查看分析数据。
如果您仍然看不到这些数据,请与 Apigee Edge 支持团队联系。
分析数据未推送到 Postgres 数据库
诊断
如果数据未从 Qpid 服务器推送到 Postgres 数据库(如 Postgres 数据库中可用的数据,但未在界面中显示中所述),请执行 执行下列步骤:
- 通过执行以下命令来检查每个 Qpid 服务器是否已启动并运行:
/opt/apigee/bin/apigee-service edge-qpid-server status
- 如果任何 Qpid 服务器出现故障,请将其重新启动。如果没有,请跳到第 5 步。
/opt/apigee/bin/apigee-service edge-qpid-server restart
- 等待一段时间,然后重新检查 Postgres 数据库中是否有最新数据。
- 登录 PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- 运行以下 SQL 查询以检查最新数据是否可用:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- 登录 PostgreSQL:
- 如果有最新数据,请跳过以下步骤并继续执行 解决部分。如果没有最新数据,请继续执行以下操作 步骤。
- 检查是否将来自 Qpid 服务器队列的消息推送到 Postgres 数据库。
- 执行
qpid-stat -q command
并检查 msgIn 和 msgOut 列值。 - 以下示例输出表明 msgIn 和 msgOut 不相等。这表示 未将消息从 Qpid 服务器推送到 Postgres 数据库。
- 执行
- 如果 msgIn 和 msgOut 列不匹配项,则检查 Qpid
服务器会记录
/opt/apigee/var/log/edge-qpid-server/system.log
,并查看 任何错误。 - 您可能会看到如下错误消息:“可能 PG 可能仍然无法正常运行”或
“严重:抱歉,过多客户端已存在”,如下图所示:
2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: sorry, too many clients already)
如果 Postgres Server 运行过多 SQL 查询或 CPU 无法响应 Qpid 服务器。
分辨率
- 重启 Postgres Server 和 PostgreSQL,如下所示:
/opt/apigee/bin/apigee-service edge-postgres-server restart
/opt/apigee/bin/apigee-service apigee-postgresql restart
- 此重启可确保之前的所有 SQL 查询都停止,并且应该允许新的 SQL 查询 Postgres 数据库的连接。
- 重新加载 Google Analytics 信息中心,检查 Google Analytics 数据是否正在显示。
如果问题仍然存在,请与 Apigee Edge 支持团队联系。
Google Analytics 部署不正确
诊断
- 使用以下 API 调用可获取 Google Analytics 部署状态:
curl -u user_email:password http://management_server_host:port /v1/organizations/orgname/environments/envname/provisioning/axstatus
- 通过 API 调用的结果检查 Qpid 和 Postgres 服务器的状态。
- 如果 Qpid 和 Postgres 服务器的状态显示为“SUCCESS”,则表示 分析服务器连接正确。继续查看已过时 Google Analytics 服务器 UUID。
- 如果 Qpid/Postgres 服务器的状态显示为“UNKNOWN”或“FAILURE”
表示相应服务器存在问题。
例如,以下场景显示了 Postgres 服务器的状态, "UNKNOWN":
如果在初始配置分析功能失败时,就可能会发生这种情况。这次失败 阻止邮件从 Management Servers 到达 Postgres 服务器。
分辨率
此问题通常可以通过重启显示“FAILURE”的服务器来解决或 “UNKNOWN”。
- 重启分析线路状态显示为“FAILURE”的每个服务器或“UNKNOWN”
创建 Deployment
/opt/apigee/apigee-service/bin/apigee-service component restart
- 例如:
<ph type="x-smartling-placeholder">
- </ph>
- 如果您在 Qpid 服务器上看到问题,请重启 Qpid 服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- 如果您在 Postgres 服务器上遇到此问题,请重启主实例和从属实例
Postgres Server 节点:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- 如果您在 Qpid 服务器上看到问题,请重启 Qpid 服务器:
- 在上面的示例中,“UNKNOWN”消息,因此您需要
重启主 Postgres 服务器和从 Postgres 服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
Google Analytics 服务器 UUID 过时
诊断
- 使用以下 API 调用获取分析配置:
curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
以下是上述 API 的示例输出:
[ { "name" : "axgroup001", "properties" : { "consumer-type" : "ax" }, "scopes" : [ "myorg~prod", "myorg~test" ], "uuids" : { "aries-datastore" : [ ], "postgres-server" : [ "6777...2db14" ], "dw-server" : [ ], "qpid-server" : [ "774e...fb23", "29f3...8c11" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "774e...8c11" ], "datastores" : [ "6777...db14" ], "properties" : { } } ], "data-processors" : { } } ]
- 确保输出中的以下信息正确无误:
<ph type="x-smartling-placeholder">
- </ph>
- “范围”中列出的组织环境名称元素。
- Postgres 服务器和 Qpid 服务器的 UUID。
- 通过对每个
Postgres 服务器节点:
curl 0:8084/v1/servers/self/uuid
- 通过在每个 Qpid 上运行以下命令来获取 Qpid 服务器 UUID
服务器节点:
curl 0:8083/v1/servers/self/uuid
- 通过对每个
Postgres 服务器节点:
- 如果所有信息均正确无误,请接着参阅 Google Analytics 数据 不会被推送到 Postgres 数据库。
- 如果 Postgres 和/或 Qpid 服务器的 UUID 不正确,则可能 管理服务器引用的是过时的 UUID。
分辨率
如需移除过时的 UUID 并添加正确的服务器 UUID,请联系 Apigee Edge 支持团队。