Dgraphリクエスト・ログ

Dgraphリクエスト・ログ(問合せログとも呼ばれる)には、処理された各リクエストの1エントリが含まれています。

リクエスト・ログの名前および格納場所は、Dgraphの--logフラグで指定されます。デフォルトでは、ログ・ファイルの名前および場所は、次のように設定されます。
$BDD_HOME/dgraph/bin/dgraph.reqlog
Dgraphリクエスト・ログの形式は、次のフィールドで構成されています。
  • フィールド1: タイムスタンプ(yyyy-MM-dd HH:mm:ss.SSS Z)。
  • フィールド2: クライアントIPアドレス。
  • フィールド3: リクエストID。
  • フィールド4: ECID。ECID (実行コンテキストID)は、生成コンポーネントが関与する特定のリクエストの実行のグローバル一意識別子です。ECIDは、別のコンポーネントで発生したエラー・メッセージの関連付けに使用できます。ECIDはHTTPヘッダーから取得するため、クライアントがDgraphにECIDを指定しないと、ECID値がnullまたは未定義になる可能性があります。
  • フィールド5: レスポンス・サイズ(バイト)。
  • フィールド6: 合計時間(小数ミリ秒)。
  • フィールド7: 処理時間(小数ミリ秒)。
  • フィールド8: HTTPレスポンス・コード(クライアント切断時に0)。
  • フィールド9: - (未使用)。
  • フィールド10: キュー・ステータス。リクエスト到着時の、キュー内のリクエストの数(正の値の場合)、または同じ優先度で使用可能なスロットの数(負の値の場合)。
  • フィールド11: スレッドID。
  • フィールド12: HTTP URL (エンコードされたURL)。
  • フィールド13: HTTP POST本体(エンコードされたURL。デフォルトで64KBに切捨て。 - 空の場合)。
  • フィールド14: HTTPヘッダー(エンコードされたURL)。

情報が使用できないか該当しないフィールドには、ダッシュ(-)が入力されます。リクエストは、タイムスタンプでソートされます。

Dgraphでは、デフォルトで、POSTリクエストの本体のコンテンツを64KBで切り捨てます。特にDgraphデータベースに多数のレコードを追加するプロセス中は、このデフォルト設定により、ログのディスク領域が節約されます。POSTリクエスト本体の完全なコンテンツのログを確認する必要がある場合は、Oracleサポートに連絡してください。

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

パフォーマンスの問題を診断する際に、grepを固有の文字列とともに使用して、Dgraphリクエスト・ログの個々のリクエストを検索できます。たとえば、次の文字列を使用できます。
value%3D%22RefreshDate
Studioがある場合、リクエストを送信するポートレットのX-Endeca-Portlet-Id HTTPヘッダーを検索し、それに対して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-Request-Id - 複数のDgraphリクエストが1つのDgraph Gatewayリクエストに送信された場合、これらすべてのX-Endeca-Request-Idは同じになります。