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

このページの内容

お困りですか?

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

コミュニティに質問

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

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

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 で費やされた時間の詳細が提供され、それらによって生じたインデックス パフォーマンスの低下を追跡するのに使用できます。このメトリックは、作成された課題ドキュメントごとに組み合わされたすべての FieldIndexers で費やされた時間について示しています。

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 の監視

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

考慮事項

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

Jira で JMX 監視を有効化する

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

  1. Jira で、[管理] () > [システム] > [JMX 監視] に移動します。
  2. JMX 監視の有効化を切り替えます。

JConsole を使って監視する

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

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

    手順について

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

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

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

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

    手順について

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

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

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

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

製品内診断で JMX からデータベース接続メトリックを利用する

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

製品内診断 (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 値がポーリングされ、ログ ファイルに書き込まれます (このパラメーターは、EAP 02 以降に更新されています)。このポーリング間隔は、システム プロパティ jira.diagnostics.ipdlog.poll.seconds を使用して変更できます。

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

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

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

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

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

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

IPD を無効にする

IPD は既定で有効になっています。無効にするには、次の手順に従います。

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

ログ形式

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 を探して [無効化] を選択します。

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

簡潔データ

MBean タイプ

プロパティ

属性

カウンター

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"}}


拡張データ

MBean タイプ

プロパティ

属性

カウンター

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"}}

プロパティを処理する

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

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

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

最終更新日: 2022 年 10 月 4 日

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

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