-
Notifications
You must be signed in to change notification settings - Fork 457
chore(ray): add metadata and entrypoint to ray job root span #14715
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: dubloom/ray-v0
Are you sure you want to change the base?
chore(ray): add metadata and entrypoint to ray job root span #14715
Conversation
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 242 ± 3 ms. The average import time from base is: 245 ± 3 ms. The import time difference between this PR and base is: -2.5 ± 0.1 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate imran-hendley/ray-root-span-metadata (d7e526c) with baseline dubloom/ray-v0 (7685418) 📈 Performance Regressions (1 suite)📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.480µs (SLO: <20.000µs 📉 -82.6%) vs baseline: +9.2% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.9% ✅ 1-count-metrics-100-timesTime: ✅ 211.694µs (SLO: <250.000µs 📉 -15.3%) vs baseline: -1.3% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 1-distribution-metric-1-timesTime: ✅ 2.910µs (SLO: <20.000µs 📉 -85.5%) vs baseline: -2.4% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-distribution-metrics-100-timesTime: ✅ 191.396µs (SLO: <220.000µs 📉 -13.0%) vs baseline: -1.5% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.0% ✅ 1-gauge-metric-1-timesTime: ✅ 2.057µs (SLO: <20.000µs 📉 -89.7%) vs baseline: -1.7% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-gauge-metrics-100-timesTime: ✅ 125.189µs (SLO: <150.000µs 📉 -16.5%) vs baseline: +0.3% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.8% ✅ 1-rate-metric-1-timesTime: ✅ 3.442µs (SLO: <20.000µs 📉 -82.8%) vs baseline: +9.1% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-rate-metrics-100-timesTime: ✅ 211.865µs (SLO: <250.000µs 📉 -15.3%) vs baseline: -1.3% Memory: ✅ 32.047MB (SLO: <34.000MB -5.7%) vs baseline: +4.6% ✅ 100-count-metrics-100-timesTime: ✅ 21.629ms (SLO: <23.500ms -8.0%) vs baseline: +2.4% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 100-distribution-metrics-100-timesTime: ✅ 1.971ms (SLO: <2.250ms 📉 -12.4%) vs baseline: -1.1% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.285ms (SLO: <1.550ms 📉 -17.1%) vs baseline: -0.5% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.1% ✅ 100-rate-metrics-100-timesTime: ✅ 2.234ms (SLO: <2.550ms 📉 -12.4%) vs baseline: +2.4% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.7% ✅ flush-1-metricTime: ✅ 4.640µs (SLO: <20.000µs 📉 -76.8%) vs baseline: 📈 +11.1% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ flush-100-metricsTime: ✅ 181.018µs (SLO: <250.000µs 📉 -27.6%) vs baseline: +0.4% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ flush-1000-metricsTime: ✅ 2.216ms (SLO: <2.500ms 📉 -11.4%) vs baseline: ~same Memory: ✅ 32.893MB (SLO: <34.500MB -4.7%) vs baseline: +4.9% 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.453ms (SLO: <22.300ms -8.3%) vs baseline: -0.1% Memory: ✅ 65.480MB (SLO: <67.000MB -2.3%) vs baseline: +5.1% ✅ exception-replay-enabledTime: ✅ 1.349ms (SLO: <1.450ms -7.0%) vs baseline: +0.1% Memory: ✅ 64.482MB (SLO: <67.000MB -3.8%) vs baseline: +5.3% ✅ iastTime: ✅ 20.470ms (SLO: <22.250ms -8.0%) vs baseline: -0.2% Memory: ✅ 65.532MB (SLO: <67.000MB -2.2%) vs baseline: +5.3% ✅ profilerTime: ✅ 15.162ms (SLO: <16.550ms -8.4%) vs baseline: -0.4% Memory: ✅ 53.729MB (SLO: <54.500MB 🟡 -1.4%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 20.573ms (SLO: <21.750ms -5.4%) vs baseline: +0.3% Memory: ✅ 65.496MB (SLO: <67.000MB -2.2%) vs baseline: +5.2% ✅ span-code-originTime: ✅ 26.123ms (SLO: <28.200ms -7.4%) vs baseline: -0.5% Memory: ✅ 68.183MB (SLO: <69.500MB 🟡 -1.9%) vs baseline: +5.9% ✅ tracerTime: ✅ 20.478ms (SLO: <21.750ms -5.8%) vs baseline: -0.4% Memory: ✅ 65.482MB (SLO: <67.000MB -2.3%) vs baseline: +5.1% ✅ tracer-and-profilerTime: ✅ 22.060ms (SLO: <23.500ms -6.1%) vs baseline: +0.1% Memory: ✅ 66.549MB (SLO: <67.500MB 🟡 -1.4%) vs baseline: +5.4% ✅ tracer-dont-create-db-spansTime: ✅ 19.356ms (SLO: <21.500ms -10.0%) vs baseline: -0.3% Memory: ✅ 65.460MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +5.1% ✅ tracer-minimalTime: ✅ 16.640ms (SLO: <17.500ms -4.9%) vs baseline: -0.2% Memory: ✅ 65.212MB (SLO: <66.000MB 🟡 -1.2%) vs baseline: +4.9% ✅ tracer-nativeTime: ✅ 20.547ms (SLO: <21.750ms -5.5%) vs baseline: +0.4% Memory: ✅ 71.439MB (SLO: <72.500MB 🟡 -1.5%) vs baseline: +5.2% ✅ tracer-no-cachesTime: ✅ 18.408ms (SLO: <19.650ms -6.3%) vs baseline: -0.3% Memory: ✅ 65.270MB (SLO: <67.000MB -2.6%) vs baseline: +4.8% ✅ tracer-no-databasesTime: ✅ 18.805ms (SLO: <20.100ms -6.4%) vs baseline: ~same Memory: ✅ 65.134MB (SLO: <67.000MB -2.8%) vs baseline: +5.1% ✅ tracer-no-middlewareTime: ✅ 20.195ms (SLO: <21.500ms -6.1%) vs baseline: -0.1% Memory: ✅ 65.557MB (SLO: <67.000MB -2.2%) vs baseline: +5.3% ✅ tracer-no-templatesTime: ✅ 20.353ms (SLO: <22.000ms -7.5%) vs baseline: ~same Memory: ✅ 65.535MB (SLO: <67.000MB -2.2%) vs baseline: +5.3% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.076ms (SLO: <19.850ms -8.9%) vs baseline: -0.3% Memory: ✅ 65.333MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.1% ✅ errortracking-enabled-userTime: ✅ 18.086ms (SLO: <19.400ms -6.8%) vs baseline: ~same Memory: ✅ 65.333MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.0% ✅ tracer-enabledTime: ✅ 18.106ms (SLO: <19.450ms -6.9%) vs baseline: ~same Memory: ✅ 65.294MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +4.9% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.571ms (SLO: <4.750ms -3.8%) vs baseline: -0.5% Memory: ✅ 61.853MB (SLO: <65.000MB -4.8%) vs baseline: +2.9% ✅ appsec-postTime: ✅ 6.568ms (SLO: <6.750ms -2.7%) vs baseline: ~same Memory: ✅ 61.892MB (SLO: <65.000MB -4.8%) vs baseline: +2.8% ✅ appsec-telemetryTime: ✅ 4.568ms (SLO: <4.750ms -3.8%) vs baseline: -0.5% Memory: ✅ 61.912MB (SLO: <65.000MB -4.8%) vs baseline: +2.8% ✅ debuggerTime: ✅ 1.853ms (SLO: <2.000ms -7.4%) vs baseline: -0.7% Memory: ✅ 45.397MB (SLO: <47.000MB -3.4%) vs baseline: +5.2% ✅ iast-getTime: ✅ 1.866ms (SLO: <2.000ms -6.7%) vs baseline: +0.5% Memory: ✅ 42.330MB (SLO: <49.000MB 📉 -13.6%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.907ms (SLO: <2.100ms -9.2%) vs baseline: -0.4% Memory: ✅ 46.478MB (SLO: <47.000MB 🟡 -1.1%) vs baseline: +8.1% ✅ resource-renamingTime: ✅ 3.377ms (SLO: <3.650ms -7.5%) vs baseline: -0.7% Memory: ✅ 52.219MB (SLO: <53.500MB -2.4%) vs baseline: +5.0% ✅ tracerTime: ✅ 3.370ms (SLO: <3.650ms -7.7%) vs baseline: +0.2% Memory: ✅ 52.160MB (SLO: <53.500MB -2.5%) vs baseline: +5.1% ✅ tracer-nativeTime: ✅ 3.368ms (SLO: <3.650ms -7.7%) vs baseline: -0.3% Memory: ✅ 58.163MB (SLO: <60.000MB -3.1%) vs baseline: +5.0% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 44.981ms (SLO: <47.150ms -4.6%) vs baseline: -0.5% Memory: ✅ 45.320MB (SLO: <47.000MB -3.6%) vs baseline: +5.3% ✅ add-metricsTime: ✅ 320.298ms (SLO: <344.800ms -7.1%) vs baseline: +0.5% Memory: ✅ 553.521MB (SLO: <562.000MB 🟡 -1.5%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 291.868ms (SLO: <314.000ms -7.0%) vs baseline: +0.4% Memory: ✅ 555.344MB (SLO: <563.500MB 🟡 -1.4%) vs baseline: +4.9% ✅ get-contextTime: ✅ 83.095ms (SLO: <92.350ms 📉 -10.0%) vs baseline: +0.7% Memory: ✅ 40.273MB (SLO: <46.500MB 📉 -13.4%) vs baseline: +5.1% ✅ is-recordingTime: ✅ 43.189ms (SLO: <44.500ms -2.9%) vs baseline: +1.3% Memory: ✅ 44.565MB (SLO: <47.500MB -6.2%) vs baseline: +5.1% ✅ record-exceptionTime: ✅ 62.966ms (SLO: <67.650ms -6.9%) vs baseline: +2.0% Memory: ✅ 40.575MB (SLO: <47.000MB 📉 -13.7%) vs baseline: +5.1% ✅ set-statusTime: ✅ 49.810ms (SLO: <50.400ms 🟡 -1.2%) vs baseline: +2.0% Memory: ✅ 44.571MB (SLO: <47.000MB -5.2%) vs baseline: +5.1% ✅ startTime: ✅ 42.130ms (SLO: <43.450ms -3.0%) vs baseline: -0.4% Memory: ✅ 44.624MB (SLO: <47.000MB -5.1%) vs baseline: +5.2% ✅ start-finishTime: ✅ 82.851ms (SLO: <88.000ms -5.9%) vs baseline: -0.5% Memory: ✅ 34.603MB (SLO: <46.500MB 📉 -25.6%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 86.314ms (SLO: <89.000ms -3.0%) vs baseline: +1.9% Memory: ✅ 34.603MB (SLO: <46.500MB 📉 -25.6%) vs baseline: +5.0% ✅ update-nameTime: ✅ 44.239ms (SLO: <45.150ms -2.0%) vs baseline: +0.4% Memory: ✅ 44.940MB (SLO: <47.000MB -4.4%) vs baseline: +5.3%
|
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 think this is excellent and exactly on target. My only nit is that I can't seem to find the trace from your test plan in staging, can you please add a link to that trace to the PR description?
Description
MLOB-3969 Add user metadata to root span tags
MLOB-3980 Tag the entry point on the root span
Testing
pip install .
RAY_LOGGING_CONFIG_ENCODING=JSON DD_ENV=dev ray start --head --dashboard-host=127.0.0.1 --tracing-startup-hook=ddtrace.contrib.ray:setup_tracing
`ray job submit --metadata-json='{"job_name": "train_my_model", "test":"1"}' --submission-id="imran-ray-metadata-test-012" -- python /Users/imran.hendley/go/src/github.com/DataDog/dd-trace-py/tests/contrib/ray/jobs/simple_task.py
Risks
None
Additional Notes
Do we need to support recreating these tags in
RaySpanManager._recreate_job_span
?