refactor: native fork-safe threads
We refactor the native periodic thread implementation to be fork-safe whereby all such threads that are running at the time of a fork are automatically stopped before the fork, then restarted after it. We also take care to avoid stopping and restarting threads in the parent process if we detect an immediate call to fork again.
Some of the implications of this change are that there is no longer the need for fork-safe synchronisation objects, such as Locks and Events. This is because all (ddtrace) threads are guaranteed to be stopped before a fork, and restarted afterwards. There is also no longer the need to manually recreate threads, as currently done in many places. The only thing that needs to be taken care of is to ensure that the state of the periodic services is as expected after a fork. For example, many products have the need to avoid sending duplicate values from different processes. This can be achieved by either subclassing from ForksafeAwakeablePeriodicService and implementing the reset method to let any periodic service to automatically trigger the reset logic on forks (the preferred way), or by the current approach of registering a fork-safe hook.
Performance Analysis
Stopping and restarting threads can be expensive but gives good fork-safety guarantees. Because threads have to be joined before the fork can continue, a forked process might get delayed by a thread currently busy on I/O. Because our periodic threads run on periods that are O(1s), we can expect these unfortunate event to be quite rare. Besides, it is quite likely that a process forks at the very beginning of its execution, where it is unlikely that the periodic threads have had a chance to trigger their first periodic action.
The timer set around close fork invocation should reduce delays even more by preventing the parent process from stopping and restarting threads in between fork calls. To give some number, the invocation of 1000 forks in a tight loop with the tracer and the profiler enabled require ~1.2s to complete on an M1. In comparison, the same loop without ddtrace takes 0.3s. The same loop with stop/restart in between forks takes ~1.5s.
The wall-time view through a profiler gives the following picture:
A good portion of the overhead comes from the tracing of fork itself, which could be improved by moving it to the native layer in follow-up work.
Checklist
- [ ] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the library release note guidelines
- The change includes or references documentation updates if necessary
- Backport labels are set (if applicable)
Reviewer Checklist
- [ ] Reviewer has checked that all the criteria below are met
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking API changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the release branch maintenance policy
CODEOWNERS have been resolved as:
ddtrace/internal/threads.py @DataDog/apm-core-python
ddtrace/_trace/context.py @DataDog/apm-sdk-capabilities-python
ddtrace/contrib/internal/ray/span_manager.py @DataDog/ml-observability
ddtrace/contrib/internal/subprocess/patch.py @DataDog/asm-python
ddtrace/debugging/_encoding.py @DataDog/debugger-python
ddtrace/debugging/_origin/span.py @DataDog/debugger-python
ddtrace/debugging/_probe/registry.py @DataDog/debugger-python
ddtrace/internal/_threads.cpp @DataDog/apm-core-python
ddtrace/internal/_threads.pyi @DataDog/apm-core-python
ddtrace/internal/datadog/profiling/stack_v2/src/sampler.cpp @DataDog/profiling-python
ddtrace/internal/datastreams/processor.py @DataDog/data-streams-monitoring
ddtrace/internal/forksafe.py @DataDog/apm-core-python
ddtrace/internal/periodic.py @DataDog/apm-core-python
ddtrace/internal/processor/endpoint_call_counter.py @DataDog/apm-core-python
ddtrace/internal/processor/stats.py @DataDog/apm-core-python
ddtrace/internal/remoteconfig/worker.py @DataDog/remote-config @DataDog/apm-core-python
ddtrace/internal/runtime/runtime_metrics.py @DataDog/apm-sdk-capabilities-python
ddtrace/internal/service.py @DataDog/apm-core-python
ddtrace/internal/telemetry/metrics_namespaces.pyx @DataDog/apm-python
ddtrace/internal/telemetry/writer.py @DataDog/apm-python
ddtrace/llmobs/_evaluators/runner.py @DataDog/ml-observability
ddtrace/llmobs/_llmobs.py @DataDog/ml-observability
ddtrace/llmobs/_log_writer.py @DataDog/ml-observability
ddtrace/llmobs/_writer.py @DataDog/ml-observability
ddtrace/profiling/collector/stack.pyx @DataDog/profiling-python
ddtrace/profiling/profiler.py @DataDog/profiling-python
ddtrace/profiling/scheduler.py @DataDog/profiling-python
tests/contrib/uwsgi/__init__.py @DataDog/apm-core-python @DataDog/apm-idm-python
tests/internal/service_name/test_extra_services_names.py @DataDog/apm-core-python
tests/internal/test_forksafe.py @DataDog/apm-core-python
tests/internal/test_periodic.py @DataDog/apm-core-python
tests/profiling/collector/pprof_utils.py @DataDog/profiling-python
tests/profiling/gevent_fork.py @DataDog/profiling-python
tests/profiling/test_main.py @DataDog/profiling-python
tests/profiling/test_uwsgi.py @DataDog/profiling-python
tests/profiling/uwsgi-app.py @DataDog/profiling-python
tests/profiling_v2/test_gunicorn.py @DataDog/profiling-python
tests/profiling_v2/test_main.py @DataDog/profiling-python
tests/profiling_v2/test_uwsgi.py @DataDog/profiling-python
Bootstrap import analysis
Comparison of import times between this PR and base.
Summary
The average import time from this PR is: 237 ยฑ 2 ms.
The average import time from base is: 239 ยฑ 2 ms.
The import time difference between this PR and base is: -1.79 ยฑ 0.08 ms.
Import time breakdown
The following import paths have appeared:
ddtrace.auto
1.683 ms
(0.71%)
ddtrace
1.683 ms
(0.71%)
ddtrace._logger
1.683 ms
(0.71%)
ddtrace.internal.telemetry
1.683 ms
(0.71%)
ddtrace.internal.telemetry.writer
1.683 ms
(0.71%)
ddtrace.internal.periodic
1.683 ms
(0.71%)
ddtrace.internal.service
1.683 ms
(0.71%)
ddtrace.internal.threads
1.683 ms
(0.71%)
ddtrace.internal._threads
1.093 ms
(0.46%)
The following import paths have disappeared:
ddtrace.auto
1.087 ms
(0.46%)
ddtrace
1.087 ms
(0.46%)
ddtrace._logger
1.087 ms
(0.46%)
ddtrace.internal.telemetry
1.087 ms
(0.46%)
ddtrace.internal.telemetry.writer
1.087 ms
(0.46%)
ddtrace.internal.periodic
1.087 ms
(0.46%)
ddtrace.internal._threads
1.087 ms
(0.46%)
The following import paths have grown:
ddtrace.auto
0.252 ms
(0.11%)
ddtrace
0.175 ms
(0.07%)
ddtrace.settings._config
0.112 ms
(0.05%)
ddtrace.internal.gitmetadata
0.112 ms
(0.05%)
ddtrace._logger
0.062 ms
(0.03%)
ddtrace.internal.telemetry
0.062 ms
(0.03%)
ddtrace.internal.telemetry.writer
0.062 ms
(0.03%)
ddtrace.internal.telemetry.metrics_namespaces
0.062 ms
(0.03%)
ddtrace.bootstrap.sitecustomize
0.078 ms
(0.03%)
ddtrace.bootstrap.preload
0.078 ms
(0.03%)
ddtrace.debugging._import
0.078 ms
(0.03%)
ddtrace.debugging._function.discovery
0.078 ms
(0.03%)
The following import paths have shrunk:
ddtrace.auto
2.442 ms
(1.03%)
ddtrace.bootstrap.sitecustomize
1.435 ms
(0.61%)
ddtrace.bootstrap.preload
1.435 ms
(0.61%)
ddtrace.internal.remoteconfig.client
0.641 ms
(0.27%)
ddtrace.debugging._import
0.092 ms
(0.04%)
ddtrace.settings.profiling
0.015 ms
(0.01%)
ddtrace.internal.datadog.profiling.ddup
0.015 ms
(0.01%)
ddtrace.internal.datadog.profiling.ddup._ddup
0.015 ms
(0.01%)
ddtrace.internal.datadog.profiling.code_provenance
0.015 ms
(0.01%)
ddtrace
1.007 ms
(0.43%)
ddtrace._logger
0.179 ms
(0.08%)
ddtrace.internal.telemetry
0.179 ms
(0.08%)
ddtrace.internal.telemetry.writer
0.179 ms
(0.08%)
ddtrace.internal.periodic
0.107 ms
(0.05%)
ddtrace.internal.service
0.078 ms
(0.03%)
ddtrace.settings._config
0.111 ms
(0.05%)
ddtrace.internal.schema
0.111 ms
(0.05%)
ddtrace.internal.schema.span_attribute_schema
0.111 ms
(0.05%)
ddtrace.internal._unpatched
0.060 ms
(0.03%)
subprocess
0.031 ms
(0.01%)
contextlib
0.031 ms
(0.01%)
json
0.029 ms
(0.01%)
json.decoder
0.029 ms
(0.01%)
re
0.029 ms
(0.01%)
enum
0.029 ms
(0.01%)
types
0.029 ms
(0.01%)
Performance SLOs
Comparing candidate refactor/native-forksafe-threads (f421c59f58e9bcacf4f70f58cd0facdcce478ca6) with baseline main (fcedfb080c9f7f343934ccec2b9156393790426d)
๐ Performance Regressions (1 suite)
๐ iastaspects - 118/118
โ add_aspect
Time: โ 0.402ยตs (SLO: <10.000ยตs ๐ -96.0%) vs baseline: -1.0%
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.0%
โ add_inplace_aspect
Time: โ 0.405ยตs (SLO: <10.000ยตs ๐ -96.0%) vs baseline: +0.3%
Memory: โ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.8%
โ add_inplace_noaspect
Time: โ 0.318ยตs (SLO: <10.000ยตs ๐ -96.8%) vs baseline: -0.4%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ add_noaspect
Time: โ 0.277ยตs (SLO: <10.000ยตs ๐ -97.2%) vs baseline: -0.8%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.0%
โ bytearray_aspect
Time: โ 1.363ยตs (SLO: <10.000ยตs ๐ -86.4%) vs baseline: ~same
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.1%
โ bytearray_extend_aspect
Time: โ 1.516ยตs (SLO: <10.000ยตs ๐ -84.8%) vs baseline: +0.4%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ bytearray_extend_noaspect
Time: โ 0.617ยตs (SLO: <10.000ยตs ๐ -93.8%) vs baseline: +0.5%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ bytearray_noaspect
Time: โ 0.491ยตs (SLO: <10.000ยตs ๐ -95.1%) vs baseline: +1.9%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ bytes_aspect
Time: โ 1.518ยตs (SLO: <10.000ยตs ๐ -84.8%) vs baseline: ๐ +18.8%
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +4.9%
โ bytes_noaspect
Time: โ 0.497ยตs (SLO: <10.000ยตs ๐ -95.0%) vs baseline: +1.4%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ bytesio_aspect
Time: โ 1.360ยตs (SLO: <10.000ยตs ๐ -86.4%) vs baseline: ~same
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ bytesio_noaspect
Time: โ 0.498ยตs (SLO: <10.000ยตs ๐ -95.0%) vs baseline: +0.4%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ capitalize_aspect
Time: โ 0.731ยตs (SLO: <10.000ยตs ๐ -92.7%) vs baseline: +0.1%
Memory: โ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.6%
โ capitalize_noaspect
Time: โ 0.431ยตs (SLO: <10.000ยตs ๐ -95.7%) vs baseline: -0.8%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ casefold_aspect
Time: โ 0.744ยตs (SLO: <10.000ยตs ๐ -92.6%) vs baseline: ~same
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ casefold_noaspect
Time: โ 0.366ยตs (SLO: <10.000ยตs ๐ -96.3%) vs baseline: -1.0%
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +4.9%
โ decode_aspect
Time: โ 0.726ยตs (SLO: <10.000ยตs ๐ -92.7%) vs baseline: +0.5%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ decode_noaspect
Time: โ 0.424ยตs (SLO: <10.000ยตs ๐ -95.8%) vs baseline: ~same
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.7%
โ encode_aspect
Time: โ 0.708ยตs (SLO: <10.000ยตs ๐ -92.9%) vs baseline: +0.9%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.8%
โ encode_noaspect
Time: โ 0.406ยตs (SLO: <10.000ยตs ๐ -95.9%) vs baseline: +0.4%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ format_aspect
Time: โ 3.391ยตs (SLO: <10.000ยตs ๐ -66.1%) vs baseline: ~same
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ format_map_aspect
Time: โ 3.666ยตs (SLO: <10.000ยตs ๐ -63.3%) vs baseline: ~same
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ format_map_noaspect
Time: โ 0.777ยตs (SLO: <10.000ยตs ๐ -92.2%) vs baseline: ~same
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ format_noaspect
Time: โ 0.599ยตs (SLO: <10.000ยตs ๐ -94.0%) vs baseline: ~same
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ index_aspect
Time: โ 0.355ยตs (SLO: <10.000ยตs ๐ -96.5%) vs baseline: -1.5%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ index_noaspect
Time: โ 0.279ยตs (SLO: <10.000ยตs ๐ -97.2%) vs baseline: +0.7%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ join_aspect
Time: โ 1.345ยตs (SLO: <10.000ยตs ๐ -86.5%) vs baseline: -0.6%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ join_noaspect
Time: โ 0.491ยตs (SLO: <10.000ยตs ๐ -95.1%) vs baseline: +0.3%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ ljust_aspect
Time: โ 2.546ยตs (SLO: <20.000ยตs ๐ -87.3%) vs baseline: -0.9%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ ljust_noaspect
Time: โ 0.403ยตs (SLO: <10.000ยตs ๐ -96.0%) vs baseline: ~same
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ lower_aspect
Time: โ 2.176ยตs (SLO: <10.000ยตs ๐ -78.2%) vs baseline: +0.3%
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.0%
โ lower_noaspect
Time: โ 0.366ยตs (SLO: <10.000ยตs ๐ -96.3%) vs baseline: -2.0%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +5.0%
โ lstrip_aspect
Time: โ 2.208ยตs (SLO: <20.000ยตs ๐ -89.0%) vs baseline: +0.4%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ lstrip_noaspect
Time: โ 0.383ยตs (SLO: <10.000ยตs ๐ -96.2%) vs baseline: -0.8%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ modulo_aspect
Time: โ 0.990ยตs (SLO: <10.000ยตs ๐ -90.1%) vs baseline: -1.3%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ modulo_aspect_for_bytearray_bytearray
Time: โ 1.551ยตs (SLO: <10.000ยตs ๐ -84.5%) vs baseline: -0.7%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ modulo_aspect_for_bytes
Time: โ 0.967ยตs (SLO: <10.000ยตs ๐ -90.3%) vs baseline: -1.1%
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.1%
โ modulo_aspect_for_bytes_bytearray
Time: โ 1.218ยตs (SLO: <10.000ยตs ๐ -87.8%) vs baseline: -0.9%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ modulo_noaspect
Time: โ 0.632ยตs (SLO: <10.000ยตs ๐ -93.7%) vs baseline: ~same
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ replace_aspect
Time: โ 4.951ยตs (SLO: <10.000ยตs ๐ -50.5%) vs baseline: +1.1%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ replace_noaspect
Time: โ 0.459ยตs (SLO: <10.000ยตs ๐ -95.4%) vs baseline: -1.0%
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.1%
โ repr_aspect
Time: โ 0.909ยตs (SLO: <10.000ยตs ๐ -90.9%) vs baseline: -0.1%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ repr_noaspect
Time: โ 0.409ยตs (SLO: <10.000ยตs ๐ -95.9%) vs baseline: -1.6%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ rstrip_aspect
Time: โ 1.903ยตs (SLO: <20.000ยตs ๐ -90.5%) vs baseline: -0.5%
Memory: โ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.7%
โ rstrip_noaspect
Time: โ 0.374ยตs (SLO: <10.000ยตs ๐ -96.3%) vs baseline: -0.8%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.0%
โ slice_aspect
Time: โ 0.490ยตs (SLO: <10.000ยตs ๐ -95.1%) vs baseline: -1.6%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ slice_noaspect
Time: โ 0.450ยตs (SLO: <10.000ยตs ๐ -95.5%) vs baseline: +1.0%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ stringio_aspect
Time: โ 1.588ยตs (SLO: <10.000ยตs ๐ -84.1%) vs baseline: +3.1%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ stringio_noaspect
Time: โ 0.720ยตs (SLO: <10.000ยตs ๐ -92.8%) vs baseline: +0.9%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ strip_aspect
Time: โ 2.194ยตs (SLO: <20.000ยตs ๐ -89.0%) vs baseline: -0.8%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ strip_noaspect
Time: โ 0.387ยตs (SLO: <10.000ยตs ๐ -96.1%) vs baseline: +0.1%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ swapcase_aspect
Time: โ 2.392ยตs (SLO: <10.000ยตs ๐ -76.1%) vs baseline: -0.4%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ swapcase_noaspect
Time: โ 0.528ยตs (SLO: <10.000ยตs ๐ -94.7%) vs baseline: -1.2%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ title_aspect
Time: โ 2.332ยตs (SLO: <10.000ยตs ๐ -76.7%) vs baseline: -0.7%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ title_noaspect
Time: โ 0.499ยตs (SLO: <10.000ยตs ๐ -95.0%) vs baseline: -0.1%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ translate_aspect
Time: โ 3.245ยตs (SLO: <10.000ยตs ๐ -67.6%) vs baseline: +0.4%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ translate_noaspect
Time: โ 1.045ยตs (SLO: <10.000ยตs ๐ -89.6%) vs baseline: +0.3%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.7%
โ upper_aspect
Time: โ 2.189ยตs (SLO: <10.000ยตs ๐ -78.1%) vs baseline: -0.3%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ upper_noaspect
Time: โ 0.373ยตs (SLO: <10.000ยตs ๐ -96.3%) vs baseline: +1.1%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
๐ก Near SLO Breach (5 suites)
๐ก djangosimple - 30/30
โ appsec
Time: โ 20.451ms (SLO: <22.300ms -8.3%) vs baseline: ~same
Memory: โ 66.303MB (SLO: <67.000MB ๐ก -1.0%) vs baseline: +4.5%
โ exception-replay-enabled
Time: โ 1.338ms (SLO: <1.450ms -7.7%) vs baseline: -0.3%
Memory: โ 64.580MB (SLO: <67.000MB -3.6%) vs baseline: +4.8%
โ iast
Time: โ 20.451ms (SLO: <22.250ms -8.1%) vs baseline: -0.2%
Memory: โ 66.362MB (SLO: <67.000MB ๐ก -1.0%) vs baseline: +4.8%
โ profiler
Time: โ 15.500ms (SLO: <16.550ms -6.3%) vs baseline: +0.2%
Memory: โ 54.068MB (SLO: <54.500MB ๐ก -0.8%) vs baseline: +5.0%
โ resource-renaming
Time: โ 20.578ms (SLO: <21.750ms -5.4%) vs baseline: +0.2%
Memory: โ 66.343MB (SLO: <67.000MB ๐ก -1.0%) vs baseline: +4.7%
โ span-code-origin
Time: โ 25.466ms (SLO: <28.200ms -9.7%) vs baseline: +0.2%
Memory: โ 67.496MB (SLO: <69.500MB -2.9%) vs baseline: +4.8%
โ tracer
Time: โ 20.486ms (SLO: <21.750ms -5.8%) vs baseline: ~same
Memory: โ 66.283MB (SLO: <67.000MB ๐ก -1.1%) vs baseline: +4.6%
โ tracer-and-profiler
Time: โ 22.583ms (SLO: <23.500ms -3.9%) vs baseline: -0.4%
Memory: โ 67.761MB (SLO: <68.000MB ๐ก -0.4%) vs baseline: +4.6%
โ tracer-dont-create-db-spans
Time: โ 19.318ms (SLO: <21.500ms ๐ -10.2%) vs baseline: -0.3%
Memory: โ 66.375MB (SLO: <67.000MB ๐ก -0.9%) vs baseline: +4.7%
โ tracer-minimal
Time: โ 16.591ms (SLO: <17.500ms -5.2%) vs baseline: -0.3%
Memory: โ 66.315MB (SLO: <67.000MB ๐ก -1.0%) vs baseline: +4.7%
โ tracer-native
Time: โ 20.438ms (SLO: <21.750ms -6.0%) vs baseline: ~same
Memory: โ 72.273MB (SLO: <72.500MB ๐ก -0.3%) vs baseline: +4.8%
โ tracer-no-caches
Time: โ 18.454ms (SLO: <19.650ms -6.1%) vs baseline: -0.1%
Memory: โ 66.336MB (SLO: <67.000MB ๐ก -1.0%) vs baseline: +4.6%
โ tracer-no-databases
Time: โ 18.800ms (SLO: <20.100ms -6.5%) vs baseline: +0.2%
Memory: โ 66.297MB (SLO: <67.000MB ๐ก -1.0%) vs baseline: +4.7%
โ tracer-no-middleware
Time: โ 20.142ms (SLO: <21.500ms -6.3%) vs baseline: -0.4%
Memory: โ 66.379MB (SLO: <67.000MB ๐ก -0.9%) vs baseline: +4.9%
โ tracer-no-templates
Time: โ 20.261ms (SLO: <22.000ms -7.9%) vs baseline: -0.4%
Memory: โ 66.305MB (SLO: <67.000MB ๐ก -1.0%) vs baseline: +4.6%
๐ก errortrackingdjangosimple - 6/6
โ errortracking-enabled-all
Time: โ 18.073ms (SLO: <19.850ms -9.0%) vs baseline: -0.3%
Memory: โ 66.339MB (SLO: <66.500MB ๐ก -0.2%) vs baseline: +4.7%
โ errortracking-enabled-user
Time: โ 18.093ms (SLO: <19.400ms -6.7%) vs baseline: -0.1%
Memory: โ 66.370MB (SLO: <66.500MB ๐ก -0.2%) vs baseline: +4.7%
โ tracer-enabled
Time: โ 18.076ms (SLO: <19.450ms -7.1%) vs baseline: ~same
Memory: โ 66.309MB (SLO: <66.500MB ๐ก -0.3%) vs baseline: +4.8%
๐ก errortrackingflasksqli - 6/6
โ errortracking-enabled-all
Time: โ 2.076ms (SLO: <2.300ms -9.7%) vs baseline: ~same
Memory: โ 52.670MB (SLO: <53.500MB ๐ก -1.6%) vs baseline: +4.3%
โ errortracking-enabled-user
Time: โ 2.071ms (SLO: <2.250ms -8.0%) vs baseline: -0.2%
Memory: โ 52.704MB (SLO: <53.500MB ๐ก -1.5%) vs baseline: +4.4%
โ tracer-enabled
Time: โ 2.072ms (SLO: <2.300ms -9.9%) vs baseline: -0.5%
Memory: โ 52.777MB (SLO: <53.500MB ๐ก -1.4%) vs baseline: +4.8%
๐ก flasksimple - 18/18
โ appsec-get
Time: โ 4.573ms (SLO: <4.750ms -3.7%) vs baseline: -0.1%
Memory: โ 62.725MB (SLO: <65.000MB -3.5%) vs baseline: +4.9%
โ appsec-post
Time: โ 6.627ms (SLO: <6.750ms ๐ก -1.8%) vs baseline: +0.3%
Memory: โ 62.803MB (SLO: <65.000MB -3.4%) vs baseline: +4.8%
โ appsec-telemetry
Time: โ 4.584ms (SLO: <4.750ms -3.5%) vs baseline: -0.1%
Memory: โ 62.797MB (SLO: <65.000MB -3.4%) vs baseline: +5.0%
โ debugger
Time: โ 1.861ms (SLO: <2.000ms -6.9%) vs baseline: +0.5%
Memory: โ 45.436MB (SLO: <47.000MB -3.3%) vs baseline: +5.2%
โ iast-get
Time: โ 1.858ms (SLO: <2.000ms -7.1%) vs baseline: +0.1%
Memory: โ 42.287MB (SLO: <49.000MB ๐ -13.7%) vs baseline: +4.6%
โ profiler
Time: โ 1.918ms (SLO: <2.100ms -8.7%) vs baseline: +0.3%
Memory: โ 46.834MB (SLO: <47.000MB ๐ก -0.4%) vs baseline: +5.3%
โ resource-renaming
Time: โ 3.365ms (SLO: <3.650ms -7.8%) vs baseline: -0.6%
Memory: โ 53.048MB (SLO: <53.500MB ๐ก -0.8%) vs baseline: +4.9%
โ tracer
Time: โ 3.362ms (SLO: <3.650ms -7.9%) vs baseline: ~same
Memory: โ 53.045MB (SLO: <53.500MB ๐ก -0.8%) vs baseline: +4.9%
โ tracer-native
Time: โ 3.364ms (SLO: <3.650ms -7.8%) vs baseline: ~same
Memory: โ 58.766MB (SLO: <60.000MB -2.1%) vs baseline: +4.5%
๐ก flasksqli - 6/6
โ appsec-enabled
Time: โ 3.956ms (SLO: <4.200ms -5.8%) vs baseline: ~same
Memory: โ 62.786MB (SLO: <66.000MB -4.9%) vs baseline: +4.8%
โ iast-enabled
Time: โ 2.439ms (SLO: <2.800ms ๐ -12.9%) vs baseline: +0.4%
Memory: โ 59.714MB (SLO: <60.000MB ๐ก -0.5%) vs baseline: +5.2%
โ tracer-enabled
Time: โ 2.065ms (SLO: <2.250ms -8.2%) vs baseline: +0.3%
Memory: โ 53.014MB (SLO: <54.500MB -2.7%) vs baseline: +5.1%
๐ Performance Improvements (2 suites)
๐ httppropagationextract - 60/60
โ all_styles_all_headers
Time: โ 76.780ยตs (SLO: <100.000ยตs ๐ -23.2%) vs baseline: -5.0%
Memory: โ 32.165MB (SLO: <33.500MB -4.0%) vs baseline: +4.7%
โ b3_headers
Time: โ 12.944ยตs (SLO: <20.000ยตs ๐ -35.3%) vs baseline: -8.7%
Memory: โ 32.185MB (SLO: <33.500MB -3.9%) vs baseline: +4.8%
โ b3_single_headers
Time: โ 12.579ยตs (SLO: <20.000ยตs ๐ -37.1%) vs baseline: -5.2%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.8%
โ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match
Time: โ 61.627ยตs (SLO: <80.000ยตs ๐ -23.0%) vs baseline: -3.5%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ datadog_tracecontext_tracestate_propagated_on_trace_id_match
Time: โ 63.332ยตs (SLO: <80.000ยตs ๐ -20.8%) vs baseline: -3.8%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.9%
โ empty_headers
Time: โ 1.291ยตs (SLO: <10.000ยตs ๐ -87.1%) vs baseline: ๐ -19.2%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.9%
โ full_t_id_datadog_headers
Time: โ 21.162ยตs (SLO: <30.000ยตs ๐ -29.5%) vs baseline: -8.2%
Memory: โ 32.126MB (SLO: <33.500MB -4.1%) vs baseline: +4.6%
โ invalid_priority_header
Time: โ 5.921ยตs (SLO: <10.000ยตs ๐ -40.8%) vs baseline: -8.6%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ invalid_span_id_header
Time: โ 5.914ยตs (SLO: <10.000ยตs ๐ -40.9%) vs baseline: -8.8%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +5.0%
โ invalid_tags_header
Time: โ 5.956ยตs (SLO: <10.000ยตs ๐ -40.4%) vs baseline: -8.5%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ invalid_trace_id_header
Time: โ 5.961ยตs (SLO: <10.000ยตs ๐ -40.4%) vs baseline: -8.0%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +5.0%
โ large_header_no_matches
Time: โ 27.452ยตs (SLO: <30.000ยตs -8.5%) vs baseline: -1.8%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ large_valid_headers_all
Time: โ 28.483ยตs (SLO: <40.000ยตs ๐ -28.8%) vs baseline: -2.3%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.8%
โ medium_header_no_matches
Time: โ 9.254ยตs (SLO: <20.000ยตs ๐ -53.7%) vs baseline: -6.0%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.8%
โ medium_valid_headers_all
Time: โ 10.601ยตs (SLO: <20.000ยตs ๐ -47.0%) vs baseline: -5.1%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +5.0%
โ none_propagation_style
Time: โ 1.390ยตs (SLO: <10.000ยตs ๐ -86.1%) vs baseline: ๐ -18.9%
Memory: โ 32.185MB (SLO: <33.500MB -3.9%) vs baseline: +4.9%
โ tracecontext_headers
Time: โ 32.537ยตs (SLO: <40.000ยตs ๐ -18.7%) vs baseline: -5.6%
Memory: โ 32.185MB (SLO: <33.500MB -3.9%) vs baseline: +4.8%
โ valid_headers_all
Time: โ 5.939ยตs (SLO: <10.000ยตs ๐ -40.6%) vs baseline: -9.3%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ valid_headers_basic
Time: โ 5.460ยตs (SLO: <10.000ยตs ๐ -45.4%) vs baseline: -10.0%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +5.0%
โ wsgi_empty_headers
Time: โ 1.299ยตs (SLO: <10.000ยตs ๐ -87.0%) vs baseline: ๐ -18.5%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ wsgi_invalid_priority_header
Time: โ 5.980ยตs (SLO: <10.000ยตs ๐ -40.2%) vs baseline: -9.5%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.7%
โ wsgi_invalid_span_id_header
Time: โ 1.298ยตs (SLO: <10.000ยตs ๐ -87.0%) vs baseline: ๐ -18.3%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.7%
โ wsgi_invalid_tags_header
Time: โ 5.929ยตs (SLO: <10.000ยตs ๐ -40.7%) vs baseline: -9.4%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.8%
โ wsgi_invalid_trace_id_header
Time: โ 5.980ยตs (SLO: <10.000ยตs ๐ -40.2%) vs baseline: -8.5%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.9%
โ wsgi_large_header_no_matches
Time: โ 28.493ยตs (SLO: <40.000ยตs ๐ -28.8%) vs baseline: -2.0%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ wsgi_large_valid_headers_all
Time: โ 29.828ยตs (SLO: <40.000ยตs ๐ -25.4%) vs baseline: -1.2%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ wsgi_medium_header_no_matches
Time: โ 9.511ยตs (SLO: <20.000ยตs ๐ -52.4%) vs baseline: -5.4%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ wsgi_medium_valid_headers_all
Time: โ 10.891ยตs (SLO: <20.000ยตs ๐ -45.5%) vs baseline: -5.4%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ wsgi_valid_headers_all
Time: โ 5.989ยตs (SLO: <10.000ยตs ๐ -40.1%) vs baseline: -7.9%
Memory: โ 32.185MB (SLO: <33.500MB -3.9%) vs baseline: +4.8%
โ wsgi_valid_headers_basic
Time: โ 5.527ยตs (SLO: <10.000ยตs ๐ -44.7%) vs baseline: -9.5%
Memory: โ 32.224MB (SLO: <33.500MB -3.8%) vs baseline: +5.0%
๐ telemetryaddmetric - 30/30
โ 1-count-metric-1-times
Time: โ 2.073ยตs (SLO: <20.000ยตs ๐ -89.6%) vs baseline: ๐ -29.8%
Memory: โ 32.224MB (SLO: <34.000MB -5.2%) vs baseline: +4.8%
โ 1-count-metrics-100-times
Time: โ 150.766ยตs (SLO: <220.000ยตs ๐ -31.5%) vs baseline: ๐ -25.5%
Memory: โ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.7%
โ 1-distribution-metric-1-times
Time: โ 2.404ยตs (SLO: <20.000ยตs ๐ -88.0%) vs baseline: ๐ -27.1%
Memory: โ 32.224MB (SLO: <34.000MB -5.2%) vs baseline: +5.0%
โ 1-distribution-metrics-100-times
Time: โ 165.981ยตs (SLO: <220.000ยตs ๐ -24.6%) vs baseline: ๐ -23.0%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +4.9%
โ 1-gauge-metric-1-times
Time: โ 1.995ยตs (SLO: <20.000ยตs ๐ -90.0%) vs baseline: -8.0%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +4.9%
โ 1-gauge-metrics-100-times
Time: โ 141.129ยตs (SLO: <150.000ยตs -5.9%) vs baseline: +3.6%
Memory: โ 32.244MB (SLO: <34.000MB -5.2%) vs baseline: +5.0%
โ 1-rate-metric-1-times
Time: โ 2.269ยตs (SLO: <20.000ยตs ๐ -88.7%) vs baseline: ๐ -27.1%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +4.9%
โ 1-rate-metrics-100-times
Time: โ 166.475ยตs (SLO: <250.000ยตs ๐ -33.4%) vs baseline: ๐ -22.8%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +4.9%
โ 100-count-metrics-100-times
Time: โ 15.153ms (SLO: <22.000ms ๐ -31.1%) vs baseline: ๐ -24.3%
Memory: โ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.9%
โ 100-distribution-metrics-100-times
Time: โ 1.752ms (SLO: <2.300ms ๐ -23.8%) vs baseline: ๐ -21.7%
Memory: โ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.7%
โ 100-gauge-metrics-100-times
Time: โ 1.440ms (SLO: <1.550ms -7.1%) vs baseline: +3.4%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +4.9%
โ 100-rate-metrics-100-times
Time: โ 1.722ms (SLO: <2.550ms ๐ -32.5%) vs baseline: ๐ -20.4%
Memory: โ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.0%
โ flush-1-metric
Time: โ 3.654ยตs (SLO: <20.000ยตs ๐ -81.7%) vs baseline: ๐ -22.0%
Memory: โ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.8%
โ flush-100-metrics
Time: โ 173.377ยตs (SLO: <250.000ยตs ๐ -30.6%) vs baseline: -1.4%
Memory: โ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.7%
โ flush-1000-metrics
Time: โ 2.115ms (SLO: <2.500ms ๐ -15.4%) vs baseline: ~same
Memory: โ 32.991MB (SLO: <34.500MB -4.4%) vs baseline: +5.0%
โ ๏ธ Unstable Tests (1 suite)
โ ๏ธ coreapiscenario - 10/10 (1 unstable)
โ ๏ธ context_with_data_listeners
Time: โ ๏ธ 13.278ยตs (SLO: <20.000ยตs ๐ -33.6%) vs baseline: ~same
Memory: โ 32.145MB (SLO: <33.500MB -4.0%) vs baseline: +4.5%
โ context_with_data_no_listeners
Time: โ 3.267ยตs (SLO: <10.000ยตs ๐ -67.3%) vs baseline: -0.4%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +5.0%
โ get_item_exists
Time: โ 0.582ยตs (SLO: <10.000ยตs ๐ -94.2%) vs baseline: -0.9%
Memory: โ 32.185MB (SLO: <33.500MB -3.9%) vs baseline: +5.0%
โ get_item_missing
Time: โ 0.634ยตs (SLO: <10.000ยตs ๐ -93.7%) vs baseline: -0.2%
Memory: โ 32.165MB (SLO: <33.500MB -4.0%) vs baseline: +4.7%
โ set_item
Time: โ 23.907ยตs (SLO: <30.000ยตs ๐ -20.3%) vs baseline: ~same
Memory: โ 32.145MB (SLO: <33.500MB -4.0%) vs baseline: +4.6%
โ All Tests Passing (15 suites)
โ httppropagationinject - 16/16
โ ids_only
Time: โ 20.202ยตs (SLO: <30.000ยตs ๐ -32.7%) vs baseline: -6.7%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.7%
โ with_all
Time: โ 27.423ยตs (SLO: <40.000ยตs ๐ -31.4%) vs baseline: -5.0%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +5.0%
โ with_dd_origin
Time: โ 24.109ยตs (SLO: <30.000ยตs ๐ -19.6%) vs baseline: -4.4%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ with_priority_and_origin
Time: โ 23.354ยตs (SLO: <40.000ยตs ๐ -41.6%) vs baseline: -5.7%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ with_sampling_priority
Time: โ 20.508ยตs (SLO: <30.000ยตs ๐ -31.6%) vs baseline: -4.9%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ with_tags
Time: โ 25.611ยตs (SLO: <40.000ยตs ๐ -36.0%) vs baseline: -5.6%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ with_tags_invalid
Time: โ 27.227ยตs (SLO: <40.000ยตs ๐ -31.9%) vs baseline: -4.1%
Memory: โ 32.244MB (SLO: <33.500MB -3.8%) vs baseline: +4.9%
โ with_tags_max_size
Time: โ 26.117ยตs (SLO: <40.000ยตs ๐ -34.7%) vs baseline: -5.1%
Memory: โ 32.204MB (SLO: <33.500MB -3.9%) vs baseline: +4.8%
โ iast_aspects - 40/40
โ re_expand_aspect
Time: โ 33.952ยตs (SLO: <40.000ยตs ๐ -15.1%) vs baseline: +5.9%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ re_expand_noaspect
Time: โ 30.278ยตs (SLO: <40.000ยตs ๐ -24.3%) vs baseline: +6.3%
Memory: โ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.7%
โ re_findall_aspect
Time: โ 2.898ยตs (SLO: <10.000ยตs ๐ -71.0%) vs baseline: ~same
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ re_findall_noaspect
Time: โ 1.420ยตs (SLO: <10.000ยตs ๐ -85.8%) vs baseline: +0.3%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ re_finditer_aspect
Time: โ 4.684ยตs (SLO: <10.000ยตs ๐ -53.2%) vs baseline: +6.0%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ re_finditer_noaspect
Time: โ 1.394ยตs (SLO: <10.000ยตs ๐ -86.1%) vs baseline: -0.8%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +5.0%
โ re_fullmatch_aspect
Time: โ 2.705ยตs (SLO: <10.000ยตs ๐ -73.0%) vs baseline: +1.3%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.1%
โ re_fullmatch_noaspect
Time: โ 1.301ยตs (SLO: <10.000ยตs ๐ -87.0%) vs baseline: -0.8%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ re_group_aspect
Time: โ 2.939ยตs (SLO: <10.000ยตs ๐ -70.6%) vs baseline: +0.8%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ re_group_noaspect
Time: โ 1.628ยตs (SLO: <10.000ยตs ๐ -83.7%) vs baseline: -0.4%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ re_groups_aspect
Time: โ 3.355ยตs (SLO: <10.000ยตs ๐ -66.4%) vs baseline: +9.5%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ re_groups_noaspect
Time: โ 1.697ยตs (SLO: <10.000ยตs ๐ -83.0%) vs baseline: +0.4%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ re_match_aspect
Time: โ 2.953ยตs (SLO: <10.000ยตs ๐ -70.5%) vs baseline: +9.4%
Memory: โ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.7%
โ re_match_noaspect
Time: โ 1.311ยตs (SLO: <10.000ยตs ๐ -86.9%) vs baseline: +0.4%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ re_search_aspect
Time: โ 2.727ยตs (SLO: <10.000ยตs ๐ -72.7%) vs baseline: +8.2%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.0%
โ re_search_noaspect
Time: โ 1.198ยตs (SLO: <10.000ยตs ๐ -88.0%) vs baseline: ~same
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ re_sub_aspect
Time: โ 3.576ยตs (SLO: <10.000ยตs ๐ -64.2%) vs baseline: +6.3%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ re_sub_noaspect
Time: โ 1.560ยตs (SLO: <10.000ยตs ๐ -84.4%) vs baseline: +2.5%
Memory: โ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.7%
โ re_subn_aspect
Time: โ 3.739ยตs (SLO: <10.000ยตs ๐ -62.6%) vs baseline: +1.8%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ re_subn_noaspect
Time: โ 1.623ยตs (SLO: <10.000ยตs ๐ -83.8%) vs baseline: +1.6%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ iastaspectsospath - 24/24
โ ospathbasename_aspect
Time: โ 4.217ยตs (SLO: <10.000ยตs ๐ -57.8%) vs baseline: +0.2%
Memory: โ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.7%
โ ospathbasename_noaspect
Time: โ 1.085ยตs (SLO: <10.000ยตs ๐ -89.1%) vs baseline: +0.6%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ ospathjoin_aspect
Time: โ 6.170ยตs (SLO: <10.000ยตs ๐ -38.3%) vs baseline: +1.0%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ ospathjoin_noaspect
Time: โ 2.297ยตs (SLO: <10.000ยตs ๐ -77.0%) vs baseline: -0.1%
Memory: โ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.6%
โ ospathnormcase_aspect
Time: โ 3.471ยตs (SLO: <10.000ยตs ๐ -65.3%) vs baseline: +0.4%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ ospathnormcase_noaspect
Time: โ 0.569ยตs (SLO: <10.000ยตs ๐ -94.3%) vs baseline: -0.8%
Memory: โ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.7%
โ ospathsplit_aspect
Time: โ 4.799ยตs (SLO: <10.000ยตs ๐ -52.0%) vs baseline: +0.8%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ ospathsplit_noaspect
Time: โ 1.600ยตs (SLO: <10.000ยตs ๐ -84.0%) vs baseline: +0.9%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.1%
โ ospathsplitdrive_aspect
Time: โ 3.698ยตs (SLO: <10.000ยตs ๐ -63.0%) vs baseline: +0.9%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.7%
โ ospathsplitdrive_noaspect
Time: โ 0.699ยตs (SLO: <10.000ยตs ๐ -93.0%) vs baseline: +0.3%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ ospathsplitext_aspect
Time: โ 4.576ยตs (SLO: <10.000ยตs ๐ -54.2%) vs baseline: +0.5%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ ospathsplitext_noaspect
Time: โ 1.391ยตs (SLO: <10.000ยตs ๐ -86.1%) vs baseline: -0.5%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ iastaspectssplit - 12/12
โ rsplit_aspect
Time: โ 1.450ยตs (SLO: <10.000ยตs ๐ -85.5%) vs baseline: -0.6%
Memory: โ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9%
โ rsplit_noaspect
Time: โ 0.581ยตs (SLO: <10.000ยตs ๐ -94.2%) vs baseline: -0.4%
Memory: โ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0%
โ split_aspect
Time: โ 1.416ยตs (SLO: <10.000ยตs ๐ -85.8%) vs baseline: +0.2%
Memory: โ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.0%
โ split_noaspect
Time: โ 0.576ยตs (SLO: <10.000ยตs ๐ -94.2%) vs baseline: +0.5%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9%
โ splitlines_aspect
Time: โ 1.372ยตs (SLO: <10.000ยตs ๐ -86.3%) vs baseline: +0.4%
Memory: โ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7%
โ splitlines_noaspect
Time: โ 0.585ยตs (SLO: <10.000ยตs ๐ -94.2%) vs baseline: +0.5%
Memory: โ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.8%
โ iastpropagation - 2/2
โ no-propagation
Time: โ 48.202ยตs (SLO: <60.000ยตs ๐ -19.7%) vs baseline: -1.4%
Memory: โ 37.749MB (SLO: <39.000MB -3.2%) vs baseline: +4.9%
โ otelsdkspan - 24/24
โ add-event
Time: โ 40.961ms (SLO: <42.000ms -2.5%) vs baseline: +1.3%
Memory: โ 34.957MB (SLO: <39.000MB ๐ -10.4%) vs baseline: +5.0%
โ add-link
Time: โ 36.332ms (SLO: <38.550ms -5.8%) vs baseline: ~same
Memory: โ 34.937MB (SLO: <39.000MB ๐ -10.4%) vs baseline: +5.7%
โ add-metrics
Time: โ 219.766ms (SLO: <232.000ms -5.3%) vs baseline: +0.3%
Memory: โ 34.918MB (SLO: <39.000MB ๐ -10.5%) vs baseline: +6.1%
โ add-tags
Time: โ 212.674ms (SLO: <221.600ms -4.0%) vs baseline: +1.1%
Memory: โ 34.957MB (SLO: <39.000MB ๐ -10.4%) vs baseline: +6.1%
โ get-context
Time: โ 29.508ms (SLO: <31.300ms -5.7%) vs baseline: +1.2%
Memory: โ 34.583MB (SLO: <39.000MB ๐ -11.3%) vs baseline: +5.0%
โ is-recording
Time: โ 29.160ms (SLO: <31.000ms -5.9%) vs baseline: ~same
Memory: โ 34.918MB (SLO: <39.000MB ๐ -10.5%) vs baseline: +6.1%
โ record-exception
Time: โ 64.451ms (SLO: <65.850ms -2.1%) vs baseline: +2.0%
Memory: โ 34.977MB (SLO: <39.000MB ๐ -10.3%) vs baseline: +5.9%
โ set-status
Time: โ 31.922ms (SLO: <34.150ms -6.5%) vs baseline: -0.7%
Memory: โ 34.878MB (SLO: <39.000MB ๐ -10.6%) vs baseline: +6.1%
โ start
Time: โ 28.773ms (SLO: <30.150ms -4.6%) vs baseline: ~same
Memory: โ 34.898MB (SLO: <39.000MB ๐ -10.5%) vs baseline: +5.8%
โ start-finish
Time: โ 33.803ms (SLO: <35.350ms -4.4%) vs baseline: -0.4%
Memory: โ 34.937MB (SLO: <39.000MB ๐ -10.4%) vs baseline: +5.9%
โ start-finish-telemetry
Time: โ 33.807ms (SLO: <35.450ms -4.6%) vs baseline: -0.5%
Memory: โ 34.957MB (SLO: <39.000MB ๐ -10.4%) vs baseline: +5.7%
โ update-name
Time: โ 30.975ms (SLO: <33.400ms -7.3%) vs baseline: -0.2%
Memory: โ 34.839MB (SLO: <39.000MB ๐ -10.7%) vs baseline: +5.8%
โ otelspan - 22/22
โ add-event
Time: โ 39.608ms (SLO: <47.150ms ๐ -16.0%) vs baseline: -1.5%
Memory: โ 43.737MB (SLO: <47.000MB -6.9%) vs baseline: +4.8%
โ add-metrics
Time: โ 316.646ms (SLO: <344.800ms -8.2%) vs baseline: -0.8%
Memory: โ 652.210MB (SLO: <675.000MB -3.4%) vs baseline: +4.9%
โ add-tags
Time: โ 286.040ms (SLO: <314.000ms -8.9%) vs baseline: -0.2%
Memory: โ 652.591MB (SLO: <675.000MB -3.3%) vs baseline: +4.9%
โ get-context
Time: โ 81.792ms (SLO: <92.350ms ๐ -11.4%) vs baseline: +2.0%
Memory: โ 39.685MB (SLO: <46.500MB ๐ -14.7%) vs baseline: +5.0%
โ is-recording
Time: โ 37.976ms (SLO: <44.500ms ๐ -14.7%) vs baseline: ~same
Memory: โ 43.210MB (SLO: <47.500MB -9.0%) vs baseline: +5.0%
โ record-exception
Time: โ 57.650ms (SLO: <67.650ms ๐ -14.8%) vs baseline: -0.9%
Memory: โ 39.939MB (SLO: <47.000MB ๐ -15.0%) vs baseline: +5.0%
โ set-status
Time: โ 43.301ms (SLO: <50.400ms ๐ -14.1%) vs baseline: -1.2%
Memory: โ 43.173MB (SLO: <47.000MB -8.1%) vs baseline: +4.8%
โ start
Time: โ 36.783ms (SLO: <43.450ms ๐ -15.3%) vs baseline: -1.3%
Memory: โ 43.201MB (SLO: <47.000MB -8.1%) vs baseline: +5.2%
โ start-finish
Time: โ 81.163ms (SLO: <88.000ms -7.8%) vs baseline: -0.5%
Memory: โ 34.544MB (SLO: <46.500MB ๐ -25.7%) vs baseline: +4.7%
โ start-finish-telemetry
Time: โ 82.667ms (SLO: <89.000ms -7.1%) vs baseline: -0.6%
Memory: โ 34.583MB (SLO: <46.500MB ๐ -25.6%) vs baseline: +5.0%
โ update-name
Time: โ 38.339ms (SLO: <45.150ms ๐ -15.1%) vs baseline: -1.0%
Memory: โ 43.522MB (SLO: <47.000MB -7.4%) vs baseline: +5.0%
โ packagespackageforrootmodulemapping - 4/4
โ cache_off
Time: โ 338.061ms (SLO: <354.300ms -4.6%) vs baseline: -0.6%
Memory: โ 38.245MB (SLO: <40.000MB -4.4%) vs baseline: +6.1%
โ cache_on
Time: โ 0.387ยตs (SLO: <10.000ยตs ๐ -96.1%) vs baseline: +1.6%
Memory: โ 36.982MB (SLO: <39.000MB -5.2%) vs baseline: +6.2%
โ packagesupdateimporteddependencies - 24/24
โ import_many
Time: โ 154.522ยตs (SLO: <170.000ยตs -9.1%) vs baseline: -0.5%
Memory: โ 37.181MB (SLO: <38.500MB -3.4%) vs baseline: +5.0%
โ import_many_cached
Time: โ 121.670ยตs (SLO: <130.000ยตs -6.4%) vs baseline: +0.4%
Memory: โ 37.080MB (SLO: <38.500MB -3.7%) vs baseline: +4.6%
โ import_many_stdlib
Time: โ 1.620ms (SLO: <1.750ms -7.4%) vs baseline: -1.1%
Memory: โ 37.294MB (SLO: <38.500MB -3.1%) vs baseline: +5.1%
โ import_many_stdlib_cached
Time: โ 0.981ms (SLO: <1.100ms ๐ -10.8%) vs baseline: +0.6%
Memory: โ 37.243MB (SLO: <38.500MB -3.3%) vs baseline: +4.6%
โ import_many_unknown
Time: โ 829.872ยตs (SLO: <890.000ยตs -6.8%) vs baseline: -1.0%
Memory: โ 37.423MB (SLO: <38.500MB -2.8%) vs baseline: +5.0%
โ import_many_unknown_cached
Time: โ 788.292ยตs (SLO: <870.000ยตs -9.4%) vs baseline: ~same
Memory: โ 37.297MB (SLO: <38.500MB -3.1%) vs baseline: +5.0%
โ import_one
Time: โ 19.790ยตs (SLO: <30.000ยตs ๐ -34.0%) vs baseline: ~same
Memory: โ 37.177MB (SLO: <39.000MB -4.7%) vs baseline: +5.3%
โ import_one_cache
Time: โ 6.281ยตs (SLO: <10.000ยตs ๐ -37.2%) vs baseline: -0.7%
Memory: โ 37.164MB (SLO: <38.500MB -3.5%) vs baseline: +4.9%
โ import_one_stdlib
Time: โ 18.892ยตs (SLO: <20.000ยตs -5.5%) vs baseline: +0.3%
Memory: โ 37.143MB (SLO: <38.500MB -3.5%) vs baseline: +5.1%
โ import_one_stdlib_cache
Time: โ 6.295ยตs (SLO: <10.000ยตs ๐ -37.1%) vs baseline: +0.6%
Memory: โ 37.075MB (SLO: <38.500MB -3.7%) vs baseline: +4.7%
โ import_one_unknown
Time: โ 45.328ยตs (SLO: <50.000ยตs -9.3%) vs baseline: +0.3%
Memory: โ 37.166MB (SLO: <38.500MB -3.5%) vs baseline: +5.0%
โ import_one_unknown_cache
Time: โ 6.265ยตs (SLO: <10.000ยตs ๐ -37.3%) vs baseline: -0.5%
Memory: โ 37.071MB (SLO: <38.500MB -3.7%) vs baseline: +4.6%
โ ratelimiter - 12/12
โ defaults
Time: โ 2.343ยตs (SLO: <10.000ยตs ๐ -76.6%) vs baseline: -0.2%
Memory: โ 31.811MB (SLO: <34.000MB -6.4%) vs baseline: +5.2%
โ high_rate_limit
Time: โ 2.386ยตs (SLO: <10.000ยตs ๐ -76.1%) vs baseline: -1.3%
Memory: โ 31.772MB (SLO: <34.000MB -6.6%) vs baseline: +4.7%
โ long_window
Time: โ 2.330ยตs (SLO: <10.000ยตs ๐ -76.7%) vs baseline: -1.3%
Memory: โ 31.792MB (SLO: <34.000MB -6.5%) vs baseline: +5.0%
โ low_rate_limit
Time: โ 2.354ยตs (SLO: <10.000ยตs ๐ -76.5%) vs baseline: -0.6%
Memory: โ 31.792MB (SLO: <34.000MB -6.5%) vs baseline: +4.9%
โ no_rate_limit
Time: โ 0.826ยตs (SLO: <10.000ยตs ๐ -91.7%) vs baseline: -0.2%
Memory: โ 31.733MB (SLO: <34.000MB -6.7%) vs baseline: +4.5%
โ short_window
Time: โ 2.482ยตs (SLO: <10.000ยตs ๐ -75.2%) vs baseline: -0.4%
Memory: โ 31.752MB (SLO: <34.000MB -6.6%) vs baseline: +4.7%
โ recursivecomputation - 8/8
โ deep
Time: โ 308.650ms (SLO: <320.950ms -3.8%) vs baseline: ~same
Memory: โ 32.912MB (SLO: <34.500MB -4.6%) vs baseline: +4.7%
โ deep-profiled
Time: โ 327.543ms (SLO: <359.150ms -8.8%) vs baseline: -0.1%
Memory: โ 37.556MB (SLO: <39.000MB -3.7%) vs baseline: +5.7%
โ medium
Time: โ 7.038ms (SLO: <7.400ms -4.9%) vs baseline: ~same
Memory: โ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.8%
โ shallow
Time: โ 0.947ms (SLO: <1.050ms -9.8%) vs baseline: -0.2%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0%
โ samplingrules - 8/8
โ average_match
Time: โ 136.580ยตs (SLO: <290.000ยตs ๐ -52.9%) vs baseline: -1.1%
Memory: โ 32.224MB (SLO: <34.000MB -5.2%) vs baseline: +5.2%
โ high_match
Time: โ 172.742ยตs (SLO: <480.000ยตs ๐ -64.0%) vs baseline: -1.0%
Memory: โ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.8%
โ low_match
Time: โ 98.620ยตs (SLO: <120.000ยตs ๐ -17.8%) vs baseline: -0.9%
Memory: โ 600.918MB (SLO: <700.000MB ๐ -14.2%) vs baseline: +4.9%
โ very_low_match
Time: โ 2.654ms (SLO: <8.500ms ๐ -68.8%) vs baseline: -0.9%
Memory: โ 68.354MB (SLO: <75.000MB -8.9%) vs baseline: +4.9%
โ sethttpmeta - 32/32
โ all-disabled
Time: โ 10.520ยตs (SLO: <20.000ยตs ๐ -47.4%) vs baseline: +0.4%
Memory: โ 32.578MB (SLO: <34.000MB -4.2%) vs baseline: +4.9%
โ all-enabled
Time: โ 40.136ยตs (SLO: <50.000ยตs ๐ -19.7%) vs baseline: +0.2%
Memory: โ 32.558MB (SLO: <34.000MB -4.2%) vs baseline: +4.9%
โ collectipvariant_exists
Time: โ 41.605ยตs (SLO: <50.000ยตs ๐ -16.8%) vs baseline: +1.9%
Memory: โ 32.539MB (SLO: <34.000MB -4.3%) vs baseline: +4.7%
โ no-collectipvariant
Time: โ 40.232ยตs (SLO: <50.000ยตs ๐ -19.5%) vs baseline: +0.5%
Memory: โ 32.578MB (SLO: <34.000MB -4.2%) vs baseline: +4.7%
โ no-useragentvariant
Time: โ 38.900ยตs (SLO: <50.000ยตs ๐ -22.2%) vs baseline: +0.4%
Memory: โ 32.578MB (SLO: <34.000MB -4.2%) vs baseline: +4.8%
โ obfuscation-no-query
Time: โ 40.490ยตs (SLO: <50.000ยตs ๐ -19.0%) vs baseline: ~same
Memory: โ 32.558MB (SLO: <34.000MB -4.2%) vs baseline: +4.9%
โ obfuscation-regular-case-explicit-query
Time: โ 76.077ยตs (SLO: <90.000ยตs ๐ -15.5%) vs baseline: +0.7%
Memory: โ 32.873MB (SLO: <34.000MB -3.3%) vs baseline: +4.4%
โ obfuscation-regular-case-implicit-query
Time: โ 76.300ยตs (SLO: <90.000ยตs ๐ -15.2%) vs baseline: -0.3%
Memory: โ 32.991MB (SLO: <34.000MB -3.0%) vs baseline: +4.9%
โ obfuscation-send-querystring-disabled
Time: โ 154.524ยตs (SLO: <170.000ยตs -9.1%) vs baseline: ~same
Memory: โ 32.971MB (SLO: <34.500MB -4.4%) vs baseline: +4.7%
โ obfuscation-worst-case-explicit-query
Time: โ 147.248ยตs (SLO: <160.000ยตs -8.0%) vs baseline: -0.3%
Memory: โ 32.912MB (SLO: <34.500MB -4.6%) vs baseline: +4.9%
โ obfuscation-worst-case-implicit-query
Time: โ 154.675ยตs (SLO: <170.000ยตs -9.0%) vs baseline: ~same
Memory: โ 33.010MB (SLO: <34.500MB -4.3%) vs baseline: +5.0%
โ useragentvariant_exists_1
Time: โ 39.498ยตs (SLO: <50.000ยตs ๐ -21.0%) vs baseline: +0.3%
Memory: โ 32.637MB (SLO: <34.000MB -4.0%) vs baseline: +5.2%
โ useragentvariant_exists_2
Time: โ 41.330ยตs (SLO: <50.000ยตs ๐ -17.3%) vs baseline: +1.7%
Memory: โ 32.499MB (SLO: <34.000MB -4.4%) vs baseline: +4.5%
โ useragentvariant_exists_3
Time: โ 40.031ยตs (SLO: <50.000ยตs ๐ -19.9%) vs baseline: -0.2%
Memory: โ 32.558MB (SLO: <34.000MB -4.2%) vs baseline: +4.9%
โ useragentvariant_not_exists_1
Time: โ 39.643ยตs (SLO: <50.000ยตs ๐ -20.7%) vs baseline: +0.5%
Memory: โ 32.539MB (SLO: <34.000MB -4.3%) vs baseline: +4.7%
โ useragentvariant_not_exists_2
Time: โ 39.648ยตs (SLO: <50.000ยตs ๐ -20.7%) vs baseline: +0.6%
Memory: โ 32.578MB (SLO: <34.000MB -4.2%) vs baseline: +4.9%
โ span - 26/26
โ add-event
Time: โ 19.623ms (SLO: <22.500ms ๐ -12.8%) vs baseline: -2.6%
Memory: โ 48.837MB (SLO: <53.000MB -7.9%) vs baseline: +4.8%
โ add-metrics
Time: โ 89.371ms (SLO: <93.500ms -4.4%) vs baseline: -0.9%
Memory: โ 735.531MB (SLO: <961.000MB ๐ -23.5%) vs baseline: +4.8%
โ add-tags
Time: โ 146.894ms (SLO: <155.000ms -5.2%) vs baseline: +0.2%
Memory: โ 735.223MB (SLO: <962.500MB ๐ -23.6%) vs baseline: +4.7%
โ get-context
Time: โ 17.772ms (SLO: <20.500ms ๐ -13.3%) vs baseline: -1.9%
Memory: โ 47.533MB (SLO: <53.000MB ๐ -10.3%) vs baseline: +4.8%
โ is-recording
Time: โ 18.550ms (SLO: <20.500ms -9.5%) vs baseline: +0.8%
Memory: โ 47.448MB (SLO: <53.000MB ๐ -10.5%) vs baseline: +4.4%
โ record-exception
Time: โ 36.858ms (SLO: <40.000ms -7.9%) vs baseline: -1.7%
Memory: โ 42.094MB (SLO: <53.000MB ๐ -20.6%) vs baseline: +4.8%
โ set-status
Time: โ 20.090ms (SLO: <22.000ms -8.7%) vs baseline: -0.3%
Memory: โ 47.545MB (SLO: <53.000MB ๐ -10.3%) vs baseline: +4.9%
โ start
Time: โ 18.209ms (SLO: <20.500ms ๐ -11.2%) vs baseline: -0.4%
Memory: โ 47.575MB (SLO: <53.000MB ๐ -10.2%) vs baseline: +5.0%
โ start-finish
Time: โ 50.100ms (SLO: <52.500ms -4.6%) vs baseline: -0.9%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0%
โ start-finish-telemetry
Time: โ 52.111ms (SLO: <54.500ms -4.4%) vs baseline: +0.7%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.1%
โ start-finish-traceid128
Time: โ 54.533ms (SLO: <57.000ms -4.3%) vs baseline: +1.6%
Memory: โ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0%
โ start-traceid128
Time: โ 18.137ms (SLO: <22.500ms ๐ -19.4%) vs baseline: -2.7%
Memory: โ 47.627MB (SLO: <53.000MB ๐ -10.1%) vs baseline: +4.9%
โ update-name
Time: โ 18.569ms (SLO: <22.000ms ๐ -15.6%) vs baseline: -0.8%
Memory: โ 48.283MB (SLO: <53.000MB -8.9%) vs baseline: +4.9%
โ tracer - 6/6
โ large
Time: โ 28.404ms (SLO: <32.950ms ๐ -13.8%) vs baseline: ~same
Memory: โ 33.148MB (SLO: <34.500MB -3.9%) vs baseline: +4.4%
โ medium
Time: โ 2.793ms (SLO: <3.200ms ๐ -12.7%) vs baseline: -0.3%
Memory: โ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.7%
โ small
Time: โ 315.015ยตs (SLO: <370.000ยตs ๐ -14.9%) vs baseline: -1.6%
Memory: โ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.9%
โน๏ธ Scenarios Missing SLO Configuration (9 scenarios)
The following scenarios exist in candidate data but have no SLO thresholds configured:
-
coreapiscenario-core_dispatch_listeners -
coreapiscenario-core_dispatch_no_listeners -
coreapiscenario-core_dispatch_with_results_listeners -
coreapiscenario-core_dispatch_with_results_no_listeners -
djangosimple-baseline -
errortrackingdjangosimple-baseline -
errortrackingflasksqli-baseline -
flasksimple-baseline -
flasksqli-baseline
One thing that came up in our recent discussion I want to re-state here: I think we need to make sure that starting and stopping the periodic threads doesn't indefinitely delay the periodic callbacks. Specifically, thinking of something like profiling, where we upload data every 60 seconds. If we exit the thread, then the 60 second timer is restarted when the thread is restarted. And so if a program forks more than once every 60 seconds we will never actually upload a profile from the parent process. I think if we stick to this approach, we probably want a deadline for the periodic thread. And the time the thread sleeps is relative to the time left until the deadline. The deadline wouldn't reset by default when stopping/restarting the thread, only when the callback is called. LMK if that makes sense, I'm happy to sketch it out more.
we need to make sure that starting and stopping the periodic threads doesn't indefinitely delay the periodic callbacks.
does 817730d8796cf406651590daf9a2ffd94050bbf9 work?
This is currently blocked by the profiler not adopting the new fork-safe periodic thread to manage the stack v2 sampling.
@taegyunkim do we have an issue tracking the blocker?