-
Notifications
You must be signed in to change notification settings - Fork 461
fix(profiling): make DD_PROFILING_API_TIMEOUT
useful again
#14844
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
|
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.
release note lgtm
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 249 ± 4 ms. The average import time from base is: 254 ± 5 ms. The import time difference between this PR and base is: -4.3 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
constexpr std::string_view g_library_name = "dd-trace-py"; | ||
|
||
// Keep this in sync with ddtrace/settings/profiling.py:ProfilingConfig.api_timeout | ||
constexpr uint64_t g_default_max_timeout_ms = 10000; // 10 seconds |
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.
constexpr uint64_t g_default_max_timeout_ms = 10000; // 10 seconds | |
constexpr uint64_t g_default_max_timeout_ms = 10'000; // 10 seconds |
static inline std::string url{ "http://localhost:8126" }; | ||
static inline ExporterTagset user_tags{}; | ||
static inline std::string output_filename{ "" }; | ||
static inline uint64_t max_timeout_ms{ g_default_max_timeout_ms }; |
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.
g_default_max_timeout_ms
isn't being used anywhere else, can you inline its value here with the same comment?
Or are there future uses of it, in which case it makes sense to define the global.
timeline_enabled: Optional[bool], | ||
output_filename: Optional[str], | ||
sample_pool_capacity: Optional[int], | ||
timeout: Optional[float], |
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.
timeout: Optional[float], | |
timeout: Optional[int], |
output_filename: StringType = None, | ||
sample_pool_capacity: Optional[int] = None) -> None: | ||
sample_pool_capacity: Optional[int] = None, | ||
timeout: Optional[float] = None) -> None: |
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.
timeout: Optional[float] = None) -> None: | |
timeout: Optional[int] = None) -> None: |
ddup_config_sample_pool_capacity(clamp_to_uint64_unsigned(sample_pool_capacity)) | ||
|
||
if timeout is not None: | ||
# timeout is in seconds with float type |
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.
Related to my code suggestions above, why is it float
?
Performance SLOsComparing candidate taegyunkim/prof-12719 (7cd6ba6) with baseline main (40eb26a) 🟡 Near SLO Breach (5 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.545ms (SLO: <22.300ms -7.9%) vs baseline: +0.6% Memory: ✅ 65.452MB (SLO: <67.000MB -2.3%) vs baseline: +4.7% ✅ exception-replay-enabledTime: ✅ 1.347ms (SLO: <1.450ms -7.1%) vs baseline: ~same Memory: ✅ 64.516MB (SLO: <67.000MB -3.7%) vs baseline: +4.9% ✅ iastTime: ✅ 20.448ms (SLO: <22.250ms -8.1%) vs baseline: -0.2% Memory: ✅ 65.529MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.289ms (SLO: <16.550ms -7.6%) vs baseline: +0.1% Memory: ✅ 53.772MB (SLO: <54.500MB 🟡 -1.3%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 20.565ms (SLO: <21.750ms -5.4%) vs baseline: ~same Memory: ✅ 65.361MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 26.154ms (SLO: <28.200ms -7.3%) vs baseline: ~same Memory: ✅ 67.532MB (SLO: <69.500MB -2.8%) vs baseline: +4.7% ✅ tracerTime: ✅ 20.468ms (SLO: <21.750ms -5.9%) vs baseline: -0.3% Memory: ✅ 65.424MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ tracer-and-profilerTime: ✅ 22.082ms (SLO: <23.500ms -6.0%) vs baseline: -0.2% Memory: ✅ 66.682MB (SLO: <67.500MB 🟡 -1.2%) vs baseline: +5.1% ✅ tracer-dont-create-db-spansTime: ✅ 19.343ms (SLO: <21.500ms 📉 -10.0%) vs baseline: ~same Memory: ✅ 65.474MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +4.8% ✅ tracer-minimalTime: ✅ 16.630ms (SLO: <17.500ms -5.0%) vs baseline: -0.4% Memory: ✅ 65.433MB (SLO: <66.000MB 🟡 -0.9%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 20.545ms (SLO: <21.750ms -5.5%) vs baseline: ~same Memory: ✅ 71.381MB (SLO: <72.500MB 🟡 -1.5%) vs baseline: +4.8% ✅ tracer-no-cachesTime: ✅ 18.423ms (SLO: <19.650ms -6.2%) vs baseline: -0.2% Memory: ✅ 65.524MB (SLO: <67.000MB -2.2%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 18.776ms (SLO: <20.100ms -6.6%) vs baseline: +0.1% Memory: ✅ 65.420MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ tracer-no-middlewareTime: ✅ 20.228ms (SLO: <21.500ms -5.9%) vs baseline: +0.1% Memory: ✅ 65.420MB (SLO: <67.000MB -2.4%) vs baseline: +4.9% ✅ tracer-no-templatesTime: ✅ 20.361ms (SLO: <22.000ms -7.4%) vs baseline: +0.4% Memory: ✅ 65.492MB (SLO: <67.000MB -2.3%) vs baseline: +4.9% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.121ms (SLO: <19.850ms -8.7%) vs baseline: ~same Memory: ✅ 65.215MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ errortracking-enabled-userTime: ✅ 18.006ms (SLO: <19.400ms -7.2%) vs baseline: -0.1% Memory: ✅ 65.254MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ tracer-enabledTime: ✅ 18.061ms (SLO: <19.450ms -7.1%) vs baseline: -0.3% Memory: ✅ 65.215MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.8% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.574ms (SLO: <4.750ms -3.7%) vs baseline: -0.1% Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 6.547ms (SLO: <6.750ms -3.0%) vs baseline: ~same Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +4.8% ✅ appsec-telemetryTime: ✅ 4.569ms (SLO: <4.750ms -3.8%) vs baseline: -0.4% Memory: ✅ 61.951MB (SLO: <65.000MB -4.7%) vs baseline: +5.1% ✅ debuggerTime: ✅ 1.857ms (SLO: <2.000ms -7.1%) vs baseline: -0.4% Memory: ✅ 45.475MB (SLO: <47.000MB -3.2%) vs baseline: +4.8% ✅ iast-getTime: ✅ 1.865ms (SLO: <2.000ms -6.8%) vs baseline: -0.3% Memory: ✅ 42.369MB (SLO: <49.000MB 📉 -13.5%) vs baseline: +4.9% ✅ profilerTime: ✅ 1.911ms (SLO: <2.100ms -9.0%) vs baseline: +0.4% Memory: ✅ 46.458MB (SLO: <47.000MB 🟡 -1.2%) vs baseline: +4.7% ✅ resource-renamingTime: ✅ 3.379ms (SLO: <3.650ms -7.4%) vs baseline: -0.2% Memory: ✅ 52.239MB (SLO: <53.500MB -2.4%) vs baseline: +4.9% ✅ tracerTime: ✅ 3.374ms (SLO: <3.650ms -7.6%) vs baseline: +0.3% Memory: ✅ 52.180MB (SLO: <53.500MB -2.5%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 3.365ms (SLO: <3.650ms -7.8%) vs baseline: +0.1% Memory: ✅ 58.423MB (SLO: <60.000MB -2.6%) vs baseline: +5.5% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 42.393ms (SLO: <47.150ms 📉 -10.1%) vs baseline: ~same Memory: ✅ 44.474MB (SLO: <47.000MB -5.4%) vs baseline: +4.8% ✅ add-metricsTime: ✅ 319.419ms (SLO: <344.800ms -7.4%) vs baseline: +0.3% Memory: ✅ 595.685MB (SLO: <600.000MB 🟡 -0.7%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 287.369ms (SLO: <314.000ms -8.5%) vs baseline: -0.4% Memory: ✅ 596.562MB (SLO: <600.000MB 🟡 -0.6%) vs baseline: +4.9% ✅ get-contextTime: ✅ 80.760ms (SLO: <92.350ms 📉 -12.6%) vs baseline: ~same Memory: ✅ 39.991MB (SLO: <46.500MB 📉 -14.0%) vs baseline: +5.0% ✅ is-recordingTime: ✅ 38.940ms (SLO: <44.500ms 📉 -12.5%) vs baseline: +0.2% Memory: ✅ 43.881MB (SLO: <47.500MB -7.6%) vs baseline: +4.8% ✅ record-exceptionTime: ✅ 58.837ms (SLO: <67.650ms 📉 -13.0%) vs baseline: ~same Memory: ✅ 40.295MB (SLO: <47.000MB 📉 -14.3%) vs baseline: +5.0% ✅ set-statusTime: ✅ 44.546ms (SLO: <50.400ms 📉 -11.6%) vs baseline: -0.7% Memory: ✅ 43.959MB (SLO: <47.000MB -6.5%) vs baseline: +4.9% ✅ startTime: ✅ 38.336ms (SLO: <43.450ms 📉 -11.8%) vs baseline: -0.4% Memory: ✅ 43.948MB (SLO: <47.000MB -6.5%) vs baseline: +5.0% ✅ start-finishTime: ✅ 82.661ms (SLO: <88.000ms -6.1%) vs baseline: ~same Memory: ✅ 34.564MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.7% ✅ start-finish-telemetryTime: ✅ 83.648ms (SLO: <89.000ms -6.0%) vs baseline: -1.7% Memory: ✅ 34.524MB (SLO: <46.500MB 📉 -25.8%) vs baseline: +4.7% ✅ update-nameTime: ✅ 40.259ms (SLO: <45.150ms 📉 -10.8%) vs baseline: +0.3% Memory: ✅ 44.229MB (SLO: <47.000MB -5.9%) vs baseline: +4.8% 🟡 span - 26/26✅ add-eventTime: ✅ 20.695ms (SLO: <22.500ms -8.0%) vs baseline: +0.3% Memory: ✅ 50.320MB (SLO: <53.000MB -5.1%) vs baseline: +4.9% ✅ add-metricsTime: ✅ 90.671ms (SLO: <93.500ms -3.0%) vs baseline: -0.2% Memory: ✅ 660.824MB (SLO: <961.000MB 📉 -31.2%) vs baseline: +4.8% ✅ add-tagsTime: ✅ 148.493ms (SLO: <155.000ms -4.2%) vs baseline: +0.3% Memory: ✅ 661.272MB (SLO: <962.500MB 📉 -31.3%) vs baseline: +4.8% ✅ get-contextTime: ✅ 19.407ms (SLO: <20.500ms -5.3%) vs baseline: +0.5% Memory: ✅ 49.168MB (SLO: <53.000MB -7.2%) vs baseline: +4.9% ✅ is-recordingTime: ✅ 19.698ms (SLO: <20.500ms -3.9%) vs baseline: +0.7% Memory: ✅ 49.189MB (SLO: <53.000MB -7.2%) vs baseline: +4.9% ✅ record-exceptionTime: ✅ 38.370ms (SLO: <40.000ms -4.1%) vs baseline: +0.1% Memory: ✅ 42.729MB (SLO: <53.000MB 📉 -19.4%) vs baseline: +4.9% ✅ set-statusTime: ✅ 21.378ms (SLO: <22.000ms -2.8%) vs baseline: +0.6% Memory: ✅ 49.185MB (SLO: <53.000MB -7.2%) vs baseline: +4.8% ✅ startTime: ✅ 19.153ms (SLO: <20.500ms -6.6%) vs baseline: +0.8% Memory: ✅ 49.212MB (SLO: <53.000MB -7.1%) vs baseline: +5.0% ✅ start-finishTime: ✅ 51.303ms (SLO: <52.500ms -2.3%) vs baseline: -0.5% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 52.703ms (SLO: <54.500ms -3.3%) vs baseline: -0.2% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.7% ✅ start-finish-traceid128Time: ✅ 55.103ms (SLO: <56.000ms 🟡 -1.6%) vs baseline: ~same Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ start-traceid128Time: ✅ 19.688ms (SLO: <22.500ms 📉 -12.5%) vs baseline: ~same Memory: ✅ 49.111MB (SLO: <53.000MB -7.3%) vs baseline: +4.8% ✅ update-nameTime: ✅ 20.166ms (SLO: <22.000ms -8.3%) vs baseline: +0.1% Memory: ✅ 49.816MB (SLO: <53.000MB -6.0%) vs baseline: +4.9%
|
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.
mostly nits in comments, stamping to unblock
Description
DD_PROFILING_API_TIMEOUT
worked for legacy Python profile exporter which was removed in #13599. Native profile exporter never supported it.Testing
Risks
Additional Notes