{"record":{"id":"c79a2cc0762c495b","repo":"grafana/k6","slug":"the-datadog-output-was-deprecated-in-k6-v0-32-0-an","errorCode":null,"errorMessage":"the datadog output was deprecated in k6 v0.32.0 and removed in k6 v0.34.0, please use the statsd output extension https://github.com/LeonAdato/xk6-output-statsd with environment variable K6_STATSD_ENABLE_TAGS=true or an experimental opentelemetry output instead","messagePattern":"the datadog output was deprecated in k6 v0\\.32\\.0 and removed in k6 v0\\.34\\.0, please use the statsd output extension https://github\\.com/LeonAdato/xk6-output-statsd with environment variable K6_STATSD_ENABLE_TAGS=true or an experimental opentelemetry output instead","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/cmd/outputs.go","lineNumber":63,"sourceCode":"func getAllOutputConstructors() (map[string]output.Constructor, error) {\n\t// Start with the built-in outputs\n\tresult := map[string]output.Constructor{\n\t\tbuiltinOutputJSON.String():     json.New,\n\t\tbuiltinOutputCloud.String():    cloud.New,\n\t\tbuiltinOutputCSV.String():      csv.New,\n\t\tbuiltinOutputInfluxdb.String(): influxdb.New,\n\t\tbuiltinOutputKafka.String(): func(_ output.Params) (output.Output, error) {\n\t\t\treturn nil, errors.New(\"the kafka output was deprecated in k6 v0.32.0 and removed in k6 v0.34.0, \" +\n\t\t\t\t\"please use the new xk6 kafka output extension instead - https://github.com/k6io/xk6-output-kafka\")\n\t\t},\n\t\tbuiltinOutputStatsd.String(): func(_ output.Params) (output.Output, error) {\n\t\t\treturn nil, errors.New(\"the statsd output was deprecated in k6 v0.47.0 and removed in k6 v0.55.0, \" +\n\t\t\t\t\"please use the new xk6 statsd output extension instead. \" +\n\t\t\t\t\"It can be found at https://github.com/LeonAdato/xk6-output-statsd and \" +\n\t\t\t\t\"more info at https://github.com/grafana/k6/issues/2982\")\n\t\t},\n\t\tbuiltinOutputDatadog.String(): func(_ output.Params) (output.Output, error) {\n\t\t\treturn nil, errors.New(\"the datadog output was deprecated in k6 v0.32.0 and removed in k6 v0.34.0, \" +\n\t\t\t\t\"please use the statsd output extension https://github.com/LeonAdato/xk6-output-statsd with environment \" +\n\t\t\t\t\"variable K6_STATSD_ENABLE_TAGS=true or an experimental opentelemetry output instead\",\n\t\t\t)\n\t\t},\n\t\tbuiltinOutputExperimentalPrometheusRW.String(): func(params output.Params) (output.Output, error) {\n\t\t\treturn remotewrite.New(params)\n\t\t},\n\t\t\"web-dashboard\": dashboard.New,\n\t\tbuiltinOutputExperimentalOpentelemetry.String(): func(params output.Params) (output.Output, error) {\n\t\t\tparams.Logger.Warnf(\"OpenTelemetry output has been graduated as a stable output.\"+\n\t\t\t\t\"You can now use just %q instead of %q. The experimental version will be removed in future versions.\",\n\n\t\t\t\t\"opentelemetry\", \"experimental-opentelemetry\")\n\t\t\treturn opentelemetry.New(params)\n\t\t},\n\t\tbuiltinOutputOpentelemetry.String(): func(params output.Params) (output.Output, error) {\n\t\t\treturn opentelemetry.New(params)\n\t\t},","sourceCodeStart":45,"sourceCodeEnd":81,"githubUrl":"https://github.com/grafana/k6/blob/93accf6570dcd306ca5e99cc44c393ee3797761b/internal/cmd/outputs.go#L45-L81","documentation":"Thrown when the CLI resolves the built-in 'datadog' output type. The Datadog output was deprecated in k6 v0.32.0 and its implementation removed in v0.34.0; the output registry in internal/cmd/outputs.go now maps builtinOutputDatadog to a constructor that unconditionally returns this error.","triggerScenarios":"Running `k6 run --out datadog script.js`, or setting K6_OUT=datadog / listing 'datadog' in the outputs config, on any k6 >= v0.34.0.","commonSituations":"CI pipelines, wrapper scripts, or archived configs written for k6 <= v0.33 still passing --out datadog after a k6 upgrade; docs/blog examples that predate the removal.","solutions":["Build k6 with the statsd extension (`xk6 build --with github.com/LeonAdato/xk6-output-statsd`) and run with `--out statsd` plus K6_STATSD_ENABLE_TAGS=true so Datadog tags are forwarded","Or use the OpenTelemetry output (`--out opentelemetry`, formerly experimental) behind an OTel collector that exports to Datadog","Remove `--out datadog` / K6_OUT=datadog from scripts, CI env, and stored configs"],"exampleFix":"# before\nk6 run --out datadog script.js\n\n# after\nxk6 build --with github.com/LeonAdato/xk6-output-statsd\nK6_STATSD_ENABLE_TAGS=true ./k6 run --out statsd script.js","handlingStrategy":"validation","validationCode":"# pre-flight: fail fast on removed output names before wasting a run\nif grep -qE '(^|, )(datadog|statsd|kafka)(,|$)' <<< \"$K6_OUT\" || echo \"$@\" | grep -qE '--out (datadog|statsd|kafka)'; then\n  echo \"ERROR: datadog/statsd/kafka builtin outputs were removed in k6 v0.34.0/v0.55.0; use xk6 extensions\" >&2\n  exit 1\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin and document the k6 version in CI so removed outputs fail predictably","Grep pipelines and stored configs for `--out datadog|statsd|kafka` after every k6 upgrade","Build the binary with the extensions you need via xk6 and record it in a Dockerfile"],"tags":["output","datadog","cli","migration","removed-feature"],"backgroundTag":null,"analyzedSha":"93accf6570dcd306ca5e99cc44c393ee3797761b","analyzedAt":"2026-08-15T21:23:27.118Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}