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

[SVLS-3545] Add Serverless metric origins to dogstatsd package #876

Draft
wants to merge 29 commits into
base: main
Choose a base branch
from

Conversation

DylanLovesCoffee
Copy link

What does this PR do?

Adds metric origins for Serverless. This will effect the Lambda Extension and Serverless Compatibility Layer.

Currently all metrics (custom and standard) are bucketed into the serverless origin product. At the moment, we just want to be able to differentiate custom metrics by their source. Reference this mapping for Serverless metric origin designations.

Motivation

SVLS-3545 - correct Serverless metric origins

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Copy the git hash to your Cargo.toml

@DylanLovesCoffee DylanLovesCoffee requested review from a team February 12, 2025 20:49
@duncanpharvey
Copy link
Contributor

Can we get Azure Functions in on this?

@codecov-commenter
Copy link

codecov-commenter commented Feb 12, 2025

Codecov Report

Attention: Patch coverage is 75.40984% with 45 lines in your changes missing coverage. Please review.

Project coverage is 71.74%. Comparing base (5ada426) to head (1e36f6f).
Report is 19 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #876      +/-   ##
==========================================
- Coverage   71.90%   71.74%   -0.17%     
==========================================
  Files         324      329       +5     
  Lines       48077    48695     +618     
==========================================
+ Hits        34572    34936     +364     
- Misses      13505    13759     +254     
Components Coverage Δ
crashtracker 42.93% <ø> (-0.30%) ⬇️
crashtracker-ffi 6.25% <ø> (-0.05%) ⬇️
datadog-alloc 98.73% <ø> (ø)
data-pipeline 92.07% <ø> (-0.29%) ⬇️
data-pipeline-ffi 90.39% <ø> (-1.06%) ⬇️
ddcommon 80.08% <ø> (ø)
ddcommon-ffi 61.05% <ø> (ø)
ddtelemetry 61.74% <ø> (ø)
ddtelemetry-ffi 22.46% <ø> (ø)
dogstatsd 88.38% <75.40%> (-1.64%) ⬇️
dogstatsd-client 79.77% <ø> (ø)
ipc 82.68% <ø> (ø)
profiling 80.04% <ø> (ø)
profiling-ffi 70.68% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 40.52% <ø> (-0.99%) ⬇️
sidecar-ffi 2.05% <ø> (-7.21%) ⬇️
spawn-worker 54.37% <ø> (ø)
tinybytes 92.85% <ø> (+0.06%) ⬆️
trace-mini-agent 72.48% <ø> (ø)
trace-normalization 98.23% <ø> (ø)
trace-obfuscation 95.96% <ø> (ø)
trace-protobuf 78.13% <ø> (+0.46%) ⬆️
trace-utils 93.30% <ø> (-0.27%) ⬇️

@DylanLovesCoffee
Copy link
Author

Can we get Azure Functions in on this?

Yup, we can do this but will require some updates on the backend before it's available.

self.values.iter().any(|(k, _)| k.as_str() == key)
}

pub fn get(&self, key: &str) -> Option<&str> {
Copy link
Contributor

Choose a reason for hiding this comment

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

this assumes that one key correspond to one value, which is conceptually wrong because:

  • some keys have no value
  • keys are not unique, in fact it's a vector and not a dictoinary/map

a find_all might be better, but it depends on why it is needed

Copy link
Author

Choose a reason for hiding this comment

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

I'm using this to check if a tag like origin:containerapp exists in order to identify the metric origin, so I'll want to see if that key is available and then access the value. I added a check on whether the value exists, but curious if you think that's enough?

Copy link
Contributor

Choose a reason for hiding this comment

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

it is a bit misleading to create a method for that, the case when it's only one element with that name is a corner case.
I think the test and the code should handle the general case too

@pr-commenter
Copy link

pr-commenter bot commented Feb 18, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-02-20 18:54:47

Comparing candidate commit 1e36f6f in PR branch dylan/metric-origins with baseline commit 2bf6b4c in branch main.

Found 1 performance improvements and 45 performance regressions! Performance is the same for 6 metrics, 2 unstable metrics.

scenario:benching deserializing traces from msgpack to their internal representation

  • 🟥 execution_time [+3.327ms; +3.433ms] or [+6.094%; +6.289%]

scenario:benching string interning on wordpress profile

  • 🟩 execution_time [-12.231µs; -12.058µs] or [-8.073%; -7.959%]

scenario:concentrator/add_spans_to_concentrator

  • 🟥 execution_time [+311.389µs; +315.699µs] or [+5.241%; +5.313%]

scenario:credit_card/is_card_number/

  • 🟥 execution_time [+375.685ns; +376.680ns] or [+9.599%; +9.625%]
  • 🟥 throughput [-22435967.016op/s; -22375704.864op/s] or [-8.781%; -8.757%]

scenario:credit_card/is_card_number/ 3782-8224-6310-005

  • 🟥 execution_time [+7.574µs; +7.786µs] or [+9.176%; +9.433%]
  • 🟥 throughput [-1046536.737op/s; -1017249.471op/s] or [-8.638%; -8.396%]

scenario:credit_card/is_card_number/37828224631

  • 🟥 execution_time [+376.230ns; +377.124ns] or [+9.615%; +9.637%]
  • 🟥 throughput [-22466532.446op/s; -22411886.568op/s] or [-8.791%; -8.770%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟥 execution_time [+18.760µs; +18.858µs] or [+36.476%; +36.666%]
  • 🟥 throughput [-5216211.269op/s; -5196159.379op/s] or [-26.828%; -26.725%]

scenario:credit_card/is_card_number/x371413321323331

  • 🟥 execution_time [+1.209µs; +1.211µs] or [+20.031%; +20.054%]
  • 🟥 throughput [-27670184.770op/s; -27638420.504op/s] or [-16.706%; -16.686%]

scenario:credit_card/is_card_number_no_luhn/

  • 🟥 execution_time [+375.218ns; +376.130ns] or [+9.586%; +9.609%]
  • 🟥 throughput [-22400501.194op/s; -22345219.294op/s] or [-8.768%; -8.746%]

scenario:credit_card/is_card_number_no_luhn/ 3782-8224-6310-005

  • 🟥 execution_time [+5.288µs; +5.340µs] or [+7.986%; +8.064%]
  • 🟥 throughput [-1127793.214op/s; -1116202.992op/s] or [-7.468%; -7.391%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟥 execution_time [+4.212µs; +4.236µs] or [+7.060%; +7.099%]
  • 🟥 throughput [-1111341.463op/s; -1104865.852op/s] or [-6.631%; -6.592%]

scenario:credit_card/is_card_number_no_luhn/37828224631

  • 🟥 execution_time [+375.755ns; +376.832ns] or [+9.601%; +9.628%]
  • 🟥 throughput [-22441849.620op/s; -22378152.081op/s] or [-8.783%; -8.759%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟥 execution_time [+3.819µs; +3.865µs] or [+6.720%; +6.800%]
  • 🟥 throughput [-1121140.352op/s; -1107136.775op/s] or [-6.372%; -6.293%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟥 execution_time [+18.820µs; +18.896µs] or [+36.585%; +36.733%]
  • 🟥 throughput [-5222375.785op/s; -5206610.676op/s] or [-26.865%; -26.784%]

scenario:credit_card/is_card_number_no_luhn/x371413321323331

  • 🟥 execution_time [+1.206µs; +1.209µs] or [+19.976%; +20.021%]
  • 🟥 throughput [-27636047.760op/s; -27563571.224op/s] or [-16.688%; -16.644%]

scenario:ip_address/quantize_peer_ip_address_benchmark

  • 🟥 execution_time [+414.409ns; +433.483ns] or [+8.166%; +8.542%]

scenario:normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...

  • 🟥 execution_time [+104.237µs; +104.507µs] or [+49.845%; +49.974%]
  • 🟥 throughput [-1593465.507op/s; -1590588.255op/s] or [-33.323%; -33.263%]

scenario:normalization/normalize_name/normalize_name/bad-name

  • 🟥 execution_time [+10.000µs; +10.042µs] or [+54.557%; +54.785%]
  • 🟥 throughput [-19311701.861op/s; -19255700.035op/s] or [-35.396%; -35.294%]

scenario:normalization/normalize_name/normalize_name/good

  • 🟥 execution_time [+5.972µs; +6.007µs] or [+55.424%; +55.753%]
  • 🟥 throughput [-33235255.562op/s; -33078433.285op/s] or [-35.810%; -35.641%]

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

  • 🟥 execution_time [+114.721µs; +114.988µs] or [+22.679%; +22.732%]
  • 🟥 throughput [-366232.736op/s; -365371.616op/s] or [-18.526%; -18.482%]

scenario:normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて

  • 🟥 execution_time [+22.313µs; +22.524µs] or [+4.920%; +4.967%]
  • 🟥 throughput [-104376.381op/s; -103394.853op/s] or [-4.733%; -4.689%]

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

  • 🟥 execution_time [+14.379µs; +14.524µs] or [+8.154%; +8.237%]
  • 🟥 throughput [-431872.392op/s; -427350.358op/s] or [-7.615%; -7.535%]

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

  • 🟥 execution_time [+7.826µs; +7.857µs] or [+20.772%; +20.852%]
  • 🟥 throughput [-4579805.102op/s; -4564067.284op/s] or [-17.256%; -17.197%]

scenario:normalization/normalize_trace/test_trace

  • 🟥 execution_time [+52.240ns; +56.838ns] or [+20.519%; +22.325%]

scenario:redis/obfuscate_redis_string

  • 🟥 execution_time [+6.003µs; +6.476µs] or [+18.095%; +19.519%]

scenario:sql/obfuscate_sql_string

  • 🟥 execution_time [+11.306µs; +11.405µs] or [+16.864%; +17.012%]

scenario:tags/replace_trace_tags

  • 🟥 execution_time [+293.229ns; +299.300ns] or [+12.142%; +12.394%]

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 1e36f6f 1740077015 dylan/metric-origins
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 6.241ms 6.255ms ± 0.013ms 6.254ms ± 0.003ms 6.257ms 6.264ms 6.282ms 6.396ms 2.28% 8.121 82.935 0.20% 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 [6.254ms; 6.257ms] or [-0.028%; +0.028%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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.653µs 2.711µs ± 0.017µs 2.710µs ± 0.004µs 2.715µs 2.746µs 2.757µs 2.786µs 2.81% 0.653 3.481 0.61% 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.709µs; 2.713µs] or [-0.085%; +0.085%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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.500µs 3.323µs ± 1.453µs 3.126µs ± 0.029µs 3.158µs 3.760µs 14.316µs 15.362µs 391.45% 7.466 56.393 43.60% 0.103µ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.122µs; 3.525µs] or [-6.058%; +6.058%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 619.681µs 620.703µs ± 0.712µs 620.683µs ± 0.306µs 620.972µs 621.456µs 621.924µs 628.172µs 1.21% 5.778 58.645 0.11% 0.050µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1591920.684op/s 1611079.787op/s ± 1836.346op/s 1611128.732op/s ± 793.558op/s 1612037.796op/s 1613329.448op/s 1613583.763op/s 1613732.823op/s 0.16% -5.685 57.372 0.11% 129.849op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 474.810µs 475.889µs ± 0.499µs 475.830µs ± 0.180µs 476.026µs 476.350µs 477.091µs 480.029µs 0.88% 5.509 42.575 0.10% 0.035µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2083208.843op/s 2101332.715op/s ± 2188.828op/s 2101589.277op/s ± 794.372op/s 2102310.373op/s 2103215.081op/s 2104071.561op/s 2106106.301op/s 0.21% -5.464 42.104 0.10% 154.774op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 190.149µs 190.781µs ± 0.261µs 190.790µs ± 0.171µs 190.920µs 191.215µs 191.347µs 191.585µs 0.42% 0.105 -0.086 0.14% 0.018µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5219616.013op/s 5241630.814op/s ± 7168.894op/s 5241352.524op/s ± 4690.245op/s 5246295.233op/s 5254277.990op/s 5256393.500op/s 5259034.414op/s 0.34% -0.097 -0.090 0.14% 506.917op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 45.136µs 45.520µs ± 0.101µs 45.516µs ± 0.059µs 45.579µs 45.702µs 45.769µs 45.777µs 0.57% -0.082 0.909 0.22% 0.007µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 21845041.221op/s 21968469.111op/s ± 48855.527op/s 21970277.856op/s ± 28605.671op/s 21997934.320op/s 22045749.635op/s 22087140.000op/s 22155152.379op/s 0.84% 0.101 0.930 0.22% 3454.607op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 47.405µs 47.516µs ± 0.060µs 47.511µs ± 0.025µs 47.537µs 47.576µs 47.619µs 48.094µs 1.23% 5.229 44.678 0.13% 0.004µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20792447.427op/s 21045543.821op/s ± 26593.361op/s 21047616.405op/s ± 11048.128op/s 21058549.888op/s 21071579.113op/s 21084498.713op/s 21094755.484op/s 0.22% -5.156 43.781 0.13% 1880.435op/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 [620.604µs; 620.801µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1610825.287op/s; 1611334.286op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [475.820µs; 475.958µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2101029.365op/s; 2101636.066op/s] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.745µs; 190.817µs] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5240637.274op/s; 5242624.354op/s] or [-0.019%; +0.019%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [45.506µs; 45.534µs] or [-0.031%; +0.031%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [21961698.205op/s; 21975240.017op/s] or [-0.031%; +0.031%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [47.508µs; 47.524µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21041858.237op/s; 21049229.405op/s] or [-0.018%; +0.018%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 138.487µs 139.358µs ± 0.404µs 139.288µs ± 0.144µs 139.437µs 140.044µs 140.526µs 142.898µs 2.59% 4.050 29.379 0.29% 0.029µ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 [139.302µs; 139.414µs] or [-0.040%; +0.040%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 299.251ns 309.133ns ± 12.983ns 302.908ns ± 2.891ns 314.021ns 339.127ns 352.922ns 355.834ns 17.47% 1.840 2.749 4.19% 0.918ns 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.333ns; 310.932ns] or [-0.582%; +0.582%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 310.939µs 313.493µs ± 0.963µs 313.491µs ± 0.533µs 314.033µs 315.210µs 315.918µs 316.227µs 0.87% 0.142 0.198 0.31% 0.068µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 3162288.397op/s 3189896.943op/s ± 9790.950op/s 3189879.543op/s ± 5417.757op/s 3195204.244op/s 3205988.454op/s 3211886.703op/s 3216065.683op/s 0.82% -0.122 0.192 0.31% 692.325op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 27.993µs 28.350µs ± 0.148µs 28.376µs ± 0.103µs 28.457µs 28.551µs 28.604µs 28.620µs 0.86% -0.470 -0.654 0.52% 0.010µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 34940763.759op/s 35274667.691op/s ± 184200.512op/s 35241569.278op/s ± 128371.291op/s 35401550.942op/s 35615152.041op/s 35668234.262op/s 35723131.442op/s 1.37% 0.487 -0.640 0.52% 13024.943op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 16.514µs 16.765µs ± 0.120µs 16.764µs ± 0.076µs 16.840µs 16.921µs 16.988µs 17.712µs 5.65% 2.412 17.955 0.71% 0.008µs 1 200
normalization/normalize_name/normalize_name/good throughput 56459380.085op/s 59652541.585op/s ± 418979.470op/s 59650318.859op/s ± 269747.955op/s 59917619.346op/s 60256660.975op/s 60344700.723op/s 60553386.715op/s 1.51% -2.128 15.229 0.70% 29626.322op/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 [313.359µs; 313.626µs] or [-0.043%; +0.043%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [3188540.011op/s; 3191253.874op/s] or [-0.043%; +0.043%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [28.329µs; 28.370µs] or [-0.072%; +0.072%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [35249139.272op/s; 35300196.111op/s] or [-0.072%; +0.072%] None None None
normalization/normalize_name/normalize_name/good execution_time [16.748µs; 16.781µs] or [-0.099%; +0.099%] None None None
normalization/normalize_name/normalize_name/good throughput [59594475.060op/s; 59710608.110op/s] or [-0.097%; +0.097%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 5.415µs 5.499µs ± 0.046µs 5.496µs ± 0.031µs 5.524µs 5.576µs 5.609µs 5.611µs 2.09% 0.500 -0.362 0.84% 0.003µ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.492µs; 5.505µs] or [-0.117%; +0.117%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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.556µs 28.314µs ± 14.466µs 18.933µs ± 0.310µs 37.178µs 46.434µs 56.406µs 153.265µs 709.52% 3.966 28.507 50.96% 1.023µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [26.309µs; 30.319µs] or [-7.081%; +7.081%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 57.599ms 57.967ms ± 0.252ms 57.950ms ± 0.129ms 58.055ms 58.477ms 58.791ms 59.379ms 2.47% 1.855 5.880 0.43% 0.018ms 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 [57.932ms; 58.002ms] or [-0.060%; +0.060%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 78.136µs 78.399µs ± 0.266µs 78.373µs ± 0.034µs 78.411µs 78.501µs 78.620µs 82.009µs 4.64% 12.542 167.527 0.34% 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 [78.362µs; 78.435µs] or [-0.047%; +0.047%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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.274µs 4.290µs ± 0.002µs 4.290µs ± 0.001µs 4.291µs 4.293µs 4.294µs 4.304µs 0.33% -0.049 15.972 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 232361268.764op/s 233105358.483op/s ± 132442.951op/s 233118093.973op/s ± 55053.468op/s 233162064.532op/s 233258988.866op/s 233327384.512op/s 233997205.078op/s 0.38% 0.080 16.030 0.06% 9365.131op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 89.951µs 90.220µs ± 0.386µs 90.180µs ± 0.067µs 90.251µs 90.415µs 90.582µs 95.396µs 5.78% 12.171 160.558 0.43% 0.027µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 10482652.485op/s 11084243.789op/s ± 45083.329op/s 11088904.996op/s ± 8262.853op/s 11096214.257op/s 11106319.497op/s 11111748.712op/s 11117199.419op/s 0.26% -11.983 157.173 0.41% 3187.873op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 82.421µs 82.704µs ± 0.358µs 82.660µs ± 0.076µs 82.737µs 82.906µs 83.222µs 87.371µs 5.70% 11.248 143.581 0.43% 0.025µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 11445491.838op/s 12091555.664op/s ± 49891.864op/s 12097807.878op/s ± 11109.129op/s 12108380.818op/s 12118497.746op/s 12127135.327op/s 12132811.977op/s 0.29% -11.000 139.157 0.41% 3527.888op/s 1 200
credit_card/is_card_number/37828224631 execution_time 4.275µs 4.290µs ± 0.002µs 4.290µs ± 0.001µs 4.291µs 4.293µs 4.295µs 4.295µs 0.13% -1.807 12.862 0.05% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 232820940.820op/s 233110617.529op/s ± 112290.956op/s 233118043.338op/s ± 55892.631op/s 233160866.644op/s 233242760.899op/s 233433082.730op/s 233914232.050op/s 0.34% 1.824 12.989 0.05% 7940.170op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 78.892µs 79.311µs ± 0.140µs 79.304µs ± 0.081µs 79.388µs 79.556µs 79.727µs 79.966µs 0.83% 0.698 2.361 0.18% 0.010µs 1 200
credit_card/is_card_number/378282246310005 throughput 12505325.841op/s 12608556.911op/s ± 22237.665op/s 12609669.373op/s ± 12910.037op/s 12622208.697op/s 12642285.888op/s 12649106.087op/s 12675480.550op/s 0.52% -0.677 2.301 0.18% 1572.440op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 69.055µs 70.241µs ± 0.351µs 70.373µs ± 0.097µs 70.448µs 70.511µs 70.561µs 71.075µs 1.00% -1.732 2.493 0.50% 0.025µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 14069636.436op/s 14237125.126op/s ± 71732.462op/s 14209949.419op/s ± 19525.038op/s 14243858.899op/s 14422430.541op/s 14466641.049op/s 14481185.699op/s 1.91% 1.754 2.559 0.50% 5072.251op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 7.234µs 7.247µs ± 0.004µs 7.247µs ± 0.002µs 7.249µs 7.255µs 7.259µs 7.262µs 0.20% 0.561 1.846 0.06% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 137706890.883op/s 137979452.137op/s ± 77032.369op/s 137987732.892op/s ± 32988.939op/s 138019043.177op/s 138108941.715op/s 138159640.053op/s 138231330.131op/s 0.18% -0.556 1.842 0.06% 5447.011op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 4.271µs 4.290µs ± 0.002µs 4.290µs ± 0.001µs 4.291µs 4.293µs 4.295µs 4.298µs 0.20% -2.434 25.472 0.05% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 232658510.582op/s 233106441.612op/s ± 119829.115op/s 233120983.643op/s ± 47375.410op/s 233160910.573op/s 233211543.973op/s 233337977.681op/s 234124980.975op/s 0.43% 2.467 25.769 0.05% 8473.198op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 71.392µs 71.531µs ± 0.051µs 71.522µs ± 0.020µs 71.547µs 71.608µs 71.703µs 71.822µs 0.42% 1.757 7.490 0.07% 0.004µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 13923318.715op/s 13979984.359op/s ± 9994.841op/s 13981614.876op/s ± 3859.412op/s 13985034.964op/s 13991768.786op/s 14002675.987op/s 14007145.045op/s 0.18% -1.744 7.424 0.07% 706.742op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 63.803µs 63.890µs ± 0.034µs 63.885µs ± 0.015µs 63.904µs 63.952µs 63.998µs 64.039µs 0.24% 0.995 3.007 0.05% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 15615369.383op/s 15651791.013op/s ± 8318.214op/s 15653091.598op/s ± 3599.584op/s 15655559.346op/s 15662505.684op/s 15671256.862op/s 15673155.020op/s 0.13% -0.988 2.990 0.05% 588.187op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 4.273µs 4.290µs ± 0.003µs 4.290µs ± 0.001µs 4.292µs 4.296µs 4.298µs 4.299µs 0.21% -0.315 4.691 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 232614138.032op/s 233090335.376op/s ± 162091.863op/s 233096971.150op/s ± 80247.437op/s 233174770.492op/s 233324542.808op/s 233385781.424op/s 234000774.049op/s 0.39% 0.329 4.749 0.07% 11461.626op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 60.585µs 60.680µs ± 0.039µs 60.675µs ± 0.015µs 60.695µs 60.734µs 60.785µs 60.914µs 0.39% 1.702 8.393 0.06% 0.003µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 16416455.019op/s 16479816.661op/s ± 10530.267op/s 16481291.262op/s ± 4008.638op/s 16484500.860op/s 16496138.007op/s 16503715.003op/s 16505813.347op/s 0.15% -1.687 8.315 0.06% 744.602op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 69.032µs 70.299µs ± 0.272µs 70.370µs ± 0.055µs 70.424µs 70.482µs 70.535µs 70.541µs 0.24% -3.103 9.456 0.39% 0.019µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 14176209.089op/s 14225105.905op/s ± 55677.829op/s 14210505.082op/s ± 11167.371op/s 14221873.915op/s 14360725.438op/s 14458944.523op/s 14485981.166op/s 1.94% 3.124 9.586 0.39% 3937.017op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 7.237µs 7.246µs ± 0.003µs 7.246µs ± 0.001µs 7.248µs 7.251µs 7.255µs 7.257µs 0.15% 0.123 1.733 0.04% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 137797836.903op/s 138008073.632op/s ± 58656.177op/s 138009458.895op/s ± 28418.343op/s 138034675.090op/s 138108889.381op/s 138158863.999op/s 138183061.838op/s 0.13% -0.119 1.730 0.04% 4147.618op/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.290µs; 4.290µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/ throughput [233087003.164op/s; 233123713.802op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [90.166µs; 90.273µs] or [-0.059%; +0.059%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [11077995.673op/s; 11090491.905op/s] or [-0.056%; +0.056%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [82.654µs; 82.753µs] or [-0.060%; +0.060%] None None None
credit_card/is_card_number/ 378282246310005 throughput [12084641.132op/s; 12098470.197op/s] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/37828224631 execution_time [4.290µs; 4.290µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/37828224631 throughput [233095055.082op/s; 233126179.975op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/378282246310005 execution_time [79.292µs; 79.331µs] or [-0.024%; +0.024%] None None None
credit_card/is_card_number/378282246310005 throughput [12605474.985op/s; 12611638.838op/s] or [-0.024%; +0.024%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [70.192µs; 70.289µs] or [-0.069%; +0.069%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [14227183.697op/s; 14247066.555op/s] or [-0.070%; +0.070%] None None None
credit_card/is_card_number/x371413321323331 execution_time [7.247µs; 7.248µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/x371413321323331 throughput [137968776.192op/s; 137990128.083op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/ execution_time [4.290µs; 4.290µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/ throughput [233089834.449op/s; 233123048.775op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [71.524µs; 71.538µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [13978599.170op/s; 13981369.548op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [63.886µs; 63.895µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [15650638.189op/s; 15652943.838op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [4.290µs; 4.291µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [233067871.003op/s; 233112799.749op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [60.675µs; 60.686µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [16478357.267op/s; 16481276.054op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [70.262µs; 70.337µs] or [-0.054%; +0.054%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [14217389.494op/s; 14232822.317op/s] or [-0.054%; +0.054%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [7.246µs; 7.246µs] or [-0.006%; +0.006%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [137999944.450op/s; 138016202.814op/s] or [-0.006%; +0.006%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1e36f6f 1740077015 dylan/metric-origins
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 38.790µs 39.415µs ± 1.115µs 38.902µs ± 0.043µs 38.971µs 41.847µs 41.877µs 41.919µs 7.75% 1.696 0.902 2.82% 0.079µ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 [39.260µs; 39.570µs] or [-0.392%; +0.392%] None None None

Baseline

Omitted due to size.

Comment on lines +133 to +142
tags.find_all(key)
.iter()
.filter_map(|value| {
if !value.is_empty() {
Some(value.as_str())
} else {
None
}
})
.next()
Copy link
Author

Choose a reason for hiding this comment

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

@alexgallotta I implemented the find_all() method for SortedTags and am now filtering down to the first valid tag value from the found tags here where we handle origin detection

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.

4 participants