Skip to content

Conversation

gyuheon0h
Copy link
Contributor

@gyuheon0h gyuheon0h commented Oct 1, 2025

What does this PR do?

This PR allows runtimes to register a callback to extract runtime stack. They can choose either to emit frames frame by frame, or to dump a whole stacktrace string. The important contract is that the logic to retrieve the runtime stack is happening within a fork of the crashing process, from a signal handler, so it must be async-signal-safe.

Currently, we add runtime stacks as a new runtime_stacks field in the Experimental field. If runtimes choose to emit frames one by one using ddog_RuntimeStackFrame, the runtime_stacks field will be nicely propagated. If they choose to dump the whole traceback string, additional parsing will have to be implemented in the Receiver side appropriate for each different runtime's style/syntax of tracebacks.

Motivation

Current crash tracking captures only native stack traces, which are insufficient for applications using interpreted languages. When a Python/Ruby/PHP application crashes, developers need visibility into both:

  1. The native call stack (C/C++ level)
  2. The runtime call stack (Python/Ruby/PHP script level)

Without runtime stack traces, debugging crashes in interpreted languages is significantly hampered as the native stack only shows interpreter internals and native extension modules, not the actual application code execution path.

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Unit tests.

There is a very dummy implementation of dd-trace-py consuming this API in this experimental PR: DataDog/dd-trace-py#14765

By triggering tests here, we can see outputted Experimental fields:

  1. Frame by Frame
{
  "ucontext": "ucontext_t { uc_flags: 7, uc_link: 0x0, uc_stack: stack_t { ss_sp: 0x743deadc0000, ss_flags: 0, ss_size: 65536 }, uc_mcontext: mcontext_t { gregs: [0, 127809331044922, 0, 127809325475264, 140726899625856, 140726899626064, 1, 0, 0, -1, 0, 4294967295, 127809325530248, 0, 140726899625160, 140726899625368, 127809330854360, 66179, 12103423998558259, 4, 14, 0, 0], fpregs: 0x743deadcf540, __private: [0, 0, 0, 0, 0, 0, 0, 0] }, uc_sigmask: sigset_t { __val: [0, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, __private: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 31, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 116, 0, 111, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 114, 0, 0, 0, 0, 0, 99, 0, 111, 0, 0, 0, 0, 0, 105, 0, 101, 0, 111, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 99, 0, 0, 0, 104, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 111, 0, 0, 0, 114, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 128, 199, 48, 49, 93, 136, 85, 59, 0, 0, 0, 0, 0, 0, 0, 0, 100, 171, 99, 130, 7, 91, 229, 191, 0, 0, 0, 0, 0, 0, 0, 0, 27, 99, 108, 213, 49, 161, 233, 63, 0, 0, 0, 0, 0, 0, 0, 0, 233, 69, 72, 155, 91, 73, 242, 191, 0, 0, 0, 0, 0, 0, 0, 0, 52, 121, 227, 150, 79, 248, 140, 67, 143, 13, 128, 21, 35, 58, 40, 13, 211, 19, 203, 193, 101, 194, 7, 72, 227, 201, 177, 122, 54, 74, 46, 67, 23, 38, 50, 64, 173, 107, 173, 144, 4, 8, 252, 226, 102, 193, 248, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 88, 80, 70, 140, 10, 0, 0, 255, 2, 0, 0, 0, 0, 0, 0, 136, 10, 0, 0, 0, 0, 0, 0] }",
  "runtime_stack": {
    "format": "Datadog Runtime Callback 1.0",
    "frames": [
      {
        "function": "string_at",
        "file": "/home/bits/.pyenv/versions/3.11.13/lib/python3.11/ctypes/__init__.py",
        "line": 519
      },
      {
        "function": "func16",
        "file": "tests/internal/crashtracker/test_crashtracker.py",
        "line": 724
      },
     ........
      {
        "function": "func2",
        "file": "tests/internal/crashtracker/test_crashtracker.py",
        "line": 682
      },
      {
        "function": "func1",
        "file": "tests/internal/crashtracker/test_crashtracker.py",
        "line": 679
      },
      {
        "function": "<module>",
        "file": "tests/internal/crashtracker/test_crashtracker.py",
        "line": 734
      }
    ],
    "runtime_type": "python"
  }
}
  1. Whole traceback string
{
  "ucontext": "ucontext_t { uc_flags: 7, uc_link: 0x0, uc_stack: stack_t { ss_sp: 0x7c4c9c841000, ss_flags: 0, ss_size: 65536 }, uc_mcontext: mcontext_t { gregs: [0, 136668534166074, 0, 136668528596416, 140724573444400, 140724573444608, 1, 0, 0, -1, 0, 4294967295, 136668528651400, 0, 140724573443704, 140724573443912, 136668533975512, 66179, 12103423998558259, 4, 14, 0, 0], fpregs: 0x7c4c9c850540, __private: [0, 0, 0, 0, 0, 0, 0, 0] }, uc_sigmask: sigset_t { __val: [0, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, __private: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 31, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 116, 0, 111, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 114, 0, 0, 0, 0, 0, 99, 0, 111, 0, 0, 0, 0, 0, 105, 0, 101, 0, 111, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 99, 0, 0, 0, 104, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 111, 0, 0, 0, 114, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 128, 199, 48, 49, 93, 136, 85, 59, 0, 0, 0, 0, 0, 0, 0, 0, 100, 171, 99, 130, 7, 91, 229, 191, 0, 0, 0, 0, 0, 0, 0, 0, 27, 99, 108, 213, 49, 161, 233, 63, 0, 0, 0, 0, 0, 0, 0, 0, 233, 69, 72, 155, 91, 73, 242, 191, 0, 0, 0, 0, 0, 0, 0, 0, 255, 52, 127, 42, 141, 178, 13, 152, 156, 26, 175, 206, 42, 181, 80, 159, 182, 24, 207, 207, 28, 16, 244, 61, 0, 111, 67, 149, 212, 73, 16, 112, 165, 200, 182, 175, 115, 89, 172, 247, 213, 71, 73, 142, 243, 74, 61, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 88, 80, 70, 140, 10, 0, 0, 255, 2, 0, 0, 0, 0, 0, 0, 136, 10, 0, 0, 0, 0, 0, 0] }",
  "runtime_stack": {
    "format": "Datadog Runtime Callback 1.0",
    "stacktrace_string": "Current thread 0x00007c4c9f46db80 (most recent call first):\n  File \"/home/bits/.pyenv/versions/3.11.13/lib/python3.11/ctypes/__init__.py\", line 519 in string_at\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 724 in func16\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 721 in func15\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 718 in func14\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 715 in func13\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 712 in func12\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 709 in func11\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 706 in func10\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 703 in func9\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 700 in func8\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 697 in func7\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 694 in func6\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 691 in func5\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 688 in func4\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 685 in func3\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 682 in func2\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 679 in func1\n  File \"tests/internal/crashtracker/test_crashtracker.py\", line 734 in <module>",
    "runtime_type": "python"
  }
}

Copy link

datadog-official bot commented Oct 1, 2025

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 7a03e21 | Docs | Was this helpful? Give us feedback!

@pr-commenter
Copy link

pr-commenter bot commented Oct 1, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-10-10 17:48:55

Comparing candidate commit 7a03e21 in PR branch gyuheon0h/prof-12432-runtime-stacks with baseline commit d9b1999 in branch main.

Found 5 performance improvements and 8 performance regressions! Performance is the same for 40 metrics, 2 unstable metrics.

scenario:benching deserializing traces from msgpack to their internal representation

  • 🟥 execution_time [+8.080ms; +8.782ms] or [+13.234%; +14.383%]

scenario:benching serializing traces from their internal representation to msgpack

  • 🟩 execution_time [-751.688µs; -738.553µs] or [-4.959%; -4.872%]

scenario:concentrator/add_spans_to_concentrator

  • 🟥 execution_time [+1.021ms; +1.027ms] or [+9.528%; +9.583%]

scenario:credit_card/is_card_number/ 378282246310005

  • 🟩 execution_time [-4.135µs; -3.955µs] or [-5.513%; -5.273%]
  • 🟩 throughput [+743381.060op/s; +778529.446op/s] or [+5.576%; +5.840%]

scenario:credit_card/is_card_number/378282246310005

  • 🟥 execution_time [+5.889µs; +6.145µs] or [+8.155%; +8.509%]
  • 🟥 throughput [-1084780.033op/s; -1042524.118op/s] or [-7.833%; -7.528%]

scenario:normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...

  • 🟥 execution_time [+38.684µs; +38.903µs] or [+7.797%; +7.841%]
  • 🟥 throughput [-146589.966op/s; -145731.397op/s] or [-7.273%; -7.231%]

scenario:normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters

  • 🟥 execution_time [+25.029µs; +25.176µs] or [+14.743%; +14.830%]
  • 🟥 throughput [-761312.476op/s; -756393.859op/s] or [-12.924%; -12.841%]

scenario:normalization/normalize_service/normalize_service/[empty string]

  • 🟩 execution_time [-1.717µs; -1.699µs] or [-4.505%; -4.457%]
  • 🟩 throughput [+1224055.976op/s; +1237017.990op/s] or [+4.666%; +4.716%]

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 34.103µs 34.676µs ± 1.023µs 34.203µs ± 0.050µs 34.297µs 36.833µs 36.909µs 38.505µs 12.58% 1.760 1.358 2.94% 0.072µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [34.534µs; 34.818µs] or [-0.409%; +0.409%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 69.039ms 69.489ms ± 1.832ms 69.248ms ± 0.040ms 69.299ms 69.470ms 80.400ms 89.077ms 28.64% 8.722 79.365 2.63% 0.130ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [69.235ms; 69.743ms] or [-0.365%; +0.365%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_trace/test_trace execution_time 239.608ns 252.353ns ± 12.665ns 246.888ns ± 4.722ns 261.604ns 277.831ns 287.916ns 290.300ns 17.58% 1.234 0.589 5.01% 0.896ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [250.598ns; 254.108ns] or [-0.696%; +0.696%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 157.104µs 157.884µs ± 0.394µs 157.846µs ± 0.195µs 158.043µs 158.374µs 158.672µs 161.770µs 2.49% 4.912 45.715 0.25% 0.028µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [157.830µs; 157.939µs] or [-0.035%; +0.035%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
concentrator/add_spans_to_concentrator execution_time 11.705ms 11.737ms ± 0.016ms 11.735ms ± 0.008ms 11.746ms 11.764ms 11.775ms 11.832ms 0.83% 1.312 5.403 0.14% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [11.735ms; 11.739ms] or [-0.019%; +0.019%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 18.178µs 26.390µs ± 9.741µs 18.611µs ± 0.156µs 34.886µs 43.935µs 45.135µs 67.934µs 265.03% 0.884 0.242 36.82% 0.689µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [25.040µs; 27.740µs] or [-5.116%; +5.116%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.175µs 3.249µs ± 1.477µs 3.076µs ± 0.020µs 3.094µs 3.369µs 14.086µs 15.680µs 409.79% 7.517 57.132 45.34% 0.104µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.044µs; 3.453µs] or [-6.299%; +6.299%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
tags/replace_trace_tags execution_time 2.429µs 2.454µs ± 0.013µs 2.451µs ± 0.008µs 2.461µs 2.485µs 2.498µs 2.504µs 2.15% 1.200 1.992 0.55% 0.001µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.452µs; 2.456µs] or [-0.076%; +0.076%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.889µs 3.911µs ± 0.003µs 3.910µs ± 0.001µs 3.912µs 3.915µs 3.918µs 3.920µs 0.24% -1.390 14.789 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255122555.608op/s 255715732.092op/s ± 186256.241op/s 255740202.360op/s ± 96262.942op/s 255820497.850op/s 255911857.911op/s 255970016.908op/s 257108879.527op/s 0.54% 1.422 15.038 0.07% 13170.305op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 76.633µs 78.334µs ± 0.759µs 78.251µs ± 0.489µs 78.818µs 79.544µs 80.027µs 82.186µs 5.03% 0.880 2.358 0.97% 0.054µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12167538.642op/s 12767033.886op/s ± 122790.078op/s 12779417.517op/s ± 80143.192op/s 12856771.325op/s 12947250.505op/s 12979981.059op/s 13049165.995op/s 2.11% -0.781 1.912 0.96% 8682.570op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 69.872µs 70.965µs ± 0.625µs 70.892µs ± 0.407µs 71.319µs 72.010µs 72.357µs 74.536µs 5.14% 1.259 4.530 0.88% 0.044µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13416248.923op/s 14092562.516op/s ± 122919.936op/s 14105947.785op/s ± 81366.638op/s 14181175.926op/s 14263120.707op/s 14306209.042op/s 14311832.292op/s 1.46% -1.135 3.795 0.87% 8691.752op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.890µs 3.911µs ± 0.003µs 3.911µs ± 0.001µs 3.912µs 3.915µs 3.917µs 3.920µs 0.23% -2.010 18.813 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255115331.892op/s 255687665.453op/s ± 175880.866op/s 255700669.355op/s ± 97574.640op/s 255791165.528op/s 255880530.789op/s 255957020.641op/s 257086810.149op/s 0.54% 2.045 19.113 0.07% 12436.655op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 76.762µs 78.230µs ± 0.885µs 78.105µs ± 0.602µs 78.763µs 80.049µs 80.337µs 80.548µs 3.13% 0.543 -0.328 1.13% 0.063µs 1 200
credit_card/is_card_number/378282246310005 throughput 12414893.219op/s 12784495.465op/s ± 143775.576op/s 12803203.452op/s ± 98729.250op/s 12885136.873op/s 12983424.731op/s 13004109.723op/s 13027198.945op/s 1.75% -0.497 -0.393 1.12% 10166.469op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.144µs 52.208µs ± 0.059µs 52.202µs ± 0.022µs 52.223µs 52.269µs 52.338µs 52.863µs 1.27% 7.096 74.305 0.11% 0.004µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 18916723.951op/s 19154321.239op/s ± 21505.241op/s 19156338.873op/s ± 7981.476op/s 19164425.556op/s 19174572.695op/s 19176614.426op/s 19177589.069op/s 0.11% -7.009 72.972 0.11% 1520.650op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.026µs 6.037µs ± 0.012µs 6.033µs ± 0.003µs 6.037µs 6.069µs 6.085µs 6.107µs 1.23% 3.307 12.582 0.20% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 163733349.618op/s 165645717.563op/s ± 331490.343op/s 165747345.758op/s ± 72956.872op/s 165802768.702op/s 165869497.895op/s 165917103.712op/s 165935479.038op/s 0.11% -3.285 12.394 0.20% 23439.907op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.892µs 3.911µs ± 0.009µs 3.910µs ± 0.002µs 3.912µs 3.916µs 3.921µs 3.993µs 2.13% 8.258 75.292 0.22% 0.001µs 1 200
credit_card/is_card_number_no_luhn/ throughput 250412882.563op/s 255670466.129op/s ± 559158.042op/s 255735828.590op/s ± 113088.273op/s 255847790.477op/s 255937344.777op/s 255988046.257op/s 256947712.397op/s 0.47% -8.197 74.581 0.22% 39538.444op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.107µs 64.393µs ± 0.133µs 64.377µs ± 0.085µs 64.469µs 64.622µs 64.746µs 64.912µs 0.83% 0.678 0.922 0.21% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15405572.433op/s 15529784.568op/s ± 31998.783op/s 15533469.374op/s ± 20601.788op/s 15551527.840op/s 15576106.098op/s 15588234.722op/s 15598914.316op/s 0.42% -0.663 0.883 0.21% 2262.656op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 58.126µs 58.320µs ± 0.128µs 58.288µs ± 0.074µs 58.383µs 58.581µs 58.683µs 58.713µs 0.73% 1.032 0.460 0.22% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17032033.492op/s 17146970.318op/s ± 37476.520op/s 17156077.867op/s ± 21776.451op/s 17175919.370op/s 17191042.178op/s 17196198.591op/s 17204036.067op/s 0.28% -1.023 0.437 0.22% 2649.990op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.892µs 3.912µs ± 0.003µs 3.911µs ± 0.001µs 3.913µs 3.918µs 3.920µs 3.921µs 0.25% -0.390 7.255 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255036954.925op/s 255632850.577op/s ± 206754.674op/s 255662634.908op/s ± 96754.326op/s 255754654.772op/s 255852838.819op/s 255955891.700op/s 256927574.257op/s 0.49% 0.412 7.379 0.08% 14619.763op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.557µs 54.807µs ± 0.193µs 54.749µs ± 0.108µs 54.906µs 55.158µs 55.415µs 55.702µs 1.74% 1.433 2.585 0.35% 0.014µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17952787.700op/s 18246095.206op/s ± 63840.351op/s 18265147.361op/s ± 35939.724op/s 18294359.860op/s 18312043.008op/s 18324192.394op/s 18329598.636op/s 0.35% -1.407 2.459 0.35% 4514.194op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.146µs 52.195µs ± 0.030µs 52.187µs ± 0.016µs 52.209µs 52.253µs 52.285µs 52.327µs 0.27% 1.281 2.079 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19110467.460op/s 19158930.284op/s ± 11150.137op/s 19161924.299op/s ± 5933.272op/s 19166154.490op/s 19172744.984op/s 19174063.092op/s 19176949.307op/s 0.08% -1.276 2.061 0.06% 788.434op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.027µs 6.035µs ± 0.011µs 6.033µs ± 0.003µs 6.036µs 6.045µs 6.079µs 6.108µs 1.24% 4.455 23.366 0.18% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163730987.517op/s 165693493.269op/s ± 288984.755op/s 165758894.137op/s ± 72593.654op/s 165823281.321op/s 165881444.446op/s 165907441.042op/s 165909327.799op/s 0.09% -4.426 23.075 0.17% 20434.308op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.910µs; 3.911µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255689918.769op/s; 255741545.416op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [78.229µs; 78.439µs] or [-0.134%; +0.134%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12750016.362op/s; 12784051.410op/s] or [-0.133%; +0.133%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [70.878µs; 71.052µs] or [-0.122%; +0.122%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14075526.995op/s; 14109598.037op/s] or [-0.121%; +0.121%] None None None
credit_card/is_card_number/37828224631 execution_time [3.911µs; 3.911µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255663290.057op/s; 255712040.850op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [78.107µs; 78.352µs] or [-0.157%; +0.157%] None None None
credit_card/is_card_number/378282246310005 throughput [12764569.553op/s; 12804421.377op/s] or [-0.156%; +0.156%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.199µs; 52.216µs] or [-0.016%; +0.016%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19151340.819op/s; 19157301.658op/s] or [-0.016%; +0.016%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.035µs; 6.039µs] or [-0.028%; +0.028%] None None None
credit_card/is_card_number/x371413321323331 throughput [165599776.189op/s; 165691658.936op/s] or [-0.028%; +0.028%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.910µs; 3.913µs] or [-0.031%; +0.031%] None None None
credit_card/is_card_number_no_luhn/ throughput [255592972.203op/s; 255747960.056op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.374µs; 64.411µs] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15525349.845op/s; 15534219.292op/s] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.302µs; 58.337µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17141776.432op/s; 17152164.203op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.912µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255604196.368op/s; 255661504.786op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.780µs; 54.834µs] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18237247.547op/s; 18254942.864op/s] or [-0.048%; +0.048%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.191µs; 52.199µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19157384.983op/s; 19160475.586op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.034µs; 6.037µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165653442.761op/s; 165733543.777op/s] or [-0.024%; +0.024%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 6.203ms 6.259ms ± 0.051ms 6.244ms ± 0.017ms 6.268ms 6.370ms 6.425ms 6.559ms 5.03% 2.445 7.709 0.82% 0.004ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [6.252ms; 6.266ms] or [-0.114%; +0.114%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 534.158µs 534.954µs ± 0.366µs 534.910µs ± 0.244µs 535.154µs 535.691µs 535.976µs 536.143µs 0.23% 0.758 0.628 0.07% 0.026µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1865172.802op/s 1869319.708op/s ± 1278.606op/s 1869474.192op/s ± 851.118op/s 1870207.953op/s 1871055.691op/s 1871537.600op/s 1872104.020op/s 0.14% -0.754 0.620 0.07% 90.411op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 379.496µs 380.238µs ± 0.403µs 380.167µs ± 0.226µs 380.458µs 380.887µs 381.139µs 383.120µs 0.78% 2.095 11.728 0.11% 0.029µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2610147.664op/s 2629935.619op/s ± 2783.969op/s 2630420.990op/s ± 1565.253op/s 2631794.324op/s 2633464.405op/s 2634955.021op/s 2635075.095op/s 0.18% -2.065 11.466 0.11% 196.856op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 194.383µs 194.867µs ± 0.227µs 194.852µs ± 0.109µs 194.960µs 195.173µs 195.353µs 196.929µs 1.07% 3.877 32.779 0.12% 0.016µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5077976.336op/s 5131715.133op/s ± 5938.848op/s 5132104.766op/s ± 2867.215op/s 5134935.463op/s 5139014.084op/s 5141798.726op/s 5144491.157op/s 0.24% -3.809 31.981 0.12% 419.940op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.314µs 36.413µs ± 0.038µs 36.413µs ± 0.026µs 36.443µs 36.474µs 36.491µs 36.507µs 0.26% -0.078 -0.322 0.10% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27391877.647op/s 27463005.583op/s ± 28510.299op/s 27462886.245op/s ± 19334.181op/s 27481229.255op/s 27511082.996op/s 27525436.105op/s 27537527.795op/s 0.27% 0.084 -0.321 0.10% 2015.983op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 44.947µs 45.074µs ± 0.048µs 45.072µs ± 0.030µs 45.104µs 45.149µs 45.198µs 45.289µs 0.48% 0.518 1.662 0.11% 0.003µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 22080313.146op/s 22185548.903op/s ± 23541.270op/s 22186516.618op/s ± 14613.607op/s 22199916.030op/s 22221161.332op/s 22230853.568op/s 22248410.126op/s 0.28% -0.508 1.633 0.11% 1664.619op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [534.903µs; 535.005µs] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1869142.505op/s; 1869496.910op/s] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [380.182µs; 380.294µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2629549.788op/s; 2630321.450op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [194.835µs; 194.898µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5130892.065op/s; 5132538.200op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.407µs; 36.418µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27459054.330op/s; 27466956.836op/s] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.068µs; 45.081µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [22182286.310op/s; 22188811.497op/s] or [-0.015%; +0.015%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 4.959µs 5.039µs ± 0.050µs 5.044µs ± 0.047µs 5.083µs 5.116µs 5.119µs 5.120µs 1.49% -0.026 -1.569 0.99% 0.004µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.032µs; 5.046µs] or [-0.137%; +0.137%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 186.538µs 186.875µs ± 0.267µs 186.824µs ± 0.121µs 186.974µs 187.173µs 188.191µs 188.889µs 1.11% 3.671 21.206 0.14% 0.019µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5294123.642op/s 5351174.120op/s ± 7606.508op/s 5352632.786op/s ± 3459.587op/s 5355598.520op/s 5358704.513op/s 5360216.154op/s 5360841.599op/s 0.15% -3.630 20.820 0.14% 537.861op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.623µs 17.707µs ± 0.035µs 17.707µs ± 0.024µs 17.730µs 17.768µs 17.781µs 17.815µs 0.61% 0.207 -0.190 0.19% 0.002µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 56132866.495op/s 56474314.746op/s ± 110005.481op/s 56475372.032op/s ± 76119.950op/s 56551370.222op/s 56652911.971op/s 56689991.597op/s 56744779.007op/s 0.48% -0.197 -0.199 0.19% 7778.562op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 9.794µs 9.879µs ± 0.074µs 9.862µs ± 0.028µs 9.891µs 10.039µs 10.079µs 10.129µs 2.70% 1.268 0.702 0.74% 0.005µs 1 200
normalization/normalize_name/normalize_name/good throughput 98729678.141op/s 101228729.297op/s ± 747063.654op/s 101394481.407op/s ± 291823.758op/s 101690254.724op/s 101989080.687op/s 102051351.234op/s 102107988.480op/s 0.70% -1.243 0.636 0.74% 52825.378op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [186.838µs; 186.912µs] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5350119.931op/s; 5352228.309op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.702µs; 17.712µs] or [-0.027%; +0.027%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [56459069.044op/s; 56489560.447op/s] or [-0.027%; +0.027%] None None None
normalization/normalize_name/normalize_name/good execution_time [9.869µs; 9.889µs] or [-0.103%; +0.103%] None None None
normalization/normalize_name/normalize_name/good throughput [101125193.459op/s; 101332265.134op/s] or [-0.102%; +0.102%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 86.146µs 86.435µs ± 0.166µs 86.408µs ± 0.062µs 86.480µs 86.619µs 86.745µs 88.186µs 2.06% 6.265 61.113 0.19% 0.012µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [86.412µs; 86.458µs] or [-0.027%; +0.027%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 7a03e21 1760117813 gyuheon0h/prof-12432-runtime-stacks
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.355ms 14.414ms ± 0.033ms 14.410ms ± 0.021ms 14.432ms 14.461ms 14.516ms 14.608ms 1.38% 1.676 6.407 0.23% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [14.409ms; 14.419ms] or [-0.032%; +0.032%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Oct 1, 2025

Codecov Report

❌ Patch coverage is 62.71186% with 242 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.79%. Comparing base (f61c42a) to head (7a03e21).
⚠️ Report is 14 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1252      +/-   ##
==========================================
+ Coverage   71.65%   71.79%   +0.13%     
==========================================
  Files         355      360       +5     
  Lines       56317    57339    +1022     
==========================================
+ Hits        40354    41165     +811     
- Misses      15963    16174     +211     
Components Coverage Δ
datadog-crashtracker 51.53% <69.84%> (+2.19%) ⬆️
datadog-crashtracker-ffi 13.90% <74.73%> (+7.97%) ⬆️
datadog-alloc 98.73% <ø> (ø)
data-pipeline 87.86% <ø> (-2.55%) ⬇️
data-pipeline-ffi 88.19% <ø> (ø)
ddcommon 84.54% <ø> (+0.24%) ⬆️
ddcommon-ffi 73.84% <ø> (ø)
ddtelemetry 59.73% <ø> (-0.26%) ⬇️
ddtelemetry-ffi 21.24% <ø> (ø)
dogstatsd-client 83.26% <ø> (ø)
datadog-ipc 82.39% <ø> (-0.11%) ⬇️
datadog-profiling 76.90% <ø> (ø)
datadog-profiling-ffi 62.12% <ø> (ø)
datadog-sidecar 37.53% <ø> (+0.45%) ⬆️
datdog-sidecar-ffi 13.54% <ø> (+2.17%) ⬆️
spawn-worker 55.35% <ø> (ø)
tinybytes 92.22% <ø> (ø)
datadog-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
datadog-trace-protobuf 59.65% <ø> (ø)
datadog-trace-utils 89.99% <ø> (+0.22%) ⬆️
datadog-tracer-flare 56.08% <ø> (+1.55%) ⬆️
datadog-log 76.31% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dd-octo-sts
Copy link

dd-octo-sts bot commented Oct 1, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 71.00 MB 71.15 MB +.21% (+157.65 KB) 🔍
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.19 MB 7.19 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.25 MB 9.26 MB +.06% (+5.83 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 83.28 MB 83.49 MB +.25% (+215.31 KB) 🔍
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 18.39 MB 18.42 MB +.11% (+22.00 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 65.77 KB 67.12 KB +2.04% (+1.34 KB) ⚠️
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 125.21 MB 125.35 MB +.11% (+144.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 654.56 MB 655.57 MB +.15% (+1.00 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.89 MB 5.90 MB +.08% (+5.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 65.77 KB 67.12 KB +2.04% (+1.34 KB) ⚠️
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 17.37 MB 17.39 MB +.13% (+24.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 32.24 MB 32.27 MB +.09% (+31.51 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 15.68 MB 15.70 MB +.13% (+22.00 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 66.79 KB 68.15 KB +2.04% (+1.36 KB) ⚠️
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 127.50 MB 127.69 MB +.14% (+192.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 644.68 MB 645.68 MB +.15% (+1.00 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.50 MB 4.50 MB +.10% (+5.00 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 66.79 KB 68.15 KB +2.04% (+1.36 KB) ⚠️
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 18.51 MB 18.53 MB +.12% (+24.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 30.27 MB 30.30 MB +.10% (+32.10 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 63.65 MB 63.79 MB +.21% (+143.35 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.51 MB 8.52 MB +.18% (+16.00 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 78.06 MB 78.25 MB +.24% (+196.99 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.85 MB 9.87 MB +.23% (+24.00 KB) 🔍

@gyuheon0h gyuheon0h changed the title [crashtracking] Allow runtimes to register runtime collection callbacks [crashtracking] Allow runtimes to register runtime stack collection callbacks Oct 1, 2025
@gyuheon0h gyuheon0h force-pushed the gyuheon0h/prof-12432-runtime-stacks branch from aa11ce8 to 3ee9ed8 Compare October 2, 2025 17:13
@gyuheon0h gyuheon0h marked this pull request as ready for review October 2, 2025 18:30
@gyuheon0h gyuheon0h requested a review from a team as a code owner October 2, 2025 18:30
@gyuheon0h gyuheon0h requested a review from gleocadie October 2, 2025 18:32
@gyuheon0h gyuheon0h marked this pull request as draft October 3, 2025 14:46
@gyuheon0h gyuheon0h force-pushed the gyuheon0h/prof-12432-runtime-stacks branch from 6215e87 to a530d99 Compare October 3, 2025 16:48
@gyuheon0h gyuheon0h force-pushed the gyuheon0h/prof-12432-runtime-stacks branch from a530d99 to 7b66803 Compare October 3, 2025 16:48
@gyuheon0h gyuheon0h force-pushed the gyuheon0h/prof-12432-runtime-stacks branch from 2846753 to 5fad559 Compare October 3, 2025 16:57
@gyuheon0h gyuheon0h marked this pull request as ready for review October 6, 2025 20:10
@gyuheon0h gyuheon0h requested a review from a team as a code owner October 6, 2025 20:10
Comment on lines +156 to +158
if is_runtime_callback_registered() {
emit_runtime_stack(pipe)?;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

good point to send it once we've done every thing else (in case the callback is not signal-safe and block the thread)

When the feature is available, we would encourage libraries to add a flag so this feature is disable if an issue occurs (avoiding releasing a new version)

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants