This system collects metadata about OpenTelemetry components (Java Agent instrumentations, Collector components) and makes it searchable through a web app. Data flows from source repositories → automation scripts → versioned registry → web application.
The OpenTelemetry Ecosystem Explorer is built as a three-component system comprising the
ecosystem-automation, ecosystem-registry, and ecosystem-explorer components. Each component has a distinct role in
collecting, storing, and presenting metadata about OpenTelemetry ecosystem components.
Automated pipelines that extract metadata from upstream OpenTelemetry projects.
What it does:
- Watches upstream projects for new releases
- Extracts and normalizes metadata to registry schema
- Generates content-addressed storage files for the web app
Tools: collector-watcher, java-instrumentation-watcher, configuration-watcher, explorer-db-builder
Versioned storage of normalized metadata.
What it does:
- Stores historical metadata for all versions
- Organized by ecosystem (Java Agent, Collector, etc.)
Format: YAML files organized by version
React web app for browsing and exploring the registry.
What it does:
- Search, filter, and browse instrumentations and collector components
- View detailed metadata (supported signals, library versions, etc.)
- Compare versions
Tech: React 19, TypeScript, Vite, Tailwind CSS
- Upstream Changes: New release tagged in source repository
- Detection: Watcher detects new version via GitHub API
- Extraction: Watcher extracts metadata from specific tag
- Transformation: Data normalized and content-addressed files generated
- Storage: Data written to ecosystem-registry with version manifest
- Distribution: Static files deployed to CDN
- Access: Web app fetches data on-demand with caching
- Persistence: Browser caches data in IndexedDB for offline use
Why: Efficiently handle multi-version data with minimal duplication
Benefits:
- Automatic deduplication across versions
- Immutable files enable aggressive caching
- Easy version comparison and change identification
See Content-Addressed Storage for implementation details.