@@ -18,6 +18,7 @@ import (
18
18
"github.com/rs/zerolog"
19
19
"github.com/spf13/afero"
20
20
"go.opentelemetry.io/otel/attribute"
21
+ "go.opentelemetry.io/otel/trace"
21
22
)
22
23
23
24
// 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
147
148
}()
148
149
}
149
150
151
+ _ , sendLogsSpan := trace .SpanFromContext (ctx ).TracerProvider ().Tracer ("" ).Start (ctx , "send logs" )
150
152
// Send logs before metrics to make sure logs are submitted even if the metrics output is not parsable.
151
153
if err := k6LogsToLogger (result .Logs , logger ); err != nil {
152
154
internalLogger .Debug ().
153
155
Err (err ).
154
156
Msg ("cannot load logs to logger" )
157
+ sendLogsSpan .RecordError (err )
158
+ sendLogsSpan .End ()
155
159
return false , err
156
160
}
161
+ sendLogsSpan .End ()
157
162
158
163
var (
159
164
collector sampleCollector
160
165
resultCollector checkResultCollector
161
166
)
162
167
168
+ _ , sendMetricsSpan := trace .SpanFromContext (ctx ).TracerProvider ().Tracer ("" ).Start (ctx , "send metrics" )
163
169
if err := extractMetricSamples (result .Metrics , internalLogger , collector .process , resultCollector .process ); err != nil {
164
170
internalLogger .Debug ().
165
171
Err (err ).
166
172
Msg ("cannot extract metric samples" )
173
+ sendMetricsSpan .RecordError (err )
174
+ sendMetricsSpan .End ()
167
175
return false , err
168
176
}
169
177
170
178
if err := registry .Register (& collector .collector ); err != nil {
171
179
internalLogger .Error ().
172
180
Err (err ).
173
181
Msg ("cannot register collector" )
182
+ sendMetricsSpan .RecordError (err )
183
+ sendMetricsSpan .End ()
174
184
return false , err
175
185
}
186
+ sendMetricsSpan .End ()
176
187
177
188
// https://github.com/grafana/sm-k6-runner/blob/b811839d444a7e69fd056b0a4e6ccf7e914197f3/internal/mq/runner.go#L51
178
189
switch result .ErrorCode {
0 commit comments