diff --git a/cli/exp_scaletest.go b/cli/exp_scaletest.go index d8dd10da32..419b195547 100644 --- a/cli/exp_scaletest.go +++ b/cli/exp_scaletest.go @@ -1559,6 +1559,15 @@ func (r *RootCmd) scaletestDashboard() *serpent.Command { if err != nil { return xerrors.Errorf("create tracer provider: %w", err) } + tracer := tracerProvider.Tracer(scaletestTracerName) + outputs, err := output.parse() + if err != nil { + return xerrors.Errorf("could not parse --output flags") + } + reg := prometheus.NewRegistry() + prometheusSrvClose := ServeHandler(ctx, logger, promhttp.HandlerFor(reg, promhttp.HandlerOpts{}), prometheusFlags.Address, "prometheus") + defer prometheusSrvClose() + defer func() { // Allow time for traces to flush even if command context is // canceled. This is a no-op if tracing is not enabled. @@ -1570,14 +1579,7 @@ func (r *RootCmd) scaletestDashboard() *serpent.Command { _, _ = fmt.Fprintf(inv.Stderr, "Waiting %s for prometheus metrics to be scraped\n", prometheusFlags.Wait) <-time.After(prometheusFlags.Wait) }() - tracer := tracerProvider.Tracer(scaletestTracerName) - outputs, err := output.parse() - if err != nil { - return xerrors.Errorf("could not parse --output flags") - } - reg := prometheus.NewRegistry() - prometheusSrvClose := ServeHandler(ctx, logger, promhttp.HandlerFor(reg, promhttp.HandlerOpts{}), prometheusFlags.Address, "prometheus") - defer prometheusSrvClose() + metrics := dashboard.NewMetrics(reg) th := harness.NewTestHarness(strategy.toStrategy(), cleanupStrategy.toStrategy()) diff --git a/cli/exp_scaletest_prebuilds.go b/cli/exp_scaletest_prebuilds.go index 8e05bacae2..f8cee15514 100644 --- a/cli/exp_scaletest_prebuilds.go +++ b/cli/exp_scaletest_prebuilds.go @@ -84,14 +84,6 @@ func (r *RootCmd) scaletestPrebuilds() *serpent.Command { if err != nil { return xerrors.Errorf("create tracer provider: %w", err) } - defer func() { - _, _ = fmt.Fprintln(inv.Stderr, "\nUploading traces...") - if err := closeTracing(ctx); err != nil { - _, _ = fmt.Fprintf(inv.Stderr, "\nError uploading traces: %+v\n", err) - } - _, _ = fmt.Fprintf(inv.Stderr, "Waiting %s for prometheus metrics to be scraped\n", prometheusFlags.Wait) - <-time.After(prometheusFlags.Wait) - }() tracer := tracerProvider.Tracer(scaletestTracerName) reg := prometheus.NewRegistry() @@ -101,6 +93,15 @@ func (r *RootCmd) scaletestPrebuilds() *serpent.Command { prometheusSrvClose := ServeHandler(ctx, logger, promhttp.HandlerFor(reg, promhttp.HandlerOpts{}), prometheusFlags.Address, "prometheus") defer prometheusSrvClose() + defer func() { + _, _ = fmt.Fprintln(inv.Stderr, "\nUploading traces...") + if err := closeTracing(ctx); err != nil { + _, _ = fmt.Fprintf(inv.Stderr, "\nError uploading traces: %+v\n", err) + } + _, _ = fmt.Fprintf(inv.Stderr, "Waiting %s for prometheus metrics to be scraped\n", prometheusFlags.Wait) + <-time.After(prometheusFlags.Wait) + }() + err = client.PutPrebuildsSettings(ctx, codersdk.PrebuildsSettings{ ReconciliationPaused: true, })