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 a crash with the tracer and agent attached, 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"
  }
}

@datadog-official
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: bc09cd5 | 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-24 14:10:55

Comparing candidate commit bc09cd5 in PR branch gyuheon0h/prof-12432-runtime-stacks with baseline commit 636b792 in branch main.

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

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 bc09cd5 1761313861 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.057µs 26.233µs ± 10.413µs 18.287µs ± 0.172µs 34.993µs 44.342µs 53.813µs 77.388µs 323.19% 1.312 2.603 39.59% 0.736µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.790µs; 27.676µs] or [-5.501%; +5.501%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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.178µs 3.228µs ± 1.425µs 3.012µs ± 0.024µs 3.035µs 3.689µs 13.998µs 14.910µs 394.98% 7.319 54.873 44.03% 0.101µ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.031µs; 3.426µs] or [-6.117%; +6.117%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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
single_flag_killswitch/rules-based execution_time 170.969ns 175.416ns ± 3.670ns 174.618ns ± 1.852ns 176.679ns 181.017ns 184.017ns 208.185ns 19.22% 4.046 30.712 2.09% 0.260ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [174.907ns; 175.925ns] or [-0.290%; +0.290%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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.324µs 2.400µs ± 0.020µs 2.399µs ± 0.007µs 2.408µs 2.437µs 2.445µs 2.452µs 2.22% -0.995 3.345 0.85% 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.397µs; 2.403µs] or [-0.118%; +0.118%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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
sdk_test_data/rules-based execution_time 121.537µs 123.133µs ± 1.679µs 122.832µs ± 0.447µs 123.348µs 124.482µs 129.228µs 138.285µs 12.58% 6.171 47.454 1.36% 0.119µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [122.900µs; 123.365µs] or [-0.189%; +0.189%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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 60.152ms 60.669ms ± 1.863ms 60.396ms ± 0.189ms 60.632ms 60.781ms 68.119ms 80.267ms 32.90% 8.731 80.251 3.06% 0.132ms 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 [60.411ms; 60.927ms] or [-0.425%; +0.425%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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.857ns 252.148ns ± 15.051ns 246.663ns ± 5.629ns 256.652ns 286.198ns 302.335ns 304.269ns 23.35% 1.827 2.794 5.95% 1.064ns 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.062ns; 254.234ns] or [-0.827%; +0.827%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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 185.587µs 186.088µs ± 0.379µs 186.000µs ± 0.144µs 186.187µs 186.554µs 187.756µs 188.266µs 1.22% 3.034 11.741 0.20% 0.027µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5311627.897op/s 5373837.634op/s ± 10875.337op/s 5376337.221op/s ± 4172.783op/s 5379937.400op/s 5384323.704op/s 5386582.462op/s 5388311.352op/s 0.22% -3.007 11.560 0.20% 769.002op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.750µs 17.830µs ± 0.043µs 17.823µs ± 0.022µs 17.848µs 17.891µs 17.939µs 18.098µs 1.54% 1.678 7.439 0.24% 0.003µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 55254493.374op/s 56086699.827op/s ± 133835.414op/s 56107144.845op/s ± 69426.579op/s 56166490.695op/s 56270721.873op/s 56330295.404op/s 56336534.574op/s 0.41% -1.631 7.115 0.24% 9463.593op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.546µs 10.592µs ± 0.026µs 10.585µs ± 0.012µs 10.605µs 10.633µs 10.672µs 10.741µs 1.48% 1.925 6.733 0.24% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 93098422.088op/s 94412092.252op/s ± 230368.764op/s 94473481.643op/s ± 108397.899op/s 94557972.158op/s 94670594.750op/s 94733895.390op/s 94825289.832op/s 0.37% -1.889 6.493 0.24% 16289.532op/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.035µs; 186.140µs] or [-0.028%; +0.028%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5372330.417op/s; 5375344.851op/s] or [-0.028%; +0.028%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.824µs; 17.836µs] or [-0.033%; +0.033%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [56068151.526op/s; 56105248.128op/s] or [-0.033%; +0.033%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.588µs; 10.596µs] or [-0.034%; +0.034%] None None None
normalization/normalize_name/normalize_name/good throughput [94380165.356op/s; 94444019.147op/s] or [-0.034%; +0.034%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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 10.748ms 10.772ms ± 0.012ms 10.771ms ± 0.007ms 10.778ms 10.795ms 10.803ms 10.836ms 0.61% 1.287 3.705 0.11% 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 [10.771ms; 10.774ms] or [-0.015%; +0.015%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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 496.219µs 496.914µs ± 0.565µs 496.847µs ± 0.230µs 497.094µs 497.462µs 497.605µs 503.536µs 1.35% 8.150 92.835 0.11% 0.040µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1985956.200op/s 2012422.856op/s ± 2265.394op/s 2012690.348op/s ± 931.394op/s 2013499.282op/s 2014372.875op/s 2014765.710op/s 2015237.209op/s 0.13% -8.054 91.324 0.11% 160.188op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 370.720µs 371.270µs ± 0.264µs 371.274µs ± 0.195µs 371.453µs 371.678µs 371.881µs 371.928µs 0.18% 0.107 -0.600 0.07% 0.019µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2688692.435op/s 2693460.038op/s ± 1911.872op/s 2693430.782op/s ± 1411.312op/s 2694982.023op/s 2696478.464op/s 2697323.713op/s 2697457.084op/s 0.15% -0.104 -0.601 0.07% 135.190op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 168.462µs 168.746µs ± 0.099µs 168.752µs ± 0.065µs 168.811µs 168.893µs 168.995µs 169.027µs 0.16% -0.171 0.479 0.06% 0.007µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5916216.197op/s 5926077.212op/s ± 3469.471op/s 5925845.077op/s ± 2286.257op/s 5928279.673op/s 5931951.890op/s 5935133.597op/s 5936073.185op/s 0.17% 0.175 0.480 0.06% 245.329op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.255µs 36.564µs ± 0.099µs 36.574µs ± 0.077µs 36.645µs 36.701µs 36.760µs 36.813µs 0.65% -0.332 -0.097 0.27% 0.007µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27164547.006op/s 27349265.863op/s ± 74088.201op/s 27341609.896op/s ± 57187.528op/s 27404948.466op/s 27470461.879op/s 27518191.460op/s 27582724.648op/s 0.88% 0.347 -0.079 0.27% 5238.827op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.219µs 46.372µs ± 0.124µs 46.364µs ± 0.050µs 46.409µs 46.503µs 46.570µs 47.771µs 3.03% 7.321 80.074 0.27% 0.009µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20933129.119op/s 21564736.207op/s ± 56423.115op/s 21568230.859op/s ± 23107.138op/s 21593978.738op/s 21620159.502op/s 21630714.166op/s 21635941.626op/s 0.31% -7.096 76.700 0.26% 3989.717op/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 [496.836µs; 496.992µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2012108.895op/s; 2012736.818op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [371.233µs; 371.306µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2693195.071op/s; 2693725.005op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [168.732µs; 168.759µs] or [-0.008%; +0.008%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5925596.377op/s; 5926558.048op/s] or [-0.008%; +0.008%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.551µs; 36.578µs] or [-0.038%; +0.038%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27338997.951op/s; 27359533.775op/s] or [-0.038%; +0.038%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.355µs; 46.389µs] or [-0.037%; +0.037%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21556916.506op/s; 21572555.908op/s] or [-0.036%; +0.036%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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 162.279µs 162.905µs ± 0.441µs 162.850µs ± 0.132µs 162.979µs 163.269µs 163.941µs 167.959µs 3.14% 7.961 85.579 0.27% 0.031µ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 [162.844µs; 162.967µs] or [-0.038%; +0.038%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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.891µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.917µs 3.918µs 3.921µs 0.22% -1.697 13.256 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255022852.243op/s 255580929.882op/s ± 189339.504op/s 255587168.014op/s ± 128488.453op/s 255695543.170op/s 255801007.442op/s 255897958.701op/s 256979921.671op/s 0.54% 1.725 13.489 0.07% 13388.325op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 78.230µs 80.248µs ± 0.925µs 80.243µs ± 0.578µs 80.800µs 81.959µs 82.261µs 82.648µs 3.00% 0.214 -0.331 1.15% 0.065µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12099450.124op/s 12462998.468op/s ± 143380.635op/s 12462122.011op/s ± 90231.397op/s 12556980.245op/s 12702414.178op/s 12761960.795op/s 12782806.818op/s 2.57% -0.158 -0.353 1.15% 10138.542op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.453µs 71.866µs ± 0.358µs 71.777µs ± 0.208µs 72.087µs 72.660µs 72.850µs 73.453µs 2.33% 1.351 1.859 0.50% 0.025µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13614195.483op/s 13915177.594op/s ± 68766.945op/s 13931989.073op/s ± 40434.951op/s 13970765.481op/s 13982782.511op/s 13988938.457op/s 13995174.464op/s 0.45% -1.321 1.722 0.49% 4862.557op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.893µs 3.914µs ± 0.006µs 3.913µs ± 0.002µs 3.916µs 3.918µs 3.921µs 3.963µs 1.28% 5.721 48.533 0.14% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 252333243.033op/s 255517090.036op/s ± 367599.495op/s 255557308.727op/s ± 137165.825op/s 255677855.912op/s 255807159.168op/s 255863037.441op/s 256884168.968op/s 0.52% -5.644 47.823 0.14% 25993.210op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 68.308µs 68.873µs ± 0.303µs 68.821µs ± 0.175µs 69.032µs 69.448µs 69.771µs 70.302µs 2.15% 1.238 2.647 0.44% 0.021µs 1 200
credit_card/is_card_number/378282246310005 throughput 14224321.446op/s 14519681.074op/s ± 63498.253op/s 14530389.998op/s ± 36851.736op/s 14561330.931op/s 14602251.017op/s 14620920.188op/s 14639583.971op/s 0.75% -1.198 2.477 0.44% 4490.005op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.342µs 45.699µs ± 0.168µs 45.705µs ± 0.149µs 45.854µs 45.931µs 45.960µs 45.972µs 0.58% -0.263 -1.049 0.37% 0.012µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21752368.858op/s 21882636.885op/s ± 80285.795op/s 21879319.150op/s ± 70999.007op/s 21948277.946op/s 22019841.088op/s 22039630.753op/s 22054673.536op/s 0.80% 0.273 -1.043 0.37% 5677.063op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.429µs 6.438µs ± 0.006µs 6.437µs ± 0.003µs 6.440µs 6.445µs 6.449µs 6.494µs 0.88% 4.711 35.418 0.10% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 153994995.856op/s 155336988.301op/s ± 155124.047op/s 155352850.454op/s ± 66304.961op/s 155417406.750op/s 155503697.642op/s 155535731.991op/s 155548704.562op/s 0.13% -4.666 34.920 0.10% 10968.927op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.893µs 3.914µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.919µs 3.921µs 3.922µs 0.23% -0.758 6.839 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254947802.005op/s 255522134.452op/s ± 212060.200op/s 255532613.362op/s ± 116665.824op/s 255645087.450op/s 255794893.512op/s 255860131.652op/s 256858663.746op/s 0.52% 0.778 6.967 0.08% 14994.921op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 60.774µs 63.130µs ± 0.871µs 63.145µs ± 0.563µs 63.710µs 64.743µs 64.951µs 64.986µs 2.92% -0.108 -0.054 1.38% 0.062µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15387825.462op/s 15843388.071op/s ± 219133.282op/s 15836668.394op/s ± 141056.448op/s 15977906.702op/s 16200784.142op/s 16422223.774op/s 16454318.001op/s 3.90% 0.189 0.002 1.38% 15495.063op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.935µs 54.344µs ± 0.092µs 54.355µs ± 0.055µs 54.406µs 54.472µs 54.519µs 54.534µs 0.33% -0.911 2.009 0.17% 0.007µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18337162.331op/s 18401481.277op/s ± 31283.340op/s 18397716.059op/s ± 18650.617op/s 18418030.566op/s 18457575.826op/s 18490513.132op/s 18540799.028op/s 0.78% 0.927 2.064 0.17% 2212.066op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.892µs 3.913µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.919µs 3.923µs 0.28% -1.192 11.866 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254879760.772op/s 255581571.571op/s ± 191063.578op/s 255602747.730op/s ± 108179.670op/s 255700662.962op/s 255793925.049op/s 255889503.410op/s 256937823.861op/s 0.52% 1.220 12.063 0.07% 13510.235op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.184µs 50.558µs ± 0.177µs 50.583µs ± 0.092µs 50.653µs 50.779µs 51.041µs 51.257µs 1.33% 0.240 1.183 0.35% 0.013µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19509511.279op/s 19779681.773op/s ± 69222.776op/s 19769620.346op/s ± 35723.516op/s 19818751.070op/s 19900451.049op/s 19916563.951op/s 19926484.290op/s 0.79% -0.207 1.107 0.35% 4894.789op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.364µs 45.657µs ± 0.171µs 45.673µs ± 0.137µs 45.789µs 45.912µs 45.949µs 45.965µs 0.64% -0.079 -1.216 0.37% 0.012µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21755536.710op/s 21902890.653op/s ± 82274.594op/s 21894777.002op/s ± 65736.308op/s 21971738.831op/s 22027832.579op/s 22042039.122op/s 22043733.963op/s 0.68% 0.088 -1.217 0.37% 5817.692op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.429µs 6.437µs ± 0.004µs 6.437µs ± 0.003µs 6.440µs 6.443µs 6.446µs 6.447µs 0.17% 0.185 -0.473 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 155100253.251op/s 155355000.835op/s ± 91090.431op/s 155357300.046op/s ± 66272.512op/s 155420138.565op/s 155497517.955op/s 155536531.678op/s 155543831.381op/s 0.12% -0.183 -0.475 0.06% 6441.066op/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.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255554689.248op/s; 255607170.516op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [80.120µs; 80.376µs] or [-0.160%; +0.160%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12443127.291op/s; 12482869.645op/s] or [-0.159%; +0.159%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.816µs; 71.915µs] or [-0.069%; +0.069%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13905647.157op/s; 13924708.031op/s] or [-0.068%; +0.068%] None None None
credit_card/is_card_number/37828224631 execution_time [3.913µs; 3.914µs] or [-0.020%; +0.020%] None None None
credit_card/is_card_number/37828224631 throughput [255466144.282op/s; 255568035.791op/s] or [-0.020%; +0.020%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.831µs; 68.915µs] or [-0.061%; +0.061%] None None None
credit_card/is_card_number/378282246310005 throughput [14510880.827op/s; 14528481.321op/s] or [-0.061%; +0.061%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.676µs; 45.722µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21871510.046op/s; 21893763.724op/s] or [-0.051%; +0.051%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.437µs; 6.439µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/x371413321323331 throughput [155315489.600op/s; 155358487.002op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.913µs; 3.914µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255492744.948op/s; 255551523.956op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [63.009µs; 63.251µs] or [-0.191%; +0.191%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15813018.306op/s; 15873757.837op/s] or [-0.192%; +0.192%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [54.331µs; 54.356µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18397145.707op/s; 18405816.847op/s] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255555091.997op/s; 255608051.145op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.533µs; 50.582µs] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19770088.162op/s; 19789275.384op/s] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.633µs; 45.680µs] or [-0.052%; +0.052%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21891488.186op/s; 21914293.121op/s] or [-0.052%; +0.052%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.436µs; 6.437µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [155342376.577op/s; 155367625.093op/s] or [-0.008%; +0.008%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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.024ms 6.203ms ± 0.125ms 6.146ms ± 0.083ms 6.337ms 6.372ms 6.401ms 6.439ms 4.77% 0.222 -1.667 2.01% 0.009ms 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.186ms; 6.220ms] or [-0.279%; +0.279%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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 33.050µs 33.680µs ± 1.127µs 33.163µs ± 0.063µs 33.270µs 36.076µs 36.130µs 37.859µs 14.16% 1.760 1.342 3.34% 0.080µ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 [33.524µs; 33.837µs] or [-0.464%; +0.464%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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.981µs 5.053µs ± 0.027µs 5.052µs ± 0.021µs 5.077µs 5.093µs 5.095µs 5.096µs 0.86% -0.284 -0.810 0.54% 0.002µ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.050µs; 5.057µs] or [-0.075%; +0.075%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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 85.890µs 86.124µs ± 0.268µs 86.099µs ± 0.048µs 86.151µs 86.239µs 86.423µs 89.698µs 4.18% 11.905 155.822 0.31% 0.019µ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.087µs; 86.161µs] or [-0.043%; +0.043%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz bc09cd5 1761313861 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.567ms 14.622ms ± 0.032ms 14.617ms ± 0.013ms 14.631ms 14.681ms 14.738ms 14.806ms 1.29% 2.214 7.969 0.22% 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.617ms; 14.626ms] or [-0.031%; +0.031%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Oct 1, 2025

Codecov Report

❌ Patch coverage is 62.74194% with 231 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.72%. Comparing base (636b792) to head (bc09cd5).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1252      +/-   ##
==========================================
- Coverage   71.80%   71.72%   -0.09%     
==========================================
  Files         368      372       +4     
  Lines       57967    58586     +619     
==========================================
+ Hits        41626    42021     +395     
- Misses      16341    16565     +224     
Components Coverage Δ
datadog-crashtracker 51.18% <70.20%> (+2.15%) ⬆️
datadog-crashtracker-ffi 13.38% <75.28%> (+7.51%) ⬆️
datadog-alloc 98.73% <ø> (ø)
data-pipeline 87.86% <ø> (ø)
data-pipeline-ffi 88.19% <ø> (ø)
ddcommon 84.31% <ø> (ø)
ddcommon-ffi 73.84% <ø> (ø)
ddtelemetry 59.98% <ø> (-0.04%) ⬇️
ddtelemetry-ffi 21.24% <ø> (ø)
dogstatsd-client 83.26% <ø> (ø)
datadog-ipc 82.39% <ø> (ø)
datadog-profiling 76.90% <ø> (ø)
datadog-profiling-ffi 62.12% <ø> (ø)
datadog-sidecar 37.24% <ø> (ø)
datdog-sidecar-ffi 13.71% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
tinybytes 92.22% <ø> (ø)
datadog-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
datadog-trace-protobuf 59.65% <ø> (ø)
datadog-trace-utils 90.00% <ø> (ø)
datadog-tracer-flare 61.03% <ø> (ø)
datadog-log 75.57% <ø> (ø)
🚀 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.so 7.25 MB 7.25 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 71.35 MB 71.46 MB +.15% (+115.53 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.20 MB 9.27 MB +.72% (+68.25 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 83.70 MB 83.86 MB +.18% (+156.88 KB) 🔍
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 18.55 MB 18.57 MB +.10% (+20.00 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 65.77 KB 66.79 KB +1.54% (+1.01 KB) ⚠️
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 129.26 MB 129.39 MB +.10% (+136.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 677.95 MB 678.85 MB +.13% (+925.24 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.93 MB 5.93 MB +.08% (+5.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 65.77 KB 66.79 KB +1.54% (+1.01 KB) ⚠️
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 17.51 MB 17.53 MB +.08% (+16.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 32.46 MB 32.48 MB +.08% (+27.35 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 15.81 MB 15.83 MB +.11% (+18.00 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 66.79 KB 67.82 KB +1.54% (+1.03 KB) ⚠️
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 131.42 MB 131.56 MB +.10% (+144.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 666.48 MB 667.38 MB +.13% (+923.25 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.54 MB 4.55 MB +.10% (+5.00 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 66.79 KB 67.82 KB +1.54% (+1.03 KB) ⚠️
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 18.66 MB 18.67 MB +.08% (+16.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 30.52 MB 30.55 MB +.09% (+30.15 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 63.95 MB 64.05 MB +.15% (+104.57 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.56 MB 8.57 MB +.18% (+16.00 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 78.42 MB 78.56 MB +.16% (+134.17 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.91 MB 9.92 MB +.10% (+11.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 3 times, most recently 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 +170
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)

@gyuheon0h gyuheon0h force-pushed the gyuheon0h/prof-12432-runtime-stacks branch from 9f05ba9 to bc09cd5 Compare October 24, 2025 13:57
Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

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