OpenTelemetry instrumentation conventions. Use when instrumenting code with spans, setting up tracing, or writing trace tests.
Generates OpenTelemetry instrumentation following semantic conventions for spans, attributes, and status codes.
npx claudepluginhub bendrucker/claudeThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Use short, low-cardinality names from semantic conventions:
GET /users/{id} (method + route template, never full URL path)SELECT users (operation + table)grpc.health.v1.Health/Checkorders process (destination + operation)Use semantic convention attribute names — never invent your own:
http.request.method, url.full, http.response.status_code, server.addressdb.system, db.statement, db.namespaceerror.type, service.nameImport from the versioned semconv package (e.g., go.opentelemetry.io/otel/semconv/v1.x).
Only set status on errors: span.SetStatus(codes.Error, err.Error()). Never set Ok — unset is the success state. Call RecordError alongside SetStatus (it only adds a span event, doesn't change status).
For HTTP: 4xx is Error on client spans, Unset on server spans. 5xx is always Error.
Use in-memory exporters with SimpleSpanProcessor (not batch — batch introduces timing). Assert on exported spans' names, attributes, and status. No mocking needed.
Instrument network calls, I/O, and queue operations — not every function. Use span events (AddEvent) instead of separate log statements for events within a traced operation.