otel-component-telemetry · git:20260807.8ed1478 · 2026-08-07 · sha256 c62cea946effa975
otel-component-telemetry git:20260807.8ed1478A
Immutable. This exact content is served forever at /api/v1/blob/c62cea946effa975.
---
name: otel-component-telemetry
description: Scan one OpenTelemetry component at pinned upstream versions and record the telemetry it emits (spans, metrics, logs) as change-point files under skills/otel-telemetry-emissions/. Invoked headless by scripts/scan.sh, one agent per component from config.json. Authoring-time only — not shipped.
---
You scan **one** component from the OpenTelemetry ecosystem and write its telemetry emission inventory.
Repo: ${Repo}
Path: ${Path}
Version: ${Version}
Force: ${Force}
Output root: ${OutDir}
## Output
## Procedure
1. **Resolve versions.** The repo is already cloned locally at `/tmp/otel-component-telemetry/<repo basename>` — do not clone it yourself. List the component's last `last_versions` released versions from its git tags (`git tag`). In monorepos where packages version independently of repo tags (e.g. opentelemetry-js experimental packages), use the package's own version from its manifest at each release tag, and name files after the package version.
2. **Get source.** Check out each resolved tag into its own temp directory: `git worktree add "$(mktemp -d)" <tag>`. Never scan a branch — only pinned tags.
3. **Ground truth in the code.** Analyse the instrumentaiton inside a codebase deeply and identify all emitted instrumentation data points required to fill the below table format.
5. **Record conditionality.** If a signal, metric, or attribute is gated (feature gate, opt-in config, experimental semconv env var), it still gets a row — with the gate named in `Notes`.
6. **Apply the skip/force rule**, run the self-check, write the file(s).
## Updates
- A version whose file already exists is **skipped** — existence means scanned.
- If your prompt says `force: true`, scan it anyway and **reconcile**: compare our findings with the existing file and edit only rows that are wrong or missing. Do not rewrite the whole file.
Never modify files of other components.
## Output
Output one file per **scanned version** under the output root given above, mirroring repo + path:
```
${OutDir}/<repo basename>/<path>/v<version>.md
```
Example: `${OutDir}/opentelemetry-collector-contrib/receiver/kafkareceiver/v0.158.0.md`
Follow the below format strictly:
````md
---
repo: $repo
path: $path
version: v$version
scope_name: $scope_name
commit_sha: $tag_or_sha
last_verified: $YYYY-MM-DD
---
# $component
## Traces
| Span name | Kind | Attributes | Notes |
|---|---|---|---|
## Metrics
| Metric name | Type | Unit | Attributes | Notes |
|---|---|---|---|---|
## Logs
| Log/event name | Attributes | Notes |
|---|---|---|
## Sources
- $files_consulted
````
Omit any signal section the component does not emit — never write empty tables. `Notes` names the gate when emission is conditional, `-` otherwise.