# 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`は同じになります。