11// Copyright The OpenTelemetry Authors
22// SPDX-License-Identifier: Apache-2.0
33
4- using System ;
54using System . Diagnostics . Metrics ;
65using System . Net ;
76#if NETFRAMEWORK
@@ -20,48 +19,6 @@ public class PrometheusHttpListenerTests
2019
2120 private static readonly string MeterName = Utils . GetCurrentMethodName ( ) ;
2221
23- private static MeterProvider BuildMeterProvider ( Meter meter , IEnumerable < KeyValuePair < string , object > > attributes , out string address )
24- {
25- Random random = new Random ( ) ;
26- int retryAttempts = 5 ;
27- int port = 0 ;
28- string generatedAddress = null ;
29- MeterProvider provider = null ;
30-
31- while ( retryAttempts -- != 0 )
32- {
33- port = random . Next ( 2000 , 5000 ) ;
34- generatedAddress = $ "http://localhost:{ port } /";
35-
36- try
37- {
38- provider = Sdk . CreateMeterProviderBuilder ( )
39- . AddMeter ( meter . Name )
40- . ConfigureResource ( x => x . Clear ( ) . AddService ( "my_service" , serviceInstanceId : "id1" ) . AddAttributes ( attributes ) )
41- . AddPrometheusHttpListener ( options =>
42- {
43- options . UriPrefixes = new string [ ] { generatedAddress } ;
44- } )
45- . Build ( ) ;
46-
47- break ;
48- }
49- catch
50- {
51- // ignored
52- }
53- }
54-
55- address = generatedAddress ;
56-
57- if ( provider == null )
58- {
59- throw new InvalidOperationException ( "HttpListener could not be started" ) ;
60- }
61-
62- return provider ;
63- }
64-
6522 [ Theory ]
6623 [ InlineData ( "http://+:9464" ) ]
6724 [ InlineData ( "http://*:9464" ) ]
@@ -308,4 +265,46 @@ private async Task RunPrometheusExporterHttpServerIntegrationTest(bool skipMetri
308265
309266 provider . Dispose ( ) ;
310267 }
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+ }
311310}
0 commit comments