@@ -36,13 +36,6 @@ func TestMetrics(t *testing.T) {
3636 ctx , done := setupMetrics (t , ctx )
3737 tracer := New (ctx )
3838
39- sys := system .New ()
40- sys .AddGauges (tracer )
41- go func () {
42- err := sys .Run (ctx , time .Millisecond )
43- assert .Assert (t , err )
44- }()
45-
4639 concurrentRequests := 100
4740 maxConnections := 90 // close to max concurrency, but we should see some waiting
4841 cl := httpclient .New (httpclient.Config {
@@ -52,6 +45,14 @@ func TestMetrics(t *testing.T) {
5245 Tracer : tracer ,
5346 })
5447
48+ // Start sys.Run after httpclient.New so Wrap() completes before Gauges() polling begins.
49+ sys := system .New ()
50+ sys .AddGauges (tracer )
51+ go func () {
52+ err := sys .Run (ctx , time .Millisecond )
53+ assert .Assert (t , err )
54+ }()
55+
5556 r := httpclient .NewRequest ("GET" , "/test/%s" ,
5657 httpclient .RouteParams ("foo" ),
5758 httpclient .Timeout (time .Second ),
@@ -128,13 +129,6 @@ func TestMetrics(t *testing.T) {
128129 ctx , done := setupMetrics (t , ctx )
129130 tracer := New (ctx )
130131
131- sys := system .New ()
132- sys .AddGauges (tracer )
133- go func () {
134- err := sys .Run (ctx , time .Millisecond )
135- assert .Assert (t , err )
136- }()
137-
138132 concurrentRequests := 20
139133 maxConnections := 70
140134 cl := httpclient .New (httpclient.Config {
@@ -144,6 +138,14 @@ func TestMetrics(t *testing.T) {
144138 Tracer : tracer ,
145139 })
146140
141+ // Start sys.Run after httpclient.New so Wrap() completes before Gauges() polling begins.
142+ sys := system .New ()
143+ sys .AddGauges (tracer )
144+ go func () {
145+ err := sys .Run (ctx , time .Millisecond )
146+ assert .Assert (t , err )
147+ }()
148+
147149 var wg sync.WaitGroup
148150 wg .Add (concurrentRequests )
149151
0 commit comments