diff --git a/src/ServiceControl.Config/Commands/UpgradeServiceControlInstanceCommand.cs b/src/ServiceControl.Config/Commands/UpgradeServiceControlInstanceCommand.cs index fc7bdc26f0..6bf5f5a8a5 100644 --- a/src/ServiceControl.Config/Commands/UpgradeServiceControlInstanceCommand.cs +++ b/src/ServiceControl.Config/Commands/UpgradeServiceControlInstanceCommand.cs @@ -62,19 +62,6 @@ public override async Task ExecuteAsync(InstanceDetailsViewModel model) upgradeOptions.OverrideEnableErrorForwarding = !result.Value; } - //Grab old setting if it exists - if (!instance.AppConfig.AppSettingExists(ServiceControlSettings.AuditRetentionPeriod.Name)) - { - if (instance.AppConfig.AppSettingExists(ServiceControlSettings.HoursToKeepMessagesBeforeExpiring.Name)) - { - var i = instance.AppConfig.Read(ServiceControlSettings.HoursToKeepMessagesBeforeExpiring.Name, -1); - if (i != -1) - { - upgradeOptions.AuditRetentionPeriod = TimeSpan.FromHours(i); - } - } - } - if (!instance.AppConfig.AppSettingExists(ServiceControlSettings.ErrorRetentionPeriod.Name)) { var viewModel = new SliderDialogViewModel("INPUT REQUIRED - DATABASE RETENTION", diff --git a/src/ServiceControl.Management.PowerShell/Cmdlets/ServiceControlInstances/PSServiceControl.cs b/src/ServiceControl.Management.PowerShell/Cmdlets/ServiceControlInstances/PSServiceControl.cs index 11d5977c16..e6fe51006d 100644 --- a/src/ServiceControl.Management.PowerShell/Cmdlets/ServiceControlInstances/PSServiceControl.cs +++ b/src/ServiceControl.Management.PowerShell/Cmdlets/ServiceControlInstances/PSServiceControl.cs @@ -44,8 +44,6 @@ public class PsServiceControl public bool ForwardAuditMessages { get; set; } - public TimeSpan? AuditRetentionPeriod { get; set; } - public string ServiceAccount { get; set; } public SemanticVersion Version { get; set; } @@ -77,7 +75,6 @@ public static PsServiceControl FromInstance(ServiceControlInstance instance) AuditQueue = instance.AuditQueue, AuditLogQueue = instance.ForwardAuditMessages ? instance.AuditLogQueue : null, ForwardAuditMessages = instance.ForwardAuditMessages, - AuditRetentionPeriod = instance.AuditRetentionPeriod, ErrorRetentionPeriod = instance.ErrorRetentionPeriod, EnableFullTextSearchOnBodies = instance.EnableFullTextSearchOnBodies, RemoteInstances = instance.RemoteInstances.Select(i => diff --git a/src/ServiceControl.Management.PowerShell/ServiceControl.Management.PowerShell.dll-help.xml b/src/ServiceControl.Management.PowerShell/ServiceControl.Management.PowerShell.dll-help.xml index 42ad697714..353d87c9ee 100644 --- a/src/ServiceControl.Management.PowerShell/ServiceControl.Management.PowerShell.dll-help.xml +++ b/src/ServiceControl.Management.PowerShell/ServiceControl.Management.PowerShell.dll-help.xml @@ -1485,16 +1485,6 @@ Invoke-ServiceControlInstanceUpgrade - - AuditRetentionPeriod - - - AuditRetentionPeriod controls how long ServiceControl retains messages ingested from the Audit queue in the database. The value must be a TimeSpan within the range 1 hour to 365 days. - Use the New-TimeSpan cmdlet to generate a TimeSpan value. - - - Nullable`1[TimeSpan] - ErrorRetentionPeriod @@ -1536,21 +1526,6 @@ - - AuditRetentionPeriod - - - AuditRetentionPeriod controls how long ServiceControl retains messages ingested from the Audit queue in the database. The value must be a TimeSpan within the range 1 hour to 365 days. - Use the New-TimeSpan cmdlet to generate a TimeSpan value. - - - Nullable`1[TimeSpan] - - Nullable`1[TimeSpan] - - - - ErrorRetentionPeriod @@ -2934,21 +2909,6 @@ - - AuditRetentionPeriod - - - AuditRetention Period controls how long ServiceControl retains messages ingested from the Audit queue in the database. The value must be a TimeSpan within the range 1 hour to 365 days. - Use the New-TimeSpan cmdlet to generate a TimeSpan value. - - - timespan - - timespan - - - - EnableIntegratedServicePulse @@ -3003,7 +2963,6 @@ PS C:\> - $AuditRetention = New-TimeSpan -Days 30 $ErrorRetention = New-TimeSpan -Days 30 New-ServiceControlInstance -Name 'ServiceControlTest' ` @@ -3015,7 +2974,6 @@ -ErrorQueue error ` -Transport MSMQ ` -DisplayName 'ServiceControl Test' ` - -AuditRetentionPeriod $AuditRetention ` -ErrorRetentionPeriod $ErrorRetention ` -ForwardErrorMessages:$false ` -EnableIntegratedServicePulse diff --git a/src/ServiceControl.Persistence.RavenDB/RavenPersistenceConfiguration.cs b/src/ServiceControl.Persistence.RavenDB/RavenPersistenceConfiguration.cs index 44b20a23a2..12e64c55fd 100644 --- a/src/ServiceControl.Persistence.RavenDB/RavenPersistenceConfiguration.cs +++ b/src/ServiceControl.Persistence.RavenDB/RavenPersistenceConfiguration.cs @@ -12,7 +12,6 @@ namespace ServiceControl.Persistence.RavenDB class RavenPersistenceConfiguration : PersistenceConfiguration, IPersistenceConfiguration { public const string DataSpaceRemainingThresholdKey = "DataSpaceRemainingThreshold"; - const string AuditRetentionPeriodKey = "AuditRetentionPeriod"; const string ErrorRetentionPeriodKey = "ErrorRetentionPeriod"; const string EventsRetentionPeriodKey = "EventsRetentionPeriod"; const string ExternalIntegrationsDispatchingBatchSizeKey = "ExternalIntegrationsDispatchingBatchSize"; @@ -39,7 +38,6 @@ public PersistenceSettings CreateSettings(SettingsRootNamespace settingsRootName DataSpaceRemainingThreshold = SettingsReader.Read(settingsRootNamespace, DataSpaceRemainingThresholdKey, CheckFreeDiskSpace.DataSpaceRemainingThresholdDefault), ErrorRetentionPeriod = GetRequiredSetting(settingsRootNamespace, ErrorRetentionPeriodKey), EventsRetentionPeriod = SettingsReader.Read(settingsRootNamespace, EventsRetentionPeriodKey, TimeSpan.FromDays(14)), - AuditRetentionPeriod = SettingsReader.Read(settingsRootNamespace, AuditRetentionPeriodKey, TimeSpan.Zero), ExternalIntegrationsDispatchingBatchSize = ReadExternalIntegrationsDispatchingBatchSize(settingsRootNamespace), QueryTimeout = QueryTimeLimit.Read(settingsRootNamespace, LoggerUtil.CreateStaticLogger()), MaintenanceMode = SettingsReader.Read(settingsRootNamespace, MaintenanceModeKey, false), diff --git a/src/ServiceControl.Persistence.RavenDB/RavenPersisterSettings.cs b/src/ServiceControl.Persistence.RavenDB/RavenPersisterSettings.cs index 0f59fd9554..ef286b1bdd 100644 --- a/src/ServiceControl.Persistence.RavenDB/RavenPersisterSettings.cs +++ b/src/ServiceControl.Persistence.RavenDB/RavenPersisterSettings.cs @@ -12,7 +12,6 @@ class RavenPersisterSettings : PersistenceSettings, IRavenClientCertificateInfo public int DataSpaceRemainingThreshold { get; set; } = CheckFreeDiskSpace.DataSpaceRemainingThresholdDefault; public TimeSpan ErrorRetentionPeriod { get; set; } public TimeSpan EventsRetentionPeriod { get; set; } - public TimeSpan? AuditRetentionPeriod { get; set; } public int ExternalIntegrationsDispatchingBatchSize { get; set; } = ExternalIntegrationsDispatchingBatchSizeDefault; /// diff --git a/src/ServiceControl.Persistence.Tests.RavenDB/PersistenceTestsContext.cs b/src/ServiceControl.Persistence.Tests.RavenDB/PersistenceTestsContext.cs index 5bcae71f20..a49d53d7e5 100644 --- a/src/ServiceControl.Persistence.Tests.RavenDB/PersistenceTestsContext.cs +++ b/src/ServiceControl.Persistence.Tests.RavenDB/PersistenceTestsContext.cs @@ -34,7 +34,6 @@ public async Task Setup(IHostApplicationBuilder hostBuilder) PersistenceSettings = new RavenPersisterSettings { - AuditRetentionPeriod = retentionPeriod, ErrorRetentionPeriod = retentionPeriod, EventsRetentionPeriod = retentionPeriod, DatabaseName = databaseName, diff --git a/src/ServiceControl.UnitTests/ApprovalFiles/APIApprovals.PlatformSampleSettings.approved.txt b/src/ServiceControl.UnitTests/ApprovalFiles/APIApprovals.PlatformSampleSettings.approved.txt index abd4c98313..62ebbb941c 100644 --- a/src/ServiceControl.UnitTests/ApprovalFiles/APIApprovals.PlatformSampleSettings.approved.txt +++ b/src/ServiceControl.UnitTests/ApprovalFiles/APIApprovals.PlatformSampleSettings.approved.txt @@ -69,7 +69,6 @@ "IngestErrorMessages": true, "RunRetryProcessor": true, "ErrorIngestionOnly": false, - "AuditRetentionPeriod": null, "ErrorRetentionPeriod": "10.00:00:00", "EventsRetentionPeriod": "14.00:00:00", "InstanceName": "Particular.ServiceControl", diff --git a/src/ServiceControl/HostApplicationBuilderExtensions.cs b/src/ServiceControl/HostApplicationBuilderExtensions.cs index 9b682fe1a6..61ac83df7d 100644 --- a/src/ServiceControl/HostApplicationBuilderExtensions.cs +++ b/src/ServiceControl/HostApplicationBuilderExtensions.cs @@ -197,7 +197,6 @@ static void RecordStartup(Settings settings, EndpointConfiguration endpointConfi var startupMessage = $@" ------------------------------------------------------------- ServiceControl Version: {version} -Audit Retention Period (optional): {settings.AuditRetentionPeriod} Error Retention Period: {settings.ErrorRetentionPeriod} Ingest Error Messages: {settings.IngestErrorMessages} Error Ingestion Only: {settings.ErrorIngestionOnly} diff --git a/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs b/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs index 4d61e23ca8..92755db096 100644 --- a/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs +++ b/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs @@ -65,7 +65,6 @@ public Task GetConfig(CancellationToken cancellationToken = default) }, DataRetention = new { - settings.AuditRetentionPeriod, settings.ErrorRetentionPeriod }, PerformanceTunning = new diff --git a/src/ServiceControl/Infrastructure/Settings/Settings.cs b/src/ServiceControl/Infrastructure/Settings/Settings.cs index af52f4bf88..8583aef255 100644 --- a/src/ServiceControl/Infrastructure/Settings/Settings.cs +++ b/src/ServiceControl/Infrastructure/Settings/Settings.cs @@ -48,7 +48,6 @@ public Settings( TransportConnectionString = GetConnectionString(); TransportType = transportType ?? SettingsReader.Read(SettingsRootNamespace, "TransportType"); PersistenceType = persisterType ?? SettingsReader.Read(SettingsRootNamespace, "PersistenceType"); - AuditRetentionPeriod = GetAuditRetentionPeriod(); ForwardErrorMessages = forwardErrorMessages ?? GetForwardErrorMessages(); ErrorRetentionPeriod = errorRetentionPeriod ?? GetErrorRetentionPeriod(); EventsRetentionPeriod = GetEventRetentionPeriod(); @@ -196,8 +195,6 @@ public string InstanceId // Set by the --error-ingestion-only command, never read from configuration. public bool ErrorIngestionOnly { get; set; } - public TimeSpan? AuditRetentionPeriod { get; set; } - public TimeSpan ErrorRetentionPeriod { get; } public TimeSpan EventsRetentionPeriod { get; } @@ -342,41 +339,6 @@ TimeSpan GetErrorRetentionPeriod() return result; } - TimeSpan? GetAuditRetentionPeriod() - { - string message; - var valueRead = SettingsReader.Read(SettingsRootNamespace, "AuditRetentionPeriod"); - if (valueRead == null) - { - return null; - } - - if (TimeSpan.TryParse(valueRead, out var result)) - { - if (ValidateConfiguration && result < TimeSpan.FromHours(1)) - { - message = "AuditRetentionPeriod settings is invalid, value should be minimum 1 hour."; - InternalLogger.Fatal(message); - throw new Exception(message); - } - - if (ValidateConfiguration && result > TimeSpan.FromDays(365)) - { - message = "AuditRetentionPeriod settings is invalid, value should be maximum 365 days."; - InternalLogger.Fatal(message); - throw new Exception(message); - } - } - else - { - message = "AuditRetentionPeriod settings is invalid, please make sure it is a TimeSpan."; - InternalLogger.Fatal(message); - throw new Exception(message); - } - - return result; - } - TimeSpan GetHeartbeatGracePeriod() { try diff --git a/src/ServiceControlInstaller.Engine.UnitTests/RunEngineTasksExplicitly.cs b/src/ServiceControlInstaller.Engine.UnitTests/RunEngineTasksExplicitly.cs index d45f8f1866..c1c71c16b6 100644 --- a/src/ServiceControlInstaller.Engine.UnitTests/RunEngineTasksExplicitly.cs +++ b/src/ServiceControlInstaller.Engine.UnitTests/RunEngineTasksExplicitly.cs @@ -34,7 +34,6 @@ public void UpgradeInstance() { installer.Upgrade(instance, new ServiceControlUpgradeOptions { - AuditRetentionPeriod = TimeSpan.FromDays(30), ErrorRetentionPeriod = TimeSpan.FromDays(15), OverrideEnableErrorForwarding = true }); @@ -63,7 +62,6 @@ public async Task CreateInstanceMSMQ() details.AuditQueue = "audittest"; details.ForwardAuditMessages = false; details.ForwardErrorMessages = false; - details.AuditRetentionPeriod = TimeSpan.FromDays(SettingConstants.AuditRetentionPeriodDefaultInDaysForUI); details.ErrorRetentionPeriod = TimeSpan.FromDays(SettingConstants.ErrorRetentionPeriodDefaultInDaysForUI); details.ErrorQueue = "testerror"; details.TransportPackage = ServiceControlCoreTransports.Find("MSMQ"); diff --git a/src/ServiceControlInstaller.Engine.UnitTests/Validation/QueueValidationTests.cs b/src/ServiceControlInstaller.Engine.UnitTests/Validation/QueueValidationTests.cs index aaf6fdf138..a38491b7e5 100644 --- a/src/ServiceControlInstaller.Engine.UnitTests/Validation/QueueValidationTests.cs +++ b/src/ServiceControlInstaller.Engine.UnitTests/Validation/QueueValidationTests.cs @@ -25,8 +25,6 @@ class FakeServiceControlInstance : IServiceControlInstance public TimeSpan ErrorRetentionPeriod { get; set; } - public TimeSpan? AuditRetentionPeriod { get; set; } - public List RemoteInstances { get; set; } public bool EnableFullTextSearchOnBodies { get; set; } diff --git a/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/ServiceControlAppConfig.cs b/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/ServiceControlAppConfig.cs index 3f2ef78627..7e492ee9db 100644 --- a/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/ServiceControlAppConfig.cs +++ b/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/ServiceControlAppConfig.cs @@ -34,7 +34,6 @@ protected override void UpdateSettings() settings.Set(ServiceControlSettings.PersistenceType, details.PersistenceManifest.Name); // TODO: Why is it set here AND at ServiceControlInstance.ApplySettingsChanges 🤬 settings.Set(ServiceControlSettings.ErrorQueue, details.ErrorQueue); settings.Set(ServiceControlSettings.ErrorLogQueue, details.ForwardErrorMessages ? details.ErrorLogQueue : null); - settings.Set(ServiceControlSettings.AuditRetentionPeriod, details.AuditRetentionPeriod.ToString(), version); settings.Set(ServiceControlSettings.ErrorRetentionPeriod, details.ErrorRetentionPeriod.ToString(), version); settings.Set(ServiceControlSettings.EnableFullTextSearchOnBodies, details.EnableFullTextSearchOnBodies.ToString(), version); settings.Set(ServiceControlSettings.RemoteInstances, RemoteInstanceConverter.ToJson(details.RemoteInstances), version); @@ -47,6 +46,7 @@ protected override void UpdateSettings() settings.Set(ServiceControlSettings.ShutdownTimeout, "00:02:00", version); // Retired settings + settings.RemoveIfRetired(ServiceControlSettings.AuditRetentionPeriod, version); settings.RemoveIfRetired(ServiceControlSettings.AuditQueue, version); settings.RemoveIfRetired(ServiceControlSettings.AuditLogQueue, version); settings.RemoveIfRetired(ServiceControlSettings.ForwardAuditMessages, version); diff --git a/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/SettingsList.cs b/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/SettingsList.cs index e209253c27..cd58aed536 100644 --- a/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/SettingsList.cs +++ b/src/ServiceControlInstaller.Engine/Configuration/ServiceControl/SettingsList.cs @@ -57,7 +57,8 @@ public static class ServiceControlSettings public static SettingInfo AuditRetentionPeriod = new() { Name = "ServiceControl/AuditRetentionPeriod", - SupportedFrom = new SemanticVersion(1, 12, 1) + SupportedFrom = new SemanticVersion(1, 12, 1), + RemovedFrom = new SemanticVersion(7, 0, 0) }; public static SettingInfo ErrorRetentionPeriod = new() diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs index 34328ebe5d..1cec5700db 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlInstance.cs @@ -48,8 +48,6 @@ public ServiceControlInstance(IWindowsServiceController service) : base(service) protected override string BaseServiceName => "ServiceControl"; - public TimeSpan? AuditRetentionPeriod { get; set; } - public List RemoteInstances { get; set; } = []; public PersistenceManifest PersistenceManifest { get; set; } @@ -173,11 +171,6 @@ public override void Reload() ErrorRetentionPeriod = errorRetentionPeriod; } - if (TimeSpan.TryParse(AppConfig.Read(ServiceControlSettings.AuditRetentionPeriod, (string)null), out var auditRetentionPeriod)) - { - AuditRetentionPeriod = auditRetentionPeriod; - } - var remoteInstancesString = AppConfig.Read(ServiceControlSettings.RemoteInstances, default(string)); if (!string.IsNullOrWhiteSpace(remoteInstancesString)) { @@ -205,9 +198,9 @@ protected override void ApplySettingsChanges(KeyValueConfigurationCollection set settings.Set(ServiceControlSettings.LogPath, LogPath); settings.Set(ServiceControlSettings.ForwardAuditMessages, ForwardAuditMessages.ToString(), Version); settings.Set(ServiceControlSettings.ForwardErrorMessages, ForwardErrorMessages.ToString(), Version); - settings.Set(ServiceControlSettings.AuditRetentionPeriod, AuditRetentionPeriod.ToString(), Version); settings.Set(ServiceControlSettings.ErrorRetentionPeriod, ErrorRetentionPeriod.ToString(), Version); settings.RemoveIfRetired(ServiceControlSettings.HoursToKeepMessagesBeforeExpiring, Version); + settings.RemoveIfRetired(ServiceControlSettings.AuditRetentionPeriod, Version); settings.Set(ServiceControlSettings.AuditQueue, AuditQueue, Version); settings.Set(ServiceControlSettings.ErrorQueue, ErrorQueue); settings.Set(ServiceControlSettings.AuditLogQueue, AuditLogQueue, Version); diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs index 62fded61dd..14a30b13f9 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlNewInstance.cs @@ -66,9 +66,6 @@ public void AddRemoteInstance(string apiUri) } } - [XmlElement(typeof(XmlNullableTimeSpan))] - public TimeSpan? AuditRetentionPeriod { get; set; } - [XmlElement(typeof(XmlTimeSpan))] public TimeSpan ErrorRetentionPeriod { get; set; } @@ -126,11 +123,6 @@ public static ServiceControlNewInstance Load(string path) throw new InvalidDataException("The supplied file is using an old format. Which is no longer supported."); } - if (doc.SelectSingleNode("/ServiceControlInstanceMetadata/AuditRetentionPeriod") == null) - { - throw new InvalidDataException("The supplied file is using an old format. Which is no longer supported."); - } - if (doc.SelectSingleNode("/ServiceControlInstanceMetadata/ErrorRetentionPeriod") == null) { throw new InvalidDataException("The supplied file is using an old format. Which is no longer supported."); diff --git a/src/ServiceControlInstaller.Engine/Instances/ServiceControlUpgradeOptions.cs b/src/ServiceControlInstaller.Engine/Instances/ServiceControlUpgradeOptions.cs index 74e2ed9cfe..bd6e5c62f7 100644 --- a/src/ServiceControlInstaller.Engine/Instances/ServiceControlUpgradeOptions.cs +++ b/src/ServiceControlInstaller.Engine/Instances/ServiceControlUpgradeOptions.cs @@ -6,7 +6,6 @@ public class ServiceControlUpgradeOptions { public bool? OverrideEnableErrorForwarding { get; set; } public TimeSpan? ErrorRetentionPeriod { get; set; } - public TimeSpan? AuditRetentionPeriod { get; set; } public int? MaintenancePort { get; set; } public bool SkipQueueCreation { get; set; } public string RemoteUrl { get; set; } @@ -38,11 +37,6 @@ void ApplyChangesTo(ServiceControlInstance instance) instance.ErrorRetentionPeriod = ErrorRetentionPeriod.Value; } - if (AuditRetentionPeriod.HasValue) - { - instance.AuditRetentionPeriod = AuditRetentionPeriod.Value; - } - if (MaintenancePort.HasValue) { instance.DatabaseMaintenancePort = MaintenancePort; diff --git a/src/ServiceControlInstaller.Engine/Interfaces.cs b/src/ServiceControlInstaller.Engine/Interfaces.cs index 5d5968b7a5..53b64c5192 100644 --- a/src/ServiceControlInstaller.Engine/Interfaces.cs +++ b/src/ServiceControlInstaller.Engine/Interfaces.cs @@ -111,7 +111,6 @@ public interface IServiceControlInstance : IServiceControlBaseInstance, IURLInfo bool ForwardErrorMessages { get; } bool EnableIntegratedServicePulse { get; } TimeSpan ErrorRetentionPeriod { get; } - TimeSpan? AuditRetentionPeriod { get; set; } List RemoteInstances { get; } } } \ No newline at end of file