症状
apigee-provision スクリプトを使用して新しい組織を作成すると、スクリプトが終了し、エラー メッセージが返されることがあります。このエラーの後、Edge UI ダッシュボードまたは分析ダッシュボードを表示しようとすると、新しく作成した組織に「The report timed out」というエラー メッセージが表示されます。
エラー メッセージ
apigee-provision スクリプトを実行して新しい組織を作成すると、次のエラー メッセージが表示されることがあります。
!!!! Error !!!!
HTTP STATUS CODE: 400
{
"code" : "dataapi.service.PGFoundInMultipleGroups",
"message" : "dataapi.service.PGFoundInMultipleGroups",
"contexts" : [ ]
}
このエラーが発生しても、プロビジョニング スクリプトが終了すれば、新規に作成した組織を操作できます。ただし、Edge UI ダッシュボードを表示しようとすると、新しく作成した組織に以下のエラー メッセージが表示されます。
The report timed out
Try again with a smaller date range or a larger aggregation interval.
エラーが表示されたスクリーンショットは次のとおりです。
考えられる原因
原因 | 説明 | トラブルシューティング手順の適用対象 |
複数の AX グループが設定されている | Postgres サーバーの同じセットに複数の分析グループが作成されています。 | Edge Private Cloud ユーザー |
原因: 複数の AX グループが設定されている
診断
次の分析グループの管理 API を実行し、複数の分析グループが定義されているかどうか確認します。例:
curl -u adminEmail:adminPwd http://<ms_ip>:8080/v1/analytics/groups/ax
2 つの分析グループが表示されている出力例
{ "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 という 2 つの分析グループが表示されています。
すべての分析グループにスコープが定義されているかどうか確認します。
上の出力例では、分析グループ axgroup-001 にスコープが定義されていません。Postgres サーバーがデータストアとして定義されています。
Qpid サーバーで次の Qpid キュー統計コマンドを実行し、手順 2 の分析グループに対するメッセージがあるかどうか確認します。
qpid-stat -q
Qpid キュー統計の例
次の Qpid キュー統計は、上記の例の分析グループ(axgroup-001)に対するメッセージがないことを表しています。
キュー dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind 140995fe-71a7-4000-a1f4-71b7a951da7f:0.0 Y Y 0 0 0 0 0 0 1 2 ax-q-axgroup-001-consumer-group-001 Y 0 0 0 0 0 0 12 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 0 0 0 0 0 0 2 ax-q-axgroup001-consumer-group-001 Y 0 241K 241K 0 21.7g 21.7g 12 2 ax-q-axgroup001-consumer-group-001-dl Y 323 323 0 52.4m 52.4m 0 0 2 特定の分析グループ axgroup-001 に対するメッセージ / トラフィックはないため、Edge UI ダッシュボードまたは分析ダッシュボードに "The report timed out" エラーが表示されます。
解決策
この問題を解決するには、スコープが未定義でトラフィックが発生していない axgroup
を削除します。
次の手順で axgroup
を削除します。
手順 1: 特定の AX グループのコンシューマを削除する
次の管理 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 呼び出しを繰り返します。コンシューマの UUID を指定して、コンシューマごとに別の API 呼び出しを行います。
上の例の場合、次の 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: AX グループから qpid-servers を削除します。
次の管理 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: AX グループから postgres サーバーを削除する
Postgres サーバーが 1 つしかない場合は、次の管理 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 を使用します。
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: 分析グループを削除する
次の管理 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: グループが完全に削除されたどうか確認する
次の管理 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 サポートに連絡して、収集した情報を提供してください。
- Private Cloud のアーキテクチャの設定(ホスト数、コンポーネントの数)。
次のコマンドの出力:
分析グループ
curl -u sysadminEmail:sysadminPwd http://{mgmt-server-host}:8080/v1/analytics/groups/ax
各 Qpid マシンの Qpid キュー統計
qpid-stat -q
分析ステータス
curl -u sysadminEmail:sysadminPwd http://{mgmt-server-host}:8080/v1/organizations/{org-name}/environments/{environment-name}/provisioning/axstatus