Skip to content

Conversation

brettlangdon
Copy link
Member

@brettlangdon brettlangdon commented Aug 20, 2025

This change refactors the cache instrumentation layer for Django to migrate to it's own module and uses the bytecode wrappers instead.

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

brettlangdon and others added 12 commits August 19, 2025 09:13
## Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
This PR removes the internal Span._context property and ensures that
Span.context is never None.

The current memory utilization benchmarks are too simplistic and don't
account for scenarios where a Span is initialized with a Context. Since
it's not possible to generate a Span without a context using the public
ddtrace APIs, the benchmarks need to be updated to reflect real world
memory overhead.

## 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
Small performance wins by:

1) avoiding using `set_tag` or `set_tags`; use `set_tag_str` instead
2) avoiding using `set_metric` and set value directly on `_metrics` when
possible


## Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
### Description

This PR aims to validate that the `{% trans %}` template tag works
correctly when using **Jinja2 + Babel**, particularly in the context of
**IAST** (Interactive Application Security Testing).

We’ve added a test case to confirm that templates using the `{% trans
href=url_for('...') %}` pattern are rendered properly with Flask +
Jinja2 + Babel. This ensures that the IAST instrumentation handles this
scenario as expected.

### Context

In other frameworks like Pyramid, we’ve observed the use of similar
syntax:

```jinja2
{% trans href=request.route_path('search') %}
```

However, **IAST currently does not support Pyramid**, so we’re unable to
validate that use case. If you're using frameworks like `warehouse`
(built on Pyramid), we **recommend not enabling IAST**, as it won’t be
able to detect vulnerabilities reliably in that context.

For a full list of supported frameworks, refer to the [[official
documentation](https://docs.datadoghq.com/security/code_security/iast/setup/compatibility/python/#supported-frameworks)](https://docs.datadoghq.com/security/code_security/iast/setup/compatibility/python/#supported-frameworks).

Issue related:
#14217

---

Let me know if you want to tailor it more to a specific audience (e.g.
internal devs, open-source community, etc.).
## Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
…ch test (#14344)

The solution in PR #14328 was incomplete. This PR ensures all exceptions
are cleared up at the end of each test.

I'm not adding a release note because this is a continuation of #14328,
which already has a release note.

## Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
## Checklist
- [X] 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Signed-off-by: Juanjo Alvarez <[email protected]>
This PR adds improved tracking of tool results and definitions to the
LLMObs VertexAI integration

note: also includes some better test coverage for google genai
note: although not adding support to generativeai since its deprecated,
had to tweak tests to pass since vertex and gemini share the way they
handle parts.

## Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
…ising error (#14319)

given a snippet like this
```
def divide(n1, n2):
    return n1/n2

def print_divide(n1, n2):
    print(divide(n1, n2))

def generate_capital_name_one_word(input_data: Dict[str, Any], config: Dict[str, Any]) -> str:
    print_divide(1, 0)
    output = oai_client.chat.completions.create(
        model=config["model"],
        messages=[
            {"role": "system", "content": "You will respond only with the name of the capital of the country, nothing else."},
            {"role": "user", "content": "What is the capital of France?"},
            {"role": "assistant", "content": "Paris"},
            {"role": "user", "content": input_data["question"]}],
        temperature=config["temperature"]
    )

    return output.choices[0].message.content

def exact_match(input_data, output_data, expected_output):
    raise ValueError("BBB")
    return expected_output == output_data

def contains_answer(input_data, output_data, expected_output):
    return expected_output in output_data

experiment = LLMObs.experiment(
    name="generate-one-word-capital-with-config",
    dataset=dataset,
    task=generate_capital_name_one_word,
    evaluators=[exact_match, contains_answer],
    config={"model": "gpt-4.1-nano", "temperature": 0},
    description="a cool basic experiment with config",
)
```

we get an error message like so:
```
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[8], line 1
----> 1 experiment.run(jobs=1,raise_errors=True)
      3 experiment.url

File ~/go/src/github.com/DataDog/llm-observability/preview/experiments/notebooks/.venv/lib/python3.12/site-packages/ddtrace/llmobs/_experiment.py:330, in Experiment.run(self, jobs, raise_errors, sample_size)
    328 self._tags["experiment_id"] = str(experiment_id)
    329 self._run_name = experiment_run_name
--> 330 task_results = self._run_task(jobs, raise_errors, sample_size)
    331 evaluations = self._run_evaluators(task_results, raise_errors=raise_errors)
    332 experiment_results = self._merge_results(task_results, evaluations)

File ~/go/src/github.com/DataDog/llm-observability/preview/experiments/notebooks/.venv/lib/python3.12/site-packages/ddtrace/llmobs/_experiment.py:413, in Experiment._run_task(self, jobs, raise_errors, sample_size)
    411         err_msg = err_dict.get("message") if isinstance(err_dict, dict) else None
    412         if raise_errors and err_msg:
--> 413             raise RuntimeError("Error on record {}: {}".format(result["idx"], err_msg))
    414 self._llmobs_instance.flush()  # Ensure spans get submitted in serverless environments
    415 return task_results

RuntimeError: Error on record 0: division by zero
```

after this change the error will look more verbose with the stack trace
on the original error
```
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[12], line 1
----> 1 experiment.run(jobs=1,raise_errors=True)
      3 experiment.url

File ~/go/src/github.com/DataDog/dd-trace-py/ddtrace/llmobs/_experiment.py:330, in Experiment.run(self, jobs, raise_errors, sample_size)
    328 self._tags["experiment_id"] = str(experiment_id)
    329 self._run_name = experiment_run_name
--> 330 task_results = self._run_task(jobs, raise_errors, sample_size)
    331 evaluations = self._run_evaluators(task_results, raise_errors=raise_errors)
    332 experiment_results = self._merge_results(task_results, evaluations)

File ~/go/src/github.com/DataDog/dd-trace-py/ddtrace/llmobs/_experiment.py:415, in Experiment._run_task(self, jobs, raise_errors, sample_size)
    413         err_type = err_dict.get("type") if isinstance(err_dict, dict) else None
    414         if raise_errors and err_msg:
--> 415             raise RuntimeError(
    416                 "Error on record {}: {}\n{}\n{}".format(result["idx"], err_msg, err_type, err_stack)
    417             )
    418 self._llmobs_instance.flush()  # Ensure spans get submitted in serverless environments
    419 return task_results

RuntimeError: Error on record 0: division by zero
builtins.ZeroDivisionError
Traceback (most recent call last):
  File "/Users/gary.huang/go/src/github.com/DataDog/dd-trace-py/ddtrace/llmobs/_experiment.py", line 365, in _process_record
    output_data = self._task(input_data, self._config)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/folders/lv/k26fs55j1dl8p2jq5n8jwdnc0000gq/T/ipykernel_77428/3580111335.py", line 8, in generate_capital_name_one_word
    print_divide(1, 0)
  File "/var/folders/lv/k26fs55j1dl8p2jq5n8jwdnc0000gq/T/ipykernel_77428/3580111335.py", line 5, in print_divide
    print(divide(n1, n2))
          ^^^^^^^^^^^^^^
  File "/var/folders/lv/k26fs55j1dl8p2jq5n8jwdnc0000gq/T/ipykernel_77428/3580111335.py", line 2, in divide
    return n1/n2
           ~~^~~
ZeroDivisionError: division by zero
```

## Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] 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](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
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](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
@brettlangdon brettlangdon added the changelog/no-changelog A changelog entry is not required for this PR. label Aug 20, 2025
@brettlangdon brettlangdon requested review from a team as code owners August 20, 2025 15:50
@brettlangdon
Copy link
Member Author

I made an attempt to also remove the double wrapping like #14312 but Django cache backends don't have a shared base property for accessing the underlying client, so would require a bunch of custom logic per-backend. So while we could do that for the built-in backends for redis and memcached, any third party backends we likely won't support and you'd end up with double wrapping.... so I want to think about it further before trying to implement that.

Copy link
Contributor

github-actions bot commented Aug 20, 2025

CODEOWNERS have been resolved as:

ddtrace/contrib/internal/django/cache.py                                @DataDog/apm-core-python @DataDog/apm-idm-python
benchmarks/django_simple/scenario.py                                    @DataDog/apm-core-python
ddtrace/_trace/trace_handlers.py                                        @DataDog/apm-sdk-api-python @DataDog/apm-core-python @DataDog/apm-idm-python
ddtrace/contrib/internal/django/patch.py                                @DataDog/apm-core-python @DataDog/apm-idm-python
ddtrace/contrib/internal/django/utils.py                                @DataDog/apm-core-python @DataDog/apm-idm-python
tests/contrib/django/conftest.py                                        @DataDog/apm-core-python @DataDog/apm-idm-python

Copy link
Contributor

github-actions bot commented Aug 20, 2025

Bootstrap import analysis

Comparison of import times between this PR and base.

Summary

The average import time from this PR is: 273 ± 5 ms.

The average import time from base is: 282 ± 4 ms.

The import time difference between this PR and base is: -9.6 ± 0.2 ms.

Import time breakdown

The following import paths have shrunk:

ddtrace.auto 5.275 ms (1.94%)
ddtrace.bootstrap.sitecustomize 2.793 ms (1.03%)
ddtrace.bootstrap.preload 2.709 ms (0.99%)
ddtrace.internal.remoteconfig.client 0.819 ms (0.30%)
ddtrace.internal.products 0.256 ms (0.09%)
importlib.metadata 0.256 ms (0.09%)
csv 0.205 ms (0.08%)
_csv 0.030 ms (0.01%)
multiprocessing 0.195 ms (0.07%)
multiprocessing.context 0.195 ms (0.07%)
multiprocessing.process 0.195 ms (0.07%)
ddtrace.settings.profiling 0.147 ms (0.05%)
ddtrace.vendor.psutil 0.053 ms (0.02%)
ddtrace.internal.datadog.profiling.ddup 0.044 ms (0.02%)
ddtrace.internal.datadog.profiling.ddup._ddup 0.044 ms (0.02%)
ddtrace.internal.symbol_db.remoteconfig 0.097 ms (0.04%)
ddtrace.internal.symbol_db.symbols 0.097 ms (0.04%)
ddtrace.internal.remoteconfig.worker 0.031 ms (0.01%)
ddtrace.internal.runtime.runtime_metrics 0.027 ms (0.01%)
ddtrace._trace.trace_handlers 0.084 ms (0.03%)
ddtrace._trace._inferred_proxy 0.084 ms (0.03%)
ddtrace.propagation.http 0.084 ms (0.03%)
ddtrace 2.482 ms (0.91%)
ddtrace._logger 1.072 ms (0.39%)
ddtrace.internal.telemetry 1.072 ms (0.39%)
ddtrace.internal.telemetry.writer 0.510 ms (0.19%)
http.client 0.287 ms (0.11%)
email.parser 0.131 ms (0.05%)
email.feedparser 0.131 ms (0.05%)
email._policybase 0.131 ms (0.05%)
email.header 0.131 ms (0.05%)
email.charset 0.131 ms (0.05%)
email.encoders 0.131 ms (0.05%)
quopri 0.131 ms (0.05%)
ssl 0.115 ms (0.04%)
ddtrace.internal.telemetry.data 0.069 ms (0.03%)
ddtrace.internal.packages 0.039 ms (0.01%)
_sysconfigdata__linux_x86_64-linux-gnu 0.039 ms (0.01%)
sysconfig 0.030 ms (0.01%)
ddtrace.internal.utils.http 0.068 ms (0.02%)
ddtrace.internal.telemetry.metrics_namespaces 0.038 ms (0.01%)
ddtrace.settings._agent 0.289 ms (0.11%)
socket 0.129 ms (0.05%)
_socket 0.048 ms (0.02%)
ddtrace.settings._core 0.100 ms (0.04%)
ddtrace.internal.native 0.050 ms (0.02%)
ddtrace.internal.native._native 0.050 ms (0.02%)
envier 0.050 ms (0.02%)
envier.env 0.050 ms (0.02%)
ddtrace.settings 0.060 ms (0.02%)
ddtrace.vendor.debtcollector 0.060 ms (0.02%)
ddtrace.vendor 0.060 ms (0.02%)
ddtrace.internal.module 0.060 ms (0.02%)
ddtrace.internal.wrapping.context 0.027 ms (0.01%)
ddtrace.internal.wrapping 0.027 ms (0.01%)
bytecode 0.027 ms (0.01%)
bytecode.cfg 0.027 ms (0.01%)
bytecode.concrete 0.027 ms (0.01%)
struct 0.027 ms (0.01%)
_struct 0.027 ms (0.01%)
ddtrace.internal.utils.formats 0.141 ms (0.05%)
ddtrace.internal.compat 0.141 ms (0.05%)
pathlib 0.141 ms (0.05%)
ddtrace.internal.logger 0.098 ms (0.04%)
dataclasses 0.059 ms (0.02%)
inspect 0.059 ms (0.02%)
ddtrace.settings._config 0.290 ms (0.11%)
ddtrace.internal.gitmetadata 0.202 ms (0.07%)
ddtrace.ext.ci 0.202 ms (0.07%)
ddtrace.ext.git 0.202 ms (0.07%)
shutil 0.202 ms (0.07%)
ddtrace.trace 0.209 ms (0.08%)
ddtrace._trace.filters 0.137 ms (0.05%)
ddtrace._trace.processor 0.137 ms (0.05%)
ddtrace.internal.writer 0.071 ms (0.03%)
ddtrace.internal.writer.writer 0.071 ms (0.03%)
ddtrace.internal.dogstatsd 0.071 ms (0.03%)
ddtrace.vendor.dogstatsd 0.071 ms (0.03%)
ddtrace.vendor.dogstatsd.base 0.071 ms (0.03%)
ddtrace.vendor.dogstatsd.container 0.022 ms (0.01%)
ddtrace._trace.sampler 0.067 ms (0.02%)
ddtrace._trace.span 0.067 ms (0.02%)
ddtrace._trace._span_pointer 0.067 ms (0.02%)
hashlib 0.067 ms (0.02%)
_hashlib 0.067 ms (0.02%)
ddtrace.internal._unpatched 0.209 ms (0.08%)
subprocess 0.139 ms (0.05%)
contextlib 0.139 ms (0.05%)
json 0.070 ms (0.03%)
json.decoder 0.070 ms (0.03%)
re 0.070 ms (0.03%)
enum 0.070 ms (0.03%)
types 0.033 ms (0.01%)
ddtrace._monkey 0.040 ms (0.01%)
ddtrace.appsec._listeners 0.040 ms (0.01%)
ddtrace.internal.core 0.040 ms (0.01%)
ddtrace.internal.core.event_hub 0.040 ms (0.01%)

@brettlangdon brettlangdon force-pushed the LANGPLAT-642/django.cache.double.wrapped branch from 6a312a5 to 93c38b0 Compare August 20, 2025 18:23
@pr-commenter
Copy link

pr-commenter bot commented Aug 20, 2025

Performance SLOs

Candidate: LANGPLAT-642/django.cache.double.wrapped (93c38b0)

🔵 No Baseline Data (24 suites)
🔵 coreapiscenario - 12/12 (2 unstable)

🔵 No baseline data available for this suite

⚠️ context_with_data_listeners

Time: ⚠️ 13.860µs (SLO: <20.000µs 📉 -30.7%)

Memory: ✅ 31.320MB (SLO: <33.500MB -6.5%)


✅ context_with_data_no_listeners

Time: ✅ 3.799µs (SLO: <10.000µs 📉 -62.0%)

Memory: ✅ 31.241MB (SLO: <33.500MB -6.7%)


⚠️ context_with_data_only_all_listeners

Time: ⚠️ 13.871µs (SLO: <20.000µs 📉 -30.6%)

Memory: ✅ 31.280MB (SLO: <33.500MB -6.6%)


✅ get_item_exists

Time: ✅ 0.636µs (SLO: <10.000µs 📉 -93.6%)

Memory: ✅ 31.280MB (SLO: <33.500MB -6.6%)


✅ get_item_missing

Time: ✅ 0.693µs (SLO: <10.000µs 📉 -93.1%)

Memory: ✅ 31.300MB (SLO: <33.500MB -6.6%)


✅ set_item

Time: ✅ 24.738µs (SLO: <30.000µs 📉 -17.5%)

Memory: ✅ 31.300MB (SLO: <33.500MB -6.6%)


🔵 djangosimple - 24/24

🔵 No baseline data available for this suite

✅ appsec

Time: ✅ 20.768ms (SLO: <22.300ms -6.9%)

Memory: ✅ 64.212MB (SLO: <66.000MB -2.7%)


✅ exception-replay-enabled

Time: ✅ 1.383ms (SLO: <1.450ms -4.6%)

Memory: ✅ 63.052MB (SLO: <66.000MB -4.5%)


✅ iast

Time: ✅ 20.857ms (SLO: <22.250ms -6.3%)

Memory: ✅ 64.251MB (SLO: <66.000MB -2.6%)


✅ profiler

Time: ✅ 15.228ms (SLO: <16.550ms -8.0%)

Memory: ✅ 52.791MB (SLO: <53.500MB 🟡 -1.3%)


✅ span-code-origin

Time: ✅ 26.456ms (SLO: <28.200ms -6.2%)

Memory: ✅ 66.317MB (SLO: <68.500MB -3.2%)


✅ tracer

Time: ✅ 20.817ms (SLO: <21.750ms -4.3%)

Memory: ✅ 64.114MB (SLO: <66.000MB -2.9%)


✅ tracer-and-profiler

Time: ✅ 22.393ms (SLO: <23.500ms -4.7%)

Memory: ✅ 65.293MB (SLO: <67.000MB -2.5%)


✅ tracer-dont-create-db-spans

Time: ✅ 19.567ms (SLO: <21.500ms -9.0%)

Memory: ✅ 63.996MB (SLO: <66.000MB -3.0%)


✅ tracer-no-caches

Time: ✅ 18.616ms (SLO: <19.650ms -5.3%)

Memory: ✅ 63.878MB (SLO: <66.000MB -3.2%)


✅ tracer-no-databases

Time: ✅ 19.079ms (SLO: <20.100ms -5.1%)

Memory: ✅ 63.799MB (SLO: <66.000MB -3.3%)


✅ tracer-no-middleware

Time: ✅ 20.431ms (SLO: <21.500ms -5.0%)

Memory: ✅ 63.937MB (SLO: <66.000MB -3.1%)


✅ tracer-no-templates

Time: ✅ 20.573ms (SLO: <22.000ms -6.5%)

Memory: ✅ 63.878MB (SLO: <66.000MB -3.2%)


🔵 errortrackingdjangosimple - 6/6

🔵 No baseline data available for this suite

✅ errortracking-enabled-all

Time: ✅ 18.161ms (SLO: <19.850ms -8.5%)

Memory: ✅ 63.919MB (SLO: <65.500MB -2.4%)


✅ errortracking-enabled-user

Time: ✅ 18.180ms (SLO: <19.400ms -6.3%)

Memory: ✅ 63.855MB (SLO: <65.500MB -2.5%)


✅ tracer-enabled

Time: ✅ 18.170ms (SLO: <19.450ms -6.6%)

Memory: ✅ 63.857MB (SLO: <65.500MB -2.5%)


🔵 errortrackingflasksqli - 6/6

🔵 No baseline data available for this suite

✅ errortracking-enabled-all

Time: ✅ 2.119ms (SLO: <2.300ms -7.9%)

Memory: ✅ 51.079MB (SLO: <53.500MB -4.5%)


✅ errortracking-enabled-user

Time: ✅ 2.117ms (SLO: <2.250ms -5.9%)

Memory: ✅ 50.922MB (SLO: <53.500MB -4.8%)


✅ tracer-enabled

Time: ✅ 2.116ms (SLO: <2.300ms -8.0%)

Memory: ✅ 50.996MB (SLO: <53.500MB -4.7%)


🔵 flasksimple - 15/15

🔵 No baseline data available for this suite

✅ appsec-get

Time: ✅ 4.604ms (SLO: <4.750ms -3.1%)

Memory: ✅ 61.907MB (SLO: <64.500MB -4.0%)


✅ appsec-post

Time: ✅ 6.634ms (SLO: <6.750ms 🟡 -1.7%)

Memory: ✅ 61.983MB (SLO: <64.500MB -3.9%)


✅ appsec-telemetry

Time: ✅ 4.608ms (SLO: <4.750ms -3.0%)

Memory: ✅ 61.923MB (SLO: <64.500MB -4.0%)


✅ debugger

Time: ✅ 1.868ms (SLO: <2.000ms -6.6%)

Memory: ✅ 44.269MB (SLO: <45.000MB 🟡 -1.6%)


✅ iast-get

Time: ✅ 1.858ms (SLO: <2.000ms -7.1%)

Memory: ✅ 41.444MB (SLO: <49.000MB 📉 -15.4%)


✅ profiler

Time: ✅ 1.917ms (SLO: <2.100ms -8.7%)

Memory: ✅ 44.122MB (SLO: <46.500MB -5.1%)


✅ tracer

Time: ✅ 3.398ms (SLO: <3.650ms -6.9%)

Memory: ✅ 51.031MB (SLO: <53.500MB -4.6%)


🔵 flasksqli - 6/6

🔵 No baseline data available for this suite

✅ appsec-enabled

Time: ✅ 3.976ms (SLO: <4.200ms -5.3%)

Memory: ✅ 62.047MB (SLO: <66.000MB -6.0%)


✅ iast-enabled

Time: ✅ 2.563ms (SLO: <2.800ms -8.5%)

Memory: ✅ 57.487MB (SLO: <59.000MB -2.6%)


✅ tracer-enabled

Time: ✅ 2.110ms (SLO: <2.250ms -6.2%)

Memory: ✅ 51.077MB (SLO: <53.500MB -4.5%)


🔵 httppropagationextract - 60/60

🔵 No baseline data available for this suite

✅ all_styles_all_headers

Time: ✅ 81.312µs (SLO: <100.000µs 📉 -18.7%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ b3_headers

Time: ✅ 14.321µs (SLO: <20.000µs 📉 -28.4%)

Memory: ✅ 31.418MB (SLO: <33.500MB -6.2%)


✅ b3_single_headers

Time: ✅ 13.293µs (SLO: <20.000µs 📉 -33.5%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match

Time: ✅ 65.833µs (SLO: <80.000µs 📉 -17.7%)

Memory: ✅ 31.418MB (SLO: <33.500MB -6.2%)


✅ datadog_tracecontext_tracestate_propagated_on_trace_id_match

Time: ✅ 66.688µs (SLO: <80.000µs 📉 -16.6%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ empty_headers

Time: ✅ 1.598µs (SLO: <10.000µs 📉 -84.0%)

Memory: ✅ 31.418MB (SLO: <33.500MB -6.2%)


✅ full_t_id_datadog_headers

Time: ✅ 22.798µs (SLO: <30.000µs 📉 -24.0%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


✅ invalid_priority_header

Time: ✅ 6.484µs (SLO: <10.000µs 📉 -35.2%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


✅ invalid_span_id_header

Time: ✅ 6.487µs (SLO: <10.000µs 📉 -35.1%)

Memory: ✅ 31.457MB (SLO: <33.500MB -6.1%)


✅ invalid_tags_header

Time: ✅ 6.458µs (SLO: <10.000µs 📉 -35.4%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ invalid_trace_id_header

Time: ✅ 6.482µs (SLO: <10.000µs 📉 -35.2%)

Memory: ✅ 31.379MB (SLO: <33.500MB -6.3%)


✅ large_header_no_matches

Time: ✅ 27.501µs (SLO: <30.000µs -8.3%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ large_valid_headers_all

Time: ✅ 28.612µs (SLO: <40.000µs 📉 -28.5%)

Memory: ✅ 31.418MB (SLO: <33.500MB -6.2%)


✅ medium_header_no_matches

Time: ✅ 9.810µs (SLO: <20.000µs 📉 -51.0%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ medium_valid_headers_all

Time: ✅ 11.193µs (SLO: <20.000µs 📉 -44.0%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ none_propagation_style

Time: ✅ 1.708µs (SLO: <10.000µs 📉 -82.9%)

Memory: ✅ 31.379MB (SLO: <33.500MB -6.3%)


✅ tracecontext_headers

Time: ✅ 34.576µs (SLO: <40.000µs 📉 -13.6%)

Memory: ✅ 31.379MB (SLO: <33.500MB -6.3%)


✅ valid_headers_all

Time: ✅ 6.562µs (SLO: <10.000µs 📉 -34.4%)

Memory: ✅ 31.418MB (SLO: <33.500MB -6.2%)


✅ valid_headers_basic

Time: ✅ 6.070µs (SLO: <10.000µs 📉 -39.3%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


✅ wsgi_empty_headers

Time: ✅ 1.595µs (SLO: <10.000µs 📉 -84.0%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


✅ wsgi_invalid_priority_header

Time: ✅ 6.530µs (SLO: <10.000µs 📉 -34.7%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ wsgi_invalid_span_id_header

Time: ✅ 1.582µs (SLO: <10.000µs 📉 -84.2%)

Memory: ✅ 31.418MB (SLO: <33.500MB -6.2%)


✅ wsgi_invalid_tags_header

Time: ✅ 6.525µs (SLO: <10.000µs 📉 -34.7%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


✅ wsgi_invalid_trace_id_header

Time: ✅ 6.489µs (SLO: <10.000µs 📉 -35.1%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ wsgi_large_header_no_matches

Time: ✅ 28.751µs (SLO: <40.000µs 📉 -28.1%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


✅ wsgi_large_valid_headers_all

Time: ✅ 29.675µs (SLO: <40.000µs 📉 -25.8%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


✅ wsgi_medium_header_no_matches

Time: ✅ 10.200µs (SLO: <20.000µs 📉 -49.0%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ wsgi_medium_valid_headers_all

Time: ✅ 11.655µs (SLO: <20.000µs 📉 -41.7%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ wsgi_valid_headers_all

Time: ✅ 6.557µs (SLO: <10.000µs 📉 -34.4%)

Memory: ✅ 31.379MB (SLO: <33.500MB -6.3%)


✅ wsgi_valid_headers_basic

Time: ✅ 6.129µs (SLO: <10.000µs 📉 -38.7%)

Memory: ✅ 31.438MB (SLO: <33.500MB -6.2%)


🔵 httppropagationinject - 16/16

🔵 No baseline data available for this suite

✅ ids_only

Time: ✅ 22.180µs (SLO: <30.000µs 📉 -26.1%)

Memory: ✅ 31.339MB (SLO: <33.500MB -6.4%)


✅ with_all

Time: ✅ 34.574µs (SLO: <40.000µs 📉 -13.6%)

Memory: ✅ 31.359MB (SLO: <33.500MB -6.4%)


✅ with_dd_origin

Time: ✅ 28.691µs (SLO: <30.000µs -4.4%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ with_priority_and_origin

Time: ✅ 28.178µs (SLO: <40.000µs 📉 -29.6%)

Memory: ✅ 31.379MB (SLO: <33.500MB -6.3%)


✅ with_sampling_priority

Time: ✅ 22.175µs (SLO: <30.000µs 📉 -26.1%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ with_tags

Time: ✅ 30.443µs (SLO: <40.000µs 📉 -23.9%)

Memory: ✅ 31.418MB (SLO: <33.500MB -6.2%)


✅ with_tags_invalid

Time: ✅ 33.705µs (SLO: <40.000µs 📉 -15.7%)

Memory: ✅ 31.398MB (SLO: <33.500MB -6.3%)


✅ with_tags_max_size

Time: ✅ 31.117µs (SLO: <40.000µs 📉 -22.2%)

Memory: ✅ 31.359MB (SLO: <33.500MB -6.4%)


🔵 iast_aspects - 40/40

🔵 No baseline data available for this suite

✅ re_expand_aspect

Time: ✅ 32.863µs (SLO: <40.000µs 📉 -17.8%)

Memory: ✅ 36.962MB (SLO: <39.000MB -5.2%)


✅ re_expand_noaspect

Time: ✅ 28.584µs (SLO: <40.000µs 📉 -28.5%)

Memory: ✅ 36.805MB (SLO: <39.000MB -5.6%)


✅ re_findall_aspect

Time: ✅ 3.720µs (SLO: <10.000µs 📉 -62.8%)

Memory: ✅ 36.864MB (SLO: <39.000MB -5.5%)


✅ re_findall_noaspect

Time: ✅ 1.431µs (SLO: <10.000µs 📉 -85.7%)

Memory: ✅ 36.805MB (SLO: <39.000MB -5.6%)


✅ re_finditer_aspect

Time: ✅ 5.171µs (SLO: <10.000µs 📉 -48.3%)

Memory: ✅ 37.002MB (SLO: <39.000MB -5.1%)


✅ re_finditer_noaspect

Time: ✅ 1.430µs (SLO: <10.000µs 📉 -85.7%)

Memory: ✅ 36.903MB (SLO: <39.000MB -5.4%)


✅ re_fullmatch_aspect

Time: ✅ 3.412µs (SLO: <10.000µs 📉 -65.9%)

Memory: ✅ 36.766MB (SLO: <39.000MB -5.7%)


✅ re_fullmatch_noaspect

Time: ✅ 1.297µs (SLO: <10.000µs 📉 -87.0%)

Memory: ✅ 36.864MB (SLO: <39.000MB -5.5%)


✅ re_group_aspect

Time: ✅ 3.437µs (SLO: <10.000µs 📉 -65.6%)

Memory: ✅ 36.903MB (SLO: <39.000MB -5.4%)


✅ re_group_noaspect

Time: ✅ 1.609µs (SLO: <10.000µs 📉 -83.9%)

Memory: ✅ 36.825MB (SLO: <39.000MB -5.6%)


✅ re_groups_aspect

Time: ✅ 3.565µs (SLO: <10.000µs 📉 -64.4%)

Memory: ✅ 36.825MB (SLO: <39.000MB -5.6%)


✅ re_groups_noaspect

Time: ✅ 1.699µs (SLO: <10.000µs 📉 -83.0%)

Memory: ✅ 36.844MB (SLO: <39.000MB -5.5%)


✅ re_match_aspect

Time: ✅ 3.396µs (SLO: <10.000µs 📉 -66.0%)

Memory: ✅ 36.825MB (SLO: <39.000MB -5.6%)


✅ re_match_noaspect

Time: ✅ 1.296µs (SLO: <10.000µs 📉 -87.0%)

Memory: ✅ 36.864MB (SLO: <39.000MB -5.5%)


✅ re_search_aspect

Time: ✅ 3.274µs (SLO: <10.000µs 📉 -67.3%)

Memory: ✅ 36.844MB (SLO: <39.000MB -5.5%)


✅ re_search_noaspect

Time: ✅ 1.201µs (SLO: <10.000µs 📉 -88.0%)

Memory: ✅ 36.844MB (SLO: <39.000MB -5.5%)


✅ re_sub_aspect

Time: ✅ 4.670µs (SLO: <10.000µs 📉 -53.3%)

Memory: ✅ 36.805MB (SLO: <39.000MB -5.6%)


✅ re_sub_noaspect

Time: ✅ 1.526µs (SLO: <10.000µs 📉 -84.7%)

Memory: ✅ 36.746MB (SLO: <39.000MB -5.8%)


✅ re_subn_aspect

Time: ✅ 4.869µs (SLO: <10.000µs 📉 -51.3%)

Memory: ✅ 36.844MB (SLO: <39.000MB -5.5%)


✅ re_subn_noaspect

Time: ✅ 1.614µs (SLO: <10.000µs 📉 -83.9%)

Memory: ✅ 36.785MB (SLO: <39.000MB -5.7%)


🔵 iastaspects - 118/118

🔵 No baseline data available for this suite

✅ add_aspect

Time: ✅ 0.330µs (SLO: <10.000µs 📉 -96.7%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ add_inplace_aspect

Time: ✅ 0.330µs (SLO: <10.000µs 📉 -96.7%)

Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%)


✅ add_inplace_noaspect

Time: ✅ 0.318µs (SLO: <10.000µs 📉 -96.8%)

Memory: ✅ 37.277MB (SLO: <39.000MB -4.4%)


✅ add_noaspect

Time: ✅ 0.276µs (SLO: <10.000µs 📉 -97.2%)

Memory: ✅ 37.120MB (SLO: <39.000MB -4.8%)


✅ bytearray_aspect

Time: ✅ 1.855µs (SLO: <10.000µs 📉 -81.5%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ bytearray_extend_aspect

Time: ✅ 1.362µs (SLO: <10.000µs 📉 -86.4%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


✅ bytearray_extend_noaspect

Time: ✅ 0.617µs (SLO: <10.000µs 📉 -93.8%)

Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%)


✅ bytearray_noaspect

Time: ✅ 0.482µs (SLO: <10.000µs 📉 -95.2%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


✅ bytes_aspect

Time: ✅ 1.840µs (SLO: <10.000µs 📉 -81.6%)

Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%)


✅ bytes_noaspect

Time: ✅ 0.495µs (SLO: <10.000µs 📉 -95.1%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ bytesio_aspect

Time: ✅ 1.875µs (SLO: <10.000µs 📉 -81.2%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


✅ bytesio_noaspect

Time: ✅ 0.497µs (SLO: <10.000µs 📉 -95.0%)

Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%)


✅ capitalize_aspect

Time: ✅ 0.735µs (SLO: <10.000µs 📉 -92.7%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ capitalize_noaspect

Time: ✅ 0.434µs (SLO: <10.000µs 📉 -95.7%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ casefold_aspect

Time: ✅ 0.741µs (SLO: <10.000µs 📉 -92.6%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ casefold_noaspect

Time: ✅ 0.371µs (SLO: <10.000µs 📉 -96.3%)

Memory: ✅ 37.277MB (SLO: <39.000MB -4.4%)


✅ decode_aspect

Time: ✅ 0.721µs (SLO: <10.000µs 📉 -92.8%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ decode_noaspect

Time: ✅ 0.420µs (SLO: <10.000µs 📉 -95.8%)

Memory: ✅ 37.139MB (SLO: <39.000MB -4.8%)


✅ encode_aspect

Time: ✅ 0.703µs (SLO: <10.000µs 📉 -93.0%)

Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%)


✅ encode_noaspect

Time: ✅ 0.401µs (SLO: <10.000µs 📉 -96.0%)

Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%)


✅ format_aspect

Time: ✅ 3.395µs (SLO: <10.000µs 📉 -66.1%)

Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%)


✅ format_map_aspect

Time: ✅ 3.209µs (SLO: <10.000µs 📉 -67.9%)

Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%)


✅ format_map_noaspect

Time: ✅ 0.775µs (SLO: <10.000µs 📉 -92.2%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ format_noaspect

Time: ✅ 0.601µs (SLO: <10.000µs 📉 -94.0%)

Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%)


✅ index_aspect

Time: ✅ 0.338µs (SLO: <10.000µs 📉 -96.6%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ index_noaspect

Time: ✅ 0.281µs (SLO: <10.000µs 📉 -97.2%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ join_aspect

Time: ✅ 1.222µs (SLO: <10.000µs 📉 -87.8%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


✅ join_noaspect

Time: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


✅ ljust_aspect

Time: ✅ 10.202µs (SLO: <20.000µs 📉 -49.0%)

Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%)


✅ ljust_noaspect

Time: ✅ 0.403µs (SLO: <10.000µs 📉 -96.0%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ lower_aspect

Time: ✅ 2.256µs (SLO: <10.000µs 📉 -77.4%)

Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%)


✅ lower_noaspect

Time: ✅ 0.371µs (SLO: <10.000µs 📉 -96.3%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


✅ lstrip_aspect

Time: ✅ 10.255µs (SLO: <20.000µs 📉 -48.7%)

Memory: ✅ 37.356MB (SLO: <39.000MB -4.2%)


✅ lstrip_noaspect

Time: ✅ 0.384µs (SLO: <10.000µs 📉 -96.2%)

Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%)


✅ modulo_aspect

Time: ✅ 0.936µs (SLO: <10.000µs 📉 -90.6%)

Memory: ✅ 37.139MB (SLO: <39.000MB -4.8%)


✅ modulo_aspect_for_bytearray_bytearray

Time: ✅ 1.427µs (SLO: <10.000µs 📉 -85.7%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ modulo_aspect_for_bytes

Time: ✅ 0.904µs (SLO: <10.000µs 📉 -91.0%)

Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%)


✅ modulo_aspect_for_bytes_bytearray

Time: ✅ 1.132µs (SLO: <10.000µs 📉 -88.7%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ modulo_noaspect

Time: ✅ 0.629µs (SLO: <10.000µs 📉 -93.7%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ replace_aspect

Time: ✅ 4.539µs (SLO: <10.000µs 📉 -54.6%)

Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%)


✅ replace_noaspect

Time: ✅ 0.463µs (SLO: <10.000µs 📉 -95.4%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ repr_aspect

Time: ✅ 0.910µs (SLO: <10.000µs 📉 -90.9%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ repr_noaspect

Time: ✅ 0.419µs (SLO: <10.000µs 📉 -95.8%)

Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%)


✅ rstrip_aspect

Time: ✅ 10.180µs (SLO: <20.000µs 📉 -49.1%)

Memory: ✅ 37.356MB (SLO: <39.000MB -4.2%)


✅ rstrip_noaspect

Time: ✅ 0.381µs (SLO: <10.000µs 📉 -96.2%)

Memory: ✅ 37.120MB (SLO: <39.000MB -4.8%)


✅ slice_aspect

Time: ✅ 0.479µs (SLO: <10.000µs 📉 -95.2%)

Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%)


✅ slice_noaspect

Time: ✅ 0.441µs (SLO: <10.000µs 📉 -95.6%)

Memory: ✅ 37.120MB (SLO: <39.000MB -4.8%)


✅ stringio_aspect

Time: ✅ 2.210µs (SLO: <10.000µs 📉 -77.9%)

Memory: ✅ 37.139MB (SLO: <39.000MB -4.8%)


✅ stringio_noaspect

Time: ✅ 0.717µs (SLO: <10.000µs 📉 -92.8%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


✅ strip_aspect

Time: ✅ 10.224µs (SLO: <20.000µs 📉 -48.9%)

Memory: ✅ 37.316MB (SLO: <39.000MB -4.3%)


✅ strip_noaspect

Time: ✅ 0.383µs (SLO: <10.000µs 📉 -96.2%)

Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%)


✅ swapcase_aspect

Time: ✅ 2.455µs (SLO: <10.000µs 📉 -75.4%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ swapcase_noaspect

Time: ✅ 0.535µs (SLO: <10.000µs 📉 -94.7%)

Memory: ✅ 37.238MB (SLO: <39.000MB -4.5%)


✅ title_aspect

Time: ✅ 2.554µs (SLO: <10.000µs 📉 -74.5%)

Memory: ✅ 37.198MB (SLO: <39.000MB -4.6%)


✅ title_noaspect

Time: ✅ 0.497µs (SLO: <10.000µs 📉 -95.0%)

Memory: ✅ 37.218MB (SLO: <39.000MB -4.6%)


✅ translate_aspect

Time: ✅ 3.293µs (SLO: <10.000µs 📉 -67.1%)

Memory: ✅ 37.179MB (SLO: <39.000MB -4.7%)


✅ translate_noaspect

Time: ✅ 1.034µs (SLO: <10.000µs 📉 -89.7%)

Memory: ✅ 37.297MB (SLO: <39.000MB -4.4%)


✅ upper_aspect

Time: ✅ 2.301µs (SLO: <10.000µs 📉 -77.0%)

Memory: ✅ 37.277MB (SLO: <39.000MB -4.4%)


✅ upper_noaspect

Time: ✅ 0.368µs (SLO: <10.000µs 📉 -96.3%)

Memory: ✅ 37.257MB (SLO: <39.000MB -4.5%)


🔵 iastaspectsospath - 24/24

🔵 No baseline data available for this suite

✅ ospathbasename_aspect

Time: ✅ 4.135µs (SLO: <10.000µs 📉 -58.6%)

Memory: ✅ 37.100MB (SLO: <39.000MB -4.9%)


✅ ospathbasename_noaspect

Time: ✅ 1.089µs (SLO: <10.000µs 📉 -89.1%)

Memory: ✅ 37.002MB (SLO: <39.000MB -5.1%)


✅ ospathjoin_aspect

Time: ✅ 6.983µs (SLO: <10.000µs 📉 -30.2%)

Memory: ✅ 36.805MB (SLO: <39.000MB -5.6%)


✅ ospathjoin_noaspect

Time: ✅ 2.289µs (SLO: <10.000µs 📉 -77.1%)

Memory: ✅ 36.884MB (SLO: <39.000MB -5.4%)


✅ ospathnormcase_aspect

Time: ✅ 3.359µs (SLO: <10.000µs 📉 -66.4%)

Memory: ✅ 37.061MB (SLO: <39.000MB -5.0%)


✅ ospathnormcase_noaspect

Time: ✅ 0.570µs (SLO: <10.000µs 📉 -94.3%)

Memory: ✅ 36.884MB (SLO: <39.000MB -5.4%)


✅ ospathsplit_aspect

Time: ✅ 4.625µs (SLO: <10.000µs 📉 -53.8%)

Memory: ✅ 36.943MB (SLO: <39.000MB -5.3%)


✅ ospathsplit_noaspect

Time: ✅ 1.577µs (SLO: <10.000µs 📉 -84.2%)

Memory: ✅ 36.805MB (SLO: <39.000MB -5.6%)


✅ ospathsplitdrive_aspect

Time: ✅ 3.536µs (SLO: <10.000µs 📉 -64.6%)

Memory: ✅ 37.159MB (SLO: <39.000MB -4.7%)


✅ ospathsplitdrive_noaspect

Time: ✅ 0.695µs (SLO: <10.000µs 📉 -93.1%)

Memory: ✅ 36.805MB (SLO: <39.000MB -5.6%)


✅ ospathsplitext_aspect

Time: ✅ 5.295µs (SLO: <10.000µs 📉 -47.0%)

Memory: ✅ 37.316MB (SLO: <39.000MB -4.3%)


✅ ospathsplitext_noaspect

Time: ✅ 1.389µs (SLO: <10.000µs 📉 -86.1%)

Memory: ✅ 37.041MB (SLO: <39.000MB -5.0%)


🔵 iastaspectssplit - 12/12

🔵 No baseline data available for this suite

✅ rsplit_aspect

Time: ✅ 1.467µs (SLO: <10.000µs 📉 -85.3%)

Memory: ✅ 36.726MB (SLO: <39.000MB -5.8%)


✅ rsplit_noaspect

Time: ✅ 0.577µs (SLO: <10.000µs 📉 -94.2%)

Memory: ✅ 36.825MB (SLO: <39.000MB -5.6%)


✅ split_aspect

Time: ✅ 1.449µs (SLO: <10.000µs 📉 -85.5%)

Memory: ✅ 36.903MB (SLO: <39.000MB -5.4%)


✅ split_noaspect

Time: ✅ 0.568µs (SLO: <10.000µs 📉 -94.3%)

Memory: ✅ 36.844MB (SLO: <39.000MB -5.5%)


✅ splitlines_aspect

Time: ✅ 1.418µs (SLO: <10.000µs 📉 -85.8%)

Memory: ✅ 36.884MB (SLO: <39.000MB -5.4%)


✅ splitlines_noaspect

Time: ✅ 0.581µs (SLO: <10.000µs 📉 -94.2%)

Memory: ✅ 36.884MB (SLO: <39.000MB -5.4%)


🔵 iastpropagation - 8/8

🔵 No baseline data available for this suite

✅ no-propagation

Time: ✅ 48.765µs (SLO: <60.000µs 📉 -18.7%)

Memory: ✅ 36.864MB (SLO: <39.000MB -5.5%)


✅ propagation_enabled

Time: ✅ 143.973µs (SLO: <160.000µs 📉 -10.0%)

Memory: ✅ 36.844MB (SLO: <39.000MB -5.5%)


✅ propagation_enabled_100

Time: ✅ 1.565ms (SLO: <1.800ms 📉 -13.0%)

Memory: ✅ 36.844MB (SLO: <39.000MB -5.5%)


✅ propagation_enabled_1000

Time: ✅ 29.114ms (SLO: <30.550ms -4.7%)

Memory: ✅ 36.805MB (SLO: <39.000MB -5.6%)


🔵 otelsdkspan - 24/24

🔵 No baseline data available for this suite

✅ add-event

Time: ✅ 40.503ms (SLO: <42.000ms -3.6%)

Memory: ✅ 34.190MB (SLO: <39.000MB 📉 -12.3%)


✅ add-link

Time: ✅ 36.767ms (SLO: <38.550ms -4.6%)

Memory: ✅ 34.131MB (SLO: <39.000MB 📉 -12.5%)


✅ add-metrics

Time: ✅ 218.526ms (SLO: <232.000ms -5.8%)

Memory: ✅ 34.190MB (SLO: <39.000MB 📉 -12.3%)


✅ add-tags

Time: ✅ 211.813ms (SLO: <221.600ms -4.4%)

Memory: ✅ 34.092MB (SLO: <39.000MB 📉 -12.6%)


✅ get-context

Time: ✅ 29.237ms (SLO: <31.300ms -6.6%)

Memory: ✅ 34.190MB (SLO: <39.000MB 📉 -12.3%)


✅ is-recording

Time: ✅ 29.173ms (SLO: <31.000ms -5.9%)

Memory: ✅ 34.131MB (SLO: <39.000MB 📉 -12.5%)


✅ record-exception

Time: ✅ 63.078ms (SLO: <65.850ms -4.2%)

Memory: ✅ 34.151MB (SLO: <39.000MB 📉 -12.4%)


✅ set-status

Time: ✅ 31.793ms (SLO: <34.150ms -6.9%)

Memory: ✅ 34.092MB (SLO: <39.000MB 📉 -12.6%)


✅ start

Time: ✅ 28.837ms (SLO: <30.150ms -4.4%)

Memory: ✅ 34.131MB (SLO: <39.000MB 📉 -12.5%)


✅ start-finish

Time: ✅ 34.025ms (SLO: <35.350ms -3.7%)

Memory: ✅ 34.190MB (SLO: <39.000MB 📉 -12.3%)


✅ start-finish-telemetry

Time: ✅ 33.783ms (SLO: <35.450ms -4.7%)

Memory: ✅ 34.131MB (SLO: <39.000MB 📉 -12.5%)


✅ update-name

Time: ✅ 31.654ms (SLO: <33.400ms -5.2%)

Memory: ✅ 34.092MB (SLO: <39.000MB 📉 -12.6%)


🔵 otelspan - 22/22

🔵 No baseline data available for this suite

✅ add-event

Time: ✅ 45.013ms (SLO: <47.150ms -4.5%)

Memory: ✅ 44.388MB (SLO: <46.500MB -4.5%)


✅ add-metrics

Time: ✅ 320.659ms (SLO: <344.800ms -7.0%)

Memory: ✅ 553.218MB (SLO: <562.000MB 🟡 -1.6%)


✅ add-tags

Time: ✅ 290.947ms (SLO: <314.000ms -7.3%)

Memory: ✅ 554.770MB (SLO: <563.500MB 🟡 -1.5%)


✅ get-context

Time: ✅ 85.547ms (SLO: <92.350ms -7.4%)

Memory: ✅ 39.546MB (SLO: <46.500MB 📉 -15.0%)


✅ is-recording

Time: ✅ 42.952ms (SLO: <44.500ms -3.5%)

Memory: ✅ 43.781MB (SLO: <46.500MB -5.8%)


✅ record-exception

Time: ✅ 62.109ms (SLO: <67.650ms -8.2%)

Memory: ✅ 39.836MB (SLO: <46.500MB 📉 -14.3%)


✅ set-status

Time: ✅ 48.990ms (SLO: <50.400ms -2.8%)

Memory: ✅ 43.838MB (SLO: <46.500MB -5.7%)


✅ start

Time: ✅ 42.216ms (SLO: <43.450ms -2.8%)

Memory: ✅ 43.806MB (SLO: <46.500MB -5.8%)


✅ start-finish

Time: ✅ 82.836ms (SLO: <88.000ms -5.9%)

Memory: ✅ 33.797MB (SLO: <46.500MB 📉 -27.3%)


✅ start-finish-telemetry

Time: ✅ 84.189ms (SLO: <89.000ms -5.4%)

Memory: ✅ 33.797MB (SLO: <46.500MB 📉 -27.3%)


✅ update-name

Time: ✅ 44.101ms (SLO: <45.150ms -2.3%)

Memory: ✅ 44.120MB (SLO: <46.500MB -5.1%)


🔵 packagespackageforrootmodulemapping - 4/4

🔵 No baseline data available for this suite

✅ cache_off

Time: ✅ 338.469ms (SLO: <354.300ms -4.5%)

Memory: ✅ 36.949MB (SLO: <40.000MB -7.6%)


✅ cache_on

Time: ✅ 0.394µs (SLO: <10.000µs 📉 -96.1%)

Memory: ✅ 36.249MB (SLO: <39.000MB -7.1%)


🔵 packagesupdateimporteddependencies - 24/24

🔵 No baseline data available for this suite

✅ import_many

Time: ✅ 154.458µs (SLO: <170.000µs -9.1%)

Memory: ✅ 36.503MB (SLO: <38.500MB -5.2%)


✅ import_many_cached

Time: ✅ 121.177µs (SLO: <130.000µs -6.8%)

Memory: ✅ 36.337MB (SLO: <38.500MB -5.6%)


✅ import_many_stdlib

Time: ✅ 1.612ms (SLO: <1.750ms -7.9%)

Memory: ✅ 36.526MB (SLO: <38.500MB -5.1%)


✅ import_many_stdlib_cached

Time: ✅ 0.964ms (SLO: <1.100ms 📉 -12.4%)

Memory: ✅ 36.403MB (SLO: <38.500MB -5.4%)


✅ import_many_unknown

Time: ✅ 840.333µs (SLO: <890.000µs -5.6%)

Memory: ✅ 36.655MB (SLO: <38.500MB -4.8%)


✅ import_many_unknown_cached

Time: ✅ 791.668µs (SLO: <870.000µs -9.0%)

Memory: ✅ 36.410MB (SLO: <38.500MB -5.4%)


✅ import_one

Time: ✅ 19.705µs (SLO: <30.000µs 📉 -34.3%)

Memory: ✅ 36.332MB (SLO: <39.000MB -6.8%)


✅ import_one_cache

Time: ✅ 6.349µs (SLO: <10.000µs 📉 -36.5%)

Memory: ✅ 36.291MB (SLO: <38.500MB -5.7%)


✅ import_one_stdlib

Time: ✅ 18.775µs (SLO: <20.000µs -6.1%)

Memory: ✅ 36.249MB (SLO: <38.500MB -5.8%)


✅ import_one_stdlib_cache

Time: ✅ 6.251µs (SLO: <10.000µs 📉 -37.5%)

Memory: ✅ 36.356MB (SLO: <38.500MB -5.6%)


✅ import_one_unknown

Time: ✅ 45.496µs (SLO: <50.000µs -9.0%)

Memory: ✅ 36.319MB (SLO: <38.500MB -5.7%)


✅ import_one_unknown_cache

Time: ✅ 6.306µs (SLO: <10.000µs 📉 -36.9%)

Memory: ✅ 36.181MB (SLO: <38.500MB -6.0%)


🔵 ratelimiter - 12/12

🔵 No baseline data available for this suite

✅ defaults

Time: ✅ 2.357µs (SLO: <10.000µs 📉 -76.4%)

Memory: ✅ 30.887MB (SLO: <34.000MB -9.2%)


✅ high_rate_limit

Time: ✅ 2.411µs (SLO: <10.000µs 📉 -75.9%)

Memory: ✅ 30.926MB (SLO: <34.000MB -9.0%)


✅ long_window

Time: ✅ 2.365µs (SLO: <10.000µs 📉 -76.3%)

Memory: ✅ 30.985MB (SLO: <34.000MB -8.9%)


✅ low_rate_limit

Time: ✅ 2.350µs (SLO: <10.000µs 📉 -76.5%)

Memory: ✅ 30.946MB (SLO: <34.000MB -9.0%)


✅ no_rate_limit

Time: ✅ 0.832µs (SLO: <10.000µs 📉 -91.7%)

Memory: ✅ 30.985MB (SLO: <34.000MB -8.9%)


✅ short_window

Time: ✅ 2.478µs (SLO: <10.000µs 📉 -75.2%)

Memory: ✅ 30.926MB (SLO: <34.000MB -9.0%)


🔵 recursivecomputation - 8/8

🔵 No baseline data available for this suite

✅ deep

Time: ✅ 310.018ms (SLO: <320.950ms -3.4%)

Memory: ✅ 32.440MB (SLO: <34.500MB -6.0%)


✅ deep-profiled

Time: ✅ 327.001ms (SLO: <359.150ms -9.0%)

Memory: ✅ 35.075MB (SLO: <39.000MB 📉 -10.1%)


✅ medium

Time: ✅ 7.097ms (SLO: <7.400ms -4.1%)

Memory: ✅ 31.202MB (SLO: <34.000MB -8.2%)


✅ shallow

Time: ✅ 0.953ms (SLO: <1.050ms -9.2%)

Memory: ✅ 31.241MB (SLO: <34.000MB -8.1%)


🔵 samplingrules - 8/8

🔵 No baseline data available for this suite

✅ average_match

Time: ✅ 274.423µs (SLO: <290.000µs -5.4%)

Memory: ✅ 31.280MB (SLO: <34.000MB -8.0%)


✅ high_match

Time: ✅ 447.590µs (SLO: <480.000µs -6.8%)

Memory: ✅ 31.300MB (SLO: <34.000MB -7.9%)


✅ low_match

Time: ✅ 111.231µs (SLO: <120.000µs -7.3%)

Memory: ✅ 631.781MB (SLO: <700.000MB -9.7%)


✅ very_low_match

Time: ✅ 7.695ms (SLO: <8.500ms -9.5%)

Memory: ✅ 69.340MB (SLO: <75.000MB -7.5%)


🔵 sethttpmeta - 32/32

🔵 No baseline data available for this suite

✅ all-disabled

Time: ✅ 12.210µs (SLO: <20.000µs 📉 -38.9%)

Memory: ✅ 31.831MB (SLO: <34.000MB -6.4%)


✅ all-enabled

Time: ✅ 42.078µs (SLO: <50.000µs 📉 -15.8%)

Memory: ✅ 31.792MB (SLO: <34.000MB -6.5%)


✅ collectipvariant_exists

Time: ✅ 42.644µs (SLO: <50.000µs 📉 -14.7%)

Memory: ✅ 31.831MB (SLO: <34.000MB -6.4%)


✅ no-collectipvariant

Time: ✅ 42.058µs (SLO: <50.000µs 📉 -15.9%)

Memory: ✅ 31.792MB (SLO: <34.000MB -6.5%)


✅ no-useragentvariant

Time: ✅ 41.938µs (SLO: <50.000µs 📉 -16.1%)

Memory: ✅ 31.850MB (SLO: <34.000MB -6.3%)


✅ obfuscation-no-query

Time: ✅ 42.622µs (SLO: <50.000µs 📉 -14.8%)

Memory: ✅ 31.713MB (SLO: <34.000MB -6.7%)


✅ obfuscation-regular-case-explicit-query

Time: ✅ 79.103µs (SLO: <90.000µs 📉 -12.1%)

Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%)


✅ obfuscation-regular-case-implicit-query

Time: ✅ 79.324µs (SLO: <90.000µs 📉 -11.9%)

Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%)


✅ obfuscation-send-querystring-disabled

Time: ✅ 156.784µs (SLO: <170.000µs -7.8%)

Memory: ✅ 32.165MB (SLO: <34.500MB -6.8%)


✅ obfuscation-worst-case-explicit-query

Time: ✅ 151.021µs (SLO: <160.000µs -5.6%)

Memory: ✅ 32.204MB (SLO: <34.500MB -6.7%)


✅ obfuscation-worst-case-implicit-query

Time: ✅ 157.304µs (SLO: <170.000µs -7.5%)

Memory: ✅ 32.204MB (SLO: <34.500MB -6.7%)


✅ useragentvariant_exists_1

Time: ✅ 41.367µs (SLO: <50.000µs 📉 -17.3%)

Memory: ✅ 31.792MB (SLO: <34.000MB -6.5%)


✅ useragentvariant_exists_2

Time: ✅ 42.638µs (SLO: <50.000µs 📉 -14.7%)

Memory: ✅ 31.772MB (SLO: <34.000MB -6.6%)


✅ useragentvariant_exists_3

Time: ✅ 41.904µs (SLO: <50.000µs 📉 -16.2%)

Memory: ✅ 31.811MB (SLO: <34.000MB -6.4%)


✅ useragentvariant_not_exists_1

Time: ✅ 42.369µs (SLO: <50.000µs 📉 -15.3%)

Memory: ✅ 31.752MB (SLO: <34.000MB -6.6%)


✅ useragentvariant_not_exists_2

Time: ✅ 41.550µs (SLO: <50.000µs 📉 -16.9%)

Memory: ✅ 31.772MB (SLO: <34.000MB -6.6%)


🔵 span - 26/26

🔵 No baseline data available for this suite

✅ add-event

Time: ✅ 24.371ms (SLO: <26.200ms -7.0%)

Memory: ✅ 50.804MB (SLO: <53.000MB -4.1%)


✅ add-metrics

Time: ✅ 91.140ms (SLO: <98.350ms -7.3%)

Memory: ✅ 606.780MB (SLO: <961.000MB 📉 -36.9%)


✅ add-tags

Time: ✅ 149.039ms (SLO: <168.550ms 📉 -11.6%)

Memory: ✅ 606.619MB (SLO: <962.500MB 📉 -37.0%)


✅ get-context

Time: ✅ 22.342ms (SLO: <23.700ms -5.7%)

Memory: ✅ 49.522MB (SLO: <53.000MB -6.6%)


✅ is-recording

Time: ✅ 22.774ms (SLO: <23.900ms -4.7%)

Memory: ✅ 49.650MB (SLO: <53.000MB -6.3%)


✅ record-exception

Time: ✅ 42.367ms (SLO: <44.500ms -4.8%)

Memory: ✅ 42.490MB (SLO: <53.000MB 📉 -19.8%)


✅ set-status

Time: ✅ 24.342ms (SLO: <26.000ms -6.4%)

Memory: ✅ 49.529MB (SLO: <53.000MB -6.5%)


✅ start

Time: ✅ 22.375ms (SLO: <23.500ms -4.8%)

Memory: ✅ 49.549MB (SLO: <53.000MB -6.5%)


✅ start-finish

Time: ✅ 51.597ms (SLO: <55.500ms -7.0%)

Memory: ✅ 31.221MB (SLO: <34.000MB -8.2%)


✅ start-finish-telemetry

Time: ✅ 53.345ms (SLO: <58.300ms -8.5%)

Memory: ✅ 31.143MB (SLO: <34.000MB -8.4%)


✅ start-finish-traceid128

Time: ✅ 55.143ms (SLO: <60.050ms -8.2%)

Memory: ✅ 31.280MB (SLO: <34.000MB -8.0%)


✅ start-traceid128

Time: ✅ 22.884ms (SLO: <24.600ms -7.0%)

Memory: ✅ 49.638MB (SLO: <53.000MB -6.3%)


✅ update-name

Time: ✅ 23.223ms (SLO: <24.100ms -3.6%)

Memory: ✅ 50.324MB (SLO: <53.000MB -5.0%)


🔵 telemetryaddmetric - 30/30

🔵 No baseline data available for this suite

✅ 1-count-metric-1-times

Time: ✅ 3.212µs (SLO: <10.000µs 📉 -67.9%)

Memory: ✅ 31.241MB (SLO: <34.000MB -8.1%)


✅ 1-count-metrics-100-times

Time: ✅ 222.931µs (SLO: <240.000µs -7.1%)

Memory: ✅ 31.221MB (SLO: <34.000MB -8.2%)


✅ 1-distribution-metric-1-times

Time: ✅ 2.992µs (SLO: <10.000µs 📉 -70.1%)

Memory: ✅ 31.359MB (SLO: <34.000MB -7.8%)


✅ 1-distribution-metrics-100-times

Time: ✅ 198.565µs (SLO: <210.000µs -5.4%)

Memory: ✅ 31.300MB (SLO: <34.000MB -7.9%)


✅ 1-gauge-metric-1-times

Time: ✅ 2.129µs (SLO: <10.000µs 📉 -78.7%)

Memory: ✅ 31.241MB (SLO: <34.000MB -8.1%)


✅ 1-gauge-metrics-100-times

Time: ✅ 126.151µs (SLO: <140.000µs -9.9%)

Memory: ✅ 31.339MB (SLO: <34.000MB -7.8%)


✅ 1-rate-metric-1-times

Time: ✅ 3.269µs (SLO: <10.000µs 📉 -67.3%)

Memory: ✅ 31.280MB (SLO: <34.000MB -8.0%)


✅ 1-rate-metrics-100-times

Time: ✅ 221.449µs (SLO: <240.000µs -7.7%)

Memory: ✅ 31.261MB (SLO: <34.000MB -8.1%)


✅ 100-count-metrics-100-times

Time: ✅ 22.107ms (SLO: <23.000ms -3.9%)

Memory: ✅ 31.162MB (SLO: <34.000MB -8.3%)


✅ 100-distribution-metrics-100-times

Time: ✅ 2.037ms (SLO: <2.200ms -7.4%)

Memory: ✅ 31.241MB (SLO: <34.000MB -8.1%)


✅ 100-gauge-metrics-100-times

Time: ✅ 1.293ms (SLO: <1.500ms 📉 -13.8%)

Memory: ✅ 31.339MB (SLO: <34.000MB -7.8%)


✅ 100-rate-metrics-100-times

Time: ✅ 2.281ms (SLO: <2.500ms -8.8%)

Memory: ✅ 31.261MB (SLO: <34.000MB -8.1%)


✅ flush-1-metric

Time: ✅ 4.566µs (SLO: <10.000µs 📉 -54.3%)

Memory: ✅ 31.300MB (SLO: <34.000MB -7.9%)


✅ flush-100-metrics

Time: ✅ 181.970µs (SLO: <200.000µs -9.0%)

Memory: ✅ 31.320MB (SLO: <34.000MB -7.9%)


✅ flush-1000-metrics

Time: ✅ 2.244ms (SLO: <2.450ms -8.4%)

Memory: ✅ 32.440MB (SLO: <34.500MB -6.0%)


🔵 tracer - 6/6

🔵 No baseline data available for this suite

✅ large

Time: ✅ 30.141ms (SLO: <32.950ms -8.5%)

Memory: ✅ 32.480MB (SLO: <34.500MB -5.9%)


✅ medium

Time: ✅ 2.971ms (SLO: <3.200ms -7.2%)

Memory: ✅ 31.261MB (SLO: <34.000MB -8.1%)


✅ small

Time: ✅ 335.416µs (SLO: <370.000µs -9.3%)

Memory: ✅ 31.261MB (SLO: <34.000MB -8.1%)

@brettlangdon brettlangdon enabled auto-merge (squash) August 20, 2025 19:42
@brettlangdon brettlangdon merged commit 4ed3d21 into main Aug 21, 2025
878 of 882 checks passed
@brettlangdon brettlangdon deleted the LANGPLAT-642/django.cache.double.wrapped branch August 21, 2025 19:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog/no-changelog A changelog entry is not required for this PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants