Jira の自動化 - パフォーマンス インサイト グラフにデータが含まれていない
プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
時間、日、週、または月単位の自動化パフォーマンス インサイト グラフを開いても、グラフにデータが表示されません。
データが一部の期間だけ存在している可能性があります。
診断
atlassian-jira.log を覗いてみると、次のようなエラーが表示されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2024-02-22 14:42:53,411+0100 Caesium-1-2 ERROR ServiceRunner [c.c.j.p.automation.schedule.RuleInsightsUpdateJob] Error executing rule insights update job
com.querydsl.core.QueryException: Caught BatchUpdateException for insert into "public"."AO_589059_RULE_STAT_ROLLUP_DAY" ("CATEGORY", "CLIENT_KEY", "CREATED", "DURATION", "END_TO_END_DURATION", "EXECUTION_COUNT", "QUEUED_ITEM_COUNT", "RULE_ID")
values (?, ?, ?, ?, ?, ?, ?, ?)
at com.querydsl.sql.support.JavaSE7SQLExceptionWrapper.wrap(JavaSE7SQLExceptionWrapper.java:41)
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:48)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)
at com.querydsl.sql.dml.SQLInsertClause.execute(SQLInsertClause.java:445)
at com.codebarrel.jira.plugin.automation.store.JiraRuleInsightStore.lambda$populateInsights$4(JiraRuleInsightStore.java:156)
at com.codebarrel.data.api.jira.JiraDbConnectionManager.lambda$execute$0(JiraDbConnectionManager.java:47)
at com.atlassian.jira.database.DatabaseAccessorImpl.executeQuery(DatabaseAccessorImpl.java:77)
at jdk.internal.reflect.GeneratedMethodAccessor535.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at jdk.proxy3/jdk.proxy3.$Proxy612.executeQuery(Unknown Source)
at jdk.internal.reflect.GeneratedMethodAccessor535.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
...
Suppressed: org.postgresql.util.PSQLException: ERROR: nextval: reached maximum value of sequence "AO_589059_RULE_STAT_ROLLUP_DAY_ID_seq" (2147483647)
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2134)
at org.postgresql.core.v3.QueryExecutorImpl.flushIfDeadlockRisk(QueryExecutorImpl.java:1491)
at org.postgresql.core.v3.QueryExecutorImpl.sendQuery(QueryExecutorImpl.java:1516)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:560)
at org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
...
このエラーは、テーブル「AO_589059_RULE_STAT_ROLLUP_DAY」のデータベース シーケンスが最大値 (2147483647) に達したことを示しています。したがって、このテーブルに新しい値を挿入することはできません。つまり、このエラーが最初に発生した後にデータが失われます。
"AO_589059_RULE_STAT_ROLLUP_MIN" テーブルと "AO_589059_RULE_STAT_ROLLUP_HR" テーブルで同じエラーが表示される場合があります。
カウンターの値を確認するには、次のクエリを実行します。
1
2
3
select * from "AO_589059_RULE_STAT_ROLLUP_DAY_ID_seq";
select * from "AO_589059_RULE_STAT_ROLLUP_HR_ID_seq";
select * from "AO_589059_RULE_STAT_ROLLUP_MIN_ID_seq";
シーケンスの最大値に達した場合は、最後の値列の結果が 2147483647 になります。
原因
この問題の原因はまだわかっていません。新しい Jira データベースでは、シーケンス データ型は "bigint" であり、9223372036854775807 で最大値に達するため、問題は事実上発生しません。
シーケンスカウンタのデータ型は、3つのテーブル(「AO_589059_RULE_STAT_ROLLUP_MIN」、「AO_589059_RULE_STAT_ROLLUP_HR」、「AO_589059_RULE_STAT_ROLLUP_DAY」)すべてで「bigint」である必要があります。これらのテーブルのデータ型が正しいかどうかを確認するには、次のクエリを実行します。
1
select * from information_schema.sequences where sequence_name in ('AO_589059_RULE_STAT_ROLLUP_DAY_ID_seq','AO_589059_RULE_STAT_ROLLUP_HR_ID_seq','AO_589059_RULE_STAT_ROLLUP_MIN_ID_seq');
「data_type」列が「bigint」値を返す場合、これは正しい値です。それ以外の場合、戻り値がすべてまたは一部のテーブルで「整数」の場合は、これを修正するために解決策セクションに進みます。
ソリューション
ここでの解決策は、影響を受けるテーブルについて、シーケンスカウンターのデータ型を「bigint」に変更することです。
テーブル構造が変更されるため、データベースをバックアップします。可能であれば、最初にステージング環境でこの変更を行ってください。
Jira を停止します。
影響を受けるテーブルに応じて、次の SQL クエリを実行します。
テーブル「AO_589059_RULE_STAT_ROLLUP_DAY」
|
テーブル「AO_589059_RULE_STAT_ROLLUP_HR」
|
テーブル「AO_589059_RULE_STAT_ROLLUP_MIN」
|
4. Jira を起動します。
5. いくつかの自動化ルールが実行されるのを待ってから、統計が表示されるかどうかを確認します。
この内容はお役に立ちましたか?