Skip to content

Automate OTEL Schema Generation and Update Process with Migration Guide Support #186

@lquerel

Description

@lquerel

To properly support multiple registries with Weaver, we need to automatically generate the OTEL schema for a new version of a registry before packaging and publishing it. This issue focuses on defining the necessary steps to update the OTEL schema in an automated and controlled manner, based on changes described in the SemConv files.

Tasks:

  • Identify the best approach to track renamings and deletions in SemConv. See the discussion here.
  • Specify the format and structure of the file used to track the SemConv registry name, version, schema location, and other details. See the related discussion below.
  • Implement otel-registry-manifest.yaml and the new format for the deprecated field.
  • Create a sub-command to generate a new version of the telemetry schema.
  • Create a sub-command and/or template to generate the migration guide for a specific version. See the discussion on the migration guide.

A new file, otel-registry-manifest.yaml, located at the root of the models directory, will be used by Weaver to generate the next version of the OTEL schema and update the migration guides. The file will have the following structure:

EDIT: The following file structure has been revised based on the SemConv Tool SIG discussion.

# File otel-registry-manifest.yaml
name: <registry_name>                              # e.g., otel
description: <registry_description>
semconv_version: <registry_version>                # e.g., 1.27.0
schema_base_url: <url>                             # e.g., https://opentelemetry.io/schemas/

# This file will be extended in the future to support multiple registries.
# Fields such as `registry_base_url`, `owners`, `maintainers`, `dependencies`, and more will be added later.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions