ddtrace/tracer: initialize runtimeMetricsV2 with statsd "direct" client#3006
Merged
Conversation
Datadog ReportBranch report: ✅ 0 Failed, 5110 Passed, 67 Skipped, 2m 27.59s Total Time |
anatolebeuzon
force-pushed
the
anatoleb/runtime-metrics-use-direct-client
branch
from
December 4, 2024 16:43
818069b to
f1ef6cb
Compare
anatolebeuzon
force-pushed
the
anatoleb/runtime-metrics-use-direct-client
branch
from
December 4, 2024 16:45
f1ef6cb to
f7fdf31
Compare
anatolebeuzon
force-pushed
the
anatoleb/runtime-metrics-use-direct-client
branch
from
December 4, 2024 16:53
3bc6106 to
9beb947
Compare
anatolebeuzon
marked this pull request as ready for review
December 4, 2024 16:53
BenchmarksBenchmark execution time: 2024-12-12 14:48:32 Comparing candidate commit 71757de in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 58 metrics, 1 unstable metrics. |
7 tasks
darccio
approved these changes
Dec 5, 2024
Member
|
@DataDog/data-streams-monitoring @DataDog/apm-idm-go Can you review this, please? |
Gandem
force-pushed
the
anatoleb/runtime-metrics-use-direct-client
branch
from
December 12, 2024 14:05
92c0d51 to
71757de
Compare
rarguelloF
approved these changes
Dec 12, 2024
rarguelloF
left a comment
Contributor
There was a problem hiding this comment.
Approving for the contrib/* changes
piochelepiotr
approved these changes
Dec 12, 2024
felixge
approved these changes
Dec 12, 2024
felixge
enabled auto-merge (squash)
December 12, 2024 18:59
e-n-0
added a commit
that referenced
this pull request
Dec 23, 2024
ddtrace/tracer: initialize runtimeMetricsV2 with statsd "direct" client (#3006) Co-authored-by: Felix Geisendörfer <[email protected]> Co-authored-by: Nayef Ghattas <[email protected]> fix(.github/workflows): add tags-ignore to avoid running CI on pushing tags for contribs and other nested modules (#3005) Co-authored-by: Hannah Kim <[email protected]> contrib/envoyproxy: envoy external processing support (#2895) This PR adds a new gRPC Interceptor (StreamServerInterceptor) to support the interception of ext_proc v3 calls to gRPC server. When the interceptor is applied, all messages of the external processing protocol are instrumented without returning an handle to the original server code Co-authored-by: Eliott Bouhana <[email protected]> Co-authored-by: Flavien Darche <[email protected]> add go mod to workflows/apps (#3036) go.mod: module go.opentelemetry.io/collector/pdata@latest found (v1.21.0), but does not contain package go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1experimental (#3042) Signed-off-by: Eliott Bouhana <[email protected]> chore: update latest majors (#2993)
e-n-0
added a commit
that referenced
this pull request
Dec 23, 2024
ddtrace/tracer: initialize runtimeMetricsV2 with statsd "direct" client (#3006) Co-authored-by: Felix Geisendörfer <[email protected]> Co-authored-by: Nayef Ghattas <[email protected]> fix(.github/workflows): add tags-ignore to avoid running CI on pushing tags for contribs and other nested modules (#3005) Co-authored-by: Hannah Kim <[email protected]> contrib/envoyproxy: envoy external processing support (#2895) This PR adds a new gRPC Interceptor (StreamServerInterceptor) to support the interception of ext_proc v3 calls to gRPC server. When the interceptor is applied, all messages of the external processing protocol are instrumented without returning an handle to the original server code Co-authored-by: Eliott Bouhana <[email protected]> Co-authored-by: Flavien Darche <[email protected]> add go mod to workflows/apps (#3036) go.mod: module go.opentelemetry.io/collector/pdata@latest found (v1.21.0), but does not contain package go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1experimental (#3042) Signed-off-by: Eliott Bouhana <[email protected]> chore: update latest majors (#2993)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
It initializes runtimeMetricsV2 with the "direct" client, which provides the
DistributionSamples()method (in addition to all the usualstatsd.Clientmethods).Motivation
See DataDog/go-runtime-metrics-internal#8.
The Go
runtime/metricspackage maintains histograms, and we want to submit those to the Datadog API as distributions for best UX. We can roughly do so by submitting the midpoint of each bucket from the Go histogram, with a weight corresponding to the number of items in the bucket.If we were to use the
Distribution()method of the regular client, we would have to call it in a loop for the same bucket midpoint, which would be extremely wasteful for buckets containing large number of items. Instead, theDistributionSamples()method allow us to rig theratein order to achieve the same result, while sending only one point per bucket.Reviewer's Checklist
v2-devbranch and reviewed by @DataDog/apm-go.Unsure? Have a question? Request a review!