feat(contrib/gomodule/redigo): add otelc support - #5123
Conversation
…t binary on Windows
Config Audit |
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 604ea2c | Docs | Datadog PR Page | Give us feedback! |
BenchmarksBenchmark execution time: 2026-08-06 10:35:04 Comparing candidate commit 604ea2c in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 326 metrics, 0 unstable metrics, 1 known flaky benchmarks.
|
6130357 to
ed27564
Compare
ed27564 to
fd087ce
Compare
…n is wrapped once
…c hook dependency
…of an integration suite
fd087ce to
15ac484
Compare
…ation' into rarguelloF/IDMPL-636/otelc-redigo
6fd87f6 to
73560ba
Compare
What does this PR do?
Ports redigo's auto-instrumentation to otelc, the first integration to move. The existing
internal/orchestrion/_integration/redigosuite passes built with otelc, with the same spans and no assertion changed.orchestrion.ymlrewrites theredis.Dial,redis.DialContextandredis.DialURLcall sites to call the contrib's drop-ins. otelc'swrap_callexposes only the matched call as a whole, so it cannot re-target a call while keeping its arguments. This hooksredis.DialContextinstead, which all of those entry points reach, so one rule covers them.Two consequences of hooking the definition rather than call sites:
redis.DialTimeoutandredis.DialURLContextget traced too, which orchestrion does not do.redis.DialContextitself, so an application dialling through the contrib in an instrumented build would have its connection wrapped twice and report two spans per command. The contrib now marks its own dial (TraceMark) and the hook skips marked ones.The hooks live in their own module,
contrib/gomodule/redigo/v2/otelc, sogo.opentelemetry.io/otelc/pkgstays out of thego.modof anyone importing the contrib without using otelc. The integration is enabled fromotelc/all, the wayorchestrion/alllists integrations.Motivation
First integration on otelc, and a check that the foundation holds up on a real one.
Reviewer's Checklist
make lintlocally.make testlocally.make generatelocally.contrib/gomodule/redigo/v2/otelcmodule.