From 8805ba55fdd536ae1ebe0e0e17ccf932f0472b3b Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Wed, 7 Apr 2021 00:08:54 +0200 Subject: [PATCH 1/4] Folder size --- .../Infrastructure/Bootstrapper.cs | 33 ++++++++++++++- src/ServiceControl/Bootstrapper.cs | 40 ++++++++++++++++--- 2 files changed, 67 insertions(+), 6 deletions(-) diff --git a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs index da296a82fe..43149c8641 100644 --- a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs +++ b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs @@ -168,6 +168,36 @@ long DataSize() } } + long FolderSize() + { + try + { + var dir = new DirectoryInfo(settings.DbPath); + var dirSize = DirSize(dir); + return dirSize; + } + catch + { + return -1; + } + } + + static long DirSize(DirectoryInfo d) + { + long size = 0; + FileInfo[] fis = d.GetFiles(); + foreach (FileInfo fi in fis) + { + size += fi.Length; + } + DirectoryInfo[] dis = d.GetDirectories(); + foreach (DirectoryInfo di in dis) + { + size += DirSize(di); + } + return size; + } + void RecordStartup(LoggingSettings loggingSettings, EndpointConfiguration endpointConfiguration) { var version = FileVersionInfo.GetVersionInfo(typeof(Bootstrapper).Assembly.Location).ProductVersion; @@ -176,7 +206,8 @@ void RecordStartup(LoggingSettings loggingSettings, EndpointConfiguration endpoi ServiceControl Audit Version: {version} Audit Retention Period: {settings.AuditRetentionPeriod} Forwarding Audit Messages: {settings.ForwardAuditMessages} -Database Size: {DataSize()} bytes +Database Size: {DataSize():n0} bytes +Database Folder Size: {FolderSize():n0} bytes ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType} diff --git a/src/ServiceControl/Bootstrapper.cs b/src/ServiceControl/Bootstrapper.cs index 38371c359b..94131d6f6d 100644 --- a/src/ServiceControl/Bootstrapper.cs +++ b/src/ServiceControl/Bootstrapper.cs @@ -174,13 +174,42 @@ long DataSize() try { var info = new FileInfo(datafilePath); - return info.Length; } - catch (Exception) + catch + { + return -1; + } + } + + long FolderSize() + { + try + { + var dir = new DirectoryInfo(settings.DbPath); + var dirSize = DirSize(dir); + return dirSize; + } + catch + { + return -1; + } + } + + static long DirSize(DirectoryInfo d) + { + long size = 0; + FileInfo[] fis = d.GetFiles(); + foreach (FileInfo fi in fis) + { + size += fi.Length; + } + DirectoryInfo[] dis = d.GetDirectories(); + foreach (DirectoryInfo di in dis) { - return 0; + size += DirSize(di); } + return size; } void RecordStartup(LoggingSettings loggingSettings, EndpointConfiguration endpointConfiguration) @@ -193,7 +222,8 @@ Audit Retention Period (optional): {settings.AuditRetentionPeriod} Error Retention Period: {settings.ErrorRetentionPeriod} Ingest Error Messages: {settings.IngestErrorMessages} Forwarding Error Messages: {settings.ForwardErrorMessages} -Database Size: {DataSize()} bytes +Database Size: {DataSize():n0} bytes +Database Folder Size: {FolderSize():n0} bytes ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType} @@ -254,4 +284,4 @@ public ConstructorInfo[] FindConstructors(Type targetType) static readonly ConcurrentDictionary Cache = new ConcurrentDictionary(); } } -} \ No newline at end of file +} From ed4976adee17224228d6a8e2c9170b2cdaeb77ee Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Wed, 7 Apr 2021 13:55:27 +0200 Subject: [PATCH 2/4] Humanize folder size. --- src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs | 8 ++++++-- .../ServiceControl.SagaAudit.csproj | 1 + src/ServiceControl/Bootstrapper.cs | 8 ++++++-- src/ServiceControl/ServiceControl.csproj | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs index 43149c8641..6f93c9debe 100644 --- a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs +++ b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs @@ -3,6 +3,7 @@ namespace ServiceControl.Audit.Infrastructure using System; using System.Collections.Concurrent; using System.Diagnostics; + using System.Globalization; using System.IO; using System.Linq; using System.Net; @@ -16,6 +17,7 @@ namespace ServiceControl.Audit.Infrastructure using Autofac; using Autofac.Core.Activators.Reflection; using Autofac.Features.ResolveAnything; + using Humanizer; using Microsoft.Owin.Hosting; using Monitoring; using NServiceBus; @@ -201,13 +203,15 @@ static long DirSize(DirectoryInfo d) void RecordStartup(LoggingSettings loggingSettings, EndpointConfiguration endpointConfiguration) { var version = FileVersionInfo.GetVersionInfo(typeof(Bootstrapper).Assembly.Location).ProductVersion; + var dataSize = DataSize(); + var folderSize = FolderSize(); var startupMessage = $@" ------------------------------------------------------------- ServiceControl Audit Version: {version} Audit Retention Period: {settings.AuditRetentionPeriod} Forwarding Audit Messages: {settings.ForwardAuditMessages} -Database Size: {DataSize():n0} bytes -Database Folder Size: {FolderSize():n0} bytes +Database Size: {dataSize:n0} bytes ({dataSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) +Database Folder Size: {folderSize:n0} bytes ({folderSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType} diff --git a/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj b/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj index 4b9ccfcc0e..3b5df8e2a7 100644 --- a/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj +++ b/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj @@ -5,6 +5,7 @@ + diff --git a/src/ServiceControl/Bootstrapper.cs b/src/ServiceControl/Bootstrapper.cs index 94131d6f6d..bb9fc45edd 100644 --- a/src/ServiceControl/Bootstrapper.cs +++ b/src/ServiceControl/Bootstrapper.cs @@ -3,6 +3,7 @@ namespace Particular.ServiceControl using System; using System.Collections.Concurrent; using System.Diagnostics; + using System.Globalization; using System.IO; using System.Linq; using System.Net; @@ -22,6 +23,7 @@ namespace Particular.ServiceControl using global::ServiceControl.Operations; using global::ServiceControl.Recoverability; using global::ServiceControl.Transports; + using Humanizer; using Microsoft.Owin.Hosting; using NServiceBus; using NServiceBus.Configuration.AdvancedExtensibility; @@ -215,6 +217,8 @@ static long DirSize(DirectoryInfo d) void RecordStartup(LoggingSettings loggingSettings, EndpointConfiguration endpointConfiguration) { var version = FileVersionInfo.GetVersionInfo(typeof(Bootstrapper).Assembly.Location).ProductVersion; + var dataSize = DataSize(); + var folderSize = FolderSize(); var startupMessage = $@" ------------------------------------------------------------- ServiceControl Version: {version} @@ -222,8 +226,8 @@ Audit Retention Period (optional): {settings.AuditRetentionPeriod} Error Retention Period: {settings.ErrorRetentionPeriod} Ingest Error Messages: {settings.IngestErrorMessages} Forwarding Error Messages: {settings.ForwardErrorMessages} -Database Size: {DataSize():n0} bytes -Database Folder Size: {FolderSize():n0} bytes +Database Size: {dataSize:n0} bytes ({dataSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) +Database Folder Size: {folderSize:n0} bytes ({folderSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType} diff --git a/src/ServiceControl/ServiceControl.csproj b/src/ServiceControl/ServiceControl.csproj index e54477a730..9df72528de 100644 --- a/src/ServiceControl/ServiceControl.csproj +++ b/src/ServiceControl/ServiceControl.csproj @@ -21,6 +21,7 @@ + From 0a74daee389ee6283d319f77c56b69916b6534fa Mon Sep 17 00:00:00 2001 From: Ramon Smits Date: Wed, 7 Apr 2021 15:50:42 +0200 Subject: [PATCH 3/4] Using smaller ByteSize package instead, which is being used by Humanizer internally. --- src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs | 6 +++--- src/ServiceControl.Audit/ServiceControl.Audit.csproj | 3 ++- .../ServiceControl.SagaAudit.csproj | 1 - src/ServiceControl/Bootstrapper.cs | 6 +++--- src/ServiceControl/ServiceControl.csproj | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs index 6f93c9debe..3cb870f169 100644 --- a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs +++ b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs @@ -17,7 +17,7 @@ namespace ServiceControl.Audit.Infrastructure using Autofac; using Autofac.Core.Activators.Reflection; using Autofac.Features.ResolveAnything; - using Humanizer; + using ByteSizeLib; using Microsoft.Owin.Hosting; using Monitoring; using NServiceBus; @@ -210,8 +210,8 @@ void RecordStartup(LoggingSettings loggingSettings, EndpointConfiguration endpoi ServiceControl Audit Version: {version} Audit Retention Period: {settings.AuditRetentionPeriod} Forwarding Audit Messages: {settings.ForwardAuditMessages} -Database Size: {dataSize:n0} bytes ({dataSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) -Database Folder Size: {folderSize:n0} bytes ({folderSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) +Database Size: {dataSize:n0} bytes ({ByteSize.FromBytes(dataSize).ToString("#.##", CultureInfo.InvariantCulture)}) +Database Folder Size: {folderSize:n0} bytes ({ByteSize.FromBytes(folderSize).ToString("#.##", CultureInfo.InvariantCulture)}) ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType} diff --git a/src/ServiceControl.Audit/ServiceControl.Audit.csproj b/src/ServiceControl.Audit/ServiceControl.Audit.csproj index c606db0fff..089ed89714 100644 --- a/src/ServiceControl.Audit/ServiceControl.Audit.csproj +++ b/src/ServiceControl.Audit/ServiceControl.Audit.csproj @@ -20,6 +20,7 @@ + @@ -56,4 +57,4 @@ - \ No newline at end of file + diff --git a/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj b/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj index 3b5df8e2a7..4b9ccfcc0e 100644 --- a/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj +++ b/src/ServiceControl.SagaAudit/ServiceControl.SagaAudit.csproj @@ -5,7 +5,6 @@ - diff --git a/src/ServiceControl/Bootstrapper.cs b/src/ServiceControl/Bootstrapper.cs index bb9fc45edd..30565164b5 100644 --- a/src/ServiceControl/Bootstrapper.cs +++ b/src/ServiceControl/Bootstrapper.cs @@ -15,6 +15,7 @@ namespace Particular.ServiceControl using Autofac; using Autofac.Core.Activators.Reflection; using Autofac.Features.ResolveAnything; + using ByteSizeLib; using global::ServiceControl.CompositeViews.Messages; using global::ServiceControl.Infrastructure; using global::ServiceControl.Infrastructure.DomainEvents; @@ -23,7 +24,6 @@ namespace Particular.ServiceControl using global::ServiceControl.Operations; using global::ServiceControl.Recoverability; using global::ServiceControl.Transports; - using Humanizer; using Microsoft.Owin.Hosting; using NServiceBus; using NServiceBus.Configuration.AdvancedExtensibility; @@ -226,8 +226,8 @@ Audit Retention Period (optional): {settings.AuditRetentionPeriod} Error Retention Period: {settings.ErrorRetentionPeriod} Ingest Error Messages: {settings.IngestErrorMessages} Forwarding Error Messages: {settings.ForwardErrorMessages} -Database Size: {dataSize:n0} bytes ({dataSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) -Database Folder Size: {folderSize:n0} bytes ({folderSize.Bytes().ToString("#.##", CultureInfo.InvariantCulture)}) +Database Size: {dataSize:n0} bytes ({ByteSize.FromBytes(dataSize).ToString("#.##", CultureInfo.InvariantCulture)}) +Database Folder Size: {folderSize:n0} bytes ({ByteSize.FromBytes(folderSize).ToString("#.##", CultureInfo.InvariantCulture)}) ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType} diff --git a/src/ServiceControl/ServiceControl.csproj b/src/ServiceControl/ServiceControl.csproj index 9df72528de..1fa6109c04 100644 --- a/src/ServiceControl/ServiceControl.csproj +++ b/src/ServiceControl/ServiceControl.csproj @@ -21,7 +21,7 @@ - + From ee8f8aa20b49be79ad838016b5bfaf3f6da562c7 Mon Sep 17 00:00:00 2001 From: Daniel Marbach Date: Wed, 7 Apr 2021 17:33:04 +0200 Subject: [PATCH 4/4] Only show human readable size --- src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs | 6 +++--- src/ServiceControl/Bootstrapper.cs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs index 3cb870f169..e1a33b5cae 100644 --- a/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs +++ b/src/ServiceControl.Audit/Infrastructure/Bootstrapper.cs @@ -210,8 +210,8 @@ void RecordStartup(LoggingSettings loggingSettings, EndpointConfiguration endpoi ServiceControl Audit Version: {version} Audit Retention Period: {settings.AuditRetentionPeriod} Forwarding Audit Messages: {settings.ForwardAuditMessages} -Database Size: {dataSize:n0} bytes ({ByteSize.FromBytes(dataSize).ToString("#.##", CultureInfo.InvariantCulture)}) -Database Folder Size: {folderSize:n0} bytes ({ByteSize.FromBytes(folderSize).ToString("#.##", CultureInfo.InvariantCulture)}) +Database Size: {ByteSize.FromBytes(dataSize).ToString("#.##", CultureInfo.InvariantCulture)} +Database Folder Size: {ByteSize.FromBytes(folderSize).ToString("#.##", CultureInfo.InvariantCulture)} ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType} @@ -270,4 +270,4 @@ public ConstructorInfo[] FindConstructors(Type targetType) static readonly ConcurrentDictionary Cache = new ConcurrentDictionary(); } } -} \ No newline at end of file +} diff --git a/src/ServiceControl/Bootstrapper.cs b/src/ServiceControl/Bootstrapper.cs index 30565164b5..7de8e7f02c 100644 --- a/src/ServiceControl/Bootstrapper.cs +++ b/src/ServiceControl/Bootstrapper.cs @@ -226,8 +226,8 @@ Audit Retention Period (optional): {settings.AuditRetentionPeriod} Error Retention Period: {settings.ErrorRetentionPeriod} Ingest Error Messages: {settings.IngestErrorMessages} Forwarding Error Messages: {settings.ForwardErrorMessages} -Database Size: {dataSize:n0} bytes ({ByteSize.FromBytes(dataSize).ToString("#.##", CultureInfo.InvariantCulture)}) -Database Folder Size: {folderSize:n0} bytes ({ByteSize.FromBytes(folderSize).ToString("#.##", CultureInfo.InvariantCulture)}) +Database Size: {ByteSize.FromBytes(dataSize).ToString("#.##", CultureInfo.InvariantCulture)} +Database Folder Size: {ByteSize.FromBytes(folderSize).ToString("#.##", CultureInfo.InvariantCulture)} ServiceControl Logging Level: {loggingSettings.LoggingLevel} RavenDB Logging Level: {loggingSettings.RavenDBLogLevel} Selected Transport Customization: {settings.TransportCustomizationType}