Skip to content

refactor(profiling): replace dd-trace-go profiler with pprof admin endpoint#300

Open
worstell wants to merge 1 commit intomainfrom
refactor/profiling-pprof-endpoint
Open

refactor(profiling): replace dd-trace-go profiler with pprof admin endpoint#300
worstell wants to merge 1 commit intomainfrom
refactor/profiling-pprof-endpoint

Conversation

@worstell
Copy link
Copy Markdown
Contributor

@worstell worstell commented May 8, 2026

Drops the in-process Datadog continuous profiler in favor of the standard net/http/pprof admin listener (the OSS-Go convention used by Kubernetes, Prometheus, etcd, CockroachDB, etc.). Profiles are pulled by an external scraper rather than pushed by the binary, leaving the choice of backend to operators.

Removes the gopkg.in/DataDog/dd-trace-go.v1 dep entirely. To preserve the Go runtime metrics (runtime.go.*) that the dd-trace-go tracer's WithRuntimeMetrics() emitted, wires up go.opentelemetry.io/contrib/instrumentation/runtime on the existing OTel meter provider — the metrics flow through the same OTel pipeline as the rest of cachew's metrics.

Listener binds 0.0.0.0:6060; pod NetworkPolicy is the access-control boundary.

@worstell worstell marked this pull request as ready for review May 8, 2026 19:11
@worstell worstell requested a review from a team as a code owner May 8, 2026 19:11
@worstell worstell requested review from alecthomas and removed request for a team May 8, 2026 19:11
@worstell worstell force-pushed the refactor/profiling-pprof-endpoint branch from 7b74701 to c30c678 Compare May 8, 2026 19:43
…dpoint

Drops the in-process Datadog continuous profiler in favor of the standard
net/http/pprof admin listener (the OSS-Go convention used by Kubernetes,
Prometheus, etcd, CockroachDB, etc.). Profiles are pulled by an external
scraper rather than pushed by the binary, leaving the choice of backend
to operators.

Removes the gopkg.in/DataDog/dd-trace-go.v1 dep entirely. To preserve the
Go runtime metrics (runtime.go.*) that the dd-trace-go tracer's
WithRuntimeMetrics() emitted, wires up
go.opentelemetry.io/contrib/instrumentation/runtime on the existing OTel
meter provider — the metrics flow through the same OTel pipeline as the
rest of cachew's metrics.

The pprof listener binds 0.0.0.0:6060; pod NetworkPolicy is the
access-control boundary.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019e0410-4b1d-77fc-a775-b6febdd0108d
@worstell worstell force-pushed the refactor/profiling-pprof-endpoint branch from c30c678 to a21491b Compare May 8, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant