Jira アクセス ログ アナライザー

このツールの用途

このツールは、Jira リクエストログに含まれているリクエストをすべて読み取り、各リクエストを既知の "リクエストカテゴリー" に分類して、カテゴリーごとに応答時間を分析するために使用します。このツールを実行すると、次の 3 つのファイルが作成されます。

  1. 既知の各種カテゴリーにまとめられた受信リクエストの概要
  2. 分析時間全体で最も多く使用されたカテゴリーの応答時間をグラフで示した Web ページ
  3. 認識されていないリクエストの概要

Prerequisites

このアナライザーを実行するには、Java Runtime 環境をインストールする必要があります。

Jira サーバーと Web サーバーが生成するログにはいくつかの種類があることにご注意ください。これは "リクエストログ" ("アクセスログ" とも呼ばれる) を分析する目的でのみ作成されたツールです。
たとえば、スタンドアロンの Jira では次のようなログファイルが生成されます。

tools $ ls ~/jira/releases/atlassian-jira-5.0.3-standalone/logs/
access_log.2012-05-15  catalina.2012-05-15.log  catalina.out                 localhost.2012-05-15.log  manager.2012-05-15.log
access_log.2012-05-16  catalina.2012-05-16.log  host-manager.2012-05-15.log  localhost.2012-05-16.log 

このケースでは、"access_log" で始まる 2 つのファイルのみを分析する必要があります。

その他のファイルは、以下で説明するように、ファイル名にワイルドカードを使用して除外することができます。あるいは、アクセスログを一時フォルダーにコピーして、そのフォルダー全体を分析することも可能です。

応答時間を分析するためには、アクセスログを適切なフォーマットにする必要があります。Jira スタンドアロン版を使用して、その 'logs' ディレクトリのログを分析することを強くお勧めします。また、以下の "レガシーモード" も参照してください。

このページの内容

インストール 

jar ファイルをサーバーにコピーしてそこでツールを実行することも、ログファイルをワークステーションにコピーしてローカルで実行することも可能です。

バージョンファイル注意
v2.0.1access-log-analyser-2.0.1.jarTempo プラグイン用に追加されたカテゴリー。
v2.0access-log-analyser-2.0.jar詳細な結果を得るには、Jira スタンドアロン版のログを分析します。

 

対話形式で実行する

次のコマンドを実行すると、アナライザーを "対話モード" で実行できます。

java -jar access-log-analyser-2.0.jar

アナライザーを実行すると、ディレクトリまたはファイル名の入力を求められます (相対パスと絶対パスのどちらでも可)。
アクセスログのみが格納されているディレクトリ (例:"/var/jira/access-logs/" または "../logs") や個々のファイル名 (例:"logs/access-log-2012-08-15.txt") を入力できるほか、ワイルドカードとして '*' を使用することもできます (例:"C:\\jira\logs\access-log.*")。

パラメーターを指定して実行する

また、次のようにパスをコマンドに渡すこともできます。

java -jar access-log-analyser-2.0.jar --file=/var/jira/access-logs/

"file" パラメーターは必須です。他のすべてのパラメーターについては、アナライザーは合理的なデフォルト値を使用するか、または正しい動作を見つけようとします。

-h

ツールのヘルプを表示するには、'-h' パラメーターを使用します。

java -jar access-log-analyser-2.0.jar -h

--file

アクセスログのファイル名、ファイル名のパターン、またはディレクトリを設定するには、このパラメーターを使用します。
例:'--file=access_log.2014-09-18'、'--file=access_log.*'、'--file=/var/logs/jira/'

--context-path

Jira URL で使用する "コンテキストパス" (ルートディレクトリ) を設定します。
たとえば、URL が http://issues.example.com/jira/browse/ABC-123 の場合、'--context-path=jira' を設定します。
この設定はオプションのため、通常は省略できます。つまり、このパラメーターが設定されていなくても、アナライザーはコンテキストパスを特定できます。

--num-categories

応答時間のグラフで生成するリクエストカテゴリーの線の数を設定します。
デフォルト値は 5 です。
例:'--num-categories=8'

--include-total

サーバーの合計時間のグラフに 'ALL' の線を含めるかどうかを指定します。
有効な値は 'true' または 'false' です。デフォルト値は 'true' です。
例:'--include-total=false'

--response-time

'response-time' の動作のオンとオフを切り替えるには、このパラメーターを使用します。
アナライザーで応答時間を分析するには、このパラメーターを 'true' に設定します。
このモードでは、アナライザーは HTTP ステータスコードを URL の後の最初のフィールドと推測し、
応答時間 (ミリ秒単位) を 3 番目のフィールドと推測します。
'false' を設定すると、アナライザーは応答時間を分析しなくなります。

出力

このツールでは 3 つのファイルが作成されます。ただしどのファイルが作成されるかは、応答時間が分析されたかどうかで決まります。
応答時間が分析された場合、次のファイルが作成されます。

response-time-summary.html

これは受信リクエストを既知の各種カテゴリーに集約したもので、カテゴリーごとに統計情報を表示します。
さらに、カテゴリーごとの統計情報を 3 つの表に一覧表示します。各表では、カテゴリーを Total Server Time (合計サーバー応答時間) 順、Average Response Time (平均応答時間) 順、および未加工の Request Count (リクエスト数) 順にそれぞれ一覧表示されます。

response-time.html

重要なリクエストカテゴリーを取得して時系列のグラフを作成します。
グラフに表示する線の数は "num-categories" パラメーターで制御できます。

unknown-requests.txt

このファイルは、response-time-summary.html に "Unknown (不明な)" リクエストが多数表示される場合にのみ役に立ちます。
よく見られる未認識のリクエストのグループ化を試みます。

 

応答時間が分析されなかった場合、レガシーモードで動作していると見なされます。
作成されたファイルの詳細については、「Jira HTTP 要求ログ アナライザー」を参照してください。 

結果の確認

リクエストカテゴリー

アナライザーの主な役割は、リクエストログに含まれているすべてのリクエストを読み取って、各リクエストを既知の "リクエストカテゴリー" に分類することです。以下に一般的なカテゴリーをいくつか示し、その内容を簡単に説明します。

  • Dashboard
    これはダッシュボードページを表示するためのコールです。各ダッシュボードを表示する度に、1 回のコールが行われます。その後、ダッシュボード内の各 "ガジェット" が Jira にコールバックしてその構成を読み込みます。こちらは "GADGETS" カテゴリー内に表示されます。その後、ほとんどのガジェットは少なくとも 1 つの REST コールを実行し、関心のあるデータを読み込みます。ほとんどの場合、これらは "REST_API" カテゴリー内に表示されます。
  • Login
    ログインリクエスト。
  • IssueNavigator
    課題検索ページ (単純検索または詳細検索)。
  • ViewIssue
    Jira の "課題の表示" ページを取得するためのリクエスト。これが高になっていても驚くべきことではありません。
  • PLUGIN_RESOURCES
    プラグインから提供されているリソース (たいていは CSS、JavaScript、および画像)。
  • REST_API
    REST API に対する汎用コール。特定の REST エンドポイントが分類されることに注意してください。これらは Jira ページの AJAX コールに由来する場合があります。または、データ取得のために Jira に対してクエリを実行する外部ツール/プラグインである可能性もあります。情報取得のために 1 つのページから REST に対して複数のコールを実行する場合もあります。独自の特定のカテゴリーを保証するために REST のいくつかの領域が使わることがよくあります。
    Jira REST のドキュメントも参照してください。 
  • REST_API_SEARCH
    /rest/api/2/search の呼び出し。
    つまり、REST を介して JQL クエリを実行します。
  • REST_greenhopper_xboard
    /rest/greenhopper/1.0/xboard の呼び出し。
  • REST_greenhopper_rapidview
    /rest/greenhopper/1.0/rapidview の呼び出し。
  • REST_greenhopper
    /rest/greenhopper/ のその他の呼び出し。
  • Unauthorized_401
    401 (不正) ステータスコードを返されたリクエスト。ユーザーはログインページにリダイレクトされます。
  • Forbidden_403
    403 (禁止) ステータスコードを返されたリクエスト。ユーザーがログインした後、表示が許可されない URL をリクエストしました。
  • CLIENT_ERROR_4xx
    その他の 4xx HTTP レスポンスで終了したリクエスト。たとえば、無効な URL を指定すると、404 レスポンスが返されます。
  • RPC
    古いリモート API (XML/RPC および SOAP) に対するコール。
  • STATIC_RESOURCE
    画像、CSS、JavaScript などをすべて含みます。これらのリソースはすべて、ブラウザーでキャッシュできる必要があります。動的なリソースでは相対数を取得しようとするため、これらは統計対象の "パーセンテージ" では無視されます。
  • ProjectAvatar
    プロジェクトアバター画像。

 

これらのリクエストの中には、特定のページ読み込みにおいて 1 回しかコールされないものもあります (ViewIssue、IssueNavigator など)。その他のリクエストに関しては、1 回のページ読み込みで複数回コールされる可能性があります (REST、GADGETS など)。

最終更新日: 2018 年 1 月 12 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.