Jira でリクエストを追跡する
パフォーマンスに問題がある場合は、追跡によって原因の診断に必要な情報を得られます。ユーザーにとって動作の遅い URL や、パフォーマンスの問題の原因となっている可能性のあるアクションをトリガーしているユーザーを発見するといったことができます。
Jira でリクエストを追跡する方法
Jira のリクエストを追跡するためのツールがいくつか必要になります。Jira でテスト済みかつ推奨されているツールは以下の通りです。
OpenTelemetry の Java Agent: 設定が不要で、すぐに追跡を実行してデータをサードパーティのコンポーネントに送信できます。
Jaegar: OpenTelemetry Agent の追跡データのエクスポート先となる、分散追跡システムです。
Grafana: Jaeger が取得した追跡データを視覚化するために使用します。
1. OpenTelemetry をダウンロードして Jira を設定する
OpenTelemetry Java Agent をダウンロードします。
以下のシステム プロパティを設定して、Jira で実行するようにします。
-javaagent:/Users/wyasvoin/Documents/temp/OpenTelemetry/opentelemetry-javaagent.jar
-Dotel.traces.exporter=jaeger
-Dotel.resource.attributes=service.name=jira
2. Jaeger をインストールする
追跡データをグラフ化するには、Jaeger や Zipkin などのサードパーティのツールが必要です。Grafana 内で追跡データをグループ化して検索できるため、アトラシアンでは Jaeger をおすすめしていますが、他のツールも利用できます。
Jaeger および分散追跡の詳細については、Jaegar のドキュメントをご参照ください。
3. Grafana をインストールして設定する
次に、Grafana をインストールして設定します。Jaeger には独自の UI が搭載されていますが、Confluence と Jira の監視に Grafana と Prometheus を使用したダッシュボードとガイダンスのセットが新しく公開されました。そのため、監視 UI の要素がすべて Grafana 内に含まれていることから、管理が簡単になります。
Grafana の設定の詳細については、Grafana のドキュメントをご参照ください。
Grafana と Jaeger が稼動したら、Grafana の [Data Sources (データ ソース)] セクションに移動します。ここから、Jaeger の新しいデータ ソースを追加します。Jaeger にアクセスできるかテストします。以下のスクリーンショットのような結果が表示されます。
スクリーンショット: Grafana に表示される Jaeger のデータ ソース
Jira を OpenTelemetry Agent (前述) で起動すると、Jira 内のリクエストの追跡情報を検索して表示できるようになります。
次のスクリーンショットは、課題ビューのリクエスト (http://{host}:{port}/jira/browse/{issue-id}
) に関する追跡情報を示しています。
課題ビューの追跡データを示すスクリーンショット
スクリーンショットを確認すると、その特定のリクエストに対して実行されたすべての SQL 文 (および詳細、このスクリーンショットでは省略されています) など、リクエストに関連する多くの情報が表示されています。ここでは duration
リクエストや http.target
リクエストなど、役に立つ高レベルの情報をいくつか示しています。この例では、http://localhost:8090/jira/browse/FUB-1
へのリクエストをレンダリングするまでに 1.79 秒かかったことがわかります。
OpenTelemetry Agent を使用すると、Jira のすべてのリクエストだけでなく、製品全体のリクエストを追跡できます。次のスクリーンショットは、Jira 課題ビューでの開発ツールを示しています。このビューは、Jira と Bitbucket 間に Applink がある場合にのみ表示されます。リンクをクリックすると、設定した Bitbucket インスタンスに対して Applink リクエストが行われ、ブランチとそのリポジトリに関するデータが取得されます。
スクリーンショット: Jira 課題ビューの開発ツール
次のスクリーンショットは、該当するリクエストのデータを追跡しています。リクエストは Jira DVCS Connector プラグインから送信されており、Jira 課題に関連するブランチのプル リクエストに関する情報を取得するために、設定した Bitbucket インスタンス (http://localhost:7990/bitbucket...
) に送信される (HTTP GET
) ことに注意してください。これは、他の製品へのアウトバウンド リクエストにどれくらいの時間がかかっているかを示しています。その逆も確認できます。Bitbucket から受信したリクエストを追跡して、他のアトラシアン製品によってインスタンスにかかったトラフィック量を確認できます。
開発ツールの追跡データのスクリーンショット