Claude Skill

otel-upgrade

Assess OpenTelemetry package and Collector upgrades across ecosystems. Use when choosing or validating API, SDK, instrumentation, exporter, Collector distribution, component, image, chart, Operator, OCB build, or configuration versions, including compatibility, required changes,

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download ollygarden-opentelemetry-agent-skills-skills_otel-upgrade-9671795.zip · 6 KB
Part of ollygarden/opentelemetry-agent-skills — 19 skills

Install

skills CLI npx skills add https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-upgrade
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install ollygarden-opentelemetry-agent-skills@llmmart
Git git clone https://github.com/ollygarden/opentelemetry-agent-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole ollygarden/opentelemetry-agent-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

OpenTelemetry Upgrade

Find the highest stable target supported by the available repository evidence and provide concise, case-specific upgrade advice. Unless the user asks for implementation, assess the upgrade without changing project files.

Choose the workflow

Request or repository evidence Read
Package manifests, lockfiles, APIs, SDKs, instrumentation libraries, exporters, plugins, or dependency constraints Dependency upgrade
Collector binaries, images, charts, Operators, configuration, feature gates, components, OCB manifests, builds, or runtime behavior Collector upgrade
A custom Collector involving independently versioned or third-party modules Read the Collector workflow first, then the dependency workflow for relevant module constraints.

Read only the applicable reference. Read both when the upgrade crosses both surfaces.

Shared instructions

  1. Inspect the repository and runtime evidence before choosing the workflow or assuming the ecosystem.
  2. Establish the exact current and candidate versions. Record wrappers, distributions, artifacts, and embedded dependencies separately rather than treating one version as proof of another.
  3. Query authoritative registries and tagged primary upstream sources for current stable releases. Record the lookup date. Treat release candidates, beta/alpha packages, nightly artifacts, and untagged source as prereleases unless that package line intentionally publishes with a prerelease identifier; do not silently replace a project's existing experimental package line with a stable package from a different line. If no stable release meets a stated requirement, assess prereleases separately and label them clearly.
  4. Distinguish the latest available stable release from the highest validated compatible candidate. Do not call a candidate validated when the relevant checks could not run.
  5. Preserve the user's working tree by validating in a temporary copy, worktree, or equivalent isolated environment. Start with the latest stable candidate. If it fails, diagnose the cause and test selected lower versions when useful; do not assume compatibility is monotonic.
  6. Connect upstream changes to this repository's actual usage and available downstream contracts. Treat unavailable consumers, environments, and exact-version coverage as unverified.
  7. Use applicable specialized skills only when they are available. Otherwise use primary upstream sources and repository evidence, and report any resulting verification gaps.

Dependency resolution, compilation, configuration acceptance, and passing tests establish different and limited kinds of evidence. State exactly what each result demonstrates.

Report

Keep the report concise and tailored to the repository.

## Recommendation

Recommend upgrading `<subject>` from `<current>` to `<target>`, remaining on `<current>`, or deferring the upgrade. Explain the evidence, effort, and risk.

## Relevant Findings

- `<Material finding>` — explain its effect on this repository and any required action.

## Proposed Upgrade Path

Give the smallest coordinated sequence of dependency, artifact, code, configuration, and rollout changes.

## Validation

State the exact candidates, artifacts, configurations, platforms, and checks covered, their results, and what those results demonstrate.

## Remaining Risk

Mention only material behavior, environments, integrations, consumers, or artifacts that could not be verified. Omit this section when no material unverified areas were identified.

Link material upstream claims to authoritative release notes, documentation, or source. If the latest available version is not the highest validated compatible version, name both and explain the blocker.

Files (opentelemetry-agent-skills)
  • references
    • collector-upgrade.md 6.4 KB
      # Collector Upgrade
      
      Use this workflow for Collector distributions, components, images, deployment wrappers, configuration, custom builds, and runtime behavior.
      
      ## Establish the upgrade surface
      
      Record each applicable layer separately:
      
      | Layer | Evidence to identify |
      |---|---|
      | Deployment wrapper | Chart, Operator, or other packaging version and manifests |
      | Runtime artifact | Distribution, binary version, image tag, and immutable digest when available |
      | Build | OCB version, builder manifest, toolchain, and build inputs |
      | Components | Compiled receivers, processors, exporters, connectors, extensions, and configuration providers |
      | Configuration | Fully resolved configuration and feature gates used by the deployment |
      | Embedded modules | Exact core, contrib, stable, custom, and third-party module versions |
      
      Do not use one layer's version as proof of another.
      
      ## Use specialized skills when available
      
      - Use `otel-collector` for component configuration, defaults, validation, signal support, stability, and version-specific gotchas.
      - Use `otel-collector-builder` for OCB manifests, module alignment, generated builds, and custom distributions.
      - Use `otel-telemetry-emissions` for version-pinned emitted telemetry.
      - Use `otel-telemetrygen` to generate representative runtime traffic.
      
      If a relevant skill is unavailable, use the exact-version upstream source, release artifact, and local repository evidence instead. State what could not be verified.
      
      ## Compare the distributions
      
      1. Identify the exact current and candidate artifacts from repository and runtime evidence.
      2. Compare their authoritative distribution or builder manifests and compiled component inventories. Check for added, removed, renamed, deprecated, or stability-changed components and providers, including per-signal support.
      3. Confirm that every configured component and configuration provider exists in the candidate artifact. Do not infer a stock distribution's contents from another distribution at the same release.
      4. Review release notes, migration guidance, and relevant source changes across the full version interval, but report only changes connected to the deployed distribution, components, configuration, or behavior.
      
      For upstream artifacts, use the [Collector releases](https://github.com/open-telemetry/opentelemetry-collector-releases/releases) for binaries and images, then inspect that release tag's distribution manifest for the compiled modules. Use the separate [Collector Helm chart](https://github.com/open-telemetry/opentelemetry-helm-charts/releases) and [Operator](https://github.com/open-telemetry/opentelemetry-operator/releases) releases for those wrappers. Their versions and support policies are independent of the Collector binary; resolve the image and effective configuration selected by the wrapper rather than assuming version correspondence.
      
      ## Check configuration compatibility
      
      1. Resolve the same configuration inputs, includes, environment substitutions, and provider sources for both artifacts without exposing secrets.
      2. Validate the unchanged configuration with the exact current and candidate binaries before proposing a migration. Compare fatal errors and warnings, removed or renamed keys, changed defaults and validation rules, component identifiers, pipeline wiring, provider availability, feature gates, and signal support.
      3. Validate any proposed migrated configuration separately. Preserve the distinction between an unchanged configuration being compatible and a modified configuration making the upgrade viable.
      4. Treat configuration acceptance as evidence that the candidate can load the checked configuration, not that it behaves equivalently at runtime.
      
      ## Check the build
      
      For a published distribution, verify the selected artifact, platforms, image metadata, entrypoint, permissions, certificates, and deployment packaging relevant to the repository. Do not rebuild upstream artifacts unless the task requires it.
      
      For a custom distribution:
      
      1. Identify the OCB executable itself with `ocb version` and use the [current OCB source and tags in Collector core](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder). Do not use the archived standalone `opentelemetry-collector-builder` repository's old release line as the modern OCB version source. Published OCB artifacts may be distributed through `opentelemetry-collector-releases`; verify their tag and embedded version independently.
      2. Verify module alignment from the exact target releases rather than assuming all core, contrib, stable, custom, or third-party modules share one version.
      3. Inspect changes to the builder manifest, generated component registration, resolved module graph, and generated dependency files.
      4. Build every relevant production target, including applicable toolchains, operating systems, architectures, CGO settings, build tags, and container stages.
      5. Run the candidate binary's component inventory and configuration validation commands. Compilation proves only that the checked build target compiled.
      
      ## Compare runtime behavior
      
      Run the current and candidate artifacts with equivalent resolved configuration, environment inputs, and representative telemetry. Define acceptable differences before judging the result, and normalize expected nondeterminism such as timestamps, identifiers, ordering, and batch boundaries.
      
      Compare what is material to the deployment:
      
      - exported telemetry content, attributes, cardinality, and protocol behavior
      - dropped, duplicated, reordered, batched, or transformed data
      - Collector self-telemetry, instrumentation scopes, logs, warnings, and errors
      - startup readiness, health, graceful shutdown, and failure handling
      - retry, queue, batching, timeout, and backpressure behavior
      - persistent queues, checkpoints, write-ahead logs, and storage extensions
      - resource use relative to configured limits and operational thresholds
      
      Also compare externally consumed telemetry names, units, attributes, temporality, aggregation, and instrumentation scope; protocol/schema changes; and self-telemetry defaults. A component can remain configuration-compatible while changing emitted telemetry or runtime resource use.
      
      ## Check rollout and rollback
      
      Check mixed-version operation, protocol compatibility, deployment ordering, persisted-state compatibility, and whether the previous version can read state written by the candidate. Treat production-only conditions and unavailable external consumers as unverified.
      
    • dependency-upgrade.md 3.8 KB
      # Dependency Upgrade
      
      Use this workflow for OpenTelemetry APIs, SDKs, instrumentation libraries, exporters, plugins, and related packages in any ecosystem.
      
      ## Assess the dependency change
      
      1. Inspect relevant manifests, lockfiles, imports, toolchain files, CI, configuration, generated code, deployment files, and repository status.
      2. Identify the direct dependencies involved, relevant transitive constraints, actual usage, wrappers, plugins, independently versioned packages, and packages that must move together. Do not assume related packages share a version.
      3. Query the authoritative package registry and primary upstream release sources for each relevant package. When `otel-sdk-versions` is available, use it as an initial lookup index, then confirm package-specific versions at their release sources.
      4. Resolve the candidate dependency family in an isolated environment. Inspect material changes to the resolved graph and generated lockfiles rather than treating successful resolution as sufficient proof.
      5. Run the available project-supported checks relevant to the change, such as dependency resolution, lockfile generation, compilation or type checking, tests, configuration validation, and integration checks.
      6. Review release notes and migration guidance for changes connected to APIs, features, configuration, protocols, deployment modes, or externally consumed behavior used by the repository. Inspect the corresponding upstream source diff when risk or incomplete documentation warrants it.
      7. Check available downstream contracts, including APIs, schemas, persisted data, events, telemetry, dashboards, and alerts, and identify any required rollout ordering.
      8. When SDK instrumentation is involved and `otel-telemetry-emissions` is available, compare exact current and candidate telemetry. Report missing component or version coverage as unverified; do not infer emissions from semantic conventions.
      
      ## Resolve versions and package families
      
      Use the ecosystem's registry as the source for a published package version and the tagged upstream source for its contents and release notes. Prefer machine-readable registry commands such as `go list -m -versions <module>`, `mvn dependency:get -Dartifact=<group>:<artifact>:<version>`, `npm view <package> versions --json`, `python -m pip index versions <distribution>`, `dotnet package search <package> --exact-match`, and `gem list --remote --all --exact <gem>`. Apply the repository's normal resolver afterward; a registry listing does not establish compatibility.
      
      Determine coordination from the release's actual package set and dependency constraints:
      
      - A repository or language may publish stable, experimental, instrumentation, exporter, semantic-convention, or other package lines at different versions and stability levels. Do not derive one line's target from another line's number.
      - For monorepos with independently versioned modules or gems, query every directly used package and inspect the candidate tag or release commit. A repository-wide latest tag is not necessarily the package's latest release.
      - Keep BOMs, dependency-management packages, metapackages, and lockfiles consistent with their documented role. Do not force equal versions when the upstream release does not.
      - Treat declarative configuration schemas, generated semantic-convention artifacts, and code generators as separate dependencies. Check schema/tool compatibility and regenerate checked-in output with the repository's pinned tool rather than editing it.
      
      ## Interpret the evidence
      
      - Dependency resolution shows that the resolver found a graph; it does not prove source or behavioral compatibility.
      - Successful compilation covers only the configurations and code paths compiled.
      - Passing tests increase confidence only for the behavior and environments they exercise.
      - An untested version is a candidate, not the highest validated compatible version.
      
  • SKILL.md 4.1 KB
    ---
    name: otel-upgrade
    description: Assess OpenTelemetry package and Collector upgrades across ecosystems. Use when choosing or validating API, SDK, instrumentation, exporter, Collector distribution, component, image, chart, Operator, OCB build, or configuration versions, including compatibility, required changes, telemetry and runtime behavior, and rollout risk.
    ---
    
    # OpenTelemetry Upgrade
    
    Find the highest stable target supported by the available repository evidence and provide concise, case-specific upgrade advice. Unless the user asks for implementation, assess the upgrade without changing project files.
    
    ## Choose the workflow
    
    | Request or repository evidence | Read |
    |---|---|
    | Package manifests, lockfiles, APIs, SDKs, instrumentation libraries, exporters, plugins, or dependency constraints | [Dependency upgrade](references/dependency-upgrade.md) |
    | Collector binaries, images, charts, Operators, configuration, feature gates, components, OCB manifests, builds, or runtime behavior | [Collector upgrade](references/collector-upgrade.md) |
    | A custom Collector involving independently versioned or third-party modules | Read the Collector workflow first, then the dependency workflow for relevant module constraints. |
    
    Read only the applicable reference. Read both when the upgrade crosses both surfaces.
    
    ## Shared instructions
    
    1. Inspect the repository and runtime evidence before choosing the workflow or assuming the ecosystem.
    2. Establish the exact current and candidate versions. Record wrappers, distributions, artifacts, and embedded dependencies separately rather than treating one version as proof of another.
    3. Query authoritative registries and tagged primary upstream sources for current stable releases. Record the lookup date. Treat release candidates, beta/alpha packages, nightly artifacts, and untagged source as prereleases unless that package line intentionally publishes with a prerelease identifier; do not silently replace a project's existing experimental package line with a stable package from a different line. If no stable release meets a stated requirement, assess prereleases separately and label them clearly.
    4. Distinguish the **latest available** stable release from the **highest validated compatible** candidate. Do not call a candidate validated when the relevant checks could not run.
    5. Preserve the user's working tree by validating in a temporary copy, worktree, or equivalent isolated environment. Start with the latest stable candidate. If it fails, diagnose the cause and test selected lower versions when useful; do not assume compatibility is monotonic.
    6. Connect upstream changes to this repository's actual usage and available downstream contracts. Treat unavailable consumers, environments, and exact-version coverage as unverified.
    7. Use applicable specialized skills only when they are available. Otherwise use primary upstream sources and repository evidence, and report any resulting verification gaps.
    
    Dependency resolution, compilation, configuration acceptance, and passing tests establish different and limited kinds of evidence. State exactly what each result demonstrates.
    
    ## Report
    
    Keep the report concise and tailored to the repository.
    
    ```markdown
    ## Recommendation
    
    Recommend upgrading `<subject>` from `<current>` to `<target>`, remaining on `<current>`, or deferring the upgrade. Explain the evidence, effort, and risk.
    
    ## Relevant Findings
    
    - `<Material finding>` — explain its effect on this repository and any required action.
    
    ## Proposed Upgrade Path
    
    Give the smallest coordinated sequence of dependency, artifact, code, configuration, and rollout changes.
    
    ## Validation
    
    State the exact candidates, artifacts, configurations, platforms, and checks covered, their results, and what those results demonstrate.
    
    ## Remaining Risk
    
    Mention only material behavior, environments, integrations, consumers, or artifacts that could not be verified. Omit this section when no material unverified areas were identified.
    ```
    
    Link material upstream claims to authoritative release notes, documentation, or source. If the latest available version is not the highest validated compatible version, name both and explain the blocker.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related