Dgraphログ

データ・ドメイン内のDgraphノードはいずれも、2つのログを作成します。

これらのDgraphログを使用して、問合せのトラブルシューティングや、特定の問合せまたは更新のパフォーマンスの追跡を行うことができます。

デフォルトで、Dgraphログは、$DOMAIN_HOME/EndecaServer/logsディレクトリに格納されます。たとえば、ドメイン名がendeca_server_domainの場合、Windowsのパス名は次のようになります。
C:\Oracle\Middleware\user_projects\domains\endeca_server_domain\EndecaServer\logs

ログに別の場所を指定するには、EndecaServer.properties構成ファイル内のendeca-logs-dirパラメータでパスを変更します。

Dgraphログはテキスト・ファイルのため、テキスト・エディタを使用して表示できます。

Dgraphリクエスト・ログ

Dgraphリクエスト・ログ(問合せログとも呼ばれる)には、処理されるリクエストに対して1つのエントリが含まれます。リクエストは、タイムスタンプでソートされます。

Dgraphリクエスト・ログのデフォルト名は次のとおりです。
dataDomainName.reqlog
ここで、dataDomainNameは、Dgraphノードがサービスを提供しているEndecaデータ・ドメインの名前です。

また、/admin/dataDomainName?op=logrollコマンドを実行すると、問合せログ・ロールが強制実行されますが、リクエスト・ログが再マップされてしまいます。

Dgraphリクエスト・ログの書式は、次の情報を示す14個のフィールドで構成されます。
  • フィールド1: タイムスタンプ(UNIX時間(ミリ秒))
  • フィールド2: クライアントIPアドレス
  • フィールド3: 外部トランザクションID (必要な場合)
  • フィールド4: リクエストID
  • フィールド5: レスポンス・サイズ(バイト)
  • フィールド6: 合計時間(ミリ秒の小数部)
  • フィールド7: 処理時間(ミリ秒の小数部)
  • フィールド8: HTTPレスポンス・コード(クライアント切断時は0)
  • フィールド9: - (未使用)
  • フィールド10: キュー・ステータス(リクエスト到着時、正数の場合はキューのリクエストの数、負数の場合は同じ優先度の使用可能なスロットの数)
  • フィールド11: スレッドID
  • フィールド12: HTTP URL (URLエンコード)
  • フィールド13: HTTP POST本体(URLエンコード、デフォルトで64KBに切捨て、空の場合)
  • フィールド14: HTTPヘッダー(URLエンコード)

情報を使用できないフィールドまたは関連していないフィールドには、ダッシュ(-)が入力されます。

デフォルトでは、Dgraphによって、POSTリクエスト本体の内容が64Kに切り捨てられます。このデフォルト設定により、特に多数のレコードをデータ・ドメインに追加する処理中に、ログのディスク領域が節約されます。POSTリクエスト本体の内容全体のログを確認する必要がある場合、Oracleサポートに連絡してください。

Dgraph stdout/stderrログ

Dgraph stdout/stderrログのデフォルト名は、次のとおりです。
dataDomainName.out

Dgraph stdout/stderrログには、起動メッセージに加え、警告およびエラー・メッセージが含まれます。Dgraph -vフラグを使用すると、ログの冗長度を上げることができます。ロギング変数を設定して、指定された機能のロギング冗長度を切り替えることもできます(「サポートされるロギング変数のリスト」を参照してください)。

Dgraph stdout/stderrログでは、システムのローカル・タイムゾーンを使用して起動時間と停止時間(およびその他の情報メッセージ)が報告され、ゾーン・ラベルは表示されませんが、警告メッセージとエラー・メッセージがUTCで表示されます。

Dgraphリクエスト・ログでのgrepの使用

パフォーマンス問題を診断する際には、grepを固有の文字列とともに使用すると、Dgraphリクエスト・ログで個々のリクエストを検索できます。たとえば、次のような文字列を使用できます。
value%3D%22RefreshDate
Studioがある場合は、リクエストを送信するポートレットのX-Endeca-Portlet-Id HTTP Headerを検索して、それに対してgrepを実行するほうが便利です。これは次のようになります。
X-Endeca-Portlet-Id: endecaresultslistportlet_WAR_endecaresultslistportlet_INSTANCE_5RKp_LAYOUT_11601
たとえば、次のように設定したとします。
PORTLET=endecaresultslistportlet_WAR_endecaresultslistportlet_INSTANCE_5RKp_LAYOUT_11601
この場合、次のようなコマンドを使用して、そのポートレットから最後の10件のリクエストの時間およびレスポンス・コードを確認できます。
grep $PORTLET Discovery.reqlog | tail -10 | cut -d ' ' -f 6,7,8

このコマンドにより、次のような出力が生成されます。

20.61 20.04 200
80.24 79.43 200
19.87 18.06 200
79.97 79.24 200
35.18 24.36 200
87.52 86.74 200
26.65 21.52 200
81.64 80.89 200
28.47 17.66 200
82.29 81.53 200
他に、複数のリクエストを関連付けるのに役立つHTTPヘッダーもあります。
  • X-Endeca-Portlet-Id: アプリケーション内のポートレットの一意のID。
  • X-Endeca-Session-Id: ユーザー・セッションのID。
  • X-Endeca-Gesture-Id: エンドユーザー・アクションのID (StudioのCLIENTロギングが有効になっていない場合は入力されません)。
  • X-Endeca-Server-Query-Id: 1つのEndeca Serverリクエストに対して複数のdgraphリクエストが送信された場合、それらのリクエストのX-Endeca-Server-Query-Idはすべて同じになります。

Studioロギングの有効化の詳細は、Oracle Endeca Information Discovery Studio管理およびカスタマイズ・ガイドを参照してください。