@@ -18,6 +18,7 @@ import (
1818 "github.com/rs/zerolog"
1919 "github.com/spf13/afero"
2020 "go.opentelemetry.io/otel/attribute"
21+ "go.opentelemetry.io/otel/trace"
2122)
2223
2324// Script is a k6 script that a runner is able to run, with some added instructions for that runner to act on.
@@ -147,32 +148,42 @@ func (r Processor) Run(ctx context.Context, registry *prometheus.Registry, logge
147148 }()
148149 }
149150
151+ _ , sendLogsSpan := trace .SpanFromContext (ctx ).TracerProvider ().Tracer ("" ).Start (ctx , "send logs" )
150152 // Send logs before metrics to make sure logs are submitted even if the metrics output is not parsable.
151153 if err := k6LogsToLogger (result .Logs , logger ); err != nil {
152154 internalLogger .Debug ().
153155 Err (err ).
154156 Msg ("cannot load logs to logger" )
157+ sendLogsSpan .RecordError (err )
158+ sendLogsSpan .End ()
155159 return false , err
156160 }
161+ sendLogsSpan .End ()
157162
158163 var (
159164 collector sampleCollector
160165 resultCollector checkResultCollector
161166 )
162167
168+ _ , sendMetricsSpan := trace .SpanFromContext (ctx ).TracerProvider ().Tracer ("" ).Start (ctx , "send metrics" )
163169 if err := extractMetricSamples (result .Metrics , internalLogger , collector .process , resultCollector .process ); err != nil {
164170 internalLogger .Debug ().
165171 Err (err ).
166172 Msg ("cannot extract metric samples" )
173+ sendMetricsSpan .RecordError (err )
174+ sendMetricsSpan .End ()
167175 return false , err
168176 }
169177
170178 if err := registry .Register (& collector .collector ); err != nil {
171179 internalLogger .Error ().
172180 Err (err ).
173181 Msg ("cannot register collector" )
182+ sendMetricsSpan .RecordError (err )
183+ sendMetricsSpan .End ()
174184 return false , err
175185 }
186+ sendMetricsSpan .End ()
176187
177188 // https://github.com/grafana/sm-k6-runner/blob/b811839d444a7e69fd056b0a4e6ccf7e914197f3/internal/mq/runner.go#L51
178189 switch result .ErrorCode {
0 commit comments