MCPcopy Create free account
hub / github.com/coder/coder / provider

Method provider

cli/exp_scaletest.go:120–147  ·  view source on GitHub ↗

provider returns a trace.TracerProvider, a close function and a bool showing whether tracing is enabled or not.

(ctx context.Context)

Source from the content-addressed store, hash-verified

118// provider returns a trace.TracerProvider, a close function and a bool showing
119// whether tracing is enabled or not.
120func (s *scaletestTracingFlags) provider(ctx context.Context) (trace.TracerProvider, func(context.Context) error, bool, error) {
121 shouldTrace := s.traceEnable || s.traceCoder || s.traceHoneycombAPIKey != ""
122 if !shouldTrace {
123 tracerProvider := trace.NewNoopTracerProvider()
124 return tracerProvider, func(_ context.Context) error { return nil }, false, nil
125 }
126
127 tracerProvider, closeTracing, err := tracing.TracerProvider(ctx, scaletestTracerName, tracing.TracerOpts{
128 Default: s.traceEnable,
129 Honeycomb: s.traceHoneycombAPIKey,
130 })
131 if err != nil {
132 return nil, nil, false, xerrors.Errorf("initialize tracing: %w", err)
133 }
134
135 var closeTracingOnce sync.Once
136 return tracerProvider, func(_ context.Context) error {
137 var err error
138 closeTracingOnce.Do(func() {
139 // Allow time to upload traces even if ctx is canceled
140 traceCtx, traceCancel := context.WithTimeout(context.Background(), 10*time.Second)
141 defer traceCancel()
142 err = closeTracing(traceCtx)
143 })
144
145 return err
146 }, true, nil
147}
148
149type concurrencyFlags struct {
150 cleanup bool

Callers 12

scaletestChatMethod · 0.80
scaletestTaskStatusMethod · 0.80
scaletestPrebuildsMethod · 0.80
scaletestDashboardMethod · 0.80
scaletestAutostartMethod · 0.80
TestRequestBodySizeLimitFunction · 0.80

Calls 3

TracerProviderFunction · 0.92
DoMethod · 0.65
ErrorfMethod · 0.45

Tested by 2

TestRequestBodySizeLimitFunction · 0.64