# Herramienta de Migración de Atributos Semantic-Convention v1.20 → v1.27 de OpenTelemetry

Reescribe nombres de atributos de spans/logs entre versiones de convenciones semánticas de OpenTelemetry: 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 y 25+ más — sobre código JS/TS/Python/Go/Java/.NET pegado, YAML del collector o JSON de dashboards de Grafana, con mapa de renombres para el collector, avisos de eliminación/división manual, estadísticas de diff por atributo e informe de atributos no mapeados.

> Página canónica: https://elysiatools.com/es/tools/otel-semantic-convention-migration-tool

- **Categoría:** Development

- **Palabras clave:** migración opentelemetry, convenciones semánticas, semconv, atributos otel, renombrar http.method, http.request.method, db.system.name, messaging.destination.name, atributos de span, atributos de log, otel collector transform, rename_attribute_actions, dashboard grafana otel, actualizar sdk otel, refactor de telemetría, actualizar instrumentación

## Descripción general

Pega código (cualquier lenguaje), una config del OTel Collector o un JSON de dashboard de Grafana; elige las versiones de origen y destino. El motor aplica las tablas de migración no normativas oficiales capa por capa — v1.23.1 estabiliza HTTP, v1.24 renombra base de datos, v1.27 reescribe mensajería. La coincidencia por token completo evita coincidencias parciales. Los atributos eliminados (http.target, net.sock.family, net.sock.peer.name) se marcan en lugar de reescribirse — http.target debe dividirse manualmente en url.path y url.query. Salida: fuente reescrita con resumen de diff, mapa de renombres del collector, sincronización del JSON de dashboards y atributos antiguos sin mapear para revisión manual.

## Entradas

- **Código fuente / config / JSON de dashboard** (textarea): span.setAttribute("http.method", req.method); ... or collector YAML, or Grafana dashboard JSON
- **Versión de origen** (select)
- **Versión de destino** (select)
- **Generar mapa de renombres del collector** (checkbox)
- **Aplicar renombres dentro de valores JSON (dashboards)** (checkbox)

## Cuándo usarlo

- Al actualizar las dependencias de SDKs e instrumentaciones de OpenTelemetry en aplicaciones Node.js, Python, Go, Java o .NET.
- Al adaptar configuraciones del procesador transform de OpenTelemetry Collector para admitir esquemas semánticos nuevos.
- Al sincronizar consultas y paneles JSON en Grafana para evitar la pérdida de métricas o trazas tras un cambio de semconv.

## Cómo funciona

- Pega el fragmento de código fuente, la configuración YAML de OpenTelemetry Collector o el JSON del panel de Grafana.
- Selecciona la versión semántica de origen (ej. v1.20.0) y la versión de destino requerida (ej. v1.27.0).
- Activa si deseas generar el bloque de transformaciones para el collector o sincronizar valores dentro de estructuras JSON.
- Obtén el texto refactorizado junto con estadísticas de reemplazos, avisos de atributos eliminados para ajuste manual y la lista de campos no mapeados.

## Casos de uso

- Refactorización masiva de llamadas span.setAttribute en repositorios de microservicios durante la adopción de convenciones semánticas estables.
- Generación de reglas rename_attribute_actions para el pipeline de OTel Collector durante periodos de transición y compatibilidad mixta.
- Corrección de paneles y consultas de métricas en Grafana exportados en formato JSON tras la migración de nombres de spans.

## Preguntas frecuentes

### ¿Por qué el atributo http.target no se renombra automáticamente?

Porque en las nuevas convenciones semánticas http.target fue eliminado y debe dividirse manualmente en url.path y url.query.

### ¿Cómo evita la herramienta reemplazar subcadenas no deseadas en el código?

Utiliza coincidencia por token completo para asegurar que solo se sustituyan identificadores exactos de atributos de OpenTelemetry.

### ¿Qué lenguajes de programación son compatibles?

Funciona con cualquier lenguaje como TypeScript, JavaScript, Python, Go, Java, C# o configuraciones en YAML y JSON.

### ¿Qué genera la opción del mapa de renombres del collector?

Produce directivas de transformación compatibles con el procesador de atributos de OpenTelemetry Collector para reescribir claves al vuelo.

### ¿Cómo se gestionan las migraciones intermedias?

Aplica las tablas de migración oficiales capa por capa: v1.23.1 para HTTP, v1.24.0 para bases de datos y v1.27.0 para mensajería.

## Herramientas relacionadas

- [Convertidor de JSON Schema a Zod](https://elysiatools.com/es/tools/json-schema-to-zod-schema-converter): Convierte definiciones JSON/YAML de JSON Schema en codigo Zod listo para usar en proyectos TypeScript, con objetos anidados, arreglos, enums y reglas comunes de validacion
- [OpenAPI a Postman Collection](https://elysiatools.com/es/tools/openapi-to-postman-collection): Convierte una spec OpenAPI 3.x o Swagger 2.0 (JSON/YAML) en una Postman Collection v2.1.0 importable con carpetas, variables, auth y respuestas de ejemplo.
- [Generador de OpenAPI a TypeScript](https://elysiatools.com/es/tools/openapi-to-typescript-generator): Convierte especificaciones OpenAPI o Swagger en JSON/YAML a tipos TypeScript, parametros de solicitud y modelos de respuesta con formato y nombres configurables
- [Extractor de Correo Electrónico Masivo](https://elysiatools.com/es/tools/bulk-email-extractor): Extrae todas las direcciones de correo electrónico de texto de entrada, artículos, código fuente web o contenido mixto. Soporta deduplicación y exportación a JSON.
- [Transformador CSV](https://elysiatools.com/es/tools/csv-transformer): Transformar y procesar datos CSV con operaciones de columnas, cálculos y conversiones de tipo de datos. Ejemplos de operaciones: • Renombrar columna: \[{"type": "rename", "column": "nombre_antiguo", "new_name": "nombre_nuevo"}\] • Agregar columna calculada: \[{"type": "add_column", "new_column": "total", "formula": "precio * cantidad"}\] • Eliminar columna: \[{"type": "remove_column", "remove_column": "columna_a_eliminar"}\] • Convertir tipo de dato: \[{"type": "convert_type", "convert_column": "edad", "target_type": "number"}\] • Calcular valores: \[{"type": "calculate", "target_column": "total", "expression": "precio * impuesto + envio"}\] • Filtrar filas: \[{"type": "filter_values", "filter_column": "estado", "operator": "equals", "value": "activo"}\]
- [Visualizador de diferencias JSON](https://elysiatools.com/es/tools/json-diff-visualizer): Compara dos JSON y genera un informe visual con colores, rutas y estadisticas
- [Estudio de consultas y transformaciones JSONata](https://elysiatools.com/es/tools/jsonata-query-transform-studio): Previsualiza consultas y transformaciones estilo JSONata, compara resultados y exporta en JSON, CSV, YAML o Markdown.
- [Puente de formatos de configuración: TOML / INI / HCL / .env / Nix / dotenv / ConfigMap / Secret de Kubernetes](https://elysiatools.com/es/tools/toml-ini-hcl-envfile-nix-dotenv-kubernetes-configmap-secret-config-format-bridge): Convierte configuraciones entre dotenv .env, TOML, INI, Java .properties, YAML, JSON, HCL (sintaxis nativa de Terraform/Vagrant) y atributos Nix, y genera manifiestos ConfigMap / Secret de Kubernetes; conserva los marcadores ${VAR} / {{var}} y la interpolación estilo envsubst, registra el origen de la inferencia de tipos (string/int/float/bool/list), pliega las etiquetas de bloques HCL en claves anidadas y un diff de ida y vuelta destaca los ajustes no equivalentes (claves perdidas, cambios de tipo, valores reescritos), con YAML apto para parches de Kustomize.

## Ejemplos

- [Muestras de Trazado Distribuido](https://elysiatools.com/es/samples/distributed-tracing-samples): Ejemplos completos de trazado distribuido usando Jaeger, OpenTelemetry y herramientas de observabilidad modernas
- [Herramienta de Empaquetado Parcel](https://elysiatools.com/es/samples/parcel): Ejemplos de la herramienta de empaquetado Parcel de configuración cero incluyendo configuración de proyecto, plugins y configuración avanzada
- [Ejemplos OpenAPI/Swagger](https://elysiatools.com/es/samples/openapi-swagger): Ejemplos completos de documentación API usando OpenAPI 3.0 y especificaciones Swagger para servicios RESTful
- [Ejemplos de pnpm Package Manager](https://elysiatools.com/es/samples/pnpm): Ejemplos de gestor de paquetes rápido y eficiente en espacio en disco incluyendo monorepo, configuración de workspace, y flujos de trabajo avanzados

## Contenido relacionado

- [Verificar una actualización de instrumentación OpenTelemetry](https://elysiatools.com/es/hubs/opentelemetry-instrumentation-upgrade-verification): Inventaría atributos antiguos, migra convenciones semánticas, comprueba la propagación y revisa una traza real antes de publicar cambios de instrumentación.
