<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
问题
当您使用 apigee-provision 脚本创建新组织时,有时该脚本会退出并显示错误消息。此错误出现后,如果您尝试查看 Edge 界面信息中心或任何分析信息中心,则会看到新创建的组织显示“The report timed out”(报告超时)错误消息。
错误消息
当您运行 apigee-provision 脚本以创建新组织时,可能会看到以下错误消息:
!!!! Error !!!!
HTTP STATUS CODE: 400
{
"code" : "dataapi.service.PGFoundInMultipleGroups",
"message" : "dataapi.service.PGFoundInMultipleGroups",
"contexts" : [ ]
}
即使收到此错误,也可以在配置脚本退出后对新创建的组织执行操作。但是,当您尝试查看 Edge 界面信息中心时,会看到新创建的组织显示以下错误消息:
The report timed out
Try again with a smaller date range or a larger aggregation interval.
以下是显示此错误的屏幕截图:
可能的原因
原因 | 说明 | 适用的问题排查说明 |
多个 AX 群组设置 | 使用同一组 Postgres 服务器创建了多个分析组。 | 边缘私有云用户 |
原因:多个 AX 组设置
诊断
执行以下 Analytics Groups Management API,确定输出结果是否显示了已定义的多个分析群组。例如:
curl -u adminEmail:adminPwd http://<ms_ip>:8080/v1/analytics/groups/ax
输出结果示例:显示两个分析群组
{ "name":"axgroup-001", "properties":{ }, "scopes":[ ], "uuids":{ "qpid-server":[ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "postgres-server":[ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ] }, "consumer-groups":[ { "name":"consumer-group-001", "consumers":[ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "datastores":[ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "properties":{ } } ], "data-processors":{ } }, { "name":"axgroup001", "properties":{ "consumer-type":"ax" }, "scopes":[ "017pdspoint~dev", "010test~dev", "019charmo~dev", "009gcisearch1~dev", "000fj~trial-fjwan", "009dekura~dev", "008pisa~dev", "004fjadrms~dev", "018k5billing~dev", "004study14~dev", "001teama~dev", "005specdb~dev", "test~dev", "000fj~prod-fjwan", "012pjweb~dev", "020workflow~dev", "007ikou~prod-fjwan", "003asano~dev", "013mims~dev", "006studyhas~dev", "006efocus~dev", "002wfproto~dev", "008murahata~dev", "016mediaapi~dev", "015skillnet~dev", "014aclmanager~dev", "010fjppei~dev", "000fj~trial", "003esupport~dev", "000fj~prod", "005ooi~dev", "test~elb1", "007fjauth~dev", "011osp~dev", "002study~dev", "999test~dev" ], "uuids":{ "qpid-server":[ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "aries-datastore":[ ], "postgres-server":[ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "dw-server":[ ] }, "consumer-groups":[ { "name":"consumer-group-001", "consumers":[ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "datastores":[ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "properties":{ } } ], "data-processors":{ } }
此输出信息表明有两个分析组 axgroup-001 和 axgroup001。
检查以确保所有分析群组都已定义范围。
在上面显示的分析组输出示例中,分析组 axgroup-001 未定义任何范围,但仍有将 Postgres 服务器定义为数据存储区。
在 Qpid 服务器上执行以下 Qpid 队列统计信息命令,并验证是否没有消息发送到第 2 步中确定的特定分析组。
qpid-stat -q
Qpid 队列统计信息示例
以下 Qpid 队列统计数据表明,上述示例 (axgroup-001) 中的特定分析组队列没有任何消息:
队列 Dur autoDel 排除 消息 msgIn msgOut 字节 bytesIn bytesOut 缺点 绑定 140995fe-71a7-4000-a1f4-71b7a951da7f:0.0 是 是 0 次 0 次 0 次 0 次 0 次 0 次 1 次 2 次 ax-q-axgroup-001-consumer-group-001 是 0 次 0 次 0 次 0 次 0 次 0 次 12 2 次 ax-q-axgroup-001-consumer-group-001-dl 是 0 次 0 次 0 次 0 次 0 次 0 次 0 次 2 次 ax-q-axgroup001-consumer-group-001 是 0 次 24.1 万 24.1 万 0 次 21.7 克 21.7 克 12 2 次 ax-q-axgroup001-consumer-group-001-dl 是 323 323 0 次 5,240 万 5,240 万 0 次 0 次 2 次 由于特定分析组 axgroup-001 没有消息/流量传入,因此您会观察到错误“报告超时”在 Edge 界面信息中心或分析信息中心查看。
分辨率
如需解决此问题,请删除没有任何范围且未获得任何流量的 axgroup
。
请按照以下步骤删除 axgroup
:
第 1 步:删除特定轴组的使用方。
使用以下 Management API 从
axgroup
中移除每个使用方:curl -v -u admin@email.com:password -X DELETE -H 'Accept:application/json' -H 'Content-Type:application/json' 'http://{mgmt-server-host}:8080/v1/analytics/groups/ax/{axgroup-name}/consumer-groups/{consumer-group-name}/consumers/{uuid-of the consumer}'
如果有多个使用方,请重复上述相同的 API 调用,并在单独的 API 调用中提及每个使用方的 UUID。
对于上面所示的示例,以下 API 会移除 UUID 为
5c1e9690-7b58-499a-a4bb-d54454474b8f:
的使用方curl -v -X DELETE -H 'Accept:application/json' -H 'Content-Type:application/json' 'http://localhost:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/5c1e9690-7b58-499a-a4bb-d54454474b8f' { "name" : "axgroup-001", "properties" : { }, "scopes" : [ ], "uuids" : { "qpid-server" : [ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "postgres-server" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "datastores" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "properties" : { } } ], "data-processors" : { } * Connection #0 to host localhost left intact * Closing connection #0 }
在本示例中,重新运行同一 API 以删除 UUID 为 7794c428-e553-4ed2-843d-69f93bbec8a3 的其他使用方。
第 2 步:移除使用方群组
使用以下管理 API 从特定
axgroup
中移除使用方群组:curl -v -u admin@email.com:password -X DELETE 'http://{mgmt-server-host}:8080/v1/analytics/groups/ax/{axgroup-name}/consumer-groups/{consumer-group-name}'
示例:
以下 API 会删除使用方群组名称 consumer-group-001::
curl -v -X DELETE 'http://localhost:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001' { "name" : "axgroup-001", "properties" : { }, "scopes" : [ ], "uuids" : { "qpid-server" : [ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "postgres-server" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ ], "datastores" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "properties" : { } } ], "data-processors" : { } * Connection #0 to host localhost left intact * Closing connection #0 }
第 3 步:从 axgroup 中删除 qpid-servers
使用以下 Management API 从特定
axgroup
中删除qpid-servers
。curl -X DELETE -u admin@email.com "http://localhost:8080/v1/analytics/groups/ax/{axgroup-name}/servers?uuid={qpid-server-uuid}type=qpid-server" -H "Content-type: application/json"
如果有多个 Qpid 服务器,则重新运行相同的 API 调用。
示例:
使用以下 API 删除当前示例中具有 UUID 为 7794c428-e553-4ed2-843d-69f93bbec8a3 的 Qpid 服务器:
curl -X DELETE "http://localhost:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=7794c428-e553-4ed2-843d-69f93bbec8a3&type=qpid-server" -H "Content-type: application/json" { "name" : "axgroup-001", "properties" : { }, "scopes" : [ ], "uuids" : { "qpid-server" : [ "5c1e9690-7b58-499a-a4bb-d54454474b8f" ], "postgres-server" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ ], "datastores" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "properties" : { } } ], "data-processors" : { } }
第 4 步:从 axgroup 中删除 postgres 服务器
如果只有一个 Postgres 服务器,请使用以下管理 API 删除 Postgres 服务器:
curl -v -X DELETE -H 'Accept:application/json' "http://{mgmt-server-host}:8080/v1/analytics/groups/ax/{axgroup-name}/servers?uuid={postgres-server-uuid}&type=postgres-server&force=true"
如果您设置了主实例和 Postgres 从属实例,请使用以下管理 API 删除 Postgres 服务器
curl -v -X DELETE -H 'Accept:application/json' "http://{mgmt-server-host}:8080/v1/analytics/groups/ax/{axgroup-name}/servers?uuid={postgres-master-uuid,postgres-slave-uuid}&type=postgres-server&force=true"
示例:
在上述示例中,存在主 Postgres 服务器和从 Postgres 服务器,因此您可以使用以下 API 删除 Postgres 服务器:
curl -v -X DELETE -H 'Accept:application/json' "http://localhost:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=3b28b790-ec4e-45c5-a8d0-6d6f2088da65,750cd8ba-1799-4dfb-8c74-548010e95e5e&type=postgres-server&force=true" { "name" : "axgroup-001", "properties" : { }, "scopes" : [ ], "uuids" : { "qpid-server" : [ ], "postgres-server" : [ ] }, "consumer-groups" : [ ], "data-processors" : { } * Connection #0 to host localhost left intact * Closing connection #0 }
第 5 步:移除分析群组
使用以下 Management API 移除该分析群组:
curl -v -X DELETE "http://{mgmt-server-host}:8080/v1/analytics/groups/ax/{axgroup-name}"
示例:
curl -v -X DELETE "http://localhost:8080/v1/analytics/groups/ax/axgroup-001" { "properties" : { }, "scopes" : [ ], "uuids" : { }, "consumer-groups" : [ ], "data-processors" : { } * Connection #0 to host localhost left intact * Closing connection #0 }
第 6 步:检查群组是否已彻底移除
使用以下 Management API 检查特定分析组是否已完全移除:
curl -v -u admin@email.com -X GET "http://{mgmt-server-host}:8080/v1/analytics/groups/ax
示例:
curl localhost:8080/v1/analytics/groups/ax [ { "name" : "axgroup001", "properties" : { "consumer-type" : "ax" }, "scopes" : [ "017pdspoint~dev", "010test~dev", "019charmo~dev", "009gcisearch1~dev", "000fj~trial-fjwan", "009dekura~dev", "008pisa~dev", "004fjadrms~dev", "018k5billing~dev", "004study14~dev", "001teama~dev", "005specdb~dev", "test~dev", "000fj~prod-fjwan", "012pjweb~dev", "020workflow~dev", "007ikou~prod-fjwan", "003asano~dev", "013mims~dev", "006studyhas~dev", "006efocus~dev", "002wfproto~dev", "016mediaapi~dev", "015skillnet~dev", "014aclmanager~dev", "010fjppei~dev", "000fj~trial", "003esupport~dev", "000fj~prod", "005ooi~dev", "test~elb1", "007fjauth~dev", "011osp~dev", "002study~dev" ], "uuids" : { "qpid-server" : [ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "aries-datastore" : [ ], "postgres-server" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "dw-server" : [ ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "5c1e9690-7b58-499a-a4bb-d54454474b8f", "7794c428-e553-4ed2-843d-69f93bbec8a3" ], "datastores" : [ "3b28b790-ec4e-45c5-a8d0-6d6f2088da65:750cd8ba-1799-4dfb-8c74-548010e95e5e" ], "properties" : { } } ], "data-processors" : { } } ]
请注意,上面的输出中没有与特定分析组 axgroup-001 相关的信息。这确认 axgroup-001 已被完全移除。
第 7 步:重启进程
Qpid 和 Postgres 机器上的以下进程:
- 重启 apigee-qpidd。
- 重启 edge-qpid-server。
- 重启 Edge-postgres-server。
- 重启 apigee-postgresql。
第 8 步:验证
验证数据是否显示在分析信息中心内。
如果问题仍然存在,请参阅必须收集诊断信息。
必须收集的诊断信息
如果按照上述说明操作后问题仍然存在,请收集以下诊断信息。请与 Apigee Edge 支持团队联系,并分享收集到的信息。
- 私有云安装的架构设置(设置的主机数量、每个组件的数量)。
以下命令的输出:
Google Analytics 群组
curl -u sysadminEmail:sysadminPwd http://{mgmt-server-host}:8080/v1/analytics/groups/ax
每台 Qpid 机器上的 Qpid 队列统计信息
qpid-stat -q
Google Analytics 状态
curl -u sysadminEmail:sysadminPwd http://{mgmt-server-host}:8080/v1/organizations/{org-name}/environments/{environment-name}/provisioning/axstatus