Skip to content

feat(automation): integrate .NET instrumentation watcher#421

Open
Pittu-Sharma wants to merge 6 commits into
open-telemetry:mainfrom
Pittu-Sharma:feat/dotnet-instrumentation-watcher
Open

feat(automation): integrate .NET instrumentation watcher#421
Pittu-Sharma wants to merge 6 commits into
open-telemetry:mainfrom
Pittu-Sharma:feat/dotnet-instrumentation-watcher

Conversation

@Pittu-Sharma
Copy link
Copy Markdown
Contributor

Description

This PR establishes the foundation for tracking .NET instrumentation metadata within the OpenTelemetry Ecosystem Explorer by implementing a dedicated .NET watcher.

Since the OpenTelemetry .NET ecosystem does not use a centralized catalog API like other ecosystems, this watcher dynamically traverses the open-telemetry/opentelemetry-dotnet-contrib repository using the GitHub Git Tree API to discover .csproj files and classify them.

Resolves #101.

Changes Made

  • Created .NET Watcher: Implemented dotnet_client.py, inventory_manager.py, and instrumentation_sync.py inside ecosystem-automation/dotnet-instrumentation-watcher.
  • Registry Initialization: Scaffolded the ecosystem-registry/dotnet/ snapshot directory and enabled versioned schema generation (instrumentation.yaml).
  • CI / Automation Integration:
    • Hooked the new watcher into .github/workflows/nightly-registry-update.yml to ensure metadata stays fresh automatically.
    • Added full test coverage for the watcher and linked it to the test-ecosystem-automation runner in .github/workflows/build-and-test.yml.
  • Monorepo Stabilization: Removed conflicting __init__.py files across all watcher test suites to resolve pytest discovery errors on Windows. Patched instrumentation_transformer.py in the DB builder to prevent compilation crashes when metadata keys are missing.
  • Roadmap Documentation: Added docs/dotnet-integration-roadmap.md mapping out the database and frontend integration tasks.

Testing and Compliance

  • All 372 monorepo unit tests pass locally (uv run pytest).
  • Python code strictly adheres to project formatting and linting rules (uv run ruff check . and uv run ruff format .).
  • Missing copyright headers have been applied and checked (uv run python scripts/check_copyright.py).
  • Markdown documentation passes project standards (bun run lint:md).

@Pittu-Sharma Pittu-Sharma requested review from a team as code owners May 10, 2026 14:29
@netlify
Copy link
Copy Markdown

netlify Bot commented May 10, 2026

Deploy Preview for otel-ecosystem-explorer ready!

Name Link
🔨 Latest commit 2444c15
🔍 Latest deploy log https://app.netlify.com/projects/otel-ecosystem-explorer/deploys/6a01f8a1c5937b000844ce41
😎 Deploy Preview https://deploy-preview-421--otel-ecosystem-explorer.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@Pittu-Sharma Pittu-Sharma force-pushed the feat/dotnet-instrumentation-watcher branch from a1ef98a to 450c83f Compare May 10, 2026 14:43
@Pittu-Sharma
Copy link
Copy Markdown
Contributor Author

Hi, @jaydeluca , Please review the PR once. If any changes are required please let me know.

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.

Research .NET Instrumentation

1 participant