Jira の自動化 - パフォーマンス インサイト グラフにデータが含まれていない

プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム

この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。

*Fisheye および Crucible は除く

要約

時間、日、週、または月単位の自動化パフォーマンス インサイト グラフを開いても、グラフにデータが表示されません。

Jira 自動化のパフォーマンス インサイトの空のグラフ

データが一部の期間だけ存在している可能性があります。

診断

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」に変更することです。

  1. テーブル構造が変更されるため、データベースをバックアップします。可能であれば、最初にステージング環境でこの変更を行ってください。

  2. Jira を停止します。

  3. 影響を受けるテーブルに応じて、次の SQL クエリを実行します。

  • テーブル「AO_589059_RULE_STAT_ROLLUP_DAY」

ALTER SEQUENCE "AO_589059_RULE_STAT_ROLLUP_DAY_ID_seq" AS bigint;ALTER SEQUENCE "AO_589059_RULE_STAT_ROLLUP_DAY_ID_seq" MAXVALUE 9223372036854775807;

  • テーブル「AO_589059_RULE_STAT_ROLLUP_HR」

ALTER SEQUENCE "AO_589059_RULE_STAT_ROLLUP_HR_ID_seq" AS bigint;ALTER SEQUENCE "AO_589059_RULE_STAT_ROLLUP_HR_ID_seq" MAXVALUE 9223372036854775807;

  • テーブル「AO_589059_RULE_STAT_ROLLUP_MIN」

ALTER SEQUENCE "AO_589059_RULE_STAT_ROLLUP_MIN_ID_seq" AS bigint;ALTER SEQUENCE "AO_589059_RULE_STAT_ROLLUP_MIN_ID_seq" MAXVALUE 9223372036854775807;

4. Jira を起動します。

5. いくつかの自動化ルールが実行されるのを待ってから、統計が表示されるかどうかを確認します。

更新日時: 2024 年 6 月 11 日

さらにヘルプが必要ですか?

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