テレメトリ ログ

Qlik Sense の February 2018 リリースでは、構成可能なしきい値に基づいて、Qlik インメモリ エンジンからのきめ細かな使用状況メトリックをキャプチャできます。これにより特に、個々のチャート オブジェクトの CPU と RAM の使用状況、およびロード タスクの CPU と RAM の使用状況をキャプチャすることが可能になります。

テレメトリ ログの有効化

次の手順を実行します。

  1. Qlik Management Console (QMC) で、[エンジン] に移動し、エンジンを選択して、[ログ] で [QIX パフォーマンス ログ レベル] 設定に移動します。

  2. 次の値のいずれか 1 つを選択します。

    • Off: ログは記録されません。
    • Error:Errorしきい値を満たすアクティビティがログに記録されます。推奨オプション。
    • Warning:ErrorWarningのしきい値を満たすアクティビティがログに記録されます。推奨オプション。
    • Info: すべてのアクティビティがログに記録されます。ログ ファイルは非常に大きくなる可能性があるため、トラブルシューティングの期間にのみ推奨されます。
    注: Fatal オプションと Debug オプションは、このシナリオには該当しません。
  3. テレメトリを有効にするエンジンごとに、手順 1 と 2 を繰り返します。

  4. しきい値パラメータを設定します。C:\ProgramData\Qlik\Sense\Engine\Settings.ini を編集します。このファイルが存在しない場合は作成してください。変更を加えるには、ファイルを管理者として開かなければならない場合があります。

    次のリストに従って値を設定します。値ストにあるしきい値から開始し、特定の環境の稼働状況をもっと理解してから、それらのしきい値を増減するようお勧めします。値が低すぎると、作成されるログ ファイルのサイズが非常に大きくなります。

    [Settings 7]

    ErrorPeakMemory=2147483648

    WarningPeakMemory=1073741824

    ErrorProcessTimeMs=60000

    WarningProcessTimeMs=30000

  5. ファイルを保存して閉じます。

  6. Qlik Sense Engine Service を再起動します。

  7. テレメトリを有効にするエンジンごとに、手順 4~6 を繰り返します。

パラメータの説明

ErrorPeakMemory: 既定値は 2147483648 バイト (2 Gb)。エンジンのオペレーションでこのピーク メモリの値よりも多くのメモリが必要になると、レコードは error レベルでログに記録されます。ピーク メモリは、オペレーションで使用される RAM の最大一時容量です。

WarningPeakMemory: 既定値は 1073741824 バイト (1 Gb)。エンジンのオペレーションでこのピーク メモリの値よりも多くのメモリが必要になると、レコードは warning レベルでログに記録されます。ピーク メモリは、オペレーションで使用される RAM の最大一時容量です。

ErrorProcessTimeMs: 既定値は 60000 ミリ秒 (60 秒)。エンジンのオペレーションでこの処理時間の値よりも多くの時間が必要になると、レコードは error レベルでログに記録されます。処理時間は、要求のエンドツーエンドのクロック時間です。

WarningProcessTimeMs: 既定値は 30000 ミリ秒 (30 秒)。エンジンのオペレーションでこの処理時間の値よりも多くの時間が必要になると、レコードは warning レベルでログに記録されます。処理時間は、要求のエンドツーエンドのクロック時間です。

注: 追跡できるのは、プロセス時間とピーク メモリのどちらかのみです。両方のメトリックを追跡する必要はありません。ただし、ErrorPeakMemory を設定する場合は、WarningPeakMemory を設定する必要があります。ErrorProcessTimeMs を設定する場合は、WarningProcessTimeMs を設定する必要があります。

ログの読み取り

注: 現在、テレメトリはログ ファイルにのみ書き込まれます。データベースへの一元的なログの書き込み機能はまだ利用されていません。

テレメトリ データのログは C:\ProgramData\Qlik\Sense\Log\Engine\Trace\<hostname>_QixPerformance_Engine.txt に記録され、ロールのログは ServiceCluster 共有の ArchiveLog フォルダに記録されます。

説明にある共通の項目に加えて、テレメトリに関連するものとして次の項目があります。

Level: エンジンのオペレーションで満たす必要があるログ レベルしきい値。

ActiveUserId: オペレーションを実行するユーザーのユーザー ID。

Method: エンジンのオペレーション自体、重要なエンジン オペレーション を参照してください。

DocId:Qlik アプリケーションの ID。

ObjectId: チャート オブジェクトの場合は、チャート オブジェクトのオブジェクト ID。

PeakRAM: エンジンのオペレーションで使用される最大 RAM。

NetRAM: エンジンのオペレーションで使用される正味 RAM。チャート オブジェクトに対応するハイパーキューブでは、多くの場合正味 RAM はピーク RAM より小さくなります。これは、set 分析、中間集計、その他の計算の実行に一時 RAM が使用される可能性があるからです。

ProcessTime: 結果を返す内部のエンジン オペレーションを含む、要求のエンドツーエンド クロック時間。

WorkTime: 結果を返す内部のエンジン オペレーションを除いて、実質的に ProcessTime と同じです。ProcessTime よりも極わずかに短い時間を記録します。

TraverseTime: 推論エンジンを実行する場合の経過時間 (つまり、緑色、白色、灰色)。

重要なエンジン オペレーション

[方法] 列には各エンジン オペレーションの詳細が格納されますが、完全に詳細な情報を格納するには数が多すぎます。調査対象の関連性の強い方法を以下に示します。これらは、Warning または Error ログ エントリが書き込まれる場合にログに記録される最も一般的な方法です。

方法の説明

Global::OpenApp - アプリケーションを開く

Doc::DoReloadDoc::DoReloadEx - アプリケーションをロードする

Doc::DoSave - アプリケーションを保存する

GenericObject::GetLayout - ハイパーキューブ (つまり、チャート オブジェクト) を計算する

コメント

オペレーションが完了するまでにかかる時間の合計をできるだけ正しく示すため、ProcessTime を使用してください。

Error および Warning のログ レベルの指定について: これらのレベル指定が使用されたのは、既存のログと QMC のフレームワークに都合よく適合したからです。エラーまたは警告が書き込まれたテレメトリ情報行があったとしても、それは、パフォーマンスを最適化することに関心があるのでない限り、エンジンで警告またはエラー状態が発生して調査や修正が必要になったという意味ではまったくありません。それは単に、エンジンの Settings.ini ファイル内で設定されているしきい値について報告しているだけであり、過度に冗長なログ ファイルを生成せずに関連情報をログに記録するための手段にすぎません。

上記の情報に加えて、上述のログが作成されると、Qlik SenseTelemetry Dashboard をダウンロードおよびインストールして、ログ ファイルを読み取り、情報を分析することが可能になります。

Telemetry Dashboard により、個々のチャート オブジェクトの CPU と RAM の使用状況、ロード タスクの CPU と RAM の使用状況などをキャプチャすることができます。

このダッシュボードは、Telemetry Dashboard for Qlik Sense でダウンロードできます。

次の手順を実行します。

  1. インストーラーを実行します。ファイルは、C:\Program Files\Qlik\Sense にインストールされます。

  2. インストールされると、新規タスク 2 つ、データ接続 2 つ、新規アプリ 1 つが QMC に表示されます。

  3. QMC で、アプリケーションの所有権を自分に変更するか、アプリを開くことを許可するユーザーに変更します。

  4. QMC で [タスク] セクションを開き、[TelemetryDashboard-1-Generate-Metadata] を選択して、最下部にある [開始] をクリックします。このタスクが実行され、完了時にアプリに自動的にロードされます。

  5. ハブからアプリケーションを使用して、シート別に情報を参照します。