$npx -y skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnetOpenTelemetry in .NET — DI/builder SDK setup (OpenTelemetry.Extensions.Hosting, AddOpenTelemetry, UseOtlpExporter, OpenTelemetrySdk.Create), native .NET instrumentation APIs (ActivitySource, System.Diagnostics.Metrics Meter) plus logging abstractions (ILogger), zero-code CLR-prof
| 1 | # OpenTelemetry in .NET |
| 2 | |
| 3 | Entry point for OpenTelemetry mechanics in .NET services. Load a reference below based on the |
| 4 | task; each reference is self-contained. |
| 5 | |
| 6 | ## References |
| 7 | |
| 8 | | File | Use when | |
| 9 | |---|---| |
| 10 | | [`references/setup.md`](references/setup.md) | Setting up the SDK via the DI/builder path (`AddOpenTelemetry().WithTracing/WithMetrics/WithLogging`, `UseOtlpExporter`, `OpenTelemetrySdk.Create`, `OpenTelemetry.Extensions.Hosting`), exporter wiring, env-var / `IConfiguration` inputs, and why there is no declarative YAML config in .NET. | |
| 11 | | [`references/api.md`](references/api.md) | Instrumenting with native BCL APIs (`ActivitySource`/`Activity`, `System.Diagnostics.Metrics.Meter`, `ILogger`), how the SDK subscribes (`AddSource`/`AddMeter`), attributes, propagation, and the optional OTel API shim. | |
| 12 | | [`references/instrumentation-libraries.md`](references/instrumentation-libraries.md) | Zero-code (the `opentelemetry-dotnet-instrumentation` CLR-profiler agent), the contrib instrumentation-package catalog, and manual instrumentation following semconv. | |
| 13 | | [`references/performance.md`](references/performance.md) | Tuning sampling, batch export processor, periodic metric reader, views, exporter choice, async context, graceful shutdown. | |
| 14 | | [`references/breaking-changes.md`](references/breaking-changes.md) | Auditing existing code for deprecated/renamed APIs and semconv changes across recent core/contrib releases. | |
| 15 | |
| 16 | ## Sources of Truth |
| 17 | |
| 18 | For YAML schema details (language-agnostic), see the `otel-declarative-config` skill — but note |
| 19 | .NET does not yet implement declarative config (see `references/setup.md`). |
| 20 | For .NET-specific facts: |
| 21 | |
| 22 | | Fact | Fetch | |
| 23 | |---|---| |
| 24 | | Latest `OpenTelemetry` core / `core-*` tag | `gh api repos/open-telemetry/opentelemetry-dotnet/releases/latest -q '.tag_name'` | |
| 25 | | Latest NuGet package (`OpenTelemetry`, `OpenTelemetry.Extensions.Hosting`, exporters, `OpenTelemetry.Instrumentation.<pkg>`) | `WebFetch https://www.nuget.org/packages/<PackageId>` (Version) | |
| 26 | | Latest auto-instrumentation agent | `gh api repos/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest -q '.tag_name'` | |
| 27 | | Core CHANGELOG (per package) | `WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-dotnet/main/src/<Package>/CHANGELOG.md` | |
| 28 | | Contrib CHANGELOG (per package) | `WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-dotnet-contrib/main/src/<Package>/CHANGELOG.md` | |
| 29 | | .NET getting-started / instrumentation docs | `WebFetch https://opentelemetry.io/docs/languages/dotnet/instrumentation/` | |
| 30 | | Zero-code agent docs | `WebFetch https://opentelemetry.io/docs/zero-code/dotnet/` | |
| 31 | |
| 32 | ## Cross-References |
| 33 | |
| 34 | - Schema-level facts: `otel-declarative-config` skill (language-agnostic YAML schema sources; .NET not yet implemented). |
| 35 | - SDK version selection across languages: `otel-sdk-versions` skill. |
| 36 | - Semantic conventions lookup: `otel-semantic-conventions` skill. |