@@ -194,6 +194,48 @@ private static void TestPrometheusHttpListenerUriPrefixOptions(string[] uriPrefi
194194 } ) ;
195195 }
196196
197+ private static MeterProvider BuildMeterProvider ( Meter meter , IEnumerable < KeyValuePair < string , object > > attributes , out string address )
198+ {
199+ Random random = new Random ( ) ;
200+ int retryAttempts = 5 ;
201+ int port = 0 ;
202+ string generatedAddress = null ;
203+ MeterProvider provider = null ;
204+
205+ while ( retryAttempts -- != 0 )
206+ {
207+ port = random . Next ( 2000 , 5000 ) ;
208+ generatedAddress = $ "http://localhost:{ port } /";
209+
210+ try
211+ {
212+ provider = Sdk . CreateMeterProviderBuilder ( )
213+ . AddMeter ( meter . Name )
214+ . ConfigureResource ( x => x . Clear ( ) . AddService ( "my_service" , serviceInstanceId : "id1" ) . AddAttributes ( attributes ) )
215+ . AddPrometheusHttpListener ( options =>
216+ {
217+ options . UriPrefixes = new string [ ] { generatedAddress } ;
218+ } )
219+ . Build ( ) ;
220+
221+ break ;
222+ }
223+ catch
224+ {
225+ // ignored
226+ }
227+ }
228+
229+ address = generatedAddress ;
230+
231+ if ( provider == null )
232+ {
233+ throw new InvalidOperationException ( "HttpListener could not be started" ) ;
234+ }
235+
236+ return provider ;
237+ }
238+
197239 private async Task RunPrometheusExporterHttpServerIntegrationTest ( bool skipMetrics = false , string acceptHeader = "application/openmetrics-text" )
198240 {
199241 var requestOpenMetrics = acceptHeader . StartsWith ( "application/openmetrics-text" ) ;
@@ -265,46 +307,4 @@ private async Task RunPrometheusExporterHttpServerIntegrationTest(bool skipMetri
265307
266308 provider . Dispose ( ) ;
267309 }
268-
269- private static MeterProvider BuildMeterProvider ( Meter meter , IEnumerable < KeyValuePair < string , object > > attributes , out string address )
270- {
271- Random random = new Random ( ) ;
272- int retryAttempts = 5 ;
273- int port = 0 ;
274- string generatedAddress = null ;
275- MeterProvider provider = null ;
276-
277- while ( retryAttempts -- != 0 )
278- {
279- port = random . Next ( 2000 , 5000 ) ;
280- generatedAddress = $ "http://localhost:{ port } /";
281-
282- try
283- {
284- provider = Sdk . CreateMeterProviderBuilder ( )
285- . AddMeter ( meter . Name )
286- . ConfigureResource ( x => x . Clear ( ) . AddService ( "my_service" , serviceInstanceId : "id1" ) . AddAttributes ( attributes ) )
287- . AddPrometheusHttpListener ( options =>
288- {
289- options . UriPrefixes = new string [ ] { generatedAddress } ;
290- } )
291- . Build ( ) ;
292-
293- break ;
294- }
295- catch
296- {
297- // ignored
298- }
299- }
300-
301- address = generatedAddress ;
302-
303- if ( provider == null )
304- {
305- throw new InvalidOperationException ( "HttpListener could not be started" ) ;
306- }
307-
308- return provider ;
309- }
310310}
0 commit comments