Skip to content

Fix spark application spans status on sql analysis failure#10981

Open
aboitreaud wants to merge 4 commits intomasterfrom
adrien.boitreaud/fix-spark-app-status-on-sql-analysis-failure
Open

Fix spark application spans status on sql analysis failure#10981
aboitreaud wants to merge 4 commits intomasterfrom
adrien.boitreaud/fix-spark-app-status-on-sql-analysis-failure

Conversation

@aboitreaud
Copy link
Copy Markdown
Contributor

@aboitreaud aboitreaud commented Mar 27, 2026

What Does This Do

Context: SparkSession.sql() calls that throw during Catalyst analysis (e.g. AnalysisException for missing tables) fire before any Spark job/stage events: our current instrumentation never sees them, so the sparl.application span stays green.

  • Adds SparkSqlFailureAdvice on SparkSession.sql() to catch these throwables and call onSqlFailure() on the listener
  • finishApplication() now marks the app span ERROR with error.type = "Spark SQL Failed" when no job ran but a SQL failure was recorded
  • Job failures take precedence: a successful job resets lastSqlFailed, and lastJobFailed wins in finishApplication() if both are set

Motivation

Make sure that Spark application span are marked as error when the call spark.sql().show() fails on SQL analysis failure

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

Note: Once your PR is ready to merge, add it to the merge queue by commenting /merge. /merge -c cancels the queue request. /merge -f --reason "reason" skips all merge queue checks; please use this judiciously, as some checks do not run at the PR-level. For more information, see this doc.

Add lastSqlFailed tracking to AbstractDatadogSparkListener when SQL calls
(e.g. SparkSession.sql()) throw exceptions during Catalyst analysis, before
any Spark job is submitted. This ensures finishApplication() can mark the
application span as ERROR even when no job/stage/task events fire.

The error priority in finishApplication() is:
  throwable (from caller) > exitCode != 0 > lastJobFailed > lastSqlFailed

Add unit tests to verify SQL failures mark application spans as ERROR,
and that job failures take precedence over SQL failures.

Fixes: Spark application traces marked SUCCESS when SQL analysis fails
Add SparkSqlFailureAdvice that intercepts SparkSession.sql() method calls
and propagates any exceptions (e.g. AnalysisException) to the listener via
the new onSqlFailure() callback.

This ensures SQL analysis failures that occur before any Spark job is
submitted are captured and can be reported as ERROR in the application span.
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 27, 2026

Benchmarks

⚠️ Warning: Baseline build not found for merge-base commit. Comparing against the latest commit on master instead.

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master adrien.boitreaud/fix-spark-app-status-on-sql-analysis-failure
git_commit_date 1774863900 1774866724
git_commit_sha 78288e9 2823405
release_version 1.61.0-SNAPSHOT~78288e9218 1.61.0-SNAPSHOT~28234053ea
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774868485 1774868485
ci_job_id 1549509152 1549509152
ci_pipeline_id 104995542 104995542
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-tm4xi00i 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-tm4xi00i 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 63 metrics, 8 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.064 s) : 0, 1064360
Total [baseline] (10.926 s) : 0, 10925634
Agent [candidate] (1.067 s) : 0, 1067286
Total [candidate] (11.069 s) : 0, 11068566
section appsec
Agent [baseline] (1.245 s) : 0, 1245319
Total [baseline] (11.094 s) : 0, 11093785
Agent [candidate] (1.244 s) : 0, 1243886
Total [candidate] (11.123 s) : 0, 11123015
section iast
Agent [baseline] (1.234 s) : 0, 1233571
Total [baseline] (11.208 s) : 0, 11208247
Agent [candidate] (1.224 s) : 0, 1223511
Total [candidate] (11.275 s) : 0, 11274906
section profiling
Agent [baseline] (1.181 s) : 0, 1180632
Total [baseline] (10.894 s) : 0, 10894382
Agent [candidate] (1.18 s) : 0, 1179789
Total [candidate] (10.924 s) : 0, 10923949
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.064 s -
Agent appsec 1.245 s 180.959 ms (17.0%)
Agent iast 1.234 s 169.211 ms (15.9%)
Agent profiling 1.181 s 116.272 ms (10.9%)
Total tracing 10.926 s -
Total appsec 11.094 s 168.151 ms (1.5%)
Total iast 11.208 s 282.613 ms (2.6%)
Total profiling 10.894 s -31.252 ms (-0.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.067 s -
Agent appsec 1.244 s 176.601 ms (16.5%)
Agent iast 1.224 s 156.225 ms (14.6%)
Agent profiling 1.18 s 112.503 ms (10.5%)
Total tracing 11.069 s -
Total appsec 11.123 s 54.45 ms (0.5%)
Total iast 11.275 s 206.34 ms (1.9%)
Total profiling 10.924 s -144.617 ms (-1.3%)
gantt
    title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.198 ms) : 0, 1198
crashtracking [candidate] (1.218 ms) : 0, 1218
BytebuddyAgent [baseline] (633.819 ms) : 0, 633819
BytebuddyAgent [candidate] (635.703 ms) : 0, 635703
AgentMeter [baseline] (29.569 ms) : 0, 29569
AgentMeter [candidate] (29.958 ms) : 0, 29958
GlobalTracer [baseline] (258.21 ms) : 0, 258210
GlobalTracer [candidate] (258.907 ms) : 0, 258907
AppSec [baseline] (32.017 ms) : 0, 32017
AppSec [candidate] (32.174 ms) : 0, 32174
Debugger [baseline] (60.49 ms) : 0, 60490
Debugger [candidate] (60.878 ms) : 0, 60878
Remote Config [baseline] (597.861 µs) : 0, 598
Remote Config [candidate] (614.242 µs) : 0, 614
Telemetry [baseline] (8.833 ms) : 0, 8833
Telemetry [candidate] (8.069 ms) : 0, 8069
Flare Poller [baseline] (3.539 ms) : 0, 3539
Flare Poller [candidate] (3.569 ms) : 0, 3569
section appsec
crashtracking [baseline] (1.18 ms) : 0, 1180
crashtracking [candidate] (1.21 ms) : 0, 1210
BytebuddyAgent [baseline] (658.179 ms) : 0, 658179
BytebuddyAgent [candidate] (657.301 ms) : 0, 657301
AgentMeter [baseline] (12.115 ms) : 0, 12115
AgentMeter [candidate] (12.091 ms) : 0, 12091
GlobalTracer [baseline] (257.406 ms) : 0, 257406
GlobalTracer [candidate] (257.148 ms) : 0, 257148
AppSec [baseline] (177.455 ms) : 0, 177455
AppSec [candidate] (177.23 ms) : 0, 177230
Debugger [baseline] (66.136 ms) : 0, 66136
Debugger [candidate] (66.126 ms) : 0, 66126
Remote Config [baseline] (622.405 µs) : 0, 622
Remote Config [candidate] (629.193 µs) : 0, 629
Telemetry [baseline] (8.334 ms) : 0, 8334
Telemetry [candidate] (8.385 ms) : 0, 8385
Flare Poller [baseline] (3.577 ms) : 0, 3577
Flare Poller [candidate] (3.561 ms) : 0, 3561
IAST [baseline] (24.109 ms) : 0, 24109
IAST [candidate] (24.052 ms) : 0, 24052
section iast
crashtracking [baseline] (1.198 ms) : 0, 1198
crashtracking [candidate] (1.213 ms) : 0, 1213
BytebuddyAgent [baseline] (801.287 ms) : 0, 801287
BytebuddyAgent [candidate] (793.495 ms) : 0, 793495
AgentMeter [baseline] (11.674 ms) : 0, 11674
AgentMeter [candidate] (11.379 ms) : 0, 11379
GlobalTracer [baseline] (247.942 ms) : 0, 247942
GlobalTracer [candidate] (246.223 ms) : 0, 246223
AppSec [baseline] (26.553 ms) : 0, 26553
AppSec [candidate] (26.44 ms) : 0, 26440
Debugger [baseline] (69.824 ms) : 0, 69824
Debugger [candidate] (70.488 ms) : 0, 70488
Remote Config [baseline] (518.721 µs) : 0, 519
Remote Config [candidate] (521.738 µs) : 0, 522
Telemetry [baseline] (9.615 ms) : 0, 9615
Telemetry [candidate] (9.179 ms) : 0, 9179
Flare Poller [baseline] (3.473 ms) : 0, 3473
Flare Poller [candidate] (3.364 ms) : 0, 3364
IAST [baseline] (25.344 ms) : 0, 25344
IAST [candidate] (25.247 ms) : 0, 25247
section profiling
crashtracking [baseline] (1.17 ms) : 0, 1170
crashtracking [candidate] (1.167 ms) : 0, 1167
BytebuddyAgent [baseline] (681.753 ms) : 0, 681753
BytebuddyAgent [candidate] (681.53 ms) : 0, 681530
AgentMeter [baseline] (8.978 ms) : 0, 8978
AgentMeter [candidate] (9.007 ms) : 0, 9007
GlobalTracer [baseline] (214.621 ms) : 0, 214621
GlobalTracer [candidate] (214.509 ms) : 0, 214509
AppSec [baseline] (32.209 ms) : 0, 32209
AppSec [candidate] (32.266 ms) : 0, 32266
Debugger [baseline] (65.5 ms) : 0, 65500
Debugger [candidate] (65.751 ms) : 0, 65751
Remote Config [baseline] (565.092 µs) : 0, 565
Remote Config [candidate] (560.417 µs) : 0, 560
Telemetry [baseline] (7.709 ms) : 0, 7709
Telemetry [candidate] (7.692 ms) : 0, 7692
Flare Poller [baseline] (3.472 ms) : 0, 3472
Flare Poller [candidate] (3.491 ms) : 0, 3491
ProfilingAgent [baseline] (93.898 ms) : 0, 93898
ProfilingAgent [candidate] (93.208 ms) : 0, 93208
Profiling [baseline] (94.448 ms) : 0, 94448
Profiling [candidate] (93.753 ms) : 0, 93753
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.066 s) : 0, 1065533
Total [baseline] (8.833 s) : 0, 8833004
Agent [candidate] (1.054 s) : 0, 1054469
Total [candidate] (8.805 s) : 0, 8804731
section iast
Agent [baseline] (1.234 s) : 0, 1233545
Total [baseline] (9.563 s) : 0, 9563201
Agent [candidate] (1.224 s) : 0, 1224414
Total [candidate] (9.52 s) : 0, 9519594
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.066 s -
Agent iast 1.234 s 168.012 ms (15.8%)
Total tracing 8.833 s -
Total iast 9.563 s 730.197 ms (8.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent iast 1.224 s 169.946 ms (16.1%)
Total tracing 8.805 s -
Total iast 9.52 s 714.863 ms (8.1%)
gantt
    title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.225 ms) : 0, 1225
crashtracking [candidate] (1.189 ms) : 0, 1189
BytebuddyAgent [baseline] (636.098 ms) : 0, 636098
BytebuddyAgent [candidate] (627.116 ms) : 0, 627116
AgentMeter [baseline] (29.607 ms) : 0, 29607
AgentMeter [candidate] (29.354 ms) : 0, 29354
GlobalTracer [baseline] (257.618 ms) : 0, 257618
GlobalTracer [candidate] (256.235 ms) : 0, 256235
AppSec [baseline] (32.026 ms) : 0, 32026
AppSec [candidate] (31.707 ms) : 0, 31707
Debugger [baseline] (59.757 ms) : 0, 59757
Debugger [candidate] (59.31 ms) : 0, 59310
Remote Config [baseline] (587.277 µs) : 0, 587
Remote Config [candidate] (588.025 µs) : 0, 588
Telemetry [baseline] (8.064 ms) : 0, 8064
Telemetry [candidate] (8.017 ms) : 0, 8017
Flare Poller [baseline] (4.25 ms) : 0, 4250
Flare Poller [candidate] (4.927 ms) : 0, 4927
section iast
crashtracking [baseline] (1.201 ms) : 0, 1201
crashtracking [candidate] (1.187 ms) : 0, 1187
BytebuddyAgent [baseline] (800.811 ms) : 0, 800811
BytebuddyAgent [candidate] (795.373 ms) : 0, 795373
AgentMeter [baseline] (11.629 ms) : 0, 11629
AgentMeter [candidate] (11.375 ms) : 0, 11375
GlobalTracer [baseline] (247.729 ms) : 0, 247729
GlobalTracer [candidate] (246.357 ms) : 0, 246357
AppSec [baseline] (26.733 ms) : 0, 26733
AppSec [candidate] (27.244 ms) : 0, 27244
Debugger [baseline] (68.484 ms) : 0, 68484
Debugger [candidate] (67.293 ms) : 0, 67293
Remote Config [baseline] (536.619 µs) : 0, 537
Remote Config [candidate] (521.779 µs) : 0, 522
Telemetry [baseline] (10.887 ms) : 0, 10887
Telemetry [candidate] (10.172 ms) : 0, 10172
Flare Poller [baseline] (3.931 ms) : 0, 3931
Flare Poller [candidate] (3.668 ms) : 0, 3668
IAST [baseline] (25.516 ms) : 0, 25516
IAST [candidate] (25.241 ms) : 0, 25241
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master adrien.boitreaud/fix-spark-app-status-on-sql-analysis-failure
git_commit_date 1774863900 1774866724
git_commit_sha 78288e9 2823405
release_version 1.61.0-SNAPSHOT~78288e9218 1.61.0-SNAPSHOT~28234053ea
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774868979 1774868979
ci_job_id 1549509156 1549509156
ci_pipeline_id 104995542 104995542
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-boskqnam 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-boskqnam 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 0 performance regressions! Performance is the same for 18 metrics, 17 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:profiling:high_load better
[-186.539µs; -64.365µs] or [-10.865%; -3.749%]
unstable
[-1216.976µs; -377.431µs] or [-23.643%; -7.333%]
unstable
[-33.089op/s; +483.839op/s] or [-1.571%; +22.976%]
1.591ms 4.350ms 2331.188op/s 1.717ms 5.147ms 2105.812op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218
    dateFormat X
    axisFormat %s
section baseline
no_agent (19.28 ms) : 19081, 19479
.   : milestone, 19280,
appsec (19.56 ms) : 19362, 19759
.   : milestone, 19560,
code_origins (17.713 ms) : 17537, 17888
.   : milestone, 17713,
iast (17.825 ms) : 17646, 18004
.   : milestone, 17825,
profiling (18.542 ms) : 18356, 18728
.   : milestone, 18542,
tracing (17.768 ms) : 17590, 17946
.   : milestone, 17768,
section candidate
no_agent (19.287 ms) : 19090, 19485
.   : milestone, 19287,
appsec (18.957 ms) : 18762, 19151
.   : milestone, 18957,
code_origins (18.087 ms) : 17903, 18272
.   : milestone, 18087,
iast (17.833 ms) : 17655, 18011
.   : milestone, 17833,
profiling (18.968 ms) : 18776, 19161
.   : milestone, 18968,
tracing (17.976 ms) : 17799, 18153
.   : milestone, 17976,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.28 ms [19.081 ms, 19.479 ms] -
appsec 19.56 ms [19.362 ms, 19.759 ms] 280.293 µs (1.5%)
code_origins 17.713 ms [17.537 ms, 17.888 ms] -1.567 ms (-8.1%)
iast 17.825 ms [17.646 ms, 18.004 ms] -1.455 ms (-7.5%)
profiling 18.542 ms [18.356 ms, 18.728 ms] -738.375 µs (-3.8%)
tracing 17.768 ms [17.59 ms, 17.946 ms] -1.512 ms (-7.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.287 ms [19.09 ms, 19.485 ms] -
appsec 18.957 ms [18.762 ms, 19.151 ms] -330.694 µs (-1.7%)
code_origins 18.087 ms [17.903 ms, 18.272 ms] -1.2 ms (-6.2%)
iast 17.833 ms [17.655 ms, 18.011 ms] -1.454 ms (-7.5%)
profiling 18.968 ms [18.776 ms, 19.161 ms] -318.776 µs (-1.7%)
tracing 17.976 ms [17.799 ms, 18.153 ms] -1.311 ms (-6.8%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.188 ms) : 1177, 1200
.   : milestone, 1188,
iast (3.12 ms) : 3079, 3160
.   : milestone, 3120,
iast_FULL (5.801 ms) : 5743, 5859
.   : milestone, 5801,
iast_GLOBAL (3.467 ms) : 3413, 3522
.   : milestone, 3467,
profiling (2.148 ms) : 2129, 2167
.   : milestone, 2148,
tracing (1.819 ms) : 1804, 1834
.   : milestone, 1819,
section candidate
no_agent (1.202 ms) : 1190, 1214
.   : milestone, 1202,
iast (3.129 ms) : 3088, 3169
.   : milestone, 3129,
iast_FULL (5.706 ms) : 5650, 5762
.   : milestone, 5706,
iast_GLOBAL (3.574 ms) : 3519, 3629
.   : milestone, 3574,
profiling (1.934 ms) : 1916, 1951
.   : milestone, 1934,
tracing (1.763 ms) : 1750, 1777
.   : milestone, 1763,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.188 ms [1.177 ms, 1.2 ms] -
iast 3.12 ms [3.079 ms, 3.16 ms] 1.931 ms (162.5%)
iast_FULL 5.801 ms [5.743 ms, 5.859 ms] 4.613 ms (388.1%)
iast_GLOBAL 3.467 ms [3.413 ms, 3.522 ms] 2.279 ms (191.7%)
profiling 2.148 ms [2.129 ms, 2.167 ms] 959.54 µs (80.7%)
tracing 1.819 ms [1.804 ms, 1.834 ms] 630.51 µs (53.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.202 ms [1.19 ms, 1.214 ms] -
iast 3.129 ms [3.088 ms, 3.169 ms] 1.926 ms (160.2%)
iast_FULL 5.706 ms [5.65 ms, 5.762 ms] 4.503 ms (374.6%)
iast_GLOBAL 3.574 ms [3.519 ms, 3.629 ms] 2.371 ms (197.2%)
profiling 1.934 ms [1.916 ms, 1.951 ms] 731.291 µs (60.8%)
tracing 1.763 ms [1.75 ms, 1.777 ms] 561.031 µs (46.7%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master adrien.boitreaud/fix-spark-app-status-on-sql-analysis-failure
git_commit_date 1774863900 1774866724
git_commit_sha 78288e9 2823405
release_version 1.61.0-SNAPSHOT~78288e9218 1.61.0-SNAPSHOT~28234053ea
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1774868708 1774868708
ci_job_id 1549509159 1549509159
ci_pipeline_id 104995542 104995542
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-2-1a57iei2 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-2-1a57iei2 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.479 ms) : 1467, 1490
.   : milestone, 1479,
appsec (2.522 ms) : 2467, 2577
.   : milestone, 2522,
iast (2.261 ms) : 2192, 2331
.   : milestone, 2261,
iast_GLOBAL (2.323 ms) : 2252, 2393
.   : milestone, 2323,
profiling (2.091 ms) : 2036, 2146
.   : milestone, 2091,
tracing (2.084 ms) : 2030, 2139
.   : milestone, 2084,
section candidate
no_agent (1.474 ms) : 1463, 1486
.   : milestone, 1474,
appsec (3.755 ms) : 3536, 3974
.   : milestone, 3755,
iast (2.267 ms) : 2197, 2336
.   : milestone, 2267,
iast_GLOBAL (2.317 ms) : 2247, 2388
.   : milestone, 2317,
profiling (2.095 ms) : 2040, 2150
.   : milestone, 2095,
tracing (2.074 ms) : 2019, 2128
.   : milestone, 2074,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.479 ms [1.467 ms, 1.49 ms] -
appsec 2.522 ms [2.467 ms, 2.577 ms] 1.043 ms (70.5%)
iast 2.261 ms [2.192 ms, 2.331 ms] 782.644 µs (52.9%)
iast_GLOBAL 2.323 ms [2.252 ms, 2.393 ms] 843.983 µs (57.1%)
profiling 2.091 ms [2.036 ms, 2.146 ms] 612.179 µs (41.4%)
tracing 2.084 ms [2.03 ms, 2.139 ms] 605.404 µs (40.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.463 ms, 1.486 ms] -
appsec 3.755 ms [3.536 ms, 3.974 ms] 2.281 ms (154.7%)
iast 2.267 ms [2.197 ms, 2.336 ms] 792.554 µs (53.8%)
iast_GLOBAL 2.317 ms [2.247 ms, 2.388 ms] 843.299 µs (57.2%)
profiling 2.095 ms [2.04 ms, 2.15 ms] 620.464 µs (42.1%)
tracing 2.074 ms [2.019 ms, 2.128 ms] 599.506 µs (40.7%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~28234053ea, baseline=1.61.0-SNAPSHOT~78288e9218
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.371 s) : 15371000, 15371000
.   : milestone, 15371000,
appsec (14.823 s) : 14823000, 14823000
.   : milestone, 14823000,
iast (18.425 s) : 18425000, 18425000
.   : milestone, 18425000,
iast_GLOBAL (18.184 s) : 18184000, 18184000
.   : milestone, 18184000,
profiling (15.187 s) : 15187000, 15187000
.   : milestone, 15187000,
tracing (15.001 s) : 15001000, 15001000
.   : milestone, 15001000,
section candidate
no_agent (15.21 s) : 15210000, 15210000
.   : milestone, 15210000,
appsec (14.658 s) : 14658000, 14658000
.   : milestone, 14658000,
iast (18.585 s) : 18585000, 18585000
.   : milestone, 18585000,
iast_GLOBAL (17.954 s) : 17954000, 17954000
.   : milestone, 17954000,
profiling (14.637 s) : 14637000, 14637000
.   : milestone, 14637000,
tracing (14.991 s) : 14991000, 14991000
.   : milestone, 14991000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.371 s [15.371 s, 15.371 s] -
appsec 14.823 s [14.823 s, 14.823 s] -548.0 ms (-3.6%)
iast 18.425 s [18.425 s, 18.425 s] 3.054 s (19.9%)
iast_GLOBAL 18.184 s [18.184 s, 18.184 s] 2.813 s (18.3%)
profiling 15.187 s [15.187 s, 15.187 s] -184.0 ms (-1.2%)
tracing 15.001 s [15.001 s, 15.001 s] -370.0 ms (-2.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.21 s [15.21 s, 15.21 s] -
appsec 14.658 s [14.658 s, 14.658 s] -552.0 ms (-3.6%)
iast 18.585 s [18.585 s, 18.585 s] 3.375 s (22.2%)
iast_GLOBAL 17.954 s [17.954 s, 17.954 s] 2.744 s (18.0%)
profiling 14.637 s [14.637 s, 14.637 s] -573.0 ms (-3.8%)
tracing 14.991 s [14.991 s, 14.991 s] -219.0 ms (-1.4%)

@aboitreaud aboitreaud marked this pull request as ready for review March 27, 2026 16:16
@aboitreaud aboitreaud requested a review from a team as a code owner March 27, 2026 16:16
@github-actions
Copy link
Copy Markdown
Contributor

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@aboitreaud aboitreaud added type: enhancement Enhancements and improvements inst: apache spark Apache Spark instrumentation labels Mar 27, 2026
Copy link
Copy Markdown
Contributor

@pawel-big-lebowski pawel-big-lebowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code looks good to me. Would it be possible to include End to end test which:

  • creates sparkSession = SparkSession.builder()..
  • runs sparkSession.sql("""...) with table not found for example
  • and checks if the trace contains expected error attributes.

Similar tests exist in AbstractSpark32SqlTest.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: apache spark Apache Spark instrumentation type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants