Skip to content
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

Exporter/Datadog: improve trace exporter performance #1706

Merged

Conversation

ericmustin
Copy link
Contributor

Description:

The cpu and memory usage of the tracer under heavy load is higher than where we'd like it to be, after investigating some profiles we found some areas where we could improve performance by re-using some components for generating statistics and improving trace translation logic

Testing:

Updated Unit tests

mx-psi and others added 2 commits November 26, 2020 12:52
The sublayer calculator is reset every time stats are computed so
there is no need to use one per trace. We still use one per `push`
call since it is not thread safe
@codecov
Copy link

codecov bot commented Nov 26, 2020

Codecov Report

Merging #1706 (9fcc858) into master (0705ace) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1706      +/-   ##
==========================================
- Coverage   89.54%   89.53%   -0.01%     
==========================================
  Files         373      373              
  Lines       18233    18229       -4     
==========================================
- Hits        16326    16321       -5     
- Misses       1417     1418       +1     
  Partials      490      490              
Flag Coverage Δ
integration 70.97% <ø> (ø)
unit 88.23% <100.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
exporter/datadogexporter/model.go 73.68% <ø> (+3.68%) ⬆️
exporter/datadogexporter/stats.go 86.36% <100.00%> (ø)
exporter/datadogexporter/traces_exporter.go 79.41% <100.00%> (+0.62%) ⬆️
exporter/datadogexporter/translate_traces.go 80.50% <100.00%> (-0.39%) ⬇️
receiver/prometheusexecreceiver/receiver.go 85.83% <0.00%> (-2.50%) ⬇️
processor/groupbytraceprocessor/event.go 96.77% <0.00%> (+0.80%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0705ace...9fcc858. Read the comment docs.

Copy link
Member

@mx-psi mx-psi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving on behalf of Datadog

@tigrannajaryan tigrannajaryan merged commit 1baaf1c into open-telemetry:master Nov 26, 2020
mx-psi added a commit to mx-psi/aws-otel-collector that referenced this pull request Nov 30, 2020
mxiamxia pushed a commit to aws-observability/aws-otel-collector that referenced this pull request Nov 30, 2020
dyladan referenced this pull request in dynatrace-oss-contrib/opentelemetry-collector-contrib Jan 29, 2021
This is necessary to prevent circular package dependency that
can arise when we need to hide certain pdata functions in the
internal package in a commit that is coming soon in
open-telemetry/opentelemetry-collector#1703

Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
ljmsc referenced this pull request in ljmsc/opentelemetry-collector-contrib Feb 21, 2022
The makeSamplingDecision function is a wrapper around the provider
sampler calling ShouldSample with a duplicate configuration struct. That
duplication and need for translation as well as the addition function
call is unnecessary, this function is called in only one place.

Resolves #1706
@mx-psi mx-psi deleted the mx-psi/improve-traces-performance branch November 2, 2022 13:37
gotikkoxq added a commit to gotikkoxq/aws-otel-collector that referenced this pull request Aug 26, 2024
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.

4 participants