低速 JQL クエリを特定する

このページの内容

お困りですか?

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

コミュニティに質問

Jira では、パフォーマンス問題のトラブルシューティングに利用できるように、低速 JQL クエリの詳細がログに記録されます。低速クエリを特定するのに役立つ組み込みメカニズムが 2 つあります。

このページの内容

JQL 実行時間について

合計クエリ時間には、検索クエリを Lucene や OpenSearch クエリなどのエンジン固有の形式に変換するのに必要な時間、そしてクエリを実行するのに必要な時間が含まれます。クエリの実行には、実際のクエリ実行のほか、検索リクエストで定義されたすべての集計の実行、結果のソート、および結果ドキュメントの作成が付随します。

クエリ実行時間には、JQL クエリを検索クエリに変換するのに必要な時間は含まれません。クエリの複雑さによっては、この変換にはかなりの時間を要する場合があります。

低速クエリを特定する

低速クエリを特定するには、atlassian-jira-slow-queries.log または jira-diagnostics.log を使用できます。

atlassian-jira-slow-queries.log

400 ミリ秒以上かかる JQL クエリは、それぞれ atlassian-jira-slow-queries.log ファイルに記録されます。このしきい値は変更できません。各ログ エントリはプレフィックス c.a.j.search.issue.DefaultIssueDocumentSearchService_SLOW で始まり、元の JQL クエリと返された結果の数で構成されます。

正常に終了したクエリのみがログに記録されます。

エントリの例:

2025-09-30 20:57:50,970+1000 http-nio-8090-exec-19 url: /jira/rest/issueNav/1/issueTable; user: admin WARN admin 1257x10527x2 zfhlry 0:0:0:0:0:0:0:1 /rest/issueNav/1/issueTable [c.a.j.search.issue.DefaultIssueDocumentSearchService_SLOW] QueryExecutionEvent{query={project = "PROJECT"}queryTermMetrics={projid:10000=TermMetric{termCounts=1, isCustomField=false}, project_permissions:p#10000=TermMetric{termCounts=1, isCustomField=false}, issue_level_permissions:s#-1=TermMetric{termCounts=1, isCustomField=false}}, numberOfClausesInQuery=3, numberOfCustomFieldsUsed=0, executionTime=7326, numberOfResults=6}

jira-diagnostics.log

もう 1 つのメカニズムはアトラシアンの診断プラグインを通じて利用できます。上記の低速クエリ ログとは異なり、Jira 診断では低速 JQL クエリのしきい値を独自に設定できます。既定では、このしきい値は 5,000 ミリ秒に設定されています。ログ エントリは jira-diagnostics.log ファイルに記録されます。

このログ エントリには、低速クエリをトリガーしたスレッドに関する追加のスタック トレースの詳細が含まれます。

エントリの例:

2025-09-30 20:57:44,326+1000 pool-31-thread-1 INFO      [atlassian-diagnostics-data-logger] 1759229864107 ; INFO ; JQL ; JQL-1001 ; Slow JQL query - unknown reason ; not-detected ;  ;  ; {"threadDump":[{"id":63,"name":"http-nio-8090-exec-23 url: /jira/rest/issueNav/1/issueTable; user: admin","daemon":true,"state":"RUNNABLE","stackTrace":"..."}],"reason":"QueryExecutionEvent{queryTermMetrics={projid:10000=TermMetric{termCounts=1, isCustomField=false}, project_permissions:p#10000=TermMetric{termCounts=1, isCustomField=false}, issue_level_permissions:s#-1=TermMetric{termCounts=1, isCustomField=false}}, numberOfClausesInQuery=3, numberOfCustomFieldsUsed=0, executionTime=6248, numberOfResults=6}"}

OpenSearch を使用して低速クエリを検出する

Jira を OpenSearch と組み合わせて実行している場合、組み込みの OpenSearch ロギングを使用して低速クエリを特定できます。既定では、OpenSearch の低速クエリ ロギングは無効になっています。有効にするには、低速クエリのしきい値を設定します。OpenSearch で検索リクエスト低速ログを設定する方法については、こちらをご確認ください。

設定するしきい値が低すぎると、検索リクエスト低速ログがディスク容量を大量に消費し、パフォーマンスに影響を及ぼす可能性があります。この値は Jira のしきい値と一致させることをお勧めします。

Jira と OpenSearch の両方の低速クエリ ロギングを使用することで、検索のボトルネックをすばやく特定できます。Jira クエリ実行時間には、OpenSearch リクエストを準備してネットワーク経由で通信する時間が含まれます。Jira と OpenSearch によって報告されたクエリ時間を比較することで、速度低下の原因が OpenSearch でのクエリ実行によるものか、低速のネットワーク通信によるものかを判断できます。

Jira と OpenSearch のいずれでも低速クエリが報告されないのに検索速度が遅い場合は、検索リクエストが実行される前に問題が発生している可能性があります。たとえば、JQL クエリを検索クエリにマッピングしたことが原因で速度が低下している可能性があります。


最終更新日: 2025 年 10 月 27 日

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

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