Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[crashtracker] RFC for structured log format #554

Merged
merged 25 commits into from
Nov 13, 2024

Conversation

danielsn
Copy link
Contributor

What does this PR do?

Defines a structured log format for crash reports

Motivation

If we want to interoperate with other tools/services, we need an agreed on format.

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@danielsn danielsn marked this pull request as ready for review July 30, 2024 15:45
@danielsn danielsn requested a review from a team as a code owner July 30, 2024 15:45
@codecov-commenter
Copy link

codecov-commenter commented Jul 30, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 71.03%. Comparing base (75b1ab5) to head (12aa4e1).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #554      +/-   ##
==========================================
+ Coverage   71.01%   71.03%   +0.01%     
==========================================
  Files         287      287              
  Lines       42836    42836              
==========================================
+ Hits        30421    30428       +7     
+ Misses      12415    12408       -7     
Components Coverage Δ
crashtracker 40.76% <ø> (ø)
crashtracker-ffi 8.67% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 91.95% <ø> (ø)
data-pipeline-ffi 0.00% <ø> (ø)
ddcommon 83.46% <ø> (ø)
ddcommon-ffi 69.12% <ø> (ø)
ddtelemetry 59.10% <ø> (ø)
ddtelemetry-ffi 22.13% <ø> (ø)
dogstatsd 89.45% <ø> (ø)
dogstatsd-client 79.77% <ø> (ø)
ipc 82.76% <ø> (ø)
profiling 84.30% <ø> (ø)
profiling-ffi 77.46% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 37.35% <ø> (ø)
sidecar-ffi 0.00% <ø> (ø)
spawn-worker 50.36% <ø> (ø)
tinybytes 94.77% <ø> (ø)
trace-mini-agent 72.18% <ø> (ø)
trace-normalization 98.25% <ø> (ø)
trace-obfuscation 95.77% <ø> (ø)
trace-protobuf 77.67% <ø> (ø)
trace-utils 93.14% <ø> (ø)

Boolean `false` if the crashreport is complete (i.e. contains all intended data), `true` if there is expected missing data.
This can happen becasue the crashtracker is architected to stream data to an out of process receiver, allowing a partial crash report to be emitted even in the case where the crashtracker itself crashed during stack trace collection.
This MUST be set to `true` if any required field is missing.
- `metadata`:

Choose a reason for hiding this comment

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

For consistency's sake, I propose matching the fields used here to align 1-to-1 with what we already use in instrumentation-telemetry, see this and this. WDYT?

Copy link

@OmerRaviv OmerRaviv Jul 30, 2024

Choose a reason for hiding this comment

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

Also, should these (i.e. library_name, library_version, os_info etc) even be part of the structured json, given that they are already defined in the instrumentation-telemetry API which we are using to upload the crash reports when the tracer is at fault? (see the application and host sections of the required top level json keys in the instrumentation-telemetry api spec).

Perhaps we should only include them inline in the actual json payload when we are sending the information to the customer org (when the customer app is at fault) and not to instrumentation-telemetry?

rfc/0001-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
rfc/0001-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
rfc/0001-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
This RFC establishes a standardized logging format for reporting this information.

### Why structured json
As a text-based format, json can be written to standard logging endpoints.
Copy link
Member

Choose a reason for hiding this comment

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

Would this crashtracker be included with our SDKs (/tracer libs)? Which source (ddsource param) would be used to ingest these logs?
We may want to have Logs teams take a look at this, to make sure attributes are put in the right place (for functionalities aside from Error Tracking, like getting the status, host tags, message ... to show up well)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good idea. Who on the logs team would be the best person to do that?

Copy link
Member

Choose a reason for hiding this comment

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

I think you can try in #logs-core :)

rfc/0001-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
rfc/0001-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
@pr-commenter
Copy link

pr-commenter bot commented Aug 6, 2024

Benchmarks

Comparison

Benchmark execution time: 2024-11-13 20:08:31

Comparing candidate commit 12aa4e1 in PR branch dsn/crashtracker-errortracking-rfc with baseline commit 75b1ab5 in branch main.

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

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟩 execution_time [-9.684µs; -9.653µs] or [-14.125%; -14.079%]
  • 🟩 throughput [+2391114.927op/s; +2397954.724op/s] or [+16.394%; +16.440%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟩 execution_time [-9.850µs; -9.733µs] or [-14.340%; -14.170%]
  • 🟩 throughput [+2407765.890op/s; +2432043.058op/s] or [+16.538%; +16.704%]

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 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 506.618µs 507.570µs ± 0.369µs 507.559µs ± 0.182µs 507.731µs 508.252µs 508.597µs 509.455µs 0.37% 0.905 3.714 0.07% 0.026µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1962881.450op/s 1970171.217op/s ± 1429.978op/s 1970212.816op/s ± 706.730op/s 1970988.156op/s 1972593.540op/s 1973187.319op/s 1973873.348op/s 0.19% -0.895 3.673 0.07% 101.115op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 467.507µs 468.259µs ± 0.318µs 468.255µs ± 0.211µs 468.465µs 468.771µs 469.049µs 469.406µs 0.25% 0.218 0.257 0.07% 0.023µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2130353.649op/s 2135570.001op/s ± 1452.332op/s 2135590.435op/s ± 964.794op/s 2136554.087op/s 2137857.190op/s 2138862.676op/s 2139003.720op/s 0.16% -0.214 0.252 0.07% 102.695op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 179.799µs 180.262µs ± 0.195µs 180.262µs ± 0.115µs 180.379µs 180.609µs 180.715µs 180.837µs 0.32% 0.151 0.007 0.11% 0.014µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5529829.112op/s 5547472.475op/s ± 6003.830op/s 5547466.628op/s ± 3539.422op/s 5550943.121op/s 5557241.968op/s 5561211.858op/s 5561778.266op/s 0.26% -0.144 0.005 0.11% 424.535op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 44.948µs 45.212µs ± 0.087µs 45.214µs ± 0.048µs 45.263µs 45.340µs 45.392µs 45.508µs 0.65% -0.271 0.753 0.19% 0.006µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 21973922.097op/s 22118238.945op/s ± 42440.042op/s 22116821.364op/s ± 23441.756op/s 22140257.906op/s 22195436.406op/s 22226000.808op/s 22247794.037op/s 0.59% 0.286 0.753 0.19% 3000.964op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.933µs 49.125µs ± 0.095µs 49.127µs ± 0.070µs 49.188µs 49.296µs 49.344µs 49.396µs 0.55% 0.289 -0.369 0.19% 0.007µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20244395.101op/s 20356382.228op/s ± 39206.910op/s 20355261.581op/s ± 29157.105op/s 20388952.859op/s 20416244.965op/s 20430704.939op/s 20436293.222op/s 0.40% -0.280 -0.379 0.19% 2772.347op/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 [507.519µs; 507.621µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1969973.036op/s; 1970369.399op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [468.215µs; 468.303µs] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2135368.721op/s; 2135771.280op/s] or [-0.009%; +0.009%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [180.235µs; 180.290µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5546640.402op/s; 5548304.548op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [45.200µs; 45.224µs] or [-0.027%; +0.027%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [22112357.163op/s; 22124120.726op/s] or [-0.027%; +0.027%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [49.112µs; 49.138µs] or [-0.027%; +0.027%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20350948.528op/s; 20361815.929op/s] or [-0.027%; +0.027%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 58.158ms 58.696ms ± 0.309ms 58.663ms ± 0.148ms 58.770ms 59.239ms 60.107ms 60.170ms 2.57% 2.154 6.794 0.53% 0.022ms 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 [58.653ms; 58.739ms] or [-0.073%; +0.073%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 272.026µs 274.155µs ± 1.195µs 273.940µs ± 0.711µs 274.772µs 275.989µs 278.483µs 279.619µs 2.07% 1.220 2.908 0.43% 0.085µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 3576299.150op/s 3647637.753op/s ± 15817.974op/s 3650434.180op/s ± 9481.836op/s 3658929.364op/s 3669639.191op/s 3673208.381op/s 3676113.789op/s 0.70% -1.177 2.722 0.43% 1118.500op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 25.813µs 25.884µs ± 0.045µs 25.876µs ± 0.021µs 25.903µs 25.977µs 26.028µs 26.079µs 0.79% 1.400 2.542 0.17% 0.003µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 38344382.727op/s 38633691.752op/s ± 66903.874op/s 38646205.367op/s ± 31934.854op/s 38676099.056op/s 38716804.253op/s 38737997.710op/s 38740253.839op/s 0.24% -1.387 2.491 0.17% 4730.818op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 15.462µs 15.664µs ± 0.074µs 15.687µs ± 0.033µs 15.706µs 15.741µs 15.757µs 15.780µs 0.59% -1.409 1.173 0.47% 0.005µs 1 200
normalization/normalize_name/normalize_name/good throughput 63371289.215op/s 63841463.076op/s ± 303112.781op/s 63747898.319op/s ± 133435.755op/s 63905768.814op/s 64589975.183op/s 64635311.347op/s 64675313.756op/s 1.45% 1.426 1.208 0.47% 21433.310op/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 [273.990µs; 274.321µs] or [-0.060%; +0.060%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [3645445.534op/s; 3649829.972op/s] or [-0.060%; +0.060%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [25.878µs; 25.890µs] or [-0.024%; +0.024%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [38624419.518op/s; 38642963.985op/s] or [-0.024%; +0.024%] None None None
normalization/normalize_name/normalize_name/good execution_time [15.654µs; 15.674µs] or [-0.065%; +0.065%] None None None
normalization/normalize_name/normalize_name/good throughput [63799454.560op/s; 63883471.592op/s] or [-0.066%; +0.066%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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.357µs 3.301µs ± 1.410µs 3.155µs ± 0.026µs 3.177µs 3.225µs 14.050µs 15.031µs 376.45% 7.537 57.141 42.60% 0.100µ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.106µs; 3.496µs] or [-5.919%; +5.919%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 295.107ns 309.199ns ± 11.876ns 306.158ns ± 2.796ns 309.248ns 340.214ns 347.543ns 350.635ns 14.53% 1.996 3.453 3.83% 0.840ns 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 [307.553ns; 310.844ns] or [-0.532%; +0.532%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 69.335µs 69.506µs ± 0.162µs 69.484µs ± 0.036µs 69.525µs 69.629µs 69.811µs 71.558µs 2.98% 10.264 125.714 0.23% 0.011µ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 [69.483µs; 69.528µs] or [-0.032%; +0.032%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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.979µs 25.010µs ± 10.879µs 20.014µs ± 0.491µs 29.764µs 38.235µs 48.639µs 103.796µs 418.61% 3.906 23.025 43.39% 0.769µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [23.502µs; 26.517µs] or [-6.029%; +6.029%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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.627µs 2.685µs ± 0.020µs 2.683µs ± 0.007µs 2.691µs 2.731µs 2.742µs 2.743µs 2.22% 0.299 2.481 0.75% 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.682µs; 2.688µs] or [-0.104%; +0.104%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 37.314µs 37.688µs ± 0.641µs 37.404µs ± 0.039µs 37.458µs 39.018µs 39.114µs 40.708µs 8.83% 1.909 2.544 1.70% 0.045µ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 [37.600µs; 37.777µs] or [-0.236%; +0.236%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 9.014ms 9.049ms ± 0.033ms 9.046ms ± 0.011ms 9.057ms 9.071ms 9.092ms 9.460ms 4.57% 9.680 118.080 0.36% 0.002ms 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 [9.044ms; 9.053ms] or [-0.051%; +0.051%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 139.976µs 140.894µs ± 0.371µs 140.879µs ± 0.159µs 141.037µs 141.430µs 141.827µs 143.558µs 1.90% 2.305 13.905 0.26% 0.026µ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 [140.843µs; 140.946µs] or [-0.036%; +0.036%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 12aa4e1 1731527855 dsn/crashtracker-errortracking-rfc
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 4.599µs 4.613µs ± 0.009µs 4.613µs ± 0.007µs 4.619µs 4.629µs 4.631µs 4.632µs 0.41% 0.177 -0.948 0.20% 0.001µs 1 200
credit_card/is_card_number/ throughput 215884522.384op/s 216765099.423op/s ± 424254.343op/s 216760601.279op/s ± 316267.064op/s 217106865.395op/s 217385153.665op/s 217408948.044op/s 217415383.166op/s 0.30% -0.171 -0.952 0.20% 29999.312op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 93.017µs 93.496µs ± 0.354µs 93.436µs ± 0.117µs 93.587µs 93.746µs 94.169µs 97.818µs 4.69% 9.241 109.838 0.38% 0.025µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 10223082.957op/s 10695827.749op/s ± 39132.301op/s 10702510.809op/s ± 13344.287op/s 10711704.680op/s 10718231.068op/s 10745424.036op/s 10750734.868op/s 0.45% -8.943 104.977 0.36% 2767.072op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 85.232µs 85.377µs ± 0.314µs 85.319µs ± 0.023µs 85.347µs 85.755µs 86.112µs 89.228µs 4.58% 9.670 111.797 0.37% 0.022µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 11207222.010op/s 11712973.434op/s ± 41654.979op/s 11720778.089op/s ± 3224.859op/s 11723816.006op/s 11726972.973op/s 11731080.069op/s 11732719.891op/s 0.10% -9.450 107.725 0.35% 2945.452op/s 1 200
credit_card/is_card_number/37828224631 execution_time 4.599µs 4.613µs ± 0.009µs 4.614µs ± 0.006µs 4.619µs 4.628µs 4.631µs 4.632µs 0.39% 0.175 -0.804 0.18% 0.001µs 1 200
credit_card/is_card_number/37828224631 throughput 215909644.054op/s 216764700.727op/s ± 399638.319op/s 216752120.866op/s ± 289541.048op/s 217080078.781op/s 217374034.078op/s 217393381.672op/s 217424187.975op/s 0.31% -0.168 -0.809 0.18% 28258.697op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 81.683µs 82.012µs ± 0.223µs 81.975µs ± 0.134µs 82.116µs 82.357µs 82.800µs 83.309µs 1.63% 1.852 6.679 0.27% 0.016µs 1 200
credit_card/is_card_number/378282246310005 throughput 12003480.222op/s 12193405.694op/s ± 32975.997op/s 12198774.646op/s ± 19985.225op/s 12216365.047op/s 12233527.021op/s 12240191.787op/s 12242427.356op/s 0.36% -1.810 6.415 0.27% 2331.755op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 58.861µs 58.892µs ± 0.020µs 58.891µs ± 0.015µs 58.905µs 58.927µs 58.948µs 58.957µs 0.11% 0.717 0.090 0.03% 0.001µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 16961472.016op/s 16980199.128op/s ± 5745.843op/s 16980478.393op/s ± 4409.303op/s 16985151.581op/s 16987422.003op/s 16988445.649op/s 16989220.340op/s 0.05% -0.715 0.086 0.03% 406.292op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.819µs 6.830µs ± 0.020µs 6.823µs ± 0.003µs 6.826µs 6.870µs 6.910µs 6.928µs 1.54% 2.644 6.917 0.29% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 144345817.454op/s 146407026.705op/s ± 428193.020op/s 146564079.160op/s ± 58049.657op/s 146620934.899op/s 146641911.748op/s 146647503.994op/s 146656183.874op/s 0.06% -2.627 6.802 0.29% 30277.819op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 4.600µs 4.616µs ± 0.008µs 4.616µs ± 0.005µs 4.620µs 4.630µs 4.632µs 4.642µs 0.55% 0.174 -0.404 0.18% 0.001µs 1 200
credit_card/is_card_number_no_luhn/ throughput 215432820.236op/s 216655096.825op/s ± 398758.849op/s 216624176.995op/s ± 256188.025op/s 216924780.557op/s 217334000.509op/s 217386805.467op/s 217401353.885op/s 0.36% -0.166 -0.411 0.18% 28196.509op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 73.415µs 73.721µs ± 0.130µs 73.743µs ± 0.077µs 73.803µs 73.865µs 73.950µs 74.664µs 1.25% 1.611 12.698 0.18% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 13393272.165op/s 13564785.282op/s ± 23775.189op/s 13560669.313op/s ± 14208.966op/s 13578802.487op/s 13601446.378op/s 13614766.331op/s 13621265.520op/s 0.45% -1.549 12.179 0.17% 1681.160op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 65.264µs 65.457µs ± 0.125µs 65.452µs ± 0.090µs 65.530µs 65.693µs 65.746µs 65.774µs 0.49% 0.430 -0.520 0.19% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 15203621.204op/s 15277150.085op/s ± 29257.516op/s 15278433.727op/s ± 20914.474op/s 15299845.475op/s 15318550.995op/s 15320067.665op/s 15322275.524op/s 0.29% -0.422 -0.530 0.19% 2068.819op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 4.600µs 4.612µs ± 0.008µs 4.612µs ± 0.006µs 4.617µs 4.627µs 4.630µs 4.634µs 0.48% 0.318 -0.530 0.17% 0.001µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 215784759.627op/s 216810343.402op/s ± 375851.704op/s 216811660.093op/s ± 273129.701op/s 217102095.445op/s 217373890.298op/s 217403433.088op/s 217413923.031op/s 0.28% -0.311 -0.539 0.17% 26576.729op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 62.170µs 62.536µs ± 0.107µs 62.516µs ± 0.041µs 62.592µs 62.738µs 62.859µs 62.946µs 0.69% 0.514 2.300 0.17% 0.008µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 15886680.309op/s 15990789.205op/s ± 27307.088op/s 15995780.313op/s ± 10575.630op/s 16004261.536op/s 16034864.365op/s 16054162.621op/s 16084933.273op/s 0.56% -0.494 2.276 0.17% 1930.903op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 58.859µs 58.896µs ± 0.022µs 58.897µs ± 0.017µs 58.908µs 58.933µs 58.963µs 58.993µs 0.16% 0.945 1.662 0.04% 0.002µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 16951268.493op/s 16979117.720op/s ± 6348.815op/s 16978712.939op/s ± 4946.485op/s 16984532.187op/s 16987027.262op/s 16988212.287op/s 16989624.436op/s 0.06% -0.942 1.649 0.04% 448.929op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.819µs 6.832µs ± 0.025µs 6.823µs ± 0.003µs 6.826µs 6.884µs 6.934µs 6.979µs 2.29% 3.321 12.942 0.36% 0.002µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 143285853.122op/s 146371742.128op/s ± 525776.015op/s 146563748.794op/s ± 61440.004op/s 146621225.111op/s 146640196.457op/s 146650260.803op/s 146653464.179op/s 0.06% -3.279 12.562 0.36% 37177.979op/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 [4.612µs; 4.615µs] or [-0.027%; +0.027%] None None None
credit_card/is_card_number/ throughput [216706301.852op/s; 216823896.995op/s] or [-0.027%; +0.027%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [93.447µs; 93.545µs] or [-0.052%; +0.052%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [10690404.389op/s; 10701251.110op/s] or [-0.051%; +0.051%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [85.333µs; 85.420µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number/ 378282246310005 throughput [11707200.454op/s; 11718746.413op/s] or [-0.049%; +0.049%] None None None
credit_card/is_card_number/37828224631 execution_time [4.612µs; 4.614µs] or [-0.026%; +0.026%] None None None
credit_card/is_card_number/37828224631 throughput [216709314.699op/s; 216820086.754op/s] or [-0.026%; +0.026%] None None None
credit_card/is_card_number/378282246310005 execution_time [81.981µs; 82.043µs] or [-0.038%; +0.038%] None None None
credit_card/is_card_number/378282246310005 throughput [12188835.538op/s; 12197975.850op/s] or [-0.037%; +0.037%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [58.889µs; 58.895µs] or [-0.005%; +0.005%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [16979402.810op/s; 16980995.447op/s] or [-0.005%; +0.005%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.828µs; 6.833µs] or [-0.041%; +0.041%] None None None
credit_card/is_card_number/x371413321323331 throughput [146347683.271op/s; 146466370.140op/s] or [-0.041%; +0.041%] None None None
credit_card/is_card_number_no_luhn/ execution_time [4.614µs; 4.617µs] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/ throughput [216599832.683op/s; 216710360.966op/s] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [73.703µs; 73.738µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [13561490.269op/s; 13568080.295op/s] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [65.440µs; 65.475µs] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [15273095.275op/s; 15281204.896op/s] or [-0.027%; +0.027%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [4.611µs; 4.613µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [216758253.971op/s; 216862432.834op/s] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [62.521µs; 62.551µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [15987004.706op/s; 15994573.705op/s] or [-0.024%; +0.024%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [58.893µs; 58.899µs] or [-0.005%; +0.005%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [16978237.835op/s; 16979997.605op/s] or [-0.005%; +0.005%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.829µs; 6.835µs] or [-0.050%; +0.050%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [146298874.629op/s; 146444609.627op/s] or [-0.050%; +0.050%] None None None

Baseline

Omitted due to size.

@PerfectSlayer PerfectSlayer requested a review from bwoebi August 16, 2024 12:51
- `frames`:
An array of `StackFrame`, described below

#### StackFrame
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd like to request some data about the actual functions. Especially in C code there's information to be had "this variable was a null pointer - this looks like freed memory - probably valid address".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You mean like the actual values of local variables on the stack?

docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
docs/RFCs/0002-crashtracker-user-visable-log.md Outdated Show resolved Hide resolved
@kevingosse
Copy link
Contributor

As we start to look into symbolication, I realize that adding all the module information at each stackframe is really inefficient and makes the crash report much bigger than it should. Shall we move the modules to a separate section, and only put the module base address in the stackframe?

@danielsn danielsn merged commit 93babcf into main Nov 13, 2024
32 checks passed
@danielsn danielsn deleted the dsn/crashtracker-errortracking-rfc branch November 13, 2024 20:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.