分析カスタム レポートにカスタム変数が表示されない

症状

Edge UI で、Statistics Collector ポリシーで作成したカスタム変数が、[Analytics Custom Reports] の [Custom Dimensions] に表示されません。

エラー メッセージ

エラー メッセージは表示されません。

考えられる原因

この問題で考えられる原因は次のとおりです。

原因 対象
カスタム変数が標準のガイドラインに準拠していない Edge Private Cloud と Public Cloud のユーザー
Statistics Collector ポリシーを実装する API プロキシでトラフィックが発生していない Edge Private Cloud と Public Cloud のユーザー
カスタム変数が Postgres サーバーにプッシュされていない Edge Private Cloud ユーザー

この表のリンクをクリックすると、問題の解決策を確認できます。

カスタム変数が標準のガイドラインに準拠していない

診断

Statistics Collector ポリシーで使用されているカスタム変数名が標準のガイドライン(以下を参照)に準拠していない場合、この変数名はカスタム レポートに表示されません。

次のコード スニペッドでは、変数名 "TLS version" にスペースが含まれているため、この変数名はカスタム レポートのカスタム ディメンションに表示されません。

解決策

API プロキシの Statistics Collector ポリシーに使用するカスタム変数名は、次のガイドラインに準拠する必要があります。

  • 名前に使用できる文字は、a~z、0~9、_ です。
  • 名前にスペースは使用できません。たとえば、上のサンプルコードの場合、変数名を "TLS_version" または "tls_version" に変更する必要があります。
  • 大文字と小文字は区別されません。
  • 予約済みのキーワードは使用できません。たとえば、"user" は使用できません。詳しくは、SQL キーワードをご覧ください。

問題が解決しない場合は、Statistics Collector プロキシを実装する API プロキシでトラフィックが発生していないに進みます。

Statistics Collector ポリシーを実装する API プロキシでトラフィックが発生していない

診断

Statistics Collector ポリシーを実装する API プロキシでトラフィックが発生していない場合、カスタム レポートにカスタム変数が表示されません。

解決策

Statistics Collector ポリシーを実装する API プロキシを呼び出します。

しばらくしてから、カスタム レポートのカスタム ディメンションにカスタム変数が表示されているかどうか確認します。

問題が解決しない場合は、カスタム変数が Postgres サーバーにプッシュされていないに進みます。

カスタム変数が Postgres サーバーにプッシュされていない

診断

API プロキシでカスタム変数が作成され、API 呼び出しが行われると、変数が Message Processor のメモリ内に格納されます。新しい変数の情報は Message Processor から ZooKeeper に送信され、さらに Postgres サーバーに送信されて、Postgres データベースの列として追加されます。

ネットワークの問題で ZooKeeper からの通知が Postgres サーバーに届かないことがあります。このエラーが原因で、カスタム レポートにカスタム変数が表示されない場合があります。

カスタム変数の情報が欠落している場所を特定するには:

  1. 次のコマンドを使用して、ZooKeeper ツリーを生成します。
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. ZooKeeper ツリーの出力でカスタム変数を探します。
  3. ZooKeeper ツリーにカスタム変数が存在する場合は、次のコマンドを実行して、カスタム変数が Postgres データベースに追加されているかどうか確認します。
    1. Postgres ノードで PostgresSQL にログインします。
      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. ファクト テーブルにカスタム変数の列が存在しないことが原因で [Custom Dimensions] にカスタム変数が表示されない可能性が非常に高いと考えられます。

解決策

解決策 1: Postgres サーバーを再起動する

  1. Postgres サーバーを再起動して、Zookeeper から分析に関連するすべての情報を読み取ります。
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    問題が解決しない場合は、解決策 #2 を試してください。

解決策 2: forceonboard プロパティを有効にする

次の手順で 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. Statistics Collector ポリシーを使用する API プロキシのデプロイを解除し、デプロイします。
  7. API 呼び出しを実行します。
  8. カスタム レポートのカスタム ディメンションにカスタム変数が表示されているかどうか確認します。

問題が解決しない場合は、Apigee サポートにご連絡ください。