Aspire Service Defaults
Aaronontheweb/dotnet-skills
Sets up a shared ServiceDefaults project for .NET Aspire apps that centralizes OpenTelemetry, health checks, HTTP resilience and service discovery for every service.
OpenTelemetry in .NET — DI/builder SDK setup (OpenTelemetry.Extensions.Hosting, AddOpenTelemetry, UseOtlpExporter, OpenTelemetrySdk.Create), native .NET instrumentation APIs (ActivitySource…
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-dotnet --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/otel-dotnet .claude/skills/otel-dotnet && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "otel-dotnet" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnet into .claude/skills/otel-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-dotnet", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnetType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-dotnet --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/otel-dotnet .agents/skills/otel-dotnet && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "otel-dotnet" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnet into .agents/skills/otel-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-dotnet", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-dotnet --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/otel-dotnet .cursor/skills/otel-dotnet && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "otel-dotnet" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnet into .cursor/skills/otel-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-dotnet", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ollygarden/opentelemetry-agent-skills.git --path skills/otel-dotnet--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-dotnet --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/otel-dotnet .gemini/skills/otel-dotnet && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "otel-dotnet" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnet into .gemini/skills/otel-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-dotnet", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-dotnetInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/otel-dotnet .github/skills/otel-dotnet && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "otel-dotnet" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnet into .github/skills/otel-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-dotnet", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-dotnet --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/otel-dotnet .opencode/skills/otel-dotnet && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "otel-dotnet" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-dotnet into .opencode/skills/otel-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-dotnet", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
otel-dotnetOpenTelemetry in .NET — DI/builder SDK setup (OpenTelemetry.Extensions.Hosting, AddOpenTelemetry, UseOtlpExporter, OpenTelemetrySdk.Create), native .NET instrumentation APIs (ActivitySource…
Otel Dotnet is an agent skill from ollygarden/opentelemetry-agent-skills. 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…
Its SKILL.md is about 990 tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/api.md`, `references/breaking-changes.md` and `references/instrumentation-libraries.md`).
It sits in DevOps & Cloud, covering Observability. It works with OpenTelemetry, .NET, ASP.NET Core and C#. The repository describes itself as: Vendor-neutral OpenTelemetry skills for AI coding agents like Claude Code, Cursor, and Codex, grounded in upstream sources. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 12296db. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
raw.githubusercontent.comopentelemetry.ionuget.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Otel Dotnet loads about 988 tokens when it runs, and up to ~17k if it reads all its reference files. Until then it costs about 206 tokens; SKILL.md has 243 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ollygarden/opentelemetry-agent-skills at commit 12296db, republished under its Apache-2.0 licence (© ollygarden). 243 words, ~988 tokens.
.claude/skills/otel-dotnet/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Entry point for OpenTelemetry mechanics in .NET services. Load a reference below based on the task; each reference is self-contained.
| File | Use when |
|---|---|
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 released declarative YAML config in .NET. |
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. |
references/instrumentation-libraries.md | Zero-code (the opentelemetry-dotnet-instrumentation CLR-profiler agent), the contrib instrumentation-package catalog, and manual instrumentation following semconv. |
references/performance.md | Tuning sampling (built-in samplers incl. AlwaysRecordSampler), batch export processor, periodic metric reader, views, exporter choice, async context, graceful shutdown. |
references/breaking-changes.md | Auditing existing code for deprecated/renamed APIs and semconv changes across recent core/contrib releases. |
For YAML schema details (language-agnostic), see the otel-declarative-config skill — but note
.NET does not yet have a released declarative-config implementation (see references/setup.md).
For .NET-specific facts:
| Fact | Fetch |
|---|---|
Latest OpenTelemetry core / core-* tag | gh api repos/open-telemetry/opentelemetry-dotnet/releases/latest -q '.tag_name' |
Latest NuGet package (OpenTelemetry, OpenTelemetry.Extensions.Hosting, exporters, OpenTelemetry.Instrumentation.<pkg>) | WebFetch https://www.nuget.org/packages/<PackageId> (Version) |
| Latest auto-instrumentation agent | gh api repos/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest -q '.tag_name' |
| Core CHANGELOG (per package, at the release being audited) | WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-dotnet/<core-tag>/src/<Package>/CHANGELOG.md |
| Contrib CHANGELOG (per package, at that package's release tag) | WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-dotnet-contrib/<package-tag>/src/<Package>/CHANGELOG.md |
| .NET getting-started / instrumentation docs | WebFetch https://opentelemetry.io/docs/languages/dotnet/instrumentation/ |
| Zero-code agent docs | WebFetch https://opentelemetry.io/docs/zero-code/dotnet/ |
otel-declarative-config skill (language-agnostic YAML schema sources; .NET not yet implemented).otel-sdk-versions skill.otel-semantic-conventions skill.© ollygarden, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/otel-dotnet of ollygarden/opentelemetry-agent-skills.
Open the folder on GitHubat commit 12296db
Otel Dotnet next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Otel Dotnet this skillollygarden/opentelemetry-agent-skills | 106 | — | ~988 | Automated safety check: Pass | Apache-2.0 | |
| Aspire Service DefaultsAaronontheweb/dotnet-skills | 1.2k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Loggingcodewithmukesh/dotnet-claude-kit | 756 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Opentelemetry Net InstrumentationAaronontheweb/dotnet-skills | 1.2k | — | ~6.9k | Automated safety check: Pass | MIT | |
| Migrate Dotnet9 To Dotnet10dotnet/skills | 5.6k | 2 repos | ~4.8k | Automated safety check: Pass | MIT | |
| Otel Instrumentationatherio-danp/cde-dotnetcc | 109 | — | ~1.3k | Automated safety check: Notes | None |
Aaronontheweb/dotnet-skills
Sets up a shared ServiceDefaults project for .NET Aspire apps that centralizes OpenTelemetry, health checks, HTTP resilience and service discovery for every service.
codewithmukesh/dotnet-claude-kit
Observability overview and glue for .NET 10: how the pieces fit together, plus the cross-cutting parts owned here — ASP.NET health check endpoints (/health), correlation IDs, and log-level strategy.
Aaronontheweb/dotnet-skills
Provides guidance for implementing OpenTelemetry instrumentation in .NET codebases, covering tracing (Activities/Spans), metrics, logs, naming conventions, error handling, performance, SDK setup…
dotnet/skills
Migrate a .NET 9 project or solution to .NET 10 and resolve all breaking changes.
atherio-danp/cde-dotnetcc
Add or change OpenTelemetry tracing, metrics, and structured logging in the .NET API (apps/api) — OTLP exporter setup, custom ActivitySource spans, IMeterFactory metrics, log/trace correlation.
dotnet/skills
Migrate a .NET 10 project or solution to .NET 11 and resolve all breaking changes.
ollygarden/opentelemetry-agent-skills
Build custom OpenTelemetry Collector distributions with OCB (OpenTelemetry Collector Builder).
ollygarden/opentelemetry-agent-skills
OpenTelemetry in Go — SDK setup, API surface, breaking changes, contrib instrumentation libraries (otelhttp, otelgrpc, otelmongo), compile-time zero-code instrumentation (otelc), and performance…
ollygarden/opentelemetry-agent-skills
OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector.
ollygarden/opentelemetry-agent-skills
Migrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan.
ollygarden/opentelemetry-agent-skills
Build safe, version-pinned telemetrygen commands for synthetic OTLP traces, metrics, and logs.
ollygarden/opentelemetry-agent-skills
Assess OpenTelemetry package and Collector upgrades across ecosystems.
Works with
Categories
OpenTelemetry in .NET — DI/builder SDK setup (OpenTelemetry.Extensions.Hosting, AddOpenTelemetry, UseOtlpExporter, OpenTelemetrySdk.Create), native .NET instrumentation APIs (ActivitySource…. Otel Dotnet is an agent skill from ollygarden/opentelemetry-agent-skills.Metrics Meter) plus logging abstractions (ILogger), zero-code CLR-profiler agent, contrib instrumentation packages, performance tuning, and breaking-change audits.
Otel Dotnet fits situations like: configuring OpenTelemetry in a .NET; ASP.NET Core service; setup otel in dotnet; dotnet telemetry.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a claude-code`. Or copy the skill folder (skills/otel-dotnet in ollygarden/opentelemetry-agent-skills) into .claude/skills/otel-dotnet in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a codex`. Or copy the skill folder (skills/otel-dotnet in ollygarden/opentelemetry-agent-skills) into .agents/skills/otel-dotnet in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-dotnet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/otel-dotnet, .gemini/skills/otel-dotnet, .github/skills/otel-dotnet and .opencode/skills/otel-dotnet in your project.
Going by SKILL.md and its folder, Otel Dotnet needs the command-line tools its instructions call (gh).
SKILL.md names 3 domains. In commands or code: raw.githubusercontent.com, opentelemetry.io and nuget.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Otel Dotnet is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 988 tokens (SKILL.md is roughly 4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 16k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Otel Dotnet: Aspire Service Defaults (Aaronontheweb/dotnet-skills, 1.2k stars), Logging (codewithmukesh/dotnet-claude-kit, 756 stars), Opentelemetry Net Instrumentation (Aaronontheweb/dotnet-skills, 1.2k stars) and Migrate Dotnet9 To Dotnet10 (dotnet/skills, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ollygarden (a GitHub organization) maintains it in ollygarden/opentelemetry-agent-skills, which has 106 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 10, 2026.
Source: ollygarden/opentelemetry-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.