Skip to content

research(js): add JavaScript instrumentation metadata research docs#507

Merged
jaydeluca merged 4 commits into
open-telemetry:mainfrom
MeloveGupta:research/9-javascript-instrumentation
May 20, 2026
Merged

research(js): add JavaScript instrumentation metadata research docs#507
jaydeluca merged 4 commits into
open-telemetry:mainfrom
MeloveGupta:research/9-javascript-instrumentation

Conversation

@MeloveGupta
Copy link
Copy Markdown
Contributor

What

Adds the projects/ workspace for issue #9 with findings from the js-contrib repo audit.

Findings

What's machine-readable today without any README parsing:

  • package.json - name, version, description, source path, node engine
  • .tav.yml - tested version ranges (31/47 packages)
  • .github/component_owners.yml - owners per package path
  • auto-instrumentations-node deps - bundle membership

Telemetry coverage across all 47 packages:

  • Only 8/47 have any structured span/attribute section under a dedicated heading
  • All 8 use different heading names, no standard exists
  • instrumentation-aws-sdk is the only package with a proper markdown table for span attributes
  • The remaining 39 reference telemetry in prose only

Key structural difference from Java:

  • JS packages version independently, no single "js agent version" to key the registry off
  • Registry layout needs to be per package, not per release

Files added

  • projects/9-javascript-instrumentation/_index.md - folder landing page
  • projects/9-javascript-instrumentation/01-metadata-audit.md - full findings from the js-contrib repo analysis
  • projects/9-javascript-instrumentation/02-telemetry-coverage.md - telemetry coverage breakdown across all 47 packages
  • projects/9-javascript-instrumentation/NEXT-STEPS.md - rolling roadmap and open questions

Related

Related to #9

@MeloveGupta MeloveGupta requested review from a team as code owners May 18, 2026 00:36
@netlify
Copy link
Copy Markdown

netlify Bot commented May 18, 2026

Deploy Preview for otel-ecosystem-explorer canceled.

Name Link
🔨 Latest commit bf7f918
🔍 Latest deploy log https://app.netlify.com/projects/otel-ecosystem-explorer/deploys/6a0c41824cc1a5000840c866

@MeloveGupta
Copy link
Copy Markdown
Contributor Author

Hey @jaydeluca here's the research doc under projects/ as discussed.

The main finding on telemetry is that only 8/47 packages have any structured span or attribute data under a dedicated heading, and all 8 use different heading names. aws-sdk is the only one with a proper markdown table. The rest either mention telemetry in prose or not at all.

The 01-metadata-audit doc covers what can be automated today in a Phase 1 watcher, and 02-telemetry-coverage has the full breakdown of what exists and what's missing across all 47 packages.

Happy to start on the watcher architecture next, or do a deeper pass on the 8 packages with structured telemetry first if that's more useful.

Copy link
Copy Markdown
Member

@jaydeluca jaydeluca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great stuff!

I think we could get started with a watcher that pulls the information thats readily available for now.

After that, or in parallel, I would love to next explore if there is the ability for us to setup a system like we have in java instrumentation, where we run the integration tests for each instrumentation in order to collect and analyze the emitted telemetry to automatically document it. If we can build something like that, it could help us close the gap on the telemetry data.

When you are ready for exploring that piece (and if you are interested), I can provide more context into how we do it in java

Comment thread projects/9-javascript-instrumentation/01-metadata-audit.md Outdated
Comment on lines +57 to +59
The long-term fix is contributing tooling back to js-contrib that generates READMEs from structured
metadata files, solving the problem at the source rather than parsing inconsistent documentation
downstream.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 the work we are doing with this research should help us put together a plan and proposal we can bring to the javascript SIG, and then we help them implement it.


## Open questions

1. Should the watcher use a sparse Git clone or GitHub API calls? (Git clone is faster for bulk
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

due to the number of modules, I would probably start with a git clone and then we can walk the directory structure to identify the modules


1. Should the watcher use a sparse Git clone or GitHub API calls? (Git clone is faster for bulk
reads, API is simpler for CI)
2. What is the minimum viable schema for Phase 1 - which fields must be present before the Explorer
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the contents of the "What is machine-readable today" section of the audit file is a great start

3. Is there appetite in the js-contrib community to standardize telemetry documentation format or
add metadata.yaml files?
4. How should the Explorer handle the 6 packages with no supported versions heading?
5. Should unmaintained packages (empty owner arrays) be included in the registry or excluded?
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

included

can show a JS package page?
3. Is there appetite in the js-contrib community to standardize telemetry documentation format or
add metadata.yaml files?
4. How should the Explorer handle the 6 packages with no supported versions heading?
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

show blank, but let's make sure we followup and figure out why it's the case, whether they are special or if we just need to help update them

reads, API is simpler for CI)
2. What is the minimum viable schema for Phase 1 - which fields must be present before the Explorer
can show a JS package page?
3. Is there appetite in the js-contrib community to standardize telemetry documentation format or
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some things I think we should explore for this before we ask them

@MeloveGupta
Copy link
Copy Markdown
Contributor Author

Thanks for the context @jaydeluca ! I'll start on the watcher using a git clone to walk the directory structure and also I'll keep the schema to what's machine-readable today as a first pass.

I am definitely interested in exploring the integration test approach for telemetry collection and I would also love to see how it works in Java whenever you're ready to share that.

I'll also follow up on the 6 packages with no supported versions to understand if they just need to be updated or if there's a reason they're missing.

@jaydeluca jaydeluca added this pull request to the merge queue May 20, 2026
Merged via the queue into open-telemetry:main with commit 50fcba6 May 20, 2026
15 checks passed
@otelbot
Copy link
Copy Markdown
Contributor

otelbot Bot commented May 20, 2026

Thank you for your contribution @MeloveGupta! 🎉 We would like to hear from you about your experience contributing to OpenTelemetry by taking a few minutes to fill out this survey.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants