{"slug":"otel-dotnet","title":"otel-dotnet","summary":"OpenTelemetry 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","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-16T16:29:06.546727Z","repo":{"url":"https://github.com/ollygarden/opentelemetry-agent-skills","stars":111,"forks":13,"license":"Apache-2.0","updatedAt":"2026-10-16T08:07:28Z"},"bodyHtml":"<hr>\n<h2>name: otel-dotnet\ndescription: OpenTelemetry 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-profiler agent, contrib instrumentation packages, performance tuning, and breaking-change audits. Use when adding, reviewing, or configuring OpenTelemetry in a .NET or ASP.NET Core service. Triggers on \"setup otel in dotnet\", \"dotnet telemetry\", \".net tracing\", \"ASP.NET Core opentelemetry\", \"AddOpenTelemetry\", \"UseOtlpExporter\", \"OpenTelemetrySdk.Create\", \"ActivitySource\", \"System.Diagnostics.Metrics Meter\", \"ILogger opentelemetry\", \"OpenTelemetry.Extensions.Hosting\", \"opentelemetry-dotnet-instrumentation\", or any C# OTel question.</h2>\n<h1>OpenTelemetry in .NET</h1>\n<p>Entry point for OpenTelemetry mechanics in .NET services. Load a reference below based on the\ntask; each reference is self-contained.</p>\n<h2>References</h2>\n<table>\n<thead>\n<tr>\n<th>File</th>\n<th>Use when</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"references/setup.md\"><code>references/setup.md</code></a></td>\n<td>Setting up the SDK via the DI/builder path (<code>AddOpenTelemetry().WithTracing/WithMetrics/WithLogging</code>, <code>UseOtlpExporter</code>, <code>OpenTelemetrySdk.Create</code>, <code>OpenTelemetry.Extensions.Hosting</code>), exporter wiring, env-var / <code>IConfiguration</code> inputs, and why there is no released declarative YAML config in .NET.</td>\n</tr>\n<tr>\n<td><a href=\"references/api.md\"><code>references/api.md</code></a></td>\n<td>Instrumenting with native BCL APIs (<code>ActivitySource</code>/<code>Activity</code>, <code>System.Diagnostics.Metrics.Meter</code>, <code>ILogger</code>), how the SDK subscribes (<code>AddSource</code>/<code>AddMeter</code>), attributes, propagation, and the optional OTel API shim.</td>\n</tr>\n<tr>\n<td><a href=\"references/instrumentation-libraries.md\"><code>references/instrumentation-libraries.md</code></a></td>\n<td>Zero-code (the <code>opentelemetry-dotnet-instrumentation</code> CLR-profiler agent), the contrib instrumentation-package catalog, and manual instrumentation following semconv.</td>\n</tr>\n<tr>\n<td><a href=\"references/performance.md\"><code>references/performance.md</code></a></td>\n<td>Tuning sampling (built-in samplers incl. <code>AlwaysRecordSampler</code>), batch export processor, periodic metric reader, views, exporter choice, async context, graceful shutdown.</td>\n</tr>\n<tr>\n<td><a href=\"references/breaking-changes.md\"><code>references/breaking-changes.md</code></a></td>\n<td>Auditing existing code for deprecated/renamed APIs and semconv changes across recent core/contrib releases.</td>\n</tr>\n</tbody>\n</table>\n<h2>Sources of Truth</h2>\n<p>For YAML schema details (language-agnostic), see the <code>otel-declarative-config</code> skill — but note\n.NET does not yet have a released declarative-config implementation (see <code>references/setup.md</code>).\nFor .NET-specific facts:</p>\n<table>\n<thead>\n<tr>\n<th>Fact</th>\n<th>Fetch</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Latest <code>OpenTelemetry</code> core / <code>core-*</code> tag</td>\n<td><code>gh api repos/open-telemetry/opentelemetry-dotnet/releases/latest -q '.tag_name'</code></td>\n</tr>\n<tr>\n<td>Latest NuGet package (<code>OpenTelemetry</code>, <code>OpenTelemetry.Extensions.Hosting</code>, exporters, <code>OpenTelemetry.Instrumentation.&lt;pkg&gt;</code>)</td>\n<td><code>WebFetch https://www.nuget.org/packages/&lt;PackageId&gt;</code> (Version)</td>\n</tr>\n<tr>\n<td>Latest auto-instrumentation agent</td>\n<td><code>gh api repos/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest -q '.tag_name'</code></td>\n</tr>\n<tr>\n<td>Core CHANGELOG (per package, at the release being audited)</td>\n<td><code>WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-dotnet/&lt;core-tag&gt;/src/&lt;Package&gt;/CHANGELOG.md</code></td>\n</tr>\n<tr>\n<td>Contrib CHANGELOG (per package, at that package's release tag)</td>\n<td><code>WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-dotnet-contrib/&lt;package-tag&gt;/src/&lt;Package&gt;/CHANGELOG.md</code></td>\n</tr>\n<tr>\n<td>.NET getting-started / instrumentation docs</td>\n<td><code>WebFetch https://opentelemetry.io/docs/languages/dotnet/instrumentation/</code></td>\n</tr>\n<tr>\n<td>Zero-code agent docs</td>\n<td><code>WebFetch https://opentelemetry.io/docs/zero-code/dotnet/</code></td>\n</tr>\n</tbody>\n</table>\n<h2>Cross-References</h2>\n<ul>\n<li>Schema-level facts: <code>otel-declarative-config</code> skill (language-agnostic YAML schema sources; .NET not yet implemented).</li>\n<li>SDK version selection across languages: <code>otel-sdk-versions</code> skill.</li>\n<li>Semantic conventions lookup: <code>otel-semantic-conventions</code> skill.</li>\n</ul>\n","files":[{"path":"references/api.md","sizeBytes":11464,"isText":true},{"path":"references/breaking-changes.md","sizeBytes":9269,"isText":true},{"path":"references/instrumentation-libraries.md","sizeBytes":14822,"isText":true},{"path":"references/performance.md","sizeBytes":20086,"isText":true},{"path":"references/setup.md","sizeBytes":8675,"isText":true},{"path":"SKILL.md","sizeBytes":3955,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-16T16:32:59.421425Z","sha256":"86BE1C78763614CBBB3A00547F225C358104429B04B8B6F881E052B60172D8AB","sizeBytes":24368},"review":null,"source":{"repositoryUrl":"https://github.com/ollygarden/opentelemetry-agent-skills","path":"skills/otel-dotnet","license":"Apache-2.0","commit":"967179521de5e8dac365ae6fbc4fc64f427259f5","subtreeSha":"9A2FE3605185168823B1FEDFAA8473E83B585CFC76EE7B39217D2CBE1BB5177F","lastSyncedAt":"2026-10-16T16:29:03.891055Z"},"reviewedAt":"2026-10-16T16:41:03.140096Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnet"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install ollygarden-opentelemetry-agent-skills@llmmart"},{"target":"git","command":"git clone https://github.com/ollygarden/opentelemetry-agent-skills.git"}]}