-
Notifications
You must be signed in to change notification settings - Fork 738
Description
Description
Right now, you can configure retention via ZEEBE_BROKER_EXPORTERS_CAMUNDA_ARGS_RETENTION_*, and archiver properties (e.g. rollover interval) via ZEEBE_BROKER_EXPORTERS_CAMUNDA_ARGS_ARCHIVER_*.
This is because we consider retention to be tied to ILM/data deletion, and archiving to just creating the rollover indices. I think that's fine in terms of implementation details, but from a user perspective, it's likely the same general concern.
Archiving is implementation details of how we handle data retention, so the archiver properties should be merged with the retention configuration. That would mean:
public static final class RetentionConfiguration {
private boolean enabled = false;
private String minimumAge = "30d";
private String policyName;
}Becomes:
public static final class RetentionConfiguration {
private boolean enabled = false;
private String minimumAge = "30d";
private String policyName;
private boolean rolloverEnabled = true;
private String elsRolloverDateFormat = "date";
private String rolloverInterval = "1d";
private int rolloverBatchSize = 100;
private String waitPeriodBeforeArchiving = "1h";
private int delayBetweenRuns = 2000;
}You could also make rollover a sub type of RetentionConfiguration, I have no strong opinion on this.
I suspect most users will only configure the retention configuration, and advanced users may configure rollover, but likely only the interval and format. Everything else is advanced or ways for us to mitigate issues with archiving.