Skip to content

Performance tests #274

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

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

Performance tests #274

wants to merge 9 commits into from

Conversation

huntharo
Copy link
Contributor

@huntharo huntharo commented Apr 9, 2025

No description provided.

Copy link

github-actions bot commented Apr 9, 2025

📊 DotNet Code Coverage Report

File Lines Lines Hit / Found Uncovered Lines Branches
/src/PwrDrvr.LambdaDisp..ension/MetricsRegistry.cs ❌ 0.0% 0 / 21 21 0.0%
/src/PwrDrvr.LambdaDisp..n/HttpReverseRequester.cs ❌ 0.0% 0 / 41 41 0.0%
/src/PwrDrvr.LambdaDispatch.Extension/Function.cs ❌ 0.0% 0 / 462 462 0.0%
/src/PwrDrvr.LambdaDisp..sion/HttpDuplexContent.cs ❌ 0.0% 0 / 23 23 0.0%
/src/PwrDrvr.LambdaDisp..n/HttpReverseRequester.cs ❌ 0.0% 0 / 296 296 0.0%
/src/PwrDrvr.LambdaDisp..tension/LoggerInstance.cs ❌ 0.0% 0 / 17 17 -
/src/PwrDrvr.LambdaDisp..ension/MetricsRegistry.cs ❌ 0.0% 0 / 21 21 -
/src/PwrDrvr.LambdaDisp..ension/MetricsRegistry.cs ❌ 0.0% 0 / 71 71 0.0%
/src/PwrDrvr.LambdaDisp..on/TcpReverseRequester.cs ❌ 0.0% 0 / 194 194 0.0%
/src/PwrDrvr.LambdaDisp..ension/SetupHttpClient.cs ❌ 0.0% 0 / 33 33 0.0%
/src/PwrDrvr.LambdaDispatch.Messages/Waiter.cs ✅ 100.0% 6 / 6 0 -
/src/PwrDrvr.LambdaDispatch.Messages/Waiter.cs ❌ 0.0% 0 / 2 2 -
/src/PwrDrvr.LambdaDisp..outer/LambdaConnection.cs ✅ 100.0% 6 / 6 0 -
/src/PwrDrvr.LambdaDisp...Router/LambdaInstance.cs ✅ 100.0% 3 / 3 0 -
/src/PwrDrvr.LambdaDisp..Router/CapacityManager.cs ✅ 100.0% 51 / 51 0 100.0%
/src/PwrDrvr.LambdaDisp..Router/MetricsRegistry.cs ❌ 2.8% 1 / 36 35 0.0%
/src/PwrDrvr.LambdaDispatch.Router/Config.cs 🟡 81.4% 96 / 118 22 97.7%
/src/PwrDrvr.LambdaDisp..lers/ChunkedController.cs 🟡 88.6% 124 / 140 16 91.7%
/src/PwrDrvr.LambdaDisp..lers/DefaultController.cs ✅ 100.0% 5 / 5 0 -
/src/PwrDrvr.LambdaDisp..ollers/ResetController.cs ✅ 100.0% 8 / 8 0 -
/src/PwrDrvr.LambdaDispatch.Router/Dispatcher.cs 🟡 73.0% 333 / 456 123 66.3%
/src/PwrDrvr.LambdaDispatch.Router/Dispatcher.cs ✅ 100.0% 3 / 3 0 -
/src/PwrDrvr.LambdaDisp..dMetrics/MetricsLogger.cs 🟡 80.9% 114 / 141 27 80.0%
/src/PwrDrvr.LambdaDisp..ics/MetricsLoggerDummy.cs ❌ 0.0% 0 / 2 2 -
/src/PwrDrvr.LambdaDisp..h.Router/GetCallbackIP.cs ✅ 100.0% 8 / 8 0 100.0%
/src/PwrDrvr.LambdaDisp..omingRequestMiddleware.cs ❌ 44.6% 33 / 74 41 46.2%
/src/PwrDrvr.LambdaDisp..Router/LambdaArnParser.cs ✅ 94.6% 35 / 37 2 87.5%
/src/PwrDrvr.LambdaDisp..ter/LambdaClientConfig.cs ✅ 100.0% 18 / 18 0 100.0%
/src/PwrDrvr.LambdaDisp..outer/LambdaConnection.cs ❌ 24.6% 121 / 491 370 13.3%
/src/PwrDrvr.LambdaDisp...Router/LambdaInstance.cs 🟡 60.3% 243 / 403 160 47.5%
/src/PwrDrvr.LambdaDisp../LambdaInstanceManager.cs ✅ 100.0% 4 / 4 0 -
/src/PwrDrvr.LambdaDisp../LambdaInstanceManager.cs ❌ 34.3% 154 / 449 295 64.3%
/src/PwrDrvr.LambdaDisp../LeastOutstandingQueue.cs 🟡 70.2% 151 / 215 64 68.8%
/src/PwrDrvr.LambdaDisp...Router/LoggerInstance.cs ✅ 90.6% 29 / 32 3 83.3%
/src/PwrDrvr.LambdaDisp..Router/MetricsRegistry.cs ❌ 47.6% 10 / 21 11 -
/src/PwrDrvr.LambdaDisp..Router/MetadataService.cs 🟡 84.4% 54 / 64 10 67.6%
/src/PwrDrvr.LambdaDisp..Router/MetricsRegistry.cs ✅ 91.2% 124 / 136 12 -
/src/PwrDrvr.LambdaDisp..Router/MetricsRegistry.cs ❌ 0.0% 0 / 31 31 -
/src/PwrDrvr.LambdaDisp...Router/PendingRequest.cs ✅ 90.7% 49 / 54 5 75.0%
/src/PwrDrvr.LambdaDispatch.Router/Pool.cs ✅ 100.0% 7 / 7 0 -
/src/PwrDrvr.LambdaDispatch.Router/PoolManager.cs 🟡 89.4% 59 / 66 7 78.6%
/src/PwrDrvr.LambdaDispatch.Router/PoolOptions.cs ✅ 100.0% 9 / 9 0 100.0%
/src/PwrDrvr.LambdaDispatch.Router/Program.cs ❌ 0.0% 0 / 190 190 0.0%
/src/PwrDrvr.LambdaDisp..binLambdaInstanceQueue.cs ✅ 90.6% 29 / 32 3 91.7%
/src/PwrDrvr.LambdaDisp..inLambdaInstanceQueue2.cs ✅ 95.3% 61 / 64 3 100.0%
/src/PwrDrvr.LambdaDisp...Router/ShutdownSignal.cs ❌ 0.0% 0 / 1 1 -
/src/PwrDrvr.LambdaDispatch.Router/Startup.cs ❌ 0.0% 0 / 51 51 0.0%
/src/PwrDrvr.LambdaDispatch.Router/TokenBucket.cs 🟡 66.7% 12 / 18 6 100.0%
/src/PwrDrvr.LambdaDisp...Router/LambdaInstance.cs ✅ 100.0% 3 / 3 0 -
/src/PwrDrvr.LambdaDisp..Router/WeightedAverage.cs ✅ 91.7% 44 / 48 4 100.0%
/src/PwrDrvr.LambdaDisp..Router/TrailingAverage.cs ✅ 100.0% 36 / 36 0 100.0%
Overall ❌ 43.3% 2043 / 4718 2675 44.3%

Copy link

github-actions bot commented Apr 9, 2025

📊 Rust Code Coverage Report

File Lines Lines Hit / Found Uncovered Lines Branches
/extension/src/app_client.rs ✅ 100.0% 11 / 11 0 -
/extension/src/app_request.rs 🟡 76.9% 60 / 78 18 -
/extension/src/app_start.rs 🟡 88.9% 48 / 54 6 -
/extension/src/cert.rs 🟡 74.2% 23 / 31 8 -
/extension/src/counter_drop.rs ✅ 100.0% 3 / 3 0 -
/extension/src/endpoint.rs 🟡 89.1% 82 / 92 10 -
/extension/src/lambda_request.rs 🟡 80.3% 151 / 188 37 -
/extension/src/lambda_request_error.rs 🟡 80.2% 77 / 96 19 -
/extension/src/lambda_service.rs 🟡 83.6% 133 / 159 26 -
/extension/src/main.rs ❌ 0.0% 0 / 27 27 -
/extension/src/messages.rs 🟡 86.5% 45 / 52 7 -
/extension/src/options.rs ✅ 98.4% 60 / 61 1 -
/extension/src/ping.rs 🟡 84.2% 176 / 209 33 -
/extension/src/prelude.rs ✅ 100.0% 6 / 6 0 -
/extension/src/relay.rs 🟡 57.8% 111 / 192 81 -
/extension/src/router_channel.rs 🟡 87.7% 336 / 383 47 -
/extension/src/router_client.rs ✅ 100.0% 30 / 30 0 -
/extension/src/startup.rs 🟡 80.5% 99 / 123 24 -
/extension/src/threads.rs 🟡 71.4% 5 / 7 2 -
/extension/src/time.rs ✅ 100.0% 6 / 6 0 -
/extension/src/utils/mod.rs ✅ 100.0% 31 / 31 0 -
Overall 🟡 81.2% 1493 / 1839 346 -

Copy link

github-actions bot commented Apr 9, 2025

🚀 Deployment URLs

Application Load Balancer (ALB)

Network Load Balancer (NLB)

🧪 Test Endpoints

Basic Tests

# Simple ping test
curl -v https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/ping

# View request headers
curl https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/headers

# Delayed response (milliseconds)
curl https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/delay?delay=500

Load/Performance Tests

# Ping test with 100 concurrent requests (Hey)
hey -h2 -c 100 -n 10000 https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/ping

# Ping test with controlled concurrency (oha)
oha -c 20 -z 60s https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/ping

# Post and echo data
curl -X POST -H "Content-Type: text/plain" --data "Hello World" https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/echo

Advanced Features

# Chunked/streaming response
curl https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/chunked-response

# Read from S3
curl https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/read-s3

# Read from DynamoDB
curl https://lambdadispatch-pr-274.ghpublic.pwrdrvr.com/read

Deployment updated: https://github.com/pwrdrvr/lambda-dispatch/actions/runs/14421997652

Copy link

github-actions bot commented Apr 9, 2025

🚀 Performance Test Results

Metric Latency Test (20 concurrent) Throughput Test (100 concurrent)
Duration 60 60
Total Requests 54,149 167,564
Total Success 54,149 167,564
Requests/sec 902.48 2,792.69
Mean Latency 22.15ms 35.79ms
p95 Latency 24.79ms 64.66ms
p99 Latency 45.2ms 73.35ms
Max Latency 6,772.87ms 174.59ms

Note: Tests run against the /ping endpoint for 60 seconds each.

Last updated: 2025-04-12T18:04:03.982Z

@huntharo huntharo added the PERF-TEST-ONLY Only run the performance tests label Apr 12, 2025
@huntharo huntharo self-assigned this Apr 12, 2025
@huntharo huntharo removed the PERF-TEST-ONLY Only run the performance tests label Apr 12, 2025
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.

1 participant