JMX インターフェイスを使用したライブ モニタリング

システム管理

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

この記事は、JMX クライアントでの監視用に Jira 内で JMX MBeans を表示する方法、および製品内診断用に JMX MBeans を使用する方法について説明します。

このガイドは、JMX インターフェースの基本的な概要を紹介します。内容は現状のまま提供されるものとします。弊社のサポート チームは、特定の Jira の問題のトラブルシューティングをサポートできますが、監視システムのセットアップや、結果の解釈についてはサポート対象外となります。

On this page:

この記事は、JMX クライアントでの監視用に Jira 内で JMX MBeans を表示する方法、および製品内診断用に JMX MBeans を使用する方法について説明します。

JMX とは何か

JMX (Java Management Extensions) は、Java アプリケーションを監視及び管理するための技術です。JMX は、MBeans (Managed Beans) と呼ばれるオブジェクトを使用して、アプリケーションからデータやリソースを表示します。Jira Server または Jira Data Center の大規模なインスタンスでは、JMX を有効化することで、アプリケーション リソースの消費量をより簡単に監視したり、インデックス関連のパフォーマンスの問題をより簡単に診断したりできるようになります。これにより、マシン リソースの保持 / 最適化方法について、より優れた判断を行えます。

Jira で利用可能な JMX メトリックの詳細

JMX 属性名

説明

50thPercentile

計測時間の分布における 50 番目のパーセンタイルの値 (中央値)

75thPercentile

計測時間の分布における 75 番目のパーセンタイルの値

95thPercentile

計測時間の分布における 95 番目のパーセンタイルの値

98thPercentile

計測時間の分布における 98 番目のパーセンタイルの値

99thPercentile

計測時間の分布における 99 番目のパーセンタイルの値

999thPercentile

計測時間の分布における 99.9 番目のパーセンタイルの値

count

ノード起動以降の呼び出しの数

DurationUnit

パーセンタイル値、最小値、最大値、平均値、および標準偏差の報告に使用される時間単位。既定の単位はミリ秒です。

FifteenMinuteRate

ノード起動以降の呼び出しの 15 分移動平均レート。このレートでは、Unix の top コマンドの 15 分の負荷平均に使用されるものと同じ指数減衰係数が使用されます。

FiveMinuteRate

ノード起動以降の呼び出しの 5 分移動平均レート。このレートでは、Unix の top コマンドの 5 分の負荷平均に使用されるものと同じ指数減衰係数が使用されます。

Max

ノード起動以降の最大の計測時間

平均

ノード起動以降の平均の計測時間

MeanRate

ノード起動以降の呼び出しの平均レート

最小

ノード起動以降の最小の計測時間

OneMinuteRate

ノード起動以降の呼び出しの 1 分移動平均レート。このレートでは、Unix の top コマンドの 1 分の負荷平均に使用されるものと同じ指数減衰係数が使用されます。

RateUnit

MeanRate、OneMinuteRate、FiveMinuteRate、FifteenMinuteRate の報告単位。既定の単位はイベント数/秒です。

StdDev

ノード起動以降の計測時間における標準偏差

Jira によって収集されるメトリック

次のテーブルは、Jira が収集するメトリック (MBeans) を示します。これらはすべて、com.atlassian.jira プロパティにグループ化されます。

メトリック説明 Jira 起動後にリセット
dashboard.view.count

すべてのダッシュボードがユーザーによって閲覧された回数

はい
entity.attachments.total添付ファイルの数N/A
entity.components.totalコンポーネントの数N/A
entity.customfields.totalカスタム フィールドの数N/A
entity.filters.totalフィルターの数N/A
entity.groups.totalユーザー グループの数N/A
entity.issues.total課題の数N/A
entity.users.totalユーザー数N/A
entity.versions.total作成されたバージョンの数N/A
issue.assigned.count

課題がユーザーに割り当てられた/再割り当てされた回数 (各アクションをカウント)

はい
issue.created.count

Jira インスタンス起動後に作成した課題の数

はい
issue.link.count

Jira インスタンス起動後に作成した課題リンクの数

はい
issue.search.count

課題の検索回数

はい
issue.updated.count

課題の更新回数 (情報の追加または変更後の各更新)

はい
issue.worklogged.count

課題に対する作業の記録回数

はい
jira.license所有しているライセンスのタイプ、アクティブ ユーザーの数、および各ライセンス タイプで利用可能なユーザーの最大数N/A
quicksearch.concurrent.search

リアルタイムで実行されているクイック検索の同時検索数です。これを使用すると、同時検索に設定した制限が十分かどうかを判断できます。

はい
web.requests

リクエストの数 (invocation.count)および合計応答時間 (total.elapsed.time)

はい

次のメトリックは 8.1 以降の Jira に追加されており、com.atlassian.jira/metrics で公開されています。次のメトリックは、Jira を再起動するとすべてリセットされます。 

メトリック パス

説明

comment

コメント操作に関するメトリック

comment/Create

作成されているコメント

comment/Delete

削除されているコメント

comment/Update

更新されているコメント

indexing

課題、コメント、作業ログ、変更のインデックスに関するメトリック

indexing/CreateChangeHistoryDocument

変更履歴のエンティティ用に作成されているインデックス ドキュメント。各課題に対して複数の変更履歴ドキュメントが作成される可能性があることにご注意ください。

indexing/CreateCommentDocument

コメント エンティティ用に作成されているインデックス ドキュメント

indexing/CreateIssueDocument

課題エンティティ用に作成されているインデックス ドキュメント。

indexing/IssueAddFieldIndexers

FieldIndexer モジュールは、インデックス ドキュメント作成の一環として課題ドキュメントを強化します。プラグインはカスタム FieldIndexer モジュールを登録できます。これらのメトリックでは、FieldIndexer で費やされた時間の詳細が提供され、それらによって生じたインデックス パフォーマンスの低下を追跡するのに使用できます。このメトリックは、作成された課題ドキュメントごとに組み合わされたすべての FieldIndexer で費やされた時間について示しています。

indexing/LuceneAddDocument

Lucene インデックスへのドキュメントの追加に費やされた時間

indexing/LuceneDeleteDocument

Lucene インデックスから語句が一致する 1 つ以上のドキュメントを削除するのに費やされた時間

indexing/LuceneOptimize

Lucene インデックスの最適化に関するメトリック (Jira から手動でトリガーされます)

indeding/LuceneUpdateDocument

Lucene インデックスへの作成済みドキュメントの追加に費やされた時間

indexing/ReplicationLatency

レプリケーション遅延は、変更が行われたノードで課題、コメント、または作業ログのインデックス作成が行われてから現在のノードでインデックス作成操作が再生されるまでの時間です。

indexing/WaitForLucene

ドキュメントは Lucene インデックスに非同期で書き込まれます。このメトリックでは、Lucene が書き込みを完了するまで Jira のインデックス作成スレッドが待機した時間をキャプチャします。

indexing/issueAddSearchExtractors

EntitySearchExtractor は、インデックス ドキュメント作成の一環として課題ドキュメントを強化するものです。プラグインを使用してカスタム EntitySearchExtractor モジュールを登録できます。これらのメトリックを利用すると、EntitySearchExtractor で費やされた時間に関するインサイトを得て、それらによって生じたインデックス パフォーマンスの低下を追跡できます。これらのメトリックは、作成された課題ドキュメントごとに組み合わされたすべての EntitySearchExtractor で費やされた時間について示しています。

課題

課題操作に関するメトリック

issue/Create

作成されている課題

issue/Delete

削除されている課題

issue/Index

Lucene インデックスに追加されている課題。これは、課題ドキュメントの作成およびインデックスへのドキュメントの追加を対象としています。

issue/DeIndex

Lucene インデックスから削除されている課題

issue/ReIndex

課題更新の結果としてインデックスが再作成されている課題。これは、課題ドキュメントの作成、インデックスからの古いドキュメントの削除、およびインデックスへの新しいドキュメントの追加を対象としています。

issue/Update

更新されている課題

Jira Service Management でアセットによって収集されるメトリック

次の表は、Jira Service Management でアセットによって収集されるメトリック (MBean) のリストです。 

メトリック

説明

assets.objectindeximpl.objects_load_on_add_ms



メッセージを受信してからオブジェクトを読み込むまでの時間。

このメトリックは、データベースからインデックスを取り込むのにかかった時間を示します。

assets.objectindeximpl.missing_objects_reload_retry_count_on_add

オブジェクトをデータベースに追加するときにオブジェクトを再読み込みしようとした回数。

このメトリックは、データベースへの書き込みが遅れたためにデータベースからオブジェクトを読み込むのに何回試行したかを示します。

assets.objectindeximpl.missing_objects_count_on_add

データベースへの初回追加試行時に欠落していたオブジェクトの数。

このメトリックは、欠落していたオブジェクトの数を示します。

assets.objectindeximpl.missing_objects_reload_on_add_ms

オブジェクトが使用できなかったときにデータベースからの再読み込み試行に費やされた時間 (ミリ秒単位)。

このメトリックは、データベースでオブジェクトが使用可能になるまでのループと待機に費やされた時間を示します。

assets.objectindeximpl.objects_load_on_update_ms

初回試行時に更新を読み込むまでの時間 (ミリ秒単位)。

onUpdate(final int id, final long updateTime)


assets.objectindeximpl.missing_objects_reload_on_update_ms

更新がデータベースに反映されるまでの待機に費やされた時間 (ミリ秒単位)。

reloadObjectFromDatabaseUntilUpdateTimeMatches

assets.objectindeximpl.missing_objects_reload_retry_count_on_update

更新時に正しいバージョンが見つかるまでにオブジェクトを再読み込みしようとした回数。

assets.objectindeximpl.missing_objects_reload_retry_count_on_update

更新が開始された時点でデータベースに存在せず、欠落していたオブジェクト更新の数。

assets.objectindeximpl.objects_removal_ms

アセットからオブジェクトを削除するのにかかった時間 (ミリ秒単位)。

onRemove(final Collection<Integer> ids)

assets.assetsbatchreplicationmessageworkqueuepoller.process_ms

レプリケーション メッセージを処理する時間 (ミリ秒単位)。

assets.assetsbatchreplicationmessageworkqueuepoller.number_of_create_failures

オブジェクトが作成されたときのメッセージ バッチのエラー数。

assets.assetsbatchreplicationmessageworkqueuepoller.number_of_update_failures

オブジェクトが更新されたときのメッセージ バッチのエラー数。

assets.cachemessageworkqueuepoller.process_batch_size

バッチ処理されてクラスタ全体に送信されたオブジェクト変更の数。

assets.cachemessageworkqueuepoller.wait_for_clearance_ms

データベースの更新がアプリから取り出されるか、データベースに送信されるまでの待機に費やされた時間 (ミリ秒単位)。

assets.cachemessageworkqueuepoller.process_ms

レプリケーション メッセージのバッチ処理と送信の合計所要時間 (ミリ秒単位)。

assets.assetsbatchreplicationmessagereceiver.work_queue_size

レプリケーション メッセージ レシーバーの作業キューのサイズ。

assets.assetsbatchreplicationmessagereceiver.work_queue_gauge

レプリケーション メッセージ レシーバーの作業キューの現在のサイズ。

assets.assetsobjectreplicationbatchmanager.work_queue_size

個々の変更をバッチに収集してクラスタ全体に送信するためにバッチ マネージャーで使用される作業キューのサイズ。

assets.assetsobjectreplicationbatchmanager.work_queue_gauge

個々の変更をバッチに収集してクラスタ全体に送信するためにバッチ マネージャーで使用される作業キューの現在のサイズ。

assets.defaultassetsbatchmessagesender.send_message

メッセージをディスパッチしてから次のメッセージの処理に進むまでの時間。

assets.insightcachereplicatorimpl.legacy_object_receiver_queue_size

クラスタ メッセージを使用するレガシー レプリケーション メカニズムのキュー サイズ。

assets.insightcachereplicatorimpl.object_replication_dispatch

handleMessage が実行されるまでの時間 (クラスタ メッセージ キャッシュを使用してレガシー インデックス レプリケーションを行うために、送信処理を呼び出してメッセージをディスパッチするまでの時間。

assets.insightcachereplicatorimpl.legacy_object_send_queue_size

クラスタ メッセージ キャッシュを使用してレガシー インデックス レプリケーションを行うためにメッセージを提供した後のキュー サイズ。

messageToSend.offer(cacheMessage)

assets.assetsreplicationretryqueuepoller.retry_queue_size

再試行 / エラー キューのサイズ。

assets.assetsreplicationretryqueuepoller.create_retry_attempts

メッセージ作成の処理が成功するまでの試行回数。

assets.assetsreplicationretryqueuepoller.update_retry_attempts

メッセージ更新の処理が成功するまでの試行回数。

assets.assetsreplicationretryqueuepoller.replay_wait_time

更新を再試行する前に追加された待機時間の長さ。

このメトリックは、処理がキューに追いついているのか、それとも更新が滞っていて即座に処理されているのかを確認するのに役立ちます。待機時間が適用されない場合、キューは十分な速さで処理されません。

assets.assetsreplicationretryqueuepoller.dead_letter_queue_size

デッド レター キューにあるアイテムの数。

assets.assetsreplicationretryqueuepoller.process_retry_excluding_wait_ms

エラーの処理にかかった時間 (ミリ秒単位) (処理前の待機時間を除く)。

このメトリックは、一連のエラーが処理されるまでにどれくらいの時間がかかっているかを示します。また、onAdd または onUpdate 待機ループにさらに遅延が追加されていないかを確認するのにも役立ちます。このメトリックの値は、再試行がさらに必要になって遅延が長くなる場合を除き、小さくなるはずです。

assets.assetsreplicationretryqueuepoller.dead_letter_queue_gauge

デッド レター キューにある現在のメッセージ数。

assets.assetsreplicationretryqueuepoller.retry_queue_gauge

再試行キューにある現在のメッセージ数。

Jira の監視

Jira を監視する前に、JMX の監視を有効にしてから、JMX クライアントを使用してメトリックを表示する必要があります。

考慮事項

メトリックの閲覧は常に、Jira にパフォーマンス上の影響を与えます。更新は 1 秒に 1 回未満にすることをお勧めします。

Jira で JMX 監視を有効化する

既定ではすべてのメトリックが収集されますが、それらを公開するには JMX 監視を有効にする必要があります。これは Jira で実行できますが、Jira 管理者である必要があります。

  1. In the upper-right corner of the screen, select Administration  > System
  2. JMX モニタリングに移動します。
  3. JMX 監視の有効化を切り替えます。

JConsole を使って監視する

JMX 監視を有効にした後、任意の JMX クライアントを使用してメトリックを表示できます。これをすばやく簡単に行うために、ここでは、JConsole を使用して表示する方法について説明しています。Jira インスタンスはローカルでもリモートでも監視できます。

  • 特定の課題のトラブルシューティングを行う場合、または Jira を短期間のみ監視する必要がある場合は、Jira のローカル監視が便利です。ローカル監視はサーバーのパフォーマンスに影響を与える可能性があるため、本番システムの長期的な監視にはお勧めしません。

    手順について

     ローカルに監視するには:

    1. JConsole を起動します。これは、JDK インストール ディレクトリの bin ディレクトリにあります。(JConsole は JDK の一部としてのみ利用可能です。)
    2. ローカル プロセス を選択します。
    3. Jira プロセスを選択します。org.apache.catalina.startup.Bootstrap start などが該当します。
    4. 接続後、すべてのメトリックをグループ化する com.atlassian.jira プロパティを展開します。

    ローカル監視の詳細については、JConsole の使用を参照してください。

  • Jira のリモート監視は、Jira Server のリソースを消費しないため、本番環境システムにお勧めです。

    手順について

     リモートで監視するには:

    1. 次のプロパティを setenv.sh / setenv.bat ファイルに追加します。ポートは未使用の任意のポートに設定できます。

      CATALINA_OPTS

      Windows
      SET CATALINA_OPTS="-Dcom.sun.management.jmxremote.authenticate=true ${CATALINA_OPTS}"
      SET CATALINA_OPTS="-Dcom.sun.management.jmxremote.password.file=/atlassian-jira-software-x.y.z-standalone/jmxremote.password ${CATALINA_OPTS}"
      SET CATALINA_OPTS="-Dcom.sun.management.jmxremote.access.file=/atlassian-jira-software-x.y.z-standalone/jmxremote.access ${CATALINA_OPTS}"

      (info) x.y.z は、使用している Jira バージョンを表します。

      Linux
      CATALINA_OPTS="-Dcom.sun.management.jmxremote.authenticate=true ${CATALINA_OPTS}"
      CATALINA_OPTS="-Dcom.sun.management.jmxremote.password.file=/atlassian-jira-software-x.y.z-standalone/jmxremote.password ${CATALINA_OPTS}"
      CATALINA_OPTS="-Dcom.sun.management.jmxremote.access.file=/atlassian-jira-software-x.y.z-standalone/jmxremote.access ${CATALINA_OPTS}"

      (info) x.y.z は、使用している Jira バージョンを表します。

      詳細については、「JMX テクノロジーを使用した監視と管理」の「パスワード認証の使用」セクションを参照してください。

      また、JMX プロパティにアクセスするには、SSL の設定が必要になる場合があります。詳細については、「JMX テクノロジーを使用した監視と管理」の SSL に関するセクションを参照してください。

      JAVA_OPTS

      JAVA_OPTS を使用すると、JMX MBeans をリモート アクセス用に公開できますが、Jira のシャットダウン中にエラーが発生します。

      Windows
      JAVA_OPTS=-Dcom.sun.management.jmxremote %JAVA_OPTS%
      JAVA_OPTS=-Dcom.sun.management.jmxremote.port=8099 %JAVA_OPTS%
      JAVA_OPTS=-Dcom.sun.management.jmxremote.authenticate=false %JAVA_OPTS%
      Linux
      JAVA_OPTS="-Dcom.sun.management.jmxremote ${JAVA_OPTS}"
      JAVA_OPTS="-Dcom.sun.management.jmxremote.port=8099 ${JAVA_OPTS}"
      JAVA_OPTS="-Dcom.sun.management.jmxremote.authenticate=false ${JAVA_OPTS}"
      export JAVA_OPTS
    2. リモート接続の保護方法を決定します。詳細については、リモート監視と管理を参照してください。
      認証を無効にすることは可能ですが、本番環境システムではお勧めしません。
    3. JConsole を起動します。これは、JDK インストール ディレクトリの bin ディレクトリにあります。
    4. リモート プロセス を選択します。
    5. ホスト名とポートを入力します。これは、Jira ポートではなく、前に指定したポートです。
    6. [Connect] を選択します。
    7. 接続後、すべてのメトリックをグループ化する com.atlassian.jira プロパティを展開します。

    リモート監視の詳細については、JConsole の使用を参照してください。

既知のセキュリティ問題

RCE (リモート コード実行) JMX 攻撃によって引き起こされる可能性のある潜在的なセキュリティの脆弱性に対する堅牢な修正を提供しています。この攻撃の最中でも、JMX モニタリング用の有効な認証情報を持つリモート ユーザーは、たとえそのユーザーのアカウントが readOnly (montiorRole) であっても、Java 逆シリアル化によって Jira Data Center で任意のコードを実行できます。

捏造されたデータがリクエストによってシステムに侵入するのを防ぐために、 JVM の ObjectInputFilter に基づくブロックリスト逆シリアル化フィルターを使用しています。

カスタム JDK を使用していて、Java バージョンに基づくクラスパスに適切なクラスがない場合、Jira ノードは起動しません。

atlassian.jira.log には、「BlocklistDeserializationFilter has not been set up」というエラーが記録されます。これは、使用している Java 環境にセキュリティ上の問題があることを意味します。

エラーを排除して Jira インスタンスのセキュリティを強化するには、JDK に次のクラスが含まれていることを確認してください。

  • JDK 8 の場合: クラスパスで sun.misc.ObjectInputFilter クラスが有効になっている必要があります。

  • JDK 11 以降の場合: クラスパスで java.io.ObjectInputFilter クラスが有効になっている必要があります。


JMX から利用できる製品内診断

Jira 9.3 以降では、製品内診断用の一連のデータベース接続メトリックを JMX から利用できるようになりました。

Jira 9.5 以降のアップデートについてご覧ください。

Jira 9.5 では、製品内診断に HTTP 接続メトリックとメール キュー メトリックという新しいメトリックが追加されました。

Jira 9.8 では、メール キューのコンテンツをより詳細に把握したり、より多くのデータを収集してパフォーマンスを監視しやすくしたりできるように、いくつかの新しいメール キュー メトリックが追加されました。

Jira 9.11 では、インスタンス インフラストラクチャの健全性とパフォーマンスをモニターするための新しいインフラストラクチャ メトリックが導入されました。送信メール サーバーと受信メール サーバー、外部ユーザー ディレクトリ、共有ホーム ディレクトリとローカル ホーム ディレクトリ、Data Center インスタンスのノード通信などのメトリックがあります。

製品内診断 (IPD) では、実行中のインスタンスの動作についてより深いインサイトが得られます。

IPD には、Jira とそのデータベースの間の相互作用を対象とした追加のメトリックが用意されています。データベース接続メトリックを使用すると、環境やインフラストラクチャでパフォーマンスの問題を発生させる可能性のある要素を効率的に特定できます。 

既定では、この機能は無効になっています。実際のメトリックは次の形式で利用できます。

  • 新しい JMX MBeans として
  • 新しい IPD ログ ファイル (atlassian-jira-ipd-monitoring.log) 内の JMX 値のスナップショットの履歴として

このログ ファイルは、すべての既存のログ ファイルが格納されている {jira_home}\log フォルダにあります。このログ ファイルは、ATST プラグインで作成されるサポート ZIP ファイルにも含まれています。必要に応じて、Atlassian troubleshooting & support tools プラグインでサポート ZIP ファイルを生成し、ファイルをアトラシアン サポートに送信できます (アトラシアン社内にはファイル解釈用のツールがあります)。プラグインの詳細をご確認ください。

コミュニケーション

この機能では通信に次の方法が使用されます。

  • JMX: JMX MBean は内部スケジュールに基づいて定期的に更新されます。
  • ログ ファイル atlassian-jira-ipd-monitoring.log: JMX 値は、設定可能なスケジュールでスナップショットが作成され、ログ ファイルに記録されます。既定では、60 秒ごとに JMX 値がポーリングされ、ログ ファイルに書き込まれます (このパラメータは Jira 9.3 EAP 02 以降に更新されています)。

製品内診断メトリック

次のセクションを展開して、製品内診断で利用できるメトリックの詳細を学習してください。

メトリックを使用するには、必ず JMX を有効にしてください。

データベース接続メトリック

IPD によって提供されるメトリックとその説明については、次の表を参照してください。

MBean オブジェクト名メトリックの説明
com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=failures,name=counter

db.connection.failures.counter

  • 前回の再起動以降のデータベース接続障害の回数
com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=latency,name=statistics

db.connection.latency.statistics

  • 前回の再起動以降のレイテンシの集計統計

com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=latency,name=value

db.connection.latency.value

  • データベースに対するクエリ送信時の最新のレイテンシ測定値

com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numActive,
name=statistics

db.connection.pool.numActive.statistics

  • 前回の再起動以降のデータベース接続プール内のアクティブ接続数の集計統計

com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numActive,
name=value

db.connection.pool.numActive.value

  • データベース接続プール内のアクティブ接続数の最新の測定値

com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numIdle,
name=statistics

db.connection.pool.numIdle.statistics

  • 前回の再起動以降のデータベース接続プール内のアイドル接続数の集計統計

com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numIdle,
name=value

db.connection.pool.numIdle.value

  • データベース接続プール内のアイドル接続数の最新の測定値

com.atlassian.jira:type=metrics,
category00=db,category01=connection,
category02=state,name=value

db.connection.state.value

  • データベースへの接続状態を示す最新のインジケーター

HTTP 接続メトリック

IPD によって提供されるメトリックとその説明については、次の表を参照してください。

MBean オブジェクト名メトリックの説明
com.atlassian.jira:type=metrics,
category00=http,category01=connection,
category02=pool,category03=numActive,
name=value

http.connection.pool.numActive.value

  • HTTP 接続プール内のアクティブ接続数の最新の測定値
com.atlassian.jira:type=metrics,
category00=http,category01=connection,
category02=pool,category03=numIdle,
name=value

http.connection.pool.numIdle.value

  • HTTP 接続プール内のアイドル接続数の最新の測定値
com.atlassian.jira:type=metrics,
category00=http,category01=connection,
category02=pool,category03=numMax,
name=value

http.connection.pool.numMax.value

  • コネクタによって作成され、リクエストに使用できるスレッドの最大数
com.atlassian.jira:type=metrics,
category00=http,category01=connection,
category02=sessions,category03=active,
name=value

http.connection.sessions.active.value

  • アクティブなユーザー セッション数の最新の指標
com.atlassian.jira:type=metrics,
category00=http,category01=connection,
category02=sessions,category03=active,
name=statistics

http.connection.sessions.active.statistics

  • アクティブなユーザー セッション数の集計統計
com.atlassian.jira:type=metrics,
category00=http,category01=connection,
category02=sessions,category03=recent,
name=value

http.connection.sessions.recent.value

  • 最近のユーザー セッション数の最新の指標。最近のセッションとは、直近 1 時間にアクティブだったセッションのことです。
com.atlassian.jira:type=metrics,
category00=http,category01=requests,
name=value

http.requests.value

  • 1 分あたりの HTTP リクエストの総数の最新の測定値
com.atlassian.jira:type=metrics,
category00=http,category01=requests,
name=statistics

http.requests.statistics

  • 1 分あたりの HTTP リクエストの総数の集計統計
メール キュー メトリック

IPD によって提供されるメトリックとその説明については、次の表を参照してください。

MBean オブジェクト名メトリックの説明
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numErrors,name=value

mail.queue.numErrors.value

  • エラー メール キュー内の項目数の最新の測定値
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numItems,name=value

mail.queue.numItems.value

  • メール キュー内の項目数の最新の測定値
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numErrors,name=statistics

mail.queue.numErrors.statistics

  • エラー メール キュー内のアイテム数の集計統計
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numItems,name=statistics

mail.queue.numItems.statistics

  • メール キュー内のアイテム数の集計統計
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numItemsAddedPerMin,
name=value

mail.queue.numItemsAddedPerMin.value

  • メール キューに 1 分あたりに追加されたアイテム数の最新の測定値
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numErrorsAddedPerMin,
name=value

mail.queue.numErrorsAddedPerMin.value

  • エラー メール キューに 1 分あたりに追加されたアイテム数の最新の測定値

com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numItemsAddedPerMin,
name=statistics

mail.queue.numItemsAddedPerMin.statistics

  • メール キューに 1 分あたりに追加されたアイテム数の集計統計
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numErrorsAddedPerMin,
name=statistics

mail.queue.numErrorsAddedPerMin.statistics

  • エラー メール キューに 1 分あたりに追加されたアイテム数の集計統計
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numItemsProcessedPerMin,
name=value

mail.queue.numItemsProcessedPerMin.value

  • メール キューで 1 分あたりに処理されたアイテム数の最新の測定値
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numItemsProcessedPerMin,
name=statistics

mail.queue.numItemsProcessedPerMin.statistics

  • メール キューで 1 分あたりに処理されたアイテム数の集計統計
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numEmailsSentPerMin,
name=value

mail.queue.numEmailsSentPerMin.value

  • SMTP サーバーが 1 分あたりに送信したメール数の最新の測定値
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=numEmailsSentPerMin,
name=statistics

mail.queue.numEmailsSentPerMin.statistics

  • SMTP サーバーが 1 分あたりに送信したメール数の最新の集計統計
com.atlassian.jira:type=metrics,
category00=mail,category01=queue,
category02=jobRunning,name=value

mail.queue.jobRunning.value

  • メール キュー ジョブの状態を示す最新のインジケーター
    • 1 - メール キュー ジョブは現在実行中です

    • 0 - メール キュー ジョブは現在実行されていません

インフラストラクチャのメトリック

IPD によって提供されるメトリックとその説明については、次の表を参照してください。

MBean オブジェクト名メトリックの説明
クラスタ メトリック
com.atlassian.
jira:type=metrics,
category00=node,
category01=latency,
name=statistics,
tag.destNode<nodeId>

node.latency.statistics
destNode=<nodeId>

  • ノード (<nodeId>) への通信遅延の集計統計。

  • 自分自身を除くすべてのクラスタ ノード用のメトリックが用意されています。

    • これらのメトリックは、クラスタ内のすべてのノードで出力されます。他のすべてのノードへの遅延が測定されますが、
      <nodeID> が、メトリックが出力されるノードと同じになることはありません。
com.atlassian.
jira:type=metrics,
category00=node,
category01=connection,
category02=state,
name=custom,
tag.destNode=<nodeId>

node.connection.state.custom
destNode=<nodeId>

  • 別のノード (<nodeId>) との通信状態。

  • 自分自身を除くすべてのクラスタ ノード用のメトリックが用意されています。

    • これらのメトリックは、クラスタ内のすべてのノードで出力されます。他のすべてのノードへの遅延が測定されますが、
      <nodeID> が、メトリックが出力されるノードと同じになることはありません。
メール サーバー メトリック
com.atlassian.jira:
type=metrics,
category00=mail,
category01=outgoing,
category02=connection,
category03=state,
name=custom

mail.outgoing.connection.state.custom

  • 送信 SMTP メール サーバーへの接続状態。

  • このメトリックは、SMTP サーバーが設定されている場合に利用できます。

com.atlassian.jira:
type=metrics,
category00=mail,
category01=incoming,
category02=connection,
category03=state,
name=custom,tag.serverName=<mailName>

mail.incoming.connection.state.custom
serverName=<mailName>

  • 受信メール サーバー (<mailName>) への接続状態。

  • 設定した受信メール サーバーごとに個別のメトリックが用意されています。

共有ストレージ メトリック
com.atlassian.
jira:type=metrics,
category00=home,
category01=shared,
category02=write,
category03=latency,
name=value

home.shared.write.latency.value

  • 小さなファイル (約 30 バイト) を共有ホームに書き込む際に生じる遅延の中央値

com.atlassian.
jira:type=metrics,
category00=home,
category01=shared,
category02=write,
category03=latency,
name=statistics

home.shared.write.latency.statistics

  • 小さなファイル (約 30 バイト) を共有ホームに書き込む際に生じる遅延の集計統計

ローカル ストレージ メトリック
com.atlassian.
jira:type=metrics,
category00=home,
category01=local,
category02=write,
category03=latency,
category04=synthetic,
name=value

home.local.write.latency.synthetic.value

  • 永続性が保証された小さなファイル (約 30 バイト) をローカル ホームに書き込む際に生じる遅延の中央値

com.atlassian.
jira:type=metrics,
category00=home,
category01=local,
category02=write,
category03=latency,
category04=synthetic,
name=statistics

home.local.write.latency.synthetic.statistics

  • 永続性が保証された小さなファイル (約 30 バイト) をローカル ホームに書き込む際に生じる遅延の集計統計

com.atlassian.
jira:type=metrics,
category00=home,
category01=local,
category02=write,
category03=latency,
category04=indexwriter,
name=statistics

home.local.write.latency.indexwriter.statistics

  • 現在の Lucene インデックス バッファを保持するために生じる遅延の集計統計

  • このメトリックは、Lucene がインデックスの最新の変更を保持する場合にのみ更新されます。

ユーザー ディレクトリ メトリック
com.atlassian.
jira:type=metrics,
category00=user,
category01=directory,
category02=connection,
category03=latency,
name=value,
tag.userDirName=<directoryName>

user.directory.connection.latency.value
userDirName=<directoryName>

  • 外部ユーザー ディレクトリ (<directoryName>) で 1 人のユーザーを検索する際に生じる遅延の最新の値。

  • 外部ユーザー ディレクトリごとにメトリックが用意されています。

com.atlassian.
jira:type=metrics,
category00=user,
category01=directory,
category02=connection,
category03=latency,
name=statistics,
tag.userDirName=<directoryName>

user.directory.connection.latency.statistics
userDirName=<directoryName>

  • 外部ユーザー ディレクトリ (<directoryName>>) で 1 人のユーザーを検索する際に生じる遅延の集計統計。

  • 外部ユーザー ディレクトリごとにメトリックが用意されています。

com.atlassian.
jira:type=metrics,
category00=user,
category01=directory,
category02=connection,
category03=state,
name=custom,
tag.userDirName=<directoryName>

user.directory.connection.state.custom
userDirName=<directoryName>

  • 外部ユーザー ディレクトリ (<directoryName>) への接続状態。

  • リモート サーバーへの接続を確立できるかどうかを確認します。

  • 外部ユーザー ディレクトリごとにメトリックが用意されています。

インフラストラクチャ メトリックの詳細は「製品内診断のためにインフラストラクチャ メトリックを解釈する」という記事をご参照ください。

製品間指標の詳細は製品内診断のために製品間指標を解釈する」という記事をご参照ください。

Jira 固有の指標に関する、より詳細な定義を確認するには、「製品内診断のために Jira 固有の指標を解釈する」という記事をご参照ください。

製品内診断モニタリングを有効にする

IPD モニタリングは初期設定で有効になっています。管理する方法は次のとおりです。

  1. In the upper-right corner of the screen, select Administration  > System
  2. 左側のパネルで、[システム サポート] に移動し、[モニタリング] を選択します。

  3. [製品内診断モニタリング] トグルを使用して、IPD モニタリングを有効または無効にします。
    このトグルはバージョン 9.4.3 でも利用できます。アップデートについては、Jira Software のリリース ノートを参照してください。

ユーザー インターフェイスで製品内診断モニタリングを有効にする

REST API

Jira 9.5 では、IPD モニタリングを管理するための新しい REST API エンドポイント、具体的にはユーザー インターフェイスの製品内診断モニタリング トグル (/rest/api/2/monitoring/ipd) が導入されています。

GET

IPD 機能の状態を返します。

  • true: 製品内診断モニタリングは有効になります。

  • false: 製品内診断モニタリングは無効になっています。

レスポンスの例:

{
  "enabled": true
}
POST

IPD 機能の状態を設定します。レスポンスは空であり、成功結果は HTTP 20x ステータス レスポンスで確認されます。

レスポンスの例:

{
  "enabled": false
}

ログ形式

atlassian-jira-ipd-monitoring.log への書き込みは log4j を使用して行われます。その設定は log4j.properties で管理します。

#####################################################
# In-product diagnostics monitoring logging
#####################################################

log4j.appender.ipd=com.atlassian.jira.logging.JiraHomeAppender
log4j.appender.ipd.File=atlassian-jira-ipd-monitoring.log
log4j.appender.ipd.MaxFileSize=20480KB
log4j.appender.ipd.MaxBackupIndex=5
log4j.appender.ipd.layout=com.atlassian.logging.log4j.NewLineIndentingFilteringPatternLayout
log4j.appender.ipd.layout.ConversionPattern=%d %m%n

log4j.logger.ipd-monitoring = INFO, filelog
log4j.additivity.ipd-monitoring = false
log4j.logger.ipd-monitoring-data-logger = INFO, ipd
log4j.additivity.ipd-monitoring-data-logger = false

ログの内容

既定では、各ログ エントリには簡潔データ セットが含まれています。拡張データ セットをログに記録するには、com.atlassian.jira.in.product.diagnostics.extended.logging 機能フラグを有効にします。

拡張データを有効にするには、次の手順に従います。

  1. <JIRA_URL>/secure/admin/SiteDarkFeatures!default.jspa に移動します。ここで、<JIRA_URL> は Jira インスタンスのベース URL です。
  2. [有効にする開発中機能] テキスト領域で com.atlassian.jira.in.product.diagnostics.extended.logging.enabled と入力します。[追加] を選択します。ダーク機能を管理する方法をご確認ください。
    1. 拡張データを無効にするには、[開発中機能 (サイト経由)] パネルで com.atlassian.jira.in.product.diagnostics.extended.logging.enabled を探して [無効化] を選択します。

次の各表で、簡潔ログ形式と拡張ログ形式の構造の違いを参照してください。

JMX のメトリックは常に拡張形式です。

指標属性の詳細

簡潔データ

MBean タイプ

Properties

属性

カウンター

timestamp

ラベル

属性

_count

_value

統計

_99thPercentile

_max

_min

_mean

簡潔ログの行の形式の例を見る
2022-09-06 18:37:48,011 IPDMONITORING {"timestamp":"1662453468","label":"DB.CONNECTION.LATENCY.STATISTICS","attributes":{"_mean":"6.704470250010645E-25","_max":"1.0","_99thPercentile":"0.0","_min":"0.0"}}

拡張データ

JMX のメトリックは常に拡張形式です。

指標属性の詳細

MBean タイプ

Properties

属性

カウンター

timestamp

ラベル

属性

オブジェクト名

_count

_fifteenMinuteRate

_fiveMinuteRate

_meanRate

_oneMinuteRate

_rateUnit

_value

_number

統計

_50thPercentile

_75thPercentile

_95thPercentile

_98thPercentile

_99thPercentile

_999thPercentile

_count

_min

_max

_mean

_stdDev

_durationUnit

_fifteenMinuteRate

_fiveMinuteRate

_meanRate

_oneMinuteRate

_rateUnit

拡張ログの行の形式に関する例を見る
2022-09-06 18:38:48,015 IPDMONITORING {"timestamp":"1662453528","label":
"DB.CONNECTION.LATENCY.STATISTICS","objectName":
"com.atlassian.jira:category00\u003ddb,category01\u003dconnection,category02\
u003dlatency,name\u003dstatistics,type\u003dmetrics",
"attributes":{"_oneMinuteRate":"0.02012497818617073","_50thPercentile":"0.0",
"_mean":"1.9379304604014412E-25","_max":"1.0","_stdDev":"4.40219315841711E-13",
"_98thPercentile":"0.0","_meanRate":"0.003612560785169162","_rateUnit":
"events/second","_99thPercentile":"0.0","_count":"16","_durationUnit":
"milliseconds","_75thPercentile":"0.0","_fiveMinuteRate":
"0.005912972095043379","_fifteenMinuteRate":"0.0037696657500141968",
"_999thPercentile":"0.0","_95thPercentile":"0.0","_min":"0.0"}}


指標属性の定義

指標属性の詳細は、次のセクションを展開してご確認ください。

回数の指標属性

属性

定義

_count

現在の時間枠で指標が出現した回数

_fifteenMinuteRate

直近 15 分間で指標が出現した回数

_fiveMinuteRate

直近 5 分間で指標が出現した回数

_meanRate

メーターの作成後にイベントが発生した平均レート

_oneMinuteRate

直近 1 分間で指標が出現した回数

_rateUnit

レートに使用される測定単位

次の属性にご注意ください: _oneMinuteRate_fiveMinuteRate_fifteenMinuteRate

_count は、測定値が時間の経過とともにどのように変化したかを示すものではありません。最新性は分単位のレートで提供されます。

値の指標属性

属性

定義

_value

指標の直近のサンプル値

_number

_value 属性と同じ値が含まれています

統計の指標属性

MBean タイプの統計の指標は、集計値とも呼ばれます。この指標は、一定期間で変更が行われた項目の統計を提供します。たとえば、メール キューで処理された項目や、エラー メール キューに追加された項目などです。

時間枠

特に明記されていない限り、集計値はスライディング時間枠で算出されます。これは、直近の 5 分間を概ねカバーします。

パーセンタイル値は、蓄積サンプリング技法で算出されます。この技法では、データ ストリーム全体を統計的に表す、小さくて管理しやすい値のセットを使用するため、メモリに保存する必要のあるデータの量が軽減します。

リセット

スライディング時間枠の外では、集計値が次のタイミングですべてリセットされます。

  • システムが再起動するたび。

  • JMX モニタリングまたは製品内診断指標が有効化されるたび。

その他の Data Center 製品の JMX モニタリングと製品内診断に関する詳細をご確認ください。

次の表に、統計の指標属性の定義を示します。

属性

定義

_50thPercentile

現在の時間枠における、すべての測定値の 50 % を下回る測定値。中央とも呼ばれます。

この属性は、中間の測定値を表す手段として、平均値の代わりになります。中央値は、平均値よりも外れ値によって歪む可能性が低くなります。

_75thPercentile

現在の時間枠内における、すべての測定値の 75 % を下回る測定値。第 3 四分位数

_95thPercentile

現在の時間枠内における、すべての測定値の 95 % を下回る測定値

_98thPercentile

現在の時間枠内における、すべての測定値の 98 % を下回る測定値

_99thPercentile

現在の時間枠内における、すべての測定値の 99 % を下回る測定値

_999thPercentile

現在の時間枠内における、すべての測定値の 999 % を下回る測定値

_count

現在の時間枠で指標が出現した回数

_min

現在の時間枠内における最小測定値

_max

現在の時間枠内における最大測定値_max_min の間の統計的範囲で値の変動性を測定する尺度

_mean

現在の時間枠における平均値。

この属性は、大きな外れ値の測定値によって歪む可能性があります。このような場合は、_50thPercentile が中間値としてより適切な指標を提供します。

_stdDev

データのばらつきを示す指標。

標準偏差が低い場合は、値がセットの平均値に近い傾向があることを示します。一方、標準偏差が高い場合は、値がより広い範囲に分散していることを示します。

_durationUnit

期間に使用される測定単位

_fifteenMinuteRate

直近 15 分間で指標が出現した回数

_fiveMinuteRate

直近 5 分間で指標が出現した回数

_meanRate

メーターの作成後にイベントが発生した平均レート

_oneMinuteRate

直近 1 分間で指標が出現した回数

_rateUnit

レートに使用される測定単位

次の属性にご注意ください: _oneMinuteRate_fiveMinuteRate_fifteenMinuteRate

_count は、測定値が時間の経過とともにどのように変化したかを示すものではありません。最新性は分単位のレートで提供されます。

プロパティを処理する

  • JMX ログ記録のポーリング間隔は 60 秒に設定されており、変更できません。

  • ログ ファイルのポーリング間隔は 60 秒に設定されており、システム プロパティ jira.diagnostics.ipdlog.poll.seconds を使用して変更できます。

  • 既定では、JMX 値はポーリングされて atlassian-jira-ipd-monitoring.log に書き込まれます。

最終更新日 2023 年 8 月 14 日

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

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