報表逾時

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

問題

當您使用 apigee-provision 指令碼建立新機構,有時指令碼就會結束並顯示錯誤訊息。按照這項錯誤後,如果您嘗試查看 Edge UI 資訊主頁或任何數據分析資訊主頁,就會看到新建機構「報告逾時」的錯誤訊息。

錯誤訊息

執行 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 伺服器建立多個數據分析群組。 邊緣私有雲使用者

原因:多個 AX Group 設定

診斷

  1. 執行以下 Analytics Groups Management API,然後判斷輸出內容是否顯示多個定義的 Analytics 群組。例如:

    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-001axgroup001 兩個數據分析群組。

  2. 請確認所有數據分析群組都已定義範圍。

    在上方顯示的範例分析群組輸出內容中,數據分析群組 axgroup-001 並未定義任何範圍,但仍將 Postgres 伺服器定義為資料儲存庫。

  3. 在 Qpid 伺服器上執行以下 Qpid 佇列統計資料指令,驗證步驟 2 中指出的分析群組是否不存在任何訊息。

    qpid-stat -q
    

    Qpid 佇列統計資料範例

    下列 Qpid 佇列統計資料顯示,如上所述範例 (axgroup-001) 中的特定分析群組佇列沒有任何訊息:

    佇列 dur autoDel 排除 訊息 msgIn msgOut 位元組 bytesIn bytesOut 圖示 bind
    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 分 524 公尺 524 公尺 0 分 0 分 2 分

    由於特定分析群組 axgroup-001 沒有任何訊息/流量,因此你觀察到「報表逾時」錯誤查看在 Edge UI 資訊主頁或數據分析資訊主頁

解析度

如要解決這個問題,請刪除沒有任何範圍且不會取得任何流量的 axgroup

請按照下列步驟刪除 axgroup

步驟 1:刪除特定 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}'
    
  2. 如有多位消費者,請重複上述的 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
    }
    
  3. 重新執行相同的 API,刪除目前範例中其他 UUID 為 7794c428-e553-4ed2-843d-69f93bbec8a3 的取用端。

步驟 2:移除用戶群組

  1. 請使用以下 Management 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

  1. 使用下列 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"
    
  2. 如果有多個 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 伺服器

  1. 如果只有一個 Postgres 伺服器,請使用下列 Management 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"
    
  2. 如果您有主從屬伺服器和 Postgres 從屬服務設定,請使用以下 Management 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 伺服器,因此您可以使用以下 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:移除數據分析群組

  1. 使用下列 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:檢查是否已完全移除群組

  1. 請使用下列管理 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 機器的下列程序:

  1. 重新啟動 apigee-qpidd。
  2. 重新啟動 Edge-qpid-server。
  3. 重新啟動 Edge-postgres-server。
  4. 重新啟動 apigee-postgresql。

步驟 8:驗證

確認資料是否已顯示在數據分析資訊主頁。

如果問題仍未解決,請參閱「Must Gather 診斷資訊」。

必須收集診斷資訊

按照上述說明操作後,如果問題仍未解決,請收集下列診斷資訊。與 Apigee Edge 支援團隊聯絡,並提供收集到的資訊。

  1. 私有雲安裝的架構設定 (設定主機數量、每個元件的數量)。
  2. 下列指令的輸出內容:

    1. Analytics 群組

      curl -u sysadminEmail:sysadminPwd   http://{mgmt-server-host}:8080/v1/analytics/groups/ax
      
    2. 每部 Qpid 機器的 Qpid 佇列統計資料

      qpid-stat -q
      
    3. Analytics 狀態

      curl -u sysadminEmail:sysadminPwd http://{mgmt-server-host}:8080/v1/organizations/{org-name}/environments/{environment-name}/provisioning/axstatus