@@ -22,22 +22,22 @@ namespace ServiceControl.Audit;
2222using NServiceBus . Transport ;
2323using Persistence ;
2424using Transports ;
25- using ServiceControl . Infrastructure ;
2625using OpenTelemetry . Metrics ;
2726using OpenTelemetry . Resources ;
2827
2928static class HostApplicationBuilderExtensions
3029{
30+ static string InstanceVersion = FileVersionInfo . GetVersionInfo ( typeof ( HostApplicationBuilderExtensions ) . Assembly . Location ) . ProductVersion ;
31+
3132 public static void AddServiceControlAudit ( this IHostApplicationBuilder builder ,
3233 Func < ICriticalErrorContext , CancellationToken , Task > onCriticalError ,
3334 Settings settings ,
3435 EndpointConfiguration configuration )
3536 {
36- var version = FileVersionInfo . GetVersionInfo ( typeof ( HostApplicationBuilderExtensions ) . Assembly . Location ) . ProductVersion ;
3737 var persistenceConfiguration = PersistenceConfigurationFactory . LoadPersistenceConfiguration ( settings ) ;
3838 var persistenceSettings = persistenceConfiguration . BuildPersistenceSettings ( settings ) ;
3939
40- RecordStartup ( version , settings , configuration , persistenceConfiguration ) ;
40+ RecordStartup ( settings , configuration , persistenceConfiguration ) ;
4141
4242 builder . Logging . ClearProviders ( ) ;
4343 builder . Logging . AddNLog ( ) ;
@@ -72,7 +72,31 @@ public static void AddServiceControlAudit(this IHostApplicationBuilder builder,
7272 NServiceBusFactory . Configure ( settings , transportCustomization , transportSettings , onCriticalError , configuration ) ;
7373 builder . UseNServiceBus ( configuration ) ;
7474
75- services . AddSingleton < IngestionMetrics > ( ) ;
75+ builder . AddMetrics ( settings ) ;
76+
77+ // Configure after the NServiceBus hosted service to ensure NServiceBus is already started
78+ if ( settings . IngestAuditMessages )
79+ {
80+ services . AddHostedService < AuditIngestion > ( ) ;
81+ }
82+
83+ if ( WindowsServiceHelpers . IsWindowsService ( ) )
84+ {
85+ // The if is added for clarity, internally AddWindowsService has a similar logic
86+ builder . AddWindowsServiceWithRequestTimeout ( ) ;
87+ }
88+ }
89+
90+ public static void AddServiceControlAuditInstallers ( this IHostApplicationBuilder builder , Settings settings )
91+ {
92+ var persistenceConfiguration = PersistenceConfigurationFactory . LoadPersistenceConfiguration ( settings ) ;
93+ var persistenceSettings = persistenceConfiguration . BuildPersistenceSettings ( settings ) ;
94+ builder . Services . AddInstaller ( persistenceSettings , persistenceConfiguration ) ;
95+ }
96+
97+ public static void AddMetrics ( this IHostApplicationBuilder builder , Settings settings )
98+ {
99+ builder . Services . AddSingleton < IngestionMetrics > ( ) ;
76100
77101 if ( ! string . IsNullOrEmpty ( settings . OtlpEndpointUrl ) )
78102 {
@@ -84,7 +108,7 @@ public static void AddServiceControlAudit(this IHostApplicationBuilder builder,
84108 builder . Services . AddOpenTelemetry ( )
85109 . ConfigureResource ( b => b . AddService (
86110 serviceName : settings . InstanceName ,
87- serviceVersion : version ,
111+ serviceVersion : InstanceVersion ,
88112 autoGenerateServiceInstanceId : true ) )
89113 . WithMetrics ( b =>
90114 {
@@ -98,32 +122,13 @@ public static void AddServiceControlAudit(this IHostApplicationBuilder builder,
98122 var logger = LogManager . GetLogger ( typeof ( HostApplicationBuilderExtensions ) ) ;
99123 logger . InfoFormat ( "OpenTelemetry metrics exporter enabled: {0}" , settings . OtlpEndpointUrl ) ;
100124 }
101-
102- // Configure after the NServiceBus hosted service to ensure NServiceBus is already started
103- if ( settings . IngestAuditMessages )
104- {
105- services . AddHostedService < AuditIngestion > ( ) ;
106- }
107-
108- if ( WindowsServiceHelpers . IsWindowsService ( ) )
109- {
110- // The if is added for clarity, internally AddWindowsService has a similar logic
111- builder . AddWindowsServiceWithRequestTimeout ( ) ;
112- }
113- }
114-
115- public static void AddServiceControlAuditInstallers ( this IHostApplicationBuilder builder , Settings settings )
116- {
117- var persistenceConfiguration = PersistenceConfigurationFactory . LoadPersistenceConfiguration ( settings ) ;
118- var persistenceSettings = persistenceConfiguration . BuildPersistenceSettings ( settings ) ;
119- builder . Services . AddInstaller ( persistenceSettings , persistenceConfiguration ) ;
120125 }
121126
122- static void RecordStartup ( string version , Settings settings , EndpointConfiguration endpointConfiguration , IPersistenceConfiguration persistenceConfiguration )
127+ static void RecordStartup ( Settings settings , EndpointConfiguration endpointConfiguration , IPersistenceConfiguration persistenceConfiguration )
123128 {
124129 var startupMessage = $@ "
125130-------------------------------------------------------------
126- ServiceControl Audit Version: { version }
131+ ServiceControl Audit Version: { InstanceVersion }
127132Audit Retention Period: { settings . AuditRetentionPeriod }
128133Forwarding Audit Messages: { settings . ForwardAuditMessages }
129134ServiceControl Logging Level: { settings . LoggingSettings . LogLevel }
0 commit comments