grafana/k6 · error
k6/experimental/tracing has been removed. All of it function
Error message
k6/experimental/tracing has been removed. All of it functionality is available as pure JavaScript module. More info available at the docs: https://grafana.com/docs/k6/latest/javascript-api/jslib/http-instrumentation-tempo
What it means
k6/experimental/tracing was removed from the core module set; its functionality lives on as a pure-JavaScript library (jslib http-instrumentation-tempo). The registry entry is a stub that throws this guidance message when the import is instantiated.
Source
Thrown at internal/js/jsmodules.go:107
// external is always prefixed with `k6/x`
for _, e := range external {
result[e.Name] = e.Module
}
return result
}
type removedModule struct {
errMsg string
}
func newRemovedModule(errMsg string) modules.Module {
return &removedModule{errMsg: errMsg}
}
func (rm *removedModule) NewModuleInstance(vu modules.VU) modules.Instance {
common.Throw(vu.Runtime(), errors.New(rm.errMsg))
return nil
}
type warnExperimentalModule struct {
once sync.Once
msg string
base modules.Module
}
func newWarnExperimentalModule(base modules.Module, msg string) modules.Module {
return &warnExperimentalModule{
msg: msg,
base: base,
}
}
func (w *warnExperimentalModule) NewModuleInstance(vu modules.VU) modules.Instance {View on GitHub (pinned to 93accf6570)
Solutions
- Remove the core import and load the jslib version instead: `import { Http } from 'https://jslib.k6.io/http-instrumentation-tempo/1.0.0/index.js'`
- Follow the linked docs to instrument client requests for Tempo
Example fix
// before
import tracing from 'k6/experimental/tracing';
// after
import { Http } from 'https://jslib.k6.io/http-instrumentation-tempo/1.0.0/index.js';
const instrumentedHttp = new Http(instrumentTracing); Defensive patterns
Strategy: validation
Validate before calling
grep -rn "k6/experimental/tracing" . --include='*.js' && { echo 'use jslib http-instrumentation-tempo instead' >&2; exit 1; } || true Prevention
- Pin the jslib URL version in shared helpers so instrumentation is centralized
- Track jslib.k6.io modules as external dependencies, reviewed like code
When it happens
Trigger: `import tracing from 'k6/experimental/tracing'` on a current k6 build.
Common situations: Distributed-tracing instrumentation scripts from the experimental era; templates referencing the removed module after upgrading.
Related errors
- k6/experimental/redis has been removed. Please migrate to th
- k6/experimental/browser has been graduated, please use k6/br
- k6/experimental/grpc has been graduated, please use k6/net/g
- k6/experimental/timers has been graduated, and it's now glob
- k6/experimental/webcrypto has been graduated and it's now gl
AI-assisted analysis of grafana/k6@93accf6570 (2026-08-15).
Data as JSON: /api/errors/c01a6af7367d0a6b.
Report an issue: GitHub.