こんにちは。 デジタルビジネス推進室(デジビ)の関根です。
今回はKNIMEを使ったintra-martログ分析の手法を紹介したいと思います。
本記事の前提条件
・KNIME 3.6.1
・intra-mart Accel Platform 2018 Summerのログ
・リクエストログの設定は以下になります。
[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %X{log.report.sequence} %-5level %logger{255} %X{tenant.id} %X{log.id} - %X{client.session.id} %X{request.remote.host} %X{request.method} %X{request.url} %X{request.query_string} %X{request.url.referer} %X{request.page.time} %X{request.accept.time} %X{request.id}%nopex%n
この記事のゴール
intra-mart Accel Platform のリクエストログをKNIMEに取り込み、
リクエストURL毎の処理時間を集計。リクエスト処理時間総合ランキングを一覧化します。
これにより、利用頻度が高い機能、性能が出ていない画面を見つけるヒントとなるかと思います。
KNIMEインポートファイルはこちら:リクエスト処理時間総合ランク
まず初めに…
intra-martのログをKNIMEに取り込みます。
ローテートされたログファイルに対応するために、List Filesノードを使用します。
複数ファイルの読み込みは直列でやる必要がないので、並列化します。
※ただし、並列処理はPCに負荷がかかりますのでご注意ください。
次に…
最後に…
整形したログから、リクエスト処理時間のランキングを作ります。
GroupByノードを使用して、リクエストURLに対してスレッド数(Count)、ユニークセッションID(Unique Count)、ページ処理時間の最大、最小、中央、90%ile、平均、合計、標準偏差を求めます。
以上で、リクエスト処理時間総合ランキングの一覧化完了です!
まとめ
今回はURLを基準にリクエスト数や処理時間を求めてみました。
KNIMEを使うことで、ほぼプログラミングなしで簡単に実装できますね。
リクエストログ以外にも、例えばintra-martの設定ファイルやデータベースのログ、Javaのスレッドダンプ、、、を
取り込んで時間軸で並べるような拡張をすることで性能調査等に使えるツールになってくるかと思います。
[…] […]
[…] ログの取り込み・整形は前回のブログ記事をそのまま使用しますので割愛! 今回はログファイル以外にも、 thread-maxの設定が記載されているxmlファイルを取り込んでいます。 […]
[…] ログの取り込み・整形は前回のブログ記事をそのまま使用しますので割愛! 今回はログファイル以外にも、 thread-maxの設定が記載されているxmlファイルを取り込んでいます。 […]