Install
$ agentstack add skill-zebbern-claude-code-guide-http-load-profiler ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
HTTP Load Profiler — Stepped Concurrency Load Test + Inflection Point Analysis
Run stepped concurrency load tests against HTTP services, automatically collect latency percentiles, and detect performance inflection points.
Features
- Dual engine support: Auto-detects wrk (preferred) or ab (Apache Bench); manual override available
- Stepped concurrency: Ramps up through user-defined concurrency levels (default: 1 → 10 → 50 → 100 → 200 → 500)
- Latency percentiles: Collects p50 / p90 / p99 latency at each level
- Inflection point detection: Automatically identifies four types of performance inflection points
- p99 latency accelerating (increase exceeds 2x the previous step's increase)
- Throughput efficiency dropping significantly (RPS per connection drops > 40%)
- Throughput saturated while latency spikes (RPS growth 50%)
- Error rate surging (exceeds 1% and doubles from previous step)
- Optimal concurrency recommendation: Automatically suggests the best concurrency level based on inflection points
- Zero Python dependencies: Pure standard library implementation
Quick Start
# Basic usage — run default stepped load test against target URL
python3 scripts/http_benchmark.py https://example.com/api/health
# Custom concurrency steps and duration per step
python3 scripts/http_benchmark.py https://example.com/api/health -s 5,20,50,100,300 -d 15
# Specify ab as the engine
python3 scripts/http_benchmark.py https://example.com/ -t ab
# JSON-only output (for programmatic parsing)
python3 scripts/http_benchmark.py https://example.com/api/health --json
# Use ab with a specific number of requests per step
python3 scripts/http_benchmark.py https://example.com/ -t ab -n 5000
# Save JSON report to a file
python3 scripts/http_benchmark.py https://example.com/api/health --json > report.json
Parameters
| Parameter | Short | Default | Description | |-----------|-------|---------|-------------| | url | — | (required) | Target URL (http:// or https://) | | --steps | -s | 1,10,50,100,200,500 | Concurrency steps (comma-separated positive integers) | | --duration | -d | 10 | Duration per step in seconds (used directly by wrk; ab estimates request count from this) | | --requests | -n | concurrency×100 | Total requests per step when using ab | | --tool | -t | auto-detect | Specify load testing tool: wrk or ab | | --threads | — | min(concurrency, CPU cores) | Thread count for wrk | | --json | — | false | Output JSON only |
Output Format
Human-readable (default)
Tool: wrk
Target URL: https://example.com/api/health
Concurrency steps: [1, 10, 50, 100, 200, 500]
Duration per step: 10s
----------------------------------------------------------------------------------
Conc. | RPS | Avg(ms) | P50(ms) | P90(ms) | P99(ms) | Errors | Inflection
----------------------------------------------------------------------------------
1 | 245.3 | 4.1 | 3.8 | 5.2 | 8.1 | 0.00% |
10 | 2301.5 | 4.3 | 4.0 | 5.8 | 9.3 | 0.00% |
50 | 9876.2 | 5.1 | 4.6 | 7.2 | 12.5 | 0.00% |
100 | 14523.1 | 6.9 | 5.8 | 10.3 | 22.7 | 0.00% |
200 | 15102.3 | 13.2 | 10.1 | 22.5 | 58.3 | 0.12% | ◀
500 | 14890.5 | 33.6 | 28.3 | 55.2 | 132.1 | 1.35% | ◀
----------------------------------------------------------------------------------
Inflection point analysis:
▶ Concurrency 200:
- p99 latency accelerating: 22.7ms → 58.3ms (increase 35.6ms, previous step increase 10.2ms)
- Throughput saturated with latency spike: RPS grew only 3.9% while p99 latency grew 156.8%
▶ Concurrency 500:
- Error rate surging: 0.12% → 1.35%
Recommended optimal concurrency: 100
JSON format (--json)
{
"url": "https://example.com/api/health",
"tool": "wrk",
"duration_per_step": 10,
"steps": [
{
"concurrency": 1,
"rps": 245.3,
"avg_latency_ms": 4.1,
"p50_ms": 3.8,
"p90_ms": 5.2,
"p99_ms": 8.1,
"total_requests": 2453,
"errors": 0
}
],
"inflection_points": [
{
"concurrency": 200,
"step_index": 4,
"reasons": ["p99 latency accelerating: ..."]
}
],
"recommended_concurrency": 100
}
Prerequisites
At least one of wrk or ab must be installed:
# Ubuntu / Debian
sudo apt-get install wrk # recommended
sudo apt-get install apache2-utils # ab
# macOS
brew install wrk
# ab is pre-installed on macOS
Inflection Point Detection Algorithm
For each concurrency level, the following metrics are compared against the two preceding levels:
- p99 latency acceleration: Triggers when the current p99 increase exceeds 2x the previous step's increase
- Throughput efficiency: Triggers when RPS per connection drops > 40% from the previous step
- Saturation detection: Triggers when RPS growth 50%
- Error rate: Triggers when rate exceeds 1% and doubles from the previous step
Recommended optimal concurrency: The concurrency level one step before the first inflection point. If no inflection point is found, the level with the highest RPS is selected.
Important Notes
- Load testing generates real traffic against the target service — do not run against production services without authorization
- wrk provides more accurate latency percentiles than ab (wrk uses HdrHistogram)
- ab does not support a duration parameter; the script approximates timing via total request count
- A minimum of 10 seconds per step is recommended for stable results
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: zebbern
- Source: zebbern/claude-code-guide
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.