-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add telemetry client implementation to data pipeline. #802
base: main
Are you sure you want to change the base?
Conversation
BenchmarksComparisonBenchmark execution time: 2025-01-09 14:01:29 Comparing candidate commit 2846c2d in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 51 metrics, 2 unstable metrics. CandidateCandidate benchmark detailsGroup 1
Group 2
Group 3
Group 4
Group 5
Group 6
Group 7
Group 8
Group 9
Group 10
Group 11
Group 12
BaselineOmitted due to size. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #802 +/- ##
==========================================
+ Coverage 71.04% 71.40% +0.36%
==========================================
Files 313 315 +2
Lines 45898 46281 +383
==========================================
+ Hits 32606 33045 +439
+ Misses 13292 13236 -56
|
1e01f44
to
f9bc429
Compare
7a2c893
to
7513a28
Compare
* Create a new builder for the TelemetryClient object. * Add implementation for the TelemetryClient.
* Add tests. * Fix pipeline errors.
7513a28
to
95fa3e9
Compare
03473ca
to
ab2a274
Compare
|
||
impl TelemetryClientBuilder { | ||
/// Creates a new empty builder. | ||
pub fn new() -> Self { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't feel strongly about this, but if we're just returning a default Self
, do we need a new()
method at all?
} | ||
|
||
/// Register a new metric that will be used by the telemetry client. | ||
pub fn add_metric( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the metrics are already pretty much hardcoded in the Metrics
struct wouldn't it be easier to hardcode them in the client send
function.
Why can't we rely on ddtelemetry's client aggregation/flush mechanism ? Is it to expensive to add the points on each submitted trace payload ? |
Co-authored-by: Edmund Kump <[email protected]>
* Add documentation.
The main idea to try if it would make sense to have a common implementation for the sidecar and data-pipeline so we could have more control over trace-utils (SendData and SendDataResult) for further refactor/optimizations. The sidecar was already accumulating the results in a common metric structure so I kind of followed that path. Also the accumulation seemed less expensive than sending data through the telemetry handle on every trace but, honestly, I don't know how much I think we should do some benchmarking to test it. |
What does this PR do?
Add a client in data pipeline to handle metrics based on
SendDataResults
.Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.