Universal OpenTelemetry auto-instrumentation planning and review guidance. Use when deciding whether agent/library instrumentation is sufficient, when tuning auto-instrumented boundaries, when avoiding duplicate manual spans, or when reviewing auto instrumentation for noise, PII, volume, and business value.
Use this skill when planning, implementing, or reviewing auto-instrumentation.
It is universal guidance. Language-specific setup skills decide how a runtime enables
the chosen auto-instrumentation; this skill decides whether it should be enabled,
constrained, supplemented, or excluded.
Non-Negotiable Rules
Auto-instrumentation availability is not approval to export everything. Include
only services and boundaries that help debug production issues or explain critical
business workflows.
Auto-instrumented boundaries still need scope, signal, privacy, volume, and noise
decisions before SDK setup writes final configuration.
Prefer auto spans for standard boundaries such as HTTP, database, messaging, RPC,
and cache. Do not add manual spans around those same operations unless the manual
work adds business context without duplicating the auto span.
Use auto + manual context when an auto span exists but the trace would otherwise
miss a degraded state, fallback, retry outcome, or business milestone. Annotate the
owning/current span or emit a bounded event instead of wrapping the auto boundary in
another span.
Exclude or suppress low-value expected traffic such as health checks, readiness and
liveness probes, metrics/debug endpoints, static assets, and internal platform probes.
Do not enable capture of request bodies, response bodies, message payloads, cookies,
authorization headers, API keys, tokens, credentials, or other sensitive headers.
Prefer route templates and stable operation names. Avoid raw full URLs, path values
containing IDs, unsanitized SQL values, message payloads, request IDs, timestamps,
usernames, emails, and other unbounded values.
Logs and baggage are not implied by auto-instrumentation. Logs need an explicit
redaction/export policy. Baggage needs explicitly bounded allowlisted keys.
Production sampling must be intentional. Unconditional always_on for production
requires an explicit plan rationale or an explicitly documented downstream sampling
control.
Decision Workflow
For each detected service and boundary:
Identify the business workflow or operational incident this telemetry explains.
Decide whether the service is in scope, out of scope, or lower priority.
Decide whether the boundary is auto, manual, auto + manual context, or excluded.
Identify auto-instrumentation tuning required before export:
endpoint suppressions
service suppressions
signal scope
sampling policy
body/header/payload capture policy
SQL or statement sanitization expectations
propagation policy
Record PII, cardinality, volume, and noise risks in the instrumentation plan.
If the auto span already answers the production-debugging question, do not add
manual instrumentation.
Common Decisions
Auto
Use auto when a standard instrumentation library or agent covers the boundary and
the default span explains the production question.
Examples:
inbound HTTP route latency and status
outbound HTTP dependency latency
JDBC or ORM query latency with sanitized statement metadata
Kafka or queue produce/consume trace continuity
Auto + Manual Context
Use auto + manual context when the auto span exists but misses a meaningful business
or degraded outcome.
Examples:
HTTP request returns 200 with partial data after a fallback
retries eventually succeed but should be visible as degradation
a cache miss triggers a slow downstream dependency call
a message is consumed successfully but routed to a dead-letter path
The manual work should usually annotate the current span or emit a bounded event. Do
not create a duplicate child span around the auto-instrumented HTTP, DB, RPC, messaging,
or cache call.
Manual
Use manual when no auto instrumentation covers the operation and the operation is a
meaningful runtime boundary or critical business milestone.
Examples:
third-party SDK call not covered by HTTP/RPC instrumentation
custom workflow step that owns a user-visible outcome
fallback path that does not cross a separately auto-instrumented boundary
Excluded
Use excluded when telemetry would add cost or cognitive load without improving
runtime understanding.
high-volume platform/control-plane services unless there is a concrete incident use case
Plan Output Expectations
When used during instrumentation planning, record for every auto-instrumented service
or boundary:
service name and whether it is in scope
boundary type
decision: auto, auto + manual context, or excluded
business or operational rationale
required suppressions or tuning
sensitive data capture risks
volume/noise risk
whether SDK setup must enable, disable, or avoid any signal/propagator/exporter
For every auto + manual context decision, also record the exact manual context that
must be added and what must not be duplicated.
Verification Checklist
Auto-instrumented services match the plan scope.
Auto-instrumented boundaries match the plan decisions.
Excluded endpoints/services are suppressed, filtered, downsampled, or explicitly accepted.
Manual spans do not duplicate auto HTTP, DB, RPC, messaging, or cache spans.
Logs are not exported unless the plan includes a redaction/export policy.
Baggage is not enabled unless the plan includes bounded allowlisted keys.
Sampling matches the plan and does not accidentally use production always_on.
No sensitive headers, bodies, message payloads, raw IDs, raw SQL values, or unbounded values are captured.
The resulting trace explains the listed business workflows without excessive nesting.
1---2name: ollygarden-otel-auto-instrumentation3description: Universal OpenTelemetry auto-instrumentation planning and review guidance. Use when deciding whether agent/library instrumentation is sufficient, when tuning auto-instrumented boundaries, when avoiding duplicate manual spans, or when reviewing auto instrumentation for noise, PII, volume, and business value.4---56# OpenTelemetry Auto-Instrumentation78Use this skill when planning, implementing, or reviewing auto-instrumentation.9It is universal guidance. Language-specific setup skills decide how a runtime enables10the chosen auto-instrumentation; this skill decides whether it should be enabled,11constrained, supplemented, or excluded.1213## Non-Negotiable Rules1415- Auto-instrumentation availability is not approval to export everything. Include16 only services and boundaries that help debug production issues or explain critical17 business workflows.18- Auto-instrumented boundaries still need scope, signal, privacy, volume, and noise19 decisions before SDK setup writes final configuration.20- Prefer auto spans for standard boundaries such as HTTP, database, messaging, RPC,21 and cache. Do not add manual spans around those same operations unless the manual22 work adds business context without duplicating the auto span.23- Use `auto + manual context` when an auto span exists but the trace would otherwise24 miss a degraded state, fallback, retry outcome, or business milestone. Annotate the25 owning/current span or emit a bounded event instead of wrapping the auto boundary in26 another span.27- Exclude or suppress low-value expected traffic such as health checks, readiness and28 liveness probes, metrics/debug endpoints, static assets, and internal platform probes.29- Do not enable capture of request bodies, response bodies, message payloads, cookies,30 authorization headers, API keys, tokens, credentials, or other sensitive headers.31- Prefer route templates and stable operation names. Avoid raw full URLs, path values32 containing IDs, unsanitized SQL values, message payloads, request IDs, timestamps,33 usernames, emails, and other unbounded values.34- Logs and baggage are not implied by auto-instrumentation. Logs need an explicit35 redaction/export policy. Baggage needs explicitly bounded allowlisted keys.36- Production sampling must be intentional. Unconditional `always_on` for production37 requires an explicit plan rationale or an explicitly documented downstream sampling38 control.3940## Decision Workflow4142For each detected service and boundary:43441. Identify the business workflow or operational incident this telemetry explains.452. Decide whether the service is in scope, out of scope, or lower priority.463. Decide whether the boundary is `auto`, `manual`, `auto + manual context`, or `excluded`.474. Identify auto-instrumentation tuning required before export:48 - endpoint suppressions49 - service suppressions50 - signal scope51 - sampling policy52 - body/header/payload capture policy53 - SQL or statement sanitization expectations54 - propagation policy555. Record PII, cardinality, volume, and noise risks in the instrumentation plan.566. If the auto span already answers the production-debugging question, do not add57 manual instrumentation.5859## Common Decisions6061### Auto6263Use `auto` when a standard instrumentation library or agent covers the boundary and64the default span explains the production question.6566Examples:67- inbound HTTP route latency and status68- outbound HTTP dependency latency69- JDBC or ORM query latency with sanitized statement metadata70- Kafka or queue produce/consume trace continuity7172### Auto + Manual Context7374Use `auto + manual context` when the auto span exists but misses a meaningful business75or degraded outcome.7677Examples:78- HTTP request returns 200 with partial data after a fallback79- retries eventually succeed but should be visible as degradation80- a cache miss triggers a slow downstream dependency call81- a message is consumed successfully but routed to a dead-letter path8283The manual work should usually annotate the current span or emit a bounded event. Do84not create a duplicate child span around the auto-instrumented HTTP, DB, RPC, messaging,85or cache call.8687### Manual8889Use `manual` when no auto instrumentation covers the operation and the operation is a90meaningful runtime boundary or critical business milestone.9192Examples:93- third-party SDK call not covered by HTTP/RPC instrumentation94- custom workflow step that owns a user-visible outcome95- fallback path that does not cross a separately auto-instrumented boundary9697### Excluded9899Use `excluded` when telemetry would add cost or cognitive load without improving100runtime understanding.101102Examples:103- health/readiness/liveness checks104- metrics/debug/static endpoints105- DTO mapping, object conversion, validation helpers, utility functions106- high-volume platform/control-plane services unless there is a concrete incident use case107108## Plan Output Expectations109110When used during instrumentation planning, record for every auto-instrumented service111or boundary:112113- service name and whether it is in scope114- boundary type115- decision: `auto`, `auto + manual context`, or `excluded`116- business or operational rationale117- required suppressions or tuning118- sensitive data capture risks119- volume/noise risk120- whether SDK setup must enable, disable, or avoid any signal/propagator/exporter121122For every `auto + manual context` decision, also record the exact manual context that123must be added and what must not be duplicated.124125## Verification Checklist126127- [ ] Auto-instrumented services match the plan scope.128- [ ] Auto-instrumented boundaries match the plan decisions.129- [ ] Excluded endpoints/services are suppressed, filtered, downsampled, or explicitly accepted.130- [ ] Manual spans do not duplicate auto HTTP, DB, RPC, messaging, or cache spans.131- [ ] Logs are not exported unless the plan includes a redaction/export policy.132- [ ] Baggage is not enabled unless the plan includes bounded allowlisted keys.133- [ ] Sampling matches the plan and does not accidentally use production `always_on`.134- [ ] No sensitive headers, bodies, message payloads, raw IDs, raw SQL values, or unbounded values are captured.135- [ ] The resulting trace explains the listed business workflows without excessive nesting.
Run npx skillmds@latest add ollygarden/ollygarden-otel-auto-instrumentation in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Universal OpenTelemetry auto-instrumentation planning and review guidance. Use when deciding whether agent/library instrumentation is sufficient, when tuning auto-instrumented boundaries, when avoiding duplicate manual spans, or when reviewing auto instrumentation for noise, PII, volume, and business value. It is listed under AI & ML on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
ollygarden (@ollygarden) published this skill. Their other Agent Skills are listed on their SkillMD profile.