opentelemetry-go-compile-instrumentation v1.2.0: Cassandra, Kafka, and SQL Instrumentation
opentelemetry-go-compile-instrumentation v1.2.0 shipped on October 12, 2026. This release adds compile time instrumentation for three new sources: the gocql Cassandra driver, kafka-go consumers, and connector based sql.OpenDB calls. It also fixes a gRPC bug where skipped RPCs touched the caller span. The full details are on the GitHub release page.
The full release notes and downloads are on the GitHub release page.
New instrumentation coverage
Three additions expand which Go programs this tool can trace without code changes. The gocql Cassandra driver now gets automatic instrumentation. The kafka-go instrumentation covers (*kafka.Reader).FetchMessage, the common read path for consumers. The database/sql instrumentation handles sql.OpenDB connector based initialization, so programs that build a connector before opening the driver get traced too.
There is also new LLM observability. The OpenAI and Anthropic instrumentations gained the gen_ai.client.operation.duration metric, and Anthropic spans gained the error.type attribute. Two related fixes: Anthropic no longer creates a span for an unparseable model, and OpenAI max_completion_tokens is mapped to gen_ai.request.max_tokens.
Tool fixes worth knowing
If you maintain rules for this tool, two changes matter. Rule files can now declare a minimum otelc version, so a rule can refuse to run under a tool that is too old. The wrap_call directive supports the .Receiver template variable plus new ArgumentOfType and CallArgument helpers.
On the flag handling side, the tool now parses separated -exec flag values correctly and rejects separated flags that arrive without values. It also rejects invalid manifest rule targets and empty keys in scanArgs directive parsing. Error handling improved as well: raw errors are wrapped with ex to preserve stack traces, and file close errors on write paths are handled so partial writes do not silently lose data.
Runtime and environment variables
Two runtime fixes are easy to hit in production. OTEL_GO_SIMPLE_SPAN_PROCESSOR is now parsed case insensitively. An empty parsed instrumentation list is ignored instead of disabling everything, which avoids a footgun where malformed config turned instrumentation off. The docs now state the default value and valid range for OTEL_GLS_MAX_SPANS.
One dependency change stands out: the grpc module was updated to v1.83.1 as a security fix. The net/http instrumentation also sets http.request.method=_OTHER for unknown HTTP methods, matching the semantic convention behavior.
Where to get it
- Release page: v1.2.0 release notes
- Project repo: open-telemetry/opentelemetry-go-compile-instrumentation
- Tag:
v1.2.0
This is a stable release, not a prerelease. A fair share of the remaining changelog is internal cleanup and refactoring around manifest generation, so if you only track end user changes, the sections above cover the parts that affect you.