|
@@ -14,6 +14,8 @@ import org.elasticsearch.common.Strings;
|
|
|
import org.elasticsearch.common.io.stream.StreamInput;
|
|
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
|
|
import org.elasticsearch.common.io.stream.Writeable;
|
|
|
+import org.elasticsearch.common.logging.DeprecationCategory;
|
|
|
+import org.elasticsearch.common.logging.DeprecationLogger;
|
|
|
import org.elasticsearch.common.unit.ByteSizeValue;
|
|
|
import org.elasticsearch.core.Nullable;
|
|
|
import org.elasticsearch.core.TimeValue;
|
|
@@ -62,6 +64,8 @@ public class Job extends AbstractDiffable<Job> implements Writeable, ToXContentO
|
|
|
|
|
|
public static final String ANOMALY_DETECTOR_JOB_TYPE = "anomaly_detector";
|
|
|
|
|
|
+ private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(Job.class);
|
|
|
+
|
|
|
/*
|
|
|
* Field names used in serialization
|
|
|
*/
|
|
@@ -1207,6 +1211,32 @@ public class Job extends AbstractDiffable<Job> implements Writeable, ToXContentO
|
|
|
&& modelSnapshotRetentionDays > DEFAULT_DAILY_MODEL_SNAPSHOT_RETENTION_AFTER_DAYS) {
|
|
|
dailyModelSnapshotRetentionAfterDays = DEFAULT_DAILY_MODEL_SNAPSHOT_RETENTION_AFTER_DAYS;
|
|
|
}
|
|
|
+
|
|
|
+ final long SECONDS_IN_A_DAY = 86400;
|
|
|
+ if (analysisConfig.getBucketSpan().seconds() > SECONDS_IN_A_DAY) {
|
|
|
+ if (analysisConfig.getBucketSpan().seconds() % SECONDS_IN_A_DAY != 0) {
|
|
|
+ deprecationLogger.critical(
|
|
|
+ DeprecationCategory.OTHER,
|
|
|
+ "bucket_span",
|
|
|
+ "bucket_span {} [{}s] is not an integral multiple of the number of seconds in 1d [{}s]. This is now deprecated.",
|
|
|
+ analysisConfig.getBucketSpan().toString(),
|
|
|
+ analysisConfig.getBucketSpan().seconds(),
|
|
|
+ SECONDS_IN_A_DAY
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (SECONDS_IN_A_DAY % analysisConfig.getBucketSpan().seconds() != 0) {
|
|
|
+ deprecationLogger.critical(
|
|
|
+ DeprecationCategory.OTHER,
|
|
|
+ "bucket_span",
|
|
|
+ "bucket_span {} [{}s] is not an integral divisor of the number of seconds in 1d [{}s]. This is now deprecated.",
|
|
|
+ analysisConfig.getBucketSpan().toString(),
|
|
|
+ analysisConfig.getBucketSpan().seconds(),
|
|
|
+ SECONDS_IN_A_DAY
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (analysisConfig.getModelPruneWindow() == null) {
|
|
|
long modelPruneWindowSeconds = analysisConfig.getBucketSpan().seconds() / 2 + AnalysisConfig.DEFAULT_MODEL_PRUNE_WINDOW
|
|
|
.seconds();
|
|
@@ -1217,7 +1247,6 @@ public class Job extends AbstractDiffable<Job> implements Writeable, ToXContentO
|
|
|
modelPruneWindowSeconds = Math.max(20 * analysisConfig.getBucketSpan().seconds(), modelPruneWindowSeconds);
|
|
|
|
|
|
AnalysisConfig.Builder analysisConfigBuilder = new AnalysisConfig.Builder(analysisConfig);
|
|
|
- final long SECONDS_IN_A_DAY = 86400;
|
|
|
final long SECONDS_IN_AN_HOUR = 3600;
|
|
|
final long SECONDS_IN_A_MINUTE = 60;
|
|
|
if (modelPruneWindowSeconds % SECONDS_IN_A_DAY == 0) {
|