# OpenTelemetry Semantic-Convention v1.20 → v1.27 Attribute Migration Tool

Rewrites span/log attribute names across OpenTelemetry semantic-convention versions: http.method → http.request.method, http.status_code → http.response.status_code, http.url → url.full, db.system → db.system.name, messaging.destination → messaging.destination.name and 25+ more — applied to pasted JS/TS/Python/Go/Java/.NET source, collector YAML or Grafana dashboard JSON, with an OTel Collector transform rename map, removal/manual-split warnings, per-attribute diff stats and an unmapped-attribute report.

> Canonical page: https://elysiatools.com/en/tools/otel-semantic-convention-migration-tool

- **Category:** Development

- **Keywords:** opentelemetry migration, semantic conventions, semconv, otel attributes, http.method rename, http.request.method, db.system.name, messaging.destination.name, span attributes, log attributes, otel collector transform, rename_attribute_actions, grafana dashboard otel, upgrade otel sdk, telemetry refactoring, instrumentation update

## Overview

Paste code (any language), an OTel Collector config, or a Grafana dashboard JSON; choose the source and target convention versions. The engine applies the official non-normative migration tables layer by layer — v1.23.1 stabilizes the HTTP conventions, v1.24 renames the database attributes, v1.27 rewrites messaging. Whole-token matching prevents partial matches. Removed attributes (http.target, net.sock.family, net.sock.peer.name) are flagged instead of rewritten — http.target must be split manually into url.path and url.query. Output: rewritten source with a diff summary, the collector transform rename map, dashboard JSON synchronization, and any old-style attribute left unmapped for manual review.

## Inputs

- **Source code / config / dashboard JSON** (textarea): span.setAttribute("http.method", req.method); ... or collector YAML, or Grafana dashboard JSON
- **From version** (select)
- **To version** (select)
- **Generate collector transform rename map** (checkbox)
- **Apply renames inside JSON values (dashboards)** (checkbox)

## When to use

- Upgrading OpenTelemetry SDKs or instrumentation libraries from older semantic convention versions to stable v1.23.1+ HTTP, v1.24.0+ DB, or v1.27.0+ messaging conventions.
- Updating OpenTelemetry Collector configurations with attribute processor transforms to maintain backward compatibility during incremental pipeline migrations.
- Refactoring observability dashboards and alert queries in Grafana JSON to match modern OpenTelemetry attribute standards without breaking panel queries.

## How it works

- Paste your multi-language source code, OpenTelemetry Collector configuration, or Grafana dashboard JSON into the input editor.
- Select your current semantic convention baseline version (v1.20.0, v1.23.0, or v1.24.0) and your target version (v1.23.1, v1.24.0, or v1.27.0).
- Toggle options to generate an OpenTelemetry Collector transform rename map or to apply replacement inside JSON values.
- Review the generated diff, updated source, Collector processor configuration, and any flagged removed attributes such as http.target.

## Use cases

- Application telemetry refactoring across polyglot microservices written in Node.js, Python, Go, Java, or .NET.
- Collector pipeline transformation to translate legacy telemetry from un-upgraded services before sending to modern backends.
- Dashboard query synchronization to ensure metric and trace visualizations align with standardized OpenTelemetry attribute schemas.

## Frequently asked questions

### Which semantic convention namespaces are migrated between v1.20 and v1.27?

The tool migrates HTTP attributes (v1.23.1 stable), database attributes like db.system to db.system.name (v1.24.0), and messaging namespaces like messaging.destination (v1.27.0).

### Why are attributes like http.target flagged instead of automatically renamed?

Attributes like http.target were removed rather than renamed because they require manual splitting into separate url.path and url.query fields.

### Can this tool update raw Grafana dashboard JSON files?

Yes, enabling the dashboard option performs whole-token attribute renames inside JSON query strings and panel definitions.

### How does the OpenTelemetry Collector rename map output work?

It generates an attributes processor or transform processor YAML block with action rename rules to bridge telemetry versions at the collector level.

### Does the tool support partial keyword matching?

No, it utilizes whole-token matching to prevent accidental renames of unrelated variable names or substrings.

## Related tools

- [JSON Schema to Zod Schema Converter](https://elysiatools.com/en/tools/json-schema-to-zod-schema-converter): Convert JSON Schema JSON/YAML definitions into ready-to-use Zod schemas with nested objects, arrays, enums, and common validation rules
- [OpenAPI to Postman Collection](https://elysiatools.com/en/tools/openapi-to-postman-collection): Turn an OpenAPI 3.x or Swagger 2.0 spec (JSON/YAML) into an importable Postman Collection v2.1.0 with folders, variables, auth and example responses.
- [OpenAPI to TypeScript Generator](https://elysiatools.com/en/tools/openapi-to-typescript-generator): Convert OpenAPI or Swagger JSON/YAML specs into TypeScript API types, request payloads, and response models with configurable output and naming styles
- [Bulk Email Extractor](https://elysiatools.com/en/tools/bulk-email-extractor): Extract all email addresses from input text, articles, web source code, or mixed content. Supports deduplication and export to JSON.
- [CSV Transformer](https://elysiatools.com/en/tools/csv-transformer): Transform and process CSV data with column operations, calculations, and data type conversions. Supports renaming columns, adding calculated columns, removing columns, converting data types, calculating values, and filtering rows. Operation examples: • Rename column: \[{"type": "rename", "column": "old_name", "new_name": "new_name"}\] • Add calculated column: \[{"type": "add_column", "new_column": "total", "formula": "price * quantity"}\] • Remove column: \[{"type": "remove_column", "remove_column": "column_to_remove"}\] • Convert data type: \[{"type": "convert_type", "convert_column": "age", "target_type": "number"}\] • Calculate values: \[{"type": "calculate", "target_column": "total", "expression": "price * tax + shipping"}\] • Filter rows: \[{"type": "filter_values", "filter_column": "status", "operator": "equals", "value": "active"}\]
- [JSON Diff Visualizer](https://elysiatools.com/en/tools/json-diff-visualizer): Compare two JSON payloads and render a visual HTML diff with path-level additions, removals, changes, and statistics
- [JSONata Query & Transform Studio](https://elysiatools.com/en/tools/jsonata-query-transform-studio): Preview JSONata-style queries and transformations, compare results across sample payloads, and export the transformed output as JSON, CSV, YAML, or Markdown
- [TOML / INI / HCL / .env / Nix / dotenv ⇄ Kubernetes ConfigMap & Secret Config Format Bridge](https://elysiatools.com/en/tools/toml-ini-hcl-envfile-nix-dotenv-kubernetes-configmap-secret-config-format-bridge): Convert configuration files between dotenv .env, TOML, INI, Java .properties, YAML, JSON, HCL (Terraform/Vagrant native syntax) and Nix attribute sets, and emit Kubernetes ConfigMap or Secret manifests. Template placeholders (${VAR}, {{var}}, envsubst) are preserved verbatim, type inference provenance (string/int/float/bool/list) is tracked, HCL block labels fold into nested keys, and a round-trip diff calls out non-equivalent settings — dropped keys, re-typed values and rewrites — instead of coercing them silently.

## Samples

- [Distributed Tracing Samples](https://elysiatools.com/en/samples/distributed-tracing-samples): Comprehensive distributed tracing examples using Jaeger, OpenTelemetry, and other modern observability tools for microservices architecture
- [Parcel Bundler Samples](https://elysiatools.com/en/samples/parcel): Parcel zero-configuration bundler examples including project setup, plugins, and advanced configuration
- [OpenAPI/Swagger Samples](https://elysiatools.com/en/samples/openapi-swagger): Comprehensive API documentation examples using OpenAPI 3.0 and Swagger specifications for RESTful services
- [pnpm Package Manager Samples](https://elysiatools.com/en/samples/pnpm): Fast, disk space efficient package manager examples including monorepo management, workspace configuration, and advanced workflows

## Related content

- [Verify an OpenTelemetry Instrumentation Upgrade](https://elysiatools.com/en/hubs/opentelemetry-instrumentation-upgrade-verification): Inventory old attributes, migrate OpenTelemetry conventions, validate propagation headers, and inspect a representative trace before releasing instrumentation changes.
