Skip to content

chore(ci_visibility): ensure spans are finished by the end of the session #14066

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jul 22, 2025

Conversation

vitor-de-araujo
Copy link
Contributor

@vitor-de-araujo vitor-de-araujo commented Jul 18, 2025

At the end of the test session, we finish all unfinished spans recursively by calling test_session.finish(force=True), but force only applies if the item's current status is SPECIAL_STATUS.UNFINISHED. It looks like in some obscure circumstances, a test can be unfinished without having the SPECIAL_STATUS.UNFINISHED status, and in this case the recursive finish will ignore them. This PR changes the logic so that any unfinished span is finished.

Also, test spans don't have a parent (they have their own context, separate from the test session/module/suite). This means that when a test span finishes, there is no parent to reactivate, and so there is no active span. This confuses the logic that checks for unfinished spans when finish test session/module/suite. This PR reactivates the parent span to avoid this issue.

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

Copy link
Contributor

CODEOWNERS have been resolved as:

ddtrace/internal/ci_visibility/api/_base.py                             @DataDog/ci-app-libraries

Copy link
Contributor

github-actions bot commented Jul 18, 2025

Bootstrap import analysis

Comparison of import times between this PR and base.

Summary

The average import time from this PR is: 274 ± 2 ms.

The average import time from base is: 276 ± 2 ms.

The import time difference between this PR and base is: -1.86 ± 0.09 ms.

Import time breakdown

The following import paths have shrunk:

ddtrace.auto 1.972 ms (0.72%)
ddtrace.bootstrap.sitecustomize 1.298 ms (0.47%)
ddtrace.bootstrap.preload 1.298 ms (0.47%)
ddtrace.internal.remoteconfig.client 0.644 ms (0.23%)
ddtrace 0.673 ms (0.25%)
ddtrace.internal._unpatched 0.029 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%)

@vitor-de-araujo vitor-de-araujo changed the title fix(ci_visibility): ensure test suite span is reactivated when test span finishes fix(ci_visibility): ensure spans are finished by the end of the session Jul 18, 2025
@pr-commenter
Copy link

pr-commenter bot commented Jul 18, 2025

Performance SLOs

Performance SLOs

Benchmark execution time: 2025-07-21 15:28:36

Comparing candidate commit f1b665b in branch vitor-de-araujo/unfinished-spans-2 with performance thresholds.

coreapiscenario-context_with_data_listeners

  • (unstable) execution_time seen in benchmark [13.122µs; 14.222µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

coreapiscenario-context_with_data_no_listeners

  • 🟩 execution_time seen in benchmark [3.672µs; 3.706µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

coreapiscenario-context_with_data_only_all_listeners

  • (unstable) execution_time seen in benchmark [13.076µs; 14.169µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

coreapiscenario-get_item_exists

  • 🟩 execution_time seen in benchmark [630.318ns; 634.753ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

coreapiscenario-get_item_missing

  • 🟩 execution_time seen in benchmark [685.135ns; 692.746ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

coreapiscenario-set_item

  • 🟩 execution_time seen in benchmark [24.606µs; 24.984µs]; SLO is < 30.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

djangosimple-appsec

  • 🟩 execution_time seen in benchmark [21.321ms; 21.373ms]; SLO is < 22.300ms
  • 🟩 max_rss_usage seen in benchmark [63.694MB; 63.787MB]; SLO is < 65.500MB

djangosimple-exception-replay-enabled

  • 🟩 execution_time seen in benchmark [1.352ms; 1.355ms]; SLO is < 1.450ms
  • 🟩 max_rss_usage seen in benchmark [63.354MB; 63.497MB]; SLO is < 65.500MB

djangosimple-iast

  • 🟩 execution_time seen in benchmark [21.293ms; 21.352ms]; SLO is < 22.250ms
  • 🟩 max_rss_usage seen in benchmark [63.701MB; 63.701MB]; SLO is < 65.500MB

djangosimple-profiler

  • 🟩 execution_time seen in benchmark [15.799ms; 15.873ms]; SLO is < 16.550ms
  • 🟩 max_rss_usage seen in benchmark [50.841MB; 50.995MB]; SLO is < 53.000MB

djangosimple-span-code-origin

  • 🟩 execution_time seen in benchmark [27.043ms; 27.100ms]; SLO is < 28.200ms
  • 🟩 max_rss_usage seen in benchmark [66.007MB; 66.082MB]; SLO is < 68.000MB

djangosimple-tracer

  • 🟩 execution_time seen in benchmark [21.241ms; 21.309ms]; SLO is < 22.700ms
  • 🟩 max_rss_usage seen in benchmark [63.694MB; 63.787MB]; SLO is < 65.500MB

djangosimple-tracer-and-profiler

  • 🟩 execution_time seen in benchmark [23.825ms; 23.933ms]; SLO is < 24.900ms
  • 🟩 max_rss_usage seen in benchmark [65.019MB; 65.175MB]; SLO is < 67.000MB

djangosimple-tracer-no-caches

  • 🟩 execution_time seen in benchmark [18.853ms; 18.921ms]; SLO is < 19.650ms
  • 🟩 max_rss_usage seen in benchmark [63.694MB; 63.787MB]; SLO is < 65.500MB

djangosimple-tracer-no-databases

  • 🟩 execution_time seen in benchmark [19.148ms; 19.216ms]; SLO is < 20.100ms
  • 🟩 max_rss_usage seen in benchmark [63.694MB; 63.787MB]; SLO is < 65.500MB

djangosimple-tracer-no-middleware

  • 🟩 execution_time seen in benchmark [21.090ms; 21.164ms]; SLO is < 22.500ms
  • 🟩 max_rss_usage seen in benchmark [63.704MB; 63.816MB]; SLO is < 65.500MB

djangosimple-tracer-no-templates

  • 🟩 execution_time seen in benchmark [21.172ms; 21.236ms]; SLO is < 22.250ms
  • 🟩 max_rss_usage seen in benchmark [63.694MB; 63.787MB]; SLO is < 65.500MB

errortrackingdjangosimple-errortracking-enabled-all

  • 🟩 execution_time seen in benchmark [18.546ms; 18.605ms]; SLO is < 19.850ms
  • 🟩 max_rss_usage seen in benchmark [63.701MB; 63.701MB]; SLO is < 65.500MB

errortrackingdjangosimple-errortracking-enabled-user

  • 🟩 execution_time seen in benchmark [18.508ms; 18.566ms]; SLO is < 19.400ms
  • 🟩 max_rss_usage seen in benchmark [63.732MB; 63.867MB]; SLO is < 65.500MB

errortrackingdjangosimple-tracer-enabled

  • 🟩 execution_time seen in benchmark [18.526ms; 18.595ms]; SLO is < 19.450ms
  • 🟩 max_rss_usage seen in benchmark [63.703MB; 63.814MB]; SLO is < 65.500MB

errortrackingflasksqli-errortracking-enabled-all

  • 🟩 execution_time seen in benchmark [2.115ms; 2.121ms]; SLO is < 2.300ms
  • 🟩 max_rss_usage seen in benchmark [51.542MB; 51.677MB]; SLO is < 53.000MB

errortrackingflasksqli-errortracking-enabled-user

  • 🟩 execution_time seen in benchmark [2.114ms; 2.121ms]; SLO is < 2.250ms
  • 🟩 max_rss_usage seen in benchmark [51.558MB; 51.701MB]; SLO is < 53.000MB

errortrackingflasksqli-tracer-enabled

  • 🟩 execution_time seen in benchmark [2.118ms; 2.124ms]; SLO is < 2.300ms
  • 🟩 max_rss_usage seen in benchmark [51.181MB; 51.330MB]; SLO is < 53.000MB

flasksimple-appsec-get

  • 🟩 execution_time seen in benchmark [4.603ms; 4.612ms]; SLO is < 4.750ms
  • 🟩 max_rss_usage seen in benchmark [62.984MB; 63.137MB]; SLO is < 64.000MB

flasksimple-appsec-post

  • 🟩 execution_time seen in benchmark [6.598ms; 6.608ms]; SLO is < 6.750ms
  • 🟩 max_rss_usage seen in benchmark [62.969MB; 63.121MB]; SLO is < 64.000MB

flasksimple-appsec-telemetry

  • 🟩 execution_time seen in benchmark [4.610ms; 4.620ms]; SLO is < 4.750ms
  • 🟩 max_rss_usage seen in benchmark [62.900MB; 63.046MB]; SLO is < 64.000MB

flasksimple-debugger

  • 🟩 execution_time seen in benchmark [1.854ms; 1.857ms]; SLO is < 2.000ms
  • 🟩 max_rss_usage seen in benchmark [42.074MB; 42.074MB]; SLO is < 44.000MB

flasksimple-iast-get

  • 🟩 execution_time seen in benchmark [1.856ms; 1.859ms]; SLO is < 2.000ms
  • 🟩 max_rss_usage seen in benchmark [44.451MB; 44.595MB]; SLO is < 45.000MB

flasksimple-profiler

  • 🟩 execution_time seen in benchmark [1.976ms; 1.984ms]; SLO is < 2.100ms
  • 🟩 max_rss_usage seen in benchmark [43.308MB; 43.515MB]; SLO is < 44.000MB

flasksimple-tracer

  • 🟩 execution_time seen in benchmark [3.382ms; 3.388ms]; SLO is < 3.650ms
  • 🟩 max_rss_usage seen in benchmark [51.299MB; 51.448MB]; SLO is < 53.000MB

flasksqli-appsec-enabled

  • 🟩 execution_time seen in benchmark [3.970ms; 3.980ms]; SLO is < 4.200ms
  • 🟩 max_rss_usage seen in benchmark [63.354MB; 63.497MB]; SLO is < 66.000MB

flasksqli-iast-enabled

  • 🟩 execution_time seen in benchmark [2.561ms; 2.583ms]; SLO is < 2.800ms
  • 🟩 max_rss_usage seen in benchmark [56.508MB; 56.620MB]; SLO is < 58.000MB

flasksqli-tracer-enabled

  • 🟩 execution_time seen in benchmark [2.102ms; 2.108ms]; SLO is < 2.250ms
  • 🟩 max_rss_usage seen in benchmark [51.181MB; 51.330MB]; SLO is < 53.000MB

httppropagationextract-all_styles_all_headers

  • 🟩 execution_time seen in benchmark [61.599µs; 62.067µs]; SLO is < 70.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationextract-b3_headers

  • 🟩 execution_time seen in benchmark [9.903µs; 9.949µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.129MB; 29.264MB]; SLO is < 31.000MB

httppropagationextract-b3_single_headers

  • 🟩 execution_time seen in benchmark [9.011µs; 9.100µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.084MB; 29.152MB]; SLO is < 31.000MB

httppropagationextract-datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match

  • 🟩 execution_time seen in benchmark [52.418µs; 52.551µs]; SLO is < 60.000µs
  • 🟩 max_rss_usage seen in benchmark [29.144MB; 29.287MB]; SLO is < 31.000MB

httppropagationextract-datadog_tracecontext_tracestate_propagated_on_trace_id_match

  • 🟩 execution_time seen in benchmark [54.487µs; 54.809µs]; SLO is < 60.000µs
  • 🟩 max_rss_usage seen in benchmark [29.101MB; 29.213MB]; SLO is < 31.000MB

httppropagationextract-empty_headers

  • 🟩 execution_time seen in benchmark [1.596µs; 1.614µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationextract-full_t_id_datadog_headers

  • 🟩 execution_time seen in benchmark [17.959µs; 18.115µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.083MB; 29.231MB]; SLO is < 31.000MB

httppropagationextract-invalid_priority_header

  • 🟩 execution_time seen in benchmark [6.527µs; 6.569µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationextract-invalid_span_id_header

  • 🟩 execution_time seen in benchmark [6.537µs; 6.573µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.101MB; 29.213MB]; SLO is < 31.000MB

httppropagationextract-invalid_tags_header

  • 🟩 execution_time seen in benchmark [6.510µs; 6.539µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationextract-invalid_trace_id_header

  • 🟩 execution_time seen in benchmark [6.467µs; 6.515µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationextract-large_header_no_matches

  • 🟩 execution_time seen in benchmark [27.579µs; 27.698µs]; SLO is < 30.000µs
  • 🟩 max_rss_usage seen in benchmark [29.097MB; 29.256MB]; SLO is < 31.000MB

httppropagationextract-large_valid_headers_all

  • 🟩 execution_time seen in benchmark [28.469µs; 28.559µs]; SLO is < 40.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationextract-medium_header_no_matches

  • 🟩 execution_time seen in benchmark [9.827µs; 9.872µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationextract-medium_valid_headers_all

  • 🟩 execution_time seen in benchmark [11.347µs; 11.417µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.101MB; 29.213MB]; SLO is < 31.000MB

httppropagationextract-none_propagation_style

  • 🟩 execution_time seen in benchmark [1.690µs; 1.702µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.101MB; 29.213MB]; SLO is < 31.000MB

httppropagationextract-tracecontext_headers

  • 🟩 execution_time seen in benchmark [27.381µs; 27.596µs]; SLO is < 30.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationextract-valid_headers_all

  • 🟩 execution_time seen in benchmark [6.556µs; 6.609µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.129MB; 29.264MB]; SLO is < 31.000MB

httppropagationextract-valid_headers_basic

  • 🟩 execution_time seen in benchmark [6.058µs; 6.086µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.084MB; 29.152MB]; SLO is < 31.000MB

httppropagationextract-wsgi_empty_headers

  • 🟩 execution_time seen in benchmark [1.597µs; 1.608µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.069MB; 29.205MB]; SLO is < 31.000MB

httppropagationextract-wsgi_invalid_priority_header

  • 🟩 execution_time seen in benchmark [6.642µs; 6.699µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.129MB; 29.264MB]; SLO is < 31.000MB

httppropagationextract-wsgi_invalid_span_id_header

  • 🟩 execution_time seen in benchmark [1.593µs; 1.605µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationextract-wsgi_invalid_tags_header

  • 🟩 execution_time seen in benchmark [6.560µs; 6.598µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.101MB; 29.213MB]; SLO is < 31.000MB

httppropagationextract-wsgi_invalid_trace_id_header

  • 🟩 execution_time seen in benchmark [6.664µs; 6.707µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.084MB; 29.152MB]; SLO is < 31.000MB

httppropagationextract-wsgi_large_header_no_matches

  • 🟩 execution_time seen in benchmark [28.756µs; 28.863µs]; SLO is < 40.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationextract-wsgi_large_valid_headers_all

  • 🟩 execution_time seen in benchmark [29.819µs; 30.033µs]; SLO is < 40.000µs
  • 🟩 max_rss_usage seen in benchmark [29.129MB; 29.264MB]; SLO is < 31.000MB

httppropagationextract-wsgi_medium_header_no_matches

  • 🟩 execution_time seen in benchmark [10.117µs; 10.170µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.129MB; 29.264MB]; SLO is < 31.000MB

httppropagationextract-wsgi_medium_valid_headers_all

  • 🟩 execution_time seen in benchmark [11.495µs; 11.568µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationextract-wsgi_valid_headers_all

  • 🟩 execution_time seen in benchmark [6.521µs; 6.563µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.179MB; 29.332MB]; SLO is < 31.000MB

httppropagationextract-wsgi_valid_headers_basic

  • 🟩 execution_time seen in benchmark [6.147µs; 6.197µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.129MB; 29.264MB]; SLO is < 31.000MB

httppropagationinject-ids_only

  • 🟩 execution_time seen in benchmark [11.875µs; 11.978µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationinject-with_all

  • 🟩 execution_time seen in benchmark [24.624µs; 24.873µs]; SLO is < 30.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationinject-with_dd_origin

  • 🟩 execution_time seen in benchmark [16.776µs; 16.897µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationinject-with_priority_and_origin

  • 🟩 execution_time seen in benchmark [18.874µs; 19.003µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.084MB; 29.152MB]; SLO is < 31.000MB

httppropagationinject-with_sampling_priority

  • 🟩 execution_time seen in benchmark [14.143µs; 14.250µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.114MB; 29.239MB]; SLO is < 31.000MB

httppropagationinject-with_tags

  • 🟩 execution_time seen in benchmark [18.100µs; 18.264µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.091MB; 29.184MB]; SLO is < 31.000MB

httppropagationinject-with_tags_invalid

  • 🟩 execution_time seen in benchmark [20.674µs; 20.823µs]; SLO is < 30.000µs
  • 🟩 max_rss_usage seen in benchmark [29.101MB; 29.213MB]; SLO is < 31.000MB

httppropagationinject-with_tags_max_size

  • 🟩 execution_time seen in benchmark [19.197µs; 19.367µs]; SLO is < 30.000µs
  • 🟩 max_rss_usage seen in benchmark [29.129MB; 29.264MB]; SLO is < 31.000MB

iast_aspects-re_expand_aspect

  • 🟩 execution_time seen in benchmark [33.031µs; 33.267µs]; SLO is < 40.000µs
  • 🟩 max_rss_usage seen in benchmark [34.606MB; 34.718MB]; SLO is < 35.000MB

iast_aspects-re_expand_noaspect

  • 🟩 execution_time seen in benchmark [30.056µs; 30.352µs]; SLO is < 40.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_findall_aspect

  • 🟩 execution_time seen in benchmark [3.695µs; 3.715µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iast_aspects-re_findall_noaspect

  • 🟩 execution_time seen in benchmark [1.404µs; 1.416µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_finditer_aspect

  • 🟩 execution_time seen in benchmark [5.154µs; 5.186µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iast_aspects-re_finditer_noaspect

  • 🟩 execution_time seen in benchmark [1.416µs; 1.428µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iast_aspects-re_fullmatch_aspect

  • 🟩 execution_time seen in benchmark [3.390µs; 3.417µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_fullmatch_noaspect

  • 🟩 execution_time seen in benchmark [1.278µs; 1.298µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iast_aspects-re_group_aspect

  • 🟩 execution_time seen in benchmark [3.468µs; 3.500µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iast_aspects-re_group_noaspect

  • 🟩 execution_time seen in benchmark [1.614µs; 1.631µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iast_aspects-re_groups_aspect

  • 🟩 execution_time seen in benchmark [3.634µs; 3.673µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.606MB; 34.718MB]; SLO is < 35.000MB

iast_aspects-re_groups_noaspect

  • 🟩 execution_time seen in benchmark [1.679µs; 1.693µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_match_aspect

  • 🟩 execution_time seen in benchmark [3.429µs; 3.461µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_match_noaspect

  • 🟩 execution_time seen in benchmark [1.292µs; 1.303µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_search_aspect

  • 🟩 execution_time seen in benchmark [3.299µs; 3.328µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_search_noaspect

  • 🟩 execution_time seen in benchmark [1.193µs; 1.202µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iast_aspects-re_sub_aspect

  • 🟩 execution_time seen in benchmark [4.692µs; 4.716µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iast_aspects-re_sub_noaspect

  • 🟩 execution_time seen in benchmark [1.537µs; 1.560µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iast_aspects-re_subn_aspect

  • 🟩 execution_time seen in benchmark [4.876µs; 4.917µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.606MB; 34.718MB]; SLO is < 35.500MB

iast_aspects-re_subn_noaspect

  • 🟩 execution_time seen in benchmark [1.615µs; 1.635µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-add_aspect

  • 🟩 execution_time seen in benchmark [327.296ns; 331.041ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-add_inplace_aspect

  • 🟩 execution_time seen in benchmark [327.141ns; 332.268ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-add_inplace_noaspect

  • 🟩 execution_time seen in benchmark [316.010ns; 322.503ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-add_noaspect

  • 🟩 execution_time seen in benchmark [273.865ns; 276.973ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-bytearray_aspect

  • 🟩 execution_time seen in benchmark [1.843µs; 1.857µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-bytearray_extend_aspect

  • 🟩 execution_time seen in benchmark [1.367µs; 1.388µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-bytearray_extend_noaspect

  • 🟩 execution_time seen in benchmark [607.357ns; 612.029ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-bytearray_noaspect

  • 🟩 execution_time seen in benchmark [478.899ns; 485.573ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-bytes_aspect

  • 🟩 execution_time seen in benchmark [1.850µs; 1.864µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-bytes_noaspect

  • 🟩 execution_time seen in benchmark [490.828ns; 494.253ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-bytesio_aspect

  • 🟩 execution_time seen in benchmark [1.864µs; 1.878µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-bytesio_noaspect

  • 🟩 execution_time seen in benchmark [490.507ns; 496.002ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-capitalize_aspect

  • 🟩 execution_time seen in benchmark [734.763ns; 743.242ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-capitalize_noaspect

  • 🟩 execution_time seen in benchmark [428.866ns; 437.358ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-casefold_aspect

  • 🟩 execution_time seen in benchmark [727.595ns; 732.724ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-casefold_noaspect

  • 🟩 execution_time seen in benchmark [365.958ns; 370.244ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-decode_aspect

  • 🟩 execution_time seen in benchmark [717.082ns; 722.226ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-decode_noaspect

  • 🟩 execution_time seen in benchmark [412.941ns; 416.819ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-encode_aspect

  • 🟩 execution_time seen in benchmark [705.363ns; 710.140ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-encode_noaspect

  • 🟩 execution_time seen in benchmark [399.749ns; 403.216ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-format_aspect

  • 🟩 execution_time seen in benchmark [3.431µs; 3.453µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-format_map_aspect

  • 🟩 execution_time seen in benchmark [3.209µs; 3.236µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-format_map_noaspect

  • 🟩 execution_time seen in benchmark [767.329ns; 772.394ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-format_noaspect

  • 🟩 execution_time seen in benchmark [594.691ns; 598.970ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-index_aspect

  • 🟩 execution_time seen in benchmark [340.828ns; 344.914ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-index_noaspect

  • 🟩 execution_time seen in benchmark [277.118ns; 282.452ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-join_aspect

  • 🟩 execution_time seen in benchmark [1.217µs; 1.225µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-join_noaspect

  • 🟩 execution_time seen in benchmark [484.360ns; 487.927ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-ljust_aspect

  • 🟩 execution_time seen in benchmark [10.338µs; 10.391µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [34.634MB; 34.769MB]; SLO is < 35.500MB

iastaspects-ljust_noaspect

  • 🟩 execution_time seen in benchmark [401.270ns; 405.328ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.500MB

iastaspects-lower_aspect

  • 🟩 execution_time seen in benchmark [2.229µs; 2.255µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.500MB

iastaspects-lower_noaspect

  • 🟩 execution_time seen in benchmark [365.194ns; 369.715ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-lstrip_aspect

  • 🟩 execution_time seen in benchmark [10.400µs; 10.454µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [34.684MB; 34.837MB]; SLO is < 35.500MB

iastaspects-lstrip_noaspect

  • 🟩 execution_time seen in benchmark [376.278ns; 380.987ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-modulo_aspect

  • 🟩 execution_time seen in benchmark [578.728ns; 589.150ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-modulo_aspect_for_bytearray_bytearray

  • 🟩 execution_time seen in benchmark [1.296µs; 1.313µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-modulo_aspect_for_bytes

  • 🟩 execution_time seen in benchmark [747.090ns; 753.539ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-modulo_aspect_for_bytes_bytearray

  • 🟩 execution_time seen in benchmark [987.654ns; 1004.926ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-modulo_noaspect

  • 🟩 execution_time seen in benchmark [625.376ns; 631.063ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-replace_aspect

  • 🟩 execution_time seen in benchmark [4.746µs; 4.787µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-replace_noaspect

  • 🟩 execution_time seen in benchmark [453.885ns; 458.106ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.500MB

iastaspects-repr_aspect

  • 🟩 execution_time seen in benchmark [900.004ns; 906.241ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-repr_noaspect

  • 🟩 execution_time seen in benchmark [412.207ns; 419.879ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-rstrip_aspect

  • 🟩 execution_time seen in benchmark [10.273µs; 10.324µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [34.619MB; 34.744MB]; SLO is < 35.500MB

iastaspects-rstrip_noaspect

  • 🟩 execution_time seen in benchmark [371.388ns; 376.229ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-slice_aspect

  • 🟩 execution_time seen in benchmark [476.827ns; 481.081ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-slice_noaspect

  • 🟩 execution_time seen in benchmark [444.340ns; 447.717ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-stringio_aspect

  • 🟩 execution_time seen in benchmark [2.173µs; 2.190µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-stringio_noaspect

  • 🟩 execution_time seen in benchmark [710.574ns; 717.690ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-strip_aspect

  • 🟩 execution_time seen in benchmark [10.412µs; 10.459µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [34.684MB; 34.837MB]; SLO is < 35.500MB

iastaspects-strip_noaspect

  • 🟩 execution_time seen in benchmark [381.714ns; 384.314ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-swapcase_aspect

  • 🟩 execution_time seen in benchmark [2.446µs; 2.472µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-swapcase_noaspect

  • 🟩 execution_time seen in benchmark [535.159ns; 540.121ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-title_aspect

  • 🟩 execution_time seen in benchmark [2.385µs; 2.397µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-title_noaspect

  • 🟩 execution_time seen in benchmark [499.589ns; 504.148ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspects-translate_aspect

  • 🟩 execution_time seen in benchmark [3.329µs; 3.354µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspects-translate_noaspect

  • 🟩 execution_time seen in benchmark [1.036µs; 1.042µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspects-upper_aspect

  • 🟩 execution_time seen in benchmark [2.339µs; 2.377µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.606MB; 34.718MB]; SLO is < 35.000MB

iastaspects-upper_noaspect

  • 🟩 execution_time seen in benchmark [367.212ns; 374.410ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspectsospath-ospathbasename_aspect

  • 🟩 execution_time seen in benchmark [4.220µs; 4.249µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspectsospath-ospathbasename_noaspect

  • 🟩 execution_time seen in benchmark [1.088µs; 1.099µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspectsospath-ospathjoin_aspect

  • 🟩 execution_time seen in benchmark [6.104µs; 6.147µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspectsospath-ospathjoin_noaspect

  • 🟩 execution_time seen in benchmark [2.285µs; 2.301µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspectsospath-ospathnormcase_aspect

  • 🟩 execution_time seen in benchmark [3.492µs; 3.520µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspectsospath-ospathnormcase_noaspect

  • 🟩 execution_time seen in benchmark [566.662ns; 573.249ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastaspectsospath-ospathsplit_aspect

  • 🟩 execution_time seen in benchmark [4.857µs; 4.896µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspectsospath-ospathsplit_noaspect

  • 🟩 execution_time seen in benchmark [1.575µs; 1.585µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspectsospath-ospathsplitdrive_aspect

  • 🟩 execution_time seen in benchmark [3.672µs; 3.697µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.619MB; 34.744MB]; SLO is < 35.000MB

iastaspectsospath-ospathsplitdrive_noaspect

  • 🟩 execution_time seen in benchmark [696.786ns; 701.651ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspectsospath-ospathsplitext_aspect

  • 🟩 execution_time seen in benchmark [4.563µs; 4.597µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspectsospath-ospathsplitext_noaspect

  • 🟩 execution_time seen in benchmark [1.369µs; 1.375µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspectssplit-rsplit_aspect

  • 🟩 execution_time seen in benchmark [1.454µs; 1.473µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspectssplit-rsplit_noaspect

  • 🟩 execution_time seen in benchmark [575.819ns; 582.163ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspectssplit-split_aspect

  • 🟩 execution_time seen in benchmark [1.439µs; 1.456µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspectssplit-split_noaspect

  • 🟩 execution_time seen in benchmark [566.355ns; 571.239ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.589MB; 34.657MB]; SLO is < 35.000MB

iastaspectssplit-splitlines_aspect

  • 🟩 execution_time seen in benchmark [1.413µs; 1.428µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastaspectssplit-splitlines_noaspect

  • 🟩 execution_time seen in benchmark [579.357ns; 584.996ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.000MB

iastpropagation-no-propagation

  • 🟩 execution_time seen in benchmark [48.905µs; 49.017µs]; SLO is < 60.000µs
  • 🟩 max_rss_usage seen in benchmark [34.603MB; 34.603MB]; SLO is < 35.500MB

iastpropagation-propagation_enabled

  • 🟩 execution_time seen in benchmark [144.188µs; 145.088µs]; SLO is < 160.000µs
  • 🟩 max_rss_usage seen in benchmark [34.619MB; 34.744MB]; SLO is < 35.500MB

iastpropagation-propagation_enabled_100

  • 🟩 execution_time seen in benchmark [1.575ms; 1.587ms]; SLO is < 1.800ms
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.000MB

iastpropagation-propagation_enabled_1000

  • 🟩 execution_time seen in benchmark [29.669ms; 29.854ms]; SLO is < 30.550ms
  • 🟩 max_rss_usage seen in benchmark [34.596MB; 34.689MB]; SLO is < 35.500MB

otelsdkspan-add-event

  • 🟩 execution_time seen in benchmark [40.293ms; 40.506ms]; SLO is < 42.000ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-add-link

  • 🟩 execution_time seen in benchmark [36.106ms; 36.276ms]; SLO is < 38.550ms
  • 🟩 max_rss_usage seen in benchmark [31.797MB; 31.865MB]; SLO is < 35.000MB

otelsdkspan-add-metrics

  • 🟩 execution_time seen in benchmark [219.249ms; 220.852ms]; SLO is < 232.000ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-add-tags

  • 🟩 execution_time seen in benchmark [212.227ms; 214.126ms]; SLO is < 221.600ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-get-context

  • 🟩 execution_time seen in benchmark [29.662ms; 29.866ms]; SLO is < 31.300ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-is-recording

  • 🟩 execution_time seen in benchmark [29.144ms; 29.342ms]; SLO is < 31.000ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-record-exception

  • 🟩 execution_time seen in benchmark [63.982ms; 64.241ms]; SLO is < 65.850ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-set-status

  • 🟩 execution_time seen in benchmark [31.821ms; 32.012ms]; SLO is < 34.150ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-start

  • 🟩 execution_time seen in benchmark [28.749ms; 28.973ms]; SLO is < 30.150ms
  • 🟩 max_rss_usage seen in benchmark [31.843MB; 31.937MB]; SLO is < 35.000MB

otelsdkspan-start-finish

  • 🟩 execution_time seen in benchmark [34.089ms; 34.259ms]; SLO is < 35.350ms
  • 🟩 max_rss_usage seen in benchmark [31.836MB; 31.904MB]; SLO is < 35.000MB

otelsdkspan-start-finish-telemetry

  • 🟩 execution_time seen in benchmark [33.875ms; 34.150ms]; SLO is < 35.450ms
  • 🟩 max_rss_usage seen in benchmark [31.850MB; 31.850MB]; SLO is < 35.000MB

otelsdkspan-update-name

  • 🟩 execution_time seen in benchmark [31.027ms; 31.199ms]; SLO is < 33.400ms
  • 🟩 max_rss_usage seen in benchmark [31.797MB; 31.865MB]; SLO is < 35.000MB

otelspan-add-event

  • 🟩 execution_time seen in benchmark [43.621ms; 43.814ms]; SLO is < 47.150ms
  • 🟩 max_rss_usage seen in benchmark [42.160MB; 42.313MB]; SLO is < 42.500MB

otelspan-add-metrics

  • 🟩 execution_time seen in benchmark [317.656ms; 320.308ms]; SLO is < 344.800ms
  • 🟩 max_rss_usage seen in benchmark [559.370MB; 559.370MB]; SLO is < 562.000MB

otelspan-add-tags

  • 🟩 execution_time seen in benchmark [286.745ms; 289.580ms]; SLO is < 314.000ms
  • 🟩 max_rss_usage seen in benchmark [560.534MB; 560.534MB]; SLO is < 563.500MB

otelspan-get-context

  • 🟩 execution_time seen in benchmark [83.996ms; 85.185ms]; SLO is < 92.350ms
  • 🟩 max_rss_usage seen in benchmark [37.135MB; 37.287MB]; SLO is < 38.000MB

otelspan-is-recording

  • 🟩 execution_time seen in benchmark [41.387ms; 41.571ms]; SLO is < 44.500ms
  • 🟩 max_rss_usage seen in benchmark [41.372MB; 41.530MB]; SLO is < 42.000MB

otelspan-record-exception

  • 🟩 execution_time seen in benchmark [60.106ms; 61.246ms]; SLO is < 67.650ms
  • 🟩 max_rss_usage seen in benchmark [37.657MB; 37.788MB]; SLO is < 38.000MB

otelspan-set-status

  • 🟩 execution_time seen in benchmark [47.319ms; 47.513ms]; SLO is < 50.400ms
  • 🟩 max_rss_usage seen in benchmark [41.469MB; 41.624MB]; SLO is < 42.000MB

otelspan-start

  • 🟩 execution_time seen in benchmark [40.699ms; 40.877ms]; SLO is < 43.450ms
  • 🟩 max_rss_usage seen in benchmark [41.457MB; 41.614MB]; SLO is < 42.000MB

otelspan-start-finish

  • 🟩 execution_time seen in benchmark [80.851ms; 81.194ms]; SLO is < 86.000ms
  • 🟩 max_rss_usage seen in benchmark [31.557MB; 31.712MB]; SLO is < 32.000MB

otelspan-start-finish-telemetry

  • 🟩 execution_time seen in benchmark [82.139ms; 82.324ms]; SLO is < 86.000ms
  • 🟩 max_rss_usage seen in benchmark [31.576MB; 31.732MB]; SLO is < 32.000MB

otelspan-update-name

  • 🟩 execution_time seen in benchmark [42.426ms; 42.621ms]; SLO is < 45.150ms
  • 🟩 max_rss_usage seen in benchmark [41.697MB; 41.822MB]; SLO is < 42.500MB

packagespackageforrootmodulemapping-cache_off

  • 🟩 execution_time seen in benchmark [342.913ms; 343.823ms]; SLO is < 354.300ms
  • 🟩 max_rss_usage seen in benchmark [35.372MB; 35.439MB]; SLO is < 38.000MB

packagespackageforrootmodulemapping-cache_on

  • 🟩 execution_time seen in benchmark [384.019ns; 387.415ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.142MB; 34.281MB]; SLO is < 38.000MB

packagesupdateimporteddependencies-import_many

  • 🟩 execution_time seen in benchmark [154.529µs; 155.257µs]; SLO is < 170.000µs
  • 🟩 max_rss_usage seen in benchmark [34.275MB; 34.281MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_many_cached

  • 🟩 execution_time seen in benchmark [120.377µs; 120.871µs]; SLO is < 130.000µs
  • 🟩 max_rss_usage seen in benchmark [34.152MB; 34.230MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_many_stdlib

  • 🟩 execution_time seen in benchmark [1.605ms; 1.629ms]; SLO is < 1.750ms
  • 🟩 max_rss_usage seen in benchmark [34.377MB; 34.388MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_many_stdlib_cached

  • 🟩 execution_time seen in benchmark [953.007µs; 973.527µs]; SLO is < 1.100ms
  • 🟩 max_rss_usage seen in benchmark [34.313MB; 34.385MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_many_unknown

  • 🟩 execution_time seen in benchmark [825.478µs; 829.342µs]; SLO is < 890.000µs
  • 🟩 max_rss_usage seen in benchmark [34.307MB; 34.385MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_many_unknown_cached

  • 🟩 execution_time seen in benchmark [787.697µs; 791.887µs]; SLO is < 870.000µs
  • 🟩 max_rss_usage seen in benchmark [34.284MB; 34.294MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_one

  • 🟩 execution_time seen in benchmark [19.793µs; 19.952µs]; SLO is < 30.000µs
  • 🟩 max_rss_usage seen in benchmark [34.163MB; 34.223MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_one_cache

  • 🟩 execution_time seen in benchmark [6.276µs; 6.308µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.118MB; 34.174MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_one_stdlib

  • 🟩 execution_time seen in benchmark [18.563µs; 18.700µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [34.141MB; 34.176MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_one_stdlib_cache

  • 🟩 execution_time seen in benchmark [6.272µs; 6.328µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.171MB; 34.208MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_one_unknown

  • 🟩 execution_time seen in benchmark [45.479µs; 46.009µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [34.149MB; 34.223MB]; SLO is < 35.500MB

packagesupdateimporteddependencies-import_one_unknown_cache

  • 🟩 execution_time seen in benchmark [6.252µs; 6.288µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [34.168MB; 34.217MB]; SLO is < 35.500MB

ratelimiter-defaults

  • 🟩 execution_time seen in benchmark [2.353µs; 2.369µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [28.619MB; 28.712MB]; SLO is < 31.000MB

ratelimiter-high_rate_limit

  • 🟩 execution_time seen in benchmark [2.408µs; 2.431µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [28.655MB; 28.754MB]; SLO is < 31.000MB

ratelimiter-long_window

  • 🟩 execution_time seen in benchmark [2.344µs; 2.362µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [28.697MB; 28.791MB]; SLO is < 31.000MB

ratelimiter-low_rate_limit

  • 🟩 execution_time seen in benchmark [2.359µs; 2.376µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [28.597MB; 28.733MB]; SLO is < 31.000MB

ratelimiter-no_rate_limit

  • 🟩 execution_time seen in benchmark [820.876ns; 829.851ns]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [28.665MB; 28.784MB]; SLO is < 31.000MB

ratelimiter-short_window

  • 🟩 execution_time seen in benchmark [2.469µs; 2.484µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [28.708MB; 28.819MB]; SLO is < 31.000MB

recursivecomputation-deep

  • 🟩 execution_time seen in benchmark [308.550ms; 309.243ms]; SLO is < 320.950ms
  • 🟩 max_rss_usage seen in benchmark [30.278MB; 30.278MB]; SLO is < 31.000MB

recursivecomputation-deep-profiled

  • 🟩 execution_time seen in benchmark [343.371ms; 344.350ms]; SLO is < 359.150ms
  • 🟩 max_rss_usage seen in benchmark [34.523MB; 34.643MB]; SLO is < 35.500MB

recursivecomputation-medium

  • 🟩 execution_time seen in benchmark [7.019ms; 7.049ms]; SLO is < 7.400ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

recursivecomputation-shallow

  • 🟩 execution_time seen in benchmark [943.694µs; 949.816µs]; SLO is < 1.050ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

samplingrules-average_match

  • 🟩 execution_time seen in benchmark [332.703µs; 334.533µs]; SLO is < 350.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

samplingrules-high_match

  • 🟩 execution_time seen in benchmark [500.569µs; 504.374µs]; SLO is < 550.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

samplingrules-low_match

  • 🟩 execution_time seen in benchmark [168.351µs; 169.130µs]; SLO is < 190.000µs
  • 🟩 max_rss_usage seen in benchmark [431.420MB; 431.452MB]; SLO is < 432.500MB

samplingrules-very_low_match

  • 🟩 execution_time seen in benchmark [8.578ms; 8.628ms]; SLO is < 9.150ms
  • 🟩 max_rss_usage seen in benchmark [54.814MB; 54.863MB]; SLO is < 55.000MB

sethttpmeta-all-disabled

  • 🟩 execution_time seen in benchmark [12.348µs; 12.455µs]; SLO is < 20.000µs
  • 🟩 max_rss_usage seen in benchmark [29.494MB; 29.606MB]; SLO is < 31.000MB

sethttpmeta-all-enabled

  • 🟩 execution_time seen in benchmark [42.582µs; 42.914µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.477MB; 29.545MB]; SLO is < 31.000MB

sethttpmeta-collectipvariant_exists

  • 🟩 execution_time seen in benchmark [42.585µs; 42.774µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.477MB; 29.545MB]; SLO is < 31.000MB

sethttpmeta-no-collectipvariant

  • 🟩 execution_time seen in benchmark [42.133µs; 42.338µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.484MB; 29.577MB]; SLO is < 31.000MB

sethttpmeta-no-useragentvariant

  • 🟩 execution_time seen in benchmark [40.888µs; 41.102µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.491MB; 29.491MB]; SLO is < 31.000MB

sethttpmeta-obfuscation-no-query

  • 🟩 execution_time seen in benchmark [42.528µs; 42.784µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.484MB; 29.577MB]; SLO is < 31.000MB

sethttpmeta-obfuscation-regular-case-explicit-query

  • 🟩 execution_time seen in benchmark [79.067µs; 79.397µs]; SLO is < 90.000µs
  • 🟩 max_rss_usage seen in benchmark [29.870MB; 29.938MB]; SLO is < 31.000MB

sethttpmeta-obfuscation-regular-case-implicit-query

  • 🟩 execution_time seen in benchmark [79.291µs; 79.606µs]; SLO is < 90.000µs
  • 🟩 max_rss_usage seen in benchmark [29.888MB; 29.999MB]; SLO is < 31.000MB

sethttpmeta-obfuscation-send-querystring-disabled

  • 🟩 execution_time seen in benchmark [156.801µs; 157.259µs]; SLO is < 170.000µs
  • 🟩 max_rss_usage seen in benchmark [29.870MB; 29.938MB]; SLO is < 31.000MB

sethttpmeta-obfuscation-worst-case-explicit-query

  • 🟩 execution_time seen in benchmark [151.014µs; 151.310µs]; SLO is < 160.000µs
  • 🟩 max_rss_usage seen in benchmark [29.884MB; 29.884MB]; SLO is < 31.000MB

sethttpmeta-obfuscation-worst-case-implicit-query

  • 🟩 execution_time seen in benchmark [157.264µs; 158.670µs]; SLO is < 170.000µs
  • 🟩 max_rss_usage seen in benchmark [29.870MB; 29.938MB]; SLO is < 31.000MB

sethttpmeta-useragentvariant_exists_1

  • 🟩 execution_time seen in benchmark [41.464µs; 41.671µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.484MB; 29.577MB]; SLO is < 31.000MB

sethttpmeta-useragentvariant_exists_2

  • 🟩 execution_time seen in benchmark [42.509µs; 42.747µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.494MB; 29.606MB]; SLO is < 31.000MB

sethttpmeta-useragentvariant_exists_3

  • 🟩 execution_time seen in benchmark [42.476µs; 42.726µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.484MB; 29.577MB]; SLO is < 31.000MB

sethttpmeta-useragentvariant_not_exists_1

  • 🟩 execution_time seen in benchmark [41.513µs; 41.790µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.507MB; 29.632MB]; SLO is < 31.000MB

sethttpmeta-useragentvariant_not_exists_2

  • 🟩 execution_time seen in benchmark [42.228µs; 42.472µs]; SLO is < 50.000µs
  • 🟩 max_rss_usage seen in benchmark [29.484MB; 29.577MB]; SLO is < 31.000MB

span-add-event

  • 🟩 execution_time seen in benchmark [22.816ms; 23.248ms]; SLO is < 26.200ms
  • 🟩 max_rss_usage seen in benchmark [48.472MB; 48.493MB]; SLO is < 49.000MB

span-add-metrics

  • 🟩 execution_time seen in benchmark [89.610ms; 90.842ms]; SLO is < 98.350ms
  • 🟩 max_rss_usage seen in benchmark [614.362MB; 614.427MB]; SLO is < 961.000MB

span-add-tags

  • 🟩 execution_time seen in benchmark [147.661ms; 149.972ms]; SLO is < 168.550ms
  • 🟩 max_rss_usage seen in benchmark [614.158MB; 614.337MB]; SLO is < 962.500MB

span-get-context

  • 🟩 execution_time seen in benchmark [21.498ms; 21.915ms]; SLO is < 23.700ms
  • 🟩 max_rss_usage seen in benchmark [47.306MB; 47.310MB]; SLO is < 47.500MB

span-is-recording

  • 🟩 execution_time seen in benchmark [21.405ms; 21.824ms]; SLO is < 23.900ms
  • 🟩 max_rss_usage seen in benchmark [47.292MB; 47.311MB]; SLO is < 47.500MB

span-record-exception

  • 🟩 execution_time seen in benchmark [40.829ms; 41.029ms]; SLO is < 44.500ms
  • 🟩 max_rss_usage seen in benchmark [40.284MB; 40.341MB]; SLO is < 40.500MB

span-set-status

  • 🟩 execution_time seen in benchmark [22.893ms; 23.223ms]; SLO is < 26.000ms
  • 🟩 max_rss_usage seen in benchmark [47.287MB; 47.310MB]; SLO is < 47.500MB

span-start

  • 🟩 execution_time seen in benchmark [20.948ms; 21.305ms]; SLO is < 23.500ms
  • 🟩 max_rss_usage seen in benchmark [47.266MB; 47.297MB]; SLO is < 47.500MB

span-start-finish

  • 🟩 execution_time seen in benchmark [49.914ms; 50.428ms]; SLO is < 52.500ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

span-start-finish-telemetry

  • 🟩 execution_time seen in benchmark [51.192ms; 51.748ms]; SLO is < 55.300ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

span-start-finish-traceid128

  • 🟩 execution_time seen in benchmark [53.143ms; 53.335ms]; SLO is < 56.050ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

span-start-traceid128

  • 🟩 execution_time seen in benchmark [21.511ms; 21.894ms]; SLO is < 24.600ms
  • 🟩 max_rss_usage seen in benchmark [47.313MB; 47.324MB]; SLO is < 47.500MB

span-update-name

  • 🟩 execution_time seen in benchmark [21.672ms; 22.000ms]; SLO is < 24.100ms
  • 🟩 max_rss_usage seen in benchmark [47.798MB; 47.816MB]; SLO is < 48.000MB

telemetryaddmetric-1-count-metric-1-times

  • 🟩 execution_time seen in benchmark [3.180µs; 3.221µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-1-count-metrics-100-times

  • 🟩 execution_time seen in benchmark [216.196µs; 217.734µs]; SLO is < 240.000µs
  • 🟩 max_rss_usage seen in benchmark [29.027MB; 29.090MB]; SLO is < 31.000MB

telemetryaddmetric-1-distribution-metric-1-times

  • 🟩 execution_time seen in benchmark [2.896µs; 2.906µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-1-distribution-metrics-100-times

  • 🟩 execution_time seen in benchmark [192.389µs; 193.774µs]; SLO is < 210.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-1-gauge-metric-1-times

  • 🟩 execution_time seen in benchmark [2.254µs; 2.283µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-1-gauge-metrics-100-times

  • 🟩 execution_time seen in benchmark [122.424µs; 122.735µs]; SLO is < 140.000µs
  • 🟩 max_rss_usage seen in benchmark [29.027MB; 29.090MB]; SLO is < 31.000MB

telemetryaddmetric-1-rate-metric-1-times

  • 🟩 execution_time seen in benchmark [3.218µs; 3.271µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-1-rate-metrics-100-times

  • 🟩 execution_time seen in benchmark [214.733µs; 215.853µs]; SLO is < 230.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-100-count-metrics-100-times

  • 🟩 execution_time seen in benchmark [21.299ms; 21.363ms]; SLO is < 22.500ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-100-distribution-metrics-100-times

  • 🟩 execution_time seen in benchmark [1.998ms; 2.006ms]; SLO is < 2.100ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-100-gauge-metrics-100-times

  • 🟩 execution_time seen in benchmark [1.266ms; 1.270ms]; SLO is < 1.400ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-100-rate-metrics-100-times

  • 🟩 execution_time seen in benchmark [2.194ms; 2.205ms]; SLO is < 2.400ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-flush-1-metric

  • 🟩 execution_time seen in benchmark [4.348µs; 4.418µs]; SLO is < 10.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-flush-100-metrics

  • 🟩 execution_time seen in benchmark [179.392µs; 179.802µs]; SLO is < 200.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

telemetryaddmetric-flush-1000-metrics

  • 🟩 execution_time seen in benchmark [2.180ms; 2.192ms]; SLO is < 2.350ms
  • 🟩 max_rss_usage seen in benchmark [30.278MB; 30.278MB]; SLO is < 31.000MB

tracer-large

  • 🟩 execution_time seen in benchmark [29.551ms; 29.906ms]; SLO is < 32.950ms
  • 🟩 max_rss_usage seen in benchmark [30.278MB; 30.278MB]; SLO is < 31.000MB

tracer-medium

  • 🟩 execution_time seen in benchmark [2.899ms; 2.924ms]; SLO is < 3.200ms
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

tracer-small

  • 🟩 execution_time seen in benchmark [329.570µs; 332.153µs]; SLO is < 370.000µs
  • 🟩 max_rss_usage seen in benchmark [29.098MB; 29.098MB]; SLO is < 31.000MB

Legend:

  • 🟩 pass
  • 🟥 breach
  • 🟨 warning
  • (unstable) unstable

Note: All comparisons are against the mean unless a different statistic (e.g., p95) is explicitly shown.

@vitor-de-araujo vitor-de-araujo requested a review from gnufede July 18, 2025 15:55
@vitor-de-araujo vitor-de-araujo marked this pull request as ready for review July 21, 2025 14:47
@vitor-de-araujo vitor-de-araujo requested a review from a team as a code owner July 21, 2025 14:47
@vitor-de-araujo vitor-de-araujo changed the title fix(ci_visibility): ensure spans are finished by the end of the session chore(ci_visibility): ensure spans are finished by the end of the session Jul 22, 2025
@vitor-de-araujo vitor-de-araujo added the changelog/no-changelog A changelog entry is not required for this PR. label Jul 22, 2025
@gnufede gnufede added the CI App label Jul 22, 2025
@vitor-de-araujo vitor-de-araujo merged commit 247aa06 into main Jul 22, 2025
448 of 453 checks passed
@vitor-de-araujo vitor-de-araujo deleted the vitor-de-araujo/unfinished-spans-2 branch July 22, 2025 11:38
brettlangdon pushed a commit that referenced this pull request Jul 22, 2025
…sion (#14066)

At the end of the test session, we finish all unfinished spans
recursively by calling `test_session.finish(force=True)`, but `force`
only applies if the item's current status is
`SPECIAL_STATUS.UNFINISHED`. It looks like in some obscure
circumstances, a test can be unfinished without having the
`SPECIAL_STATUS.UNFINISHED` status, and in this case the recursive
finish will ignore them. This PR changes the logic so that any
unfinished span is finished.

Also, test spans don't have a parent (they have their own context,
separate from the test session/module/suite). This means that when a
test span finishes, there is no parent to reactivate, and so there is no
active span. This confuses the logic that [checks for unfinished
spans](https://github.com/DataDog/dd-trace-py/blob/v3.10.2/ddtrace/_trace/tracer.py#L622)
when finish test session/module/suite. This PR reactivates the parent
span to avoid this issue.

## 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)
alyshawang pushed a commit that referenced this pull request Jul 25, 2025
…sion (#14066)

At the end of the test session, we finish all unfinished spans
recursively by calling `test_session.finish(force=True)`, but `force`
only applies if the item's current status is
`SPECIAL_STATUS.UNFINISHED`. It looks like in some obscure
circumstances, a test can be unfinished without having the
`SPECIAL_STATUS.UNFINISHED` status, and in this case the recursive
finish will ignore them. This PR changes the logic so that any
unfinished span is finished.

Also, test spans don't have a parent (they have their own context,
separate from the test session/module/suite). This means that when a
test span finishes, there is no parent to reactivate, and so there is no
active span. This confuses the logic that [checks for unfinished
spans](https://github.com/DataDog/dd-trace-py/blob/v3.10.2/ddtrace/_trace/tracer.py#L622)
when finish test session/module/suite. This PR reactivates the parent
span to avoid this issue.

## 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)
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. CI App
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants