-
Notifications
You must be signed in to change notification settings - Fork 468
chore(profiling): move echion to dd-trace-py #15136
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
base: main
Are you sure you want to change the base?
Conversation
|
|
991be14 to
d22f7f9
Compare
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 250 ± 5 ms. The average import time from base is: 261 ± 5 ms. The import time difference between this PR and base is: -11.1 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
eb048a2 to
08c227e
Compare
Performance SLOsComparing candidate kowalski/echion-to-dd-trace-py (88661d6) with baseline main (f7999ce) 📈 Performance Regressions (1 suite)📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 5.135µs (SLO: <10.000µs 📉 -48.6%) vs baseline: 📈 +20.6% Memory: ✅ 39.852MB (SLO: <41.000MB -2.8%) vs baseline: +4.9% ✅ ospathbasename_noaspectTime: ✅ 1.085µs (SLO: <10.000µs 📉 -89.2%) vs baseline: -0.1% Memory: ✅ 39.852MB (SLO: <41.000MB -2.8%) vs baseline: +5.0% ✅ ospathjoin_aspectTime: ✅ 6.991µs (SLO: <10.000µs 📉 -30.1%) vs baseline: 📈 +12.5% Memory: ✅ 39.892MB (SLO: <41.000MB -2.7%) vs baseline: +4.9% ✅ ospathjoin_noaspectTime: ✅ 2.329µs (SLO: <10.000µs 📉 -76.7%) vs baseline: +0.3% Memory: ✅ 39.774MB (SLO: <41.000MB -3.0%) vs baseline: +4.6% ✅ ospathnormcase_aspectTime: ✅ 3.902µs (SLO: <10.000µs 📉 -61.0%) vs baseline: 📈 +10.6% Memory: ✅ 39.872MB (SLO: <41.000MB -2.8%) vs baseline: +5.2% ✅ ospathnormcase_noaspectTime: ✅ 0.571µs (SLO: <10.000µs 📉 -94.3%) vs baseline: ~same Memory: ✅ 39.734MB (SLO: <41.000MB -3.1%) vs baseline: +4.6% ✅ ospathsplit_aspectTime: ✅ 5.070µs (SLO: <10.000µs 📉 -49.3%) vs baseline: +5.1% Memory: ✅ 39.833MB (SLO: <41.000MB -2.8%) vs baseline: +4.8% ✅ ospathsplit_noaspectTime: ✅ 1.596µs (SLO: <10.000µs 📉 -84.0%) vs baseline: ~same Memory: ✅ 39.833MB (SLO: <41.000MB -2.8%) vs baseline: +4.9% ✅ ospathsplitdrive_aspectTime: ✅ 3.714µs (SLO: <10.000µs 📉 -62.9%) vs baseline: -1.1% Memory: ✅ 39.813MB (SLO: <41.000MB -2.9%) vs baseline: +4.9% ✅ ospathsplitdrive_noaspectTime: ✅ 0.703µs (SLO: <10.000µs 📉 -93.0%) vs baseline: +0.8% Memory: ✅ 39.813MB (SLO: <41.000MB -2.9%) vs baseline: +4.8% ✅ ospathsplitext_aspectTime: ✅ 5.299µs (SLO: <10.000µs 📉 -47.0%) vs baseline: 📈 +14.3% Memory: ✅ 39.872MB (SLO: <41.000MB -2.8%) vs baseline: +4.8% ✅ ospathsplitext_noaspectTime: ✅ 1.394µs (SLO: <10.000µs 📉 -86.1%) vs baseline: +0.4% Memory: ✅ 39.990MB (SLO: <41.000MB -2.5%) vs baseline: +5.1% 🟡 Near SLO Breach (2 suites)🟡 otelspan - 22/22✅ add-eventTime: ✅ 39.225ms (SLO: <47.150ms 📉 -16.8%) vs baseline: +1.6% Memory: ✅ 38.952MB (SLO: <47.000MB 📉 -17.1%) vs baseline: +4.8% ✅ add-metricsTime: ✅ 258.004ms (SLO: <344.800ms 📉 -25.2%) vs baseline: +0.6% Memory: ✅ 43.293MB (SLO: <47.500MB -8.9%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 317.330ms (SLO: <321.000ms 🟡 -1.1%) vs baseline: +2.1% Memory: ✅ 43.277MB (SLO: <47.500MB -8.9%) vs baseline: +4.6% ✅ get-contextTime: ✅ 78.722ms (SLO: <92.350ms 📉 -14.8%) vs baseline: ~same Memory: ✅ 39.172MB (SLO: <46.500MB 📉 -15.8%) vs baseline: +4.5% ✅ is-recordingTime: ✅ 35.874ms (SLO: <44.500ms 📉 -19.4%) vs baseline: ~same Memory: ✅ 38.718MB (SLO: <47.500MB 📉 -18.5%) vs baseline: +5.0% ✅ record-exceptionTime: ✅ 57.802ms (SLO: <67.650ms 📉 -14.6%) vs baseline: +1.2% Memory: ✅ 39.465MB (SLO: <47.000MB 📉 -16.0%) vs baseline: +4.8% ✅ set-statusTime: ✅ 42.322ms (SLO: <50.400ms 📉 -16.0%) vs baseline: -0.6% Memory: ✅ 38.832MB (SLO: <47.000MB 📉 -17.4%) vs baseline: +4.7% ✅ startTime: ✅ 35.446ms (SLO: <43.450ms 📉 -18.4%) vs baseline: +0.5% Memory: ✅ 38.884MB (SLO: <47.000MB 📉 -17.3%) vs baseline: +5.7% ✅ start-finishTime: ✅ 81.690ms (SLO: <88.000ms -7.2%) vs baseline: -0.4% Memory: ✅ 36.490MB (SLO: <46.500MB 📉 -21.5%) vs baseline: +4.4% ✅ start-finish-telemetryTime: ✅ 83.252ms (SLO: <89.000ms -6.5%) vs baseline: ~same Memory: ✅ 36.569MB (SLO: <46.500MB 📉 -21.4%) vs baseline: +4.6% ✅ update-nameTime: ✅ 36.679ms (SLO: <45.150ms 📉 -18.8%) vs baseline: -0.3% Memory: ✅ 38.731MB (SLO: <47.000MB 📉 -17.6%) vs baseline: +4.4% 🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 2.964µs (SLO: <20.000µs 📉 -85.2%) vs baseline: -0.2% Memory: ✅ 34.524MB (SLO: <35.500MB -2.7%) vs baseline: +4.8% ✅ 1-count-metrics-100-timesTime: ✅ 203.504µs (SLO: <220.000µs -7.5%) vs baseline: +1.1% Memory: ✅ 34.564MB (SLO: <35.500MB -2.6%) vs baseline: +5.0% ✅ 1-distribution-metric-1-timesTime: ✅ 3.414µs (SLO: <20.000µs 📉 -82.9%) vs baseline: +2.4% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +4.9% ✅ 1-distribution-metrics-100-timesTime: ✅ 218.683µs (SLO: <220.000µs 🟡 -0.6%) vs baseline: -0.8% Memory: ✅ 34.465MB (SLO: <35.500MB -2.9%) vs baseline: +4.7% ✅ 1-gauge-metric-1-timesTime: ✅ 2.205µs (SLO: <20.000µs 📉 -89.0%) vs baseline: +2.1% Memory: ✅ 34.465MB (SLO: <35.500MB -2.9%) vs baseline: +4.4% ✅ 1-gauge-metrics-100-timesTime: ✅ 137.174µs (SLO: <150.000µs -8.6%) vs baseline: +0.2% Memory: ✅ 34.583MB (SLO: <35.500MB -2.6%) vs baseline: +5.0% ✅ 1-rate-metric-1-timesTime: ✅ 3.137µs (SLO: <20.000µs 📉 -84.3%) vs baseline: +0.4% Memory: ✅ 34.367MB (SLO: <35.500MB -3.2%) vs baseline: +4.3% ✅ 1-rate-metrics-100-timesTime: ✅ 216.040µs (SLO: <250.000µs 📉 -13.6%) vs baseline: ~same Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +4.9% ✅ 100-count-metrics-100-timesTime: ✅ 20.347ms (SLO: <22.000ms -7.5%) vs baseline: +1.0% Memory: ✅ 34.583MB (SLO: <35.500MB -2.6%) vs baseline: +5.3% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.259ms (SLO: <2.300ms 🟡 -1.8%) vs baseline: +0.5% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +4.9% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.413ms (SLO: <1.550ms -8.8%) vs baseline: +0.4% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +4.9% ✅ 100-rate-metrics-100-timesTime: ✅ 2.206ms (SLO: <2.550ms 📉 -13.5%) vs baseline: +0.3% Memory: ✅ 34.524MB (SLO: <35.500MB -2.7%) vs baseline: +4.9% ✅ flush-1-metricTime: ✅ 4.655µs (SLO: <20.000µs 📉 -76.7%) vs baseline: +0.3% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +5.0% ✅ flush-100-metricsTime: ✅ 175.717µs (SLO: <250.000µs 📉 -29.7%) vs baseline: +0.4% Memory: ✅ 34.465MB (SLO: <35.500MB -2.9%) vs baseline: +4.7% ✅ flush-1000-metricsTime: ✅ 2.127ms (SLO: <2.500ms 📉 -14.9%) vs baseline: -0.3% Memory: ✅ 35.291MB (SLO: <36.500MB -3.3%) vs baseline: +4.9%
|
7e12a2c to
4c898d7
Compare
|
/gitlab resync-code |
|
View all feedbacks in Devflow UI.
resync successful |
7327f17 to
cd96233
Compare
|
/gitlab estimate-cost |
|
View all feedbacks in Devflow UI.
Estimated cost is $60.92 for chore(profiling): move echion to dd-trace-py (cumulated CI duration: -494202h1m28.528371712s) |
30c7838 to
e0ae172
Compare
e0ae172 to
9690372
Compare
## Description This ports P403n1x87/echion#181 to dd-trace-py. This PR may be the last of its kind as [chore(profiling): move echion to dd-trace-py](#15136) is just around the corner! 🎉
9690372 to
09adbd8
Compare
|
Last week we still had issues with microbenchmarks. Rebasing on |
Specifically commit bbb0c5d2c328765e5548912f9951f20b1baa8b7d
09adbd8 to
88661d6
Compare
What does this PR do?
https://datadoghq.atlassian.net/browse/PROF-12683
This PR moves the source code of Echion from the Echion repository (https://github.com/P403n1x87/echion) to dd-trace-py. We hope that doing this will lead to an improved developer experience in dd-trace-py, as we will effectively:
build/directory / cache, meaning we need to build everything from scratch, which takes time)Note The version of the code that is in this PR is not the latest version of Echion (missing a few PRs). I am still sending the PR for review (so that I can get an approval on the form and general idea) and I will make sure to include/backport any changes merged to Echion before I merge this PR to dd-trace-py.
Note I have copied
.clang-formatover as to minimise the size of the diff and make it easier to port changes from Echion while the PR is in review. I will remove the custom.clang-formatand use the default one from dd-trace-py in a later PR.