JSPM

metrics-monkey

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q28254F
  • License ISC

The metrics-monkey 🐒🚀 is a high-performance CLI tool for easy and effective HTTP benchmarking

Package Exports

  • metrics-monkey
  • metrics-monkey/dist/cli/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (metrics-monkey) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

metrics-monkey 🐒🚀

metrics-monkey logo
M. Monkey generated by Llama 3.1

The metrics-monkey is a no-nonsense, high-performance CLI HTTP benchmarking tool that's a swiss army knife for developers and performance engineers who want to:

  • 📈 Supercharge Web Performance: Benchmark your web services to spot performance bottlenecks and optimize your application for top-notch speed and reliability.
  • 🔄 Test API Endpoints: Simulate various traffic patterns, including high concurrency, large number of requests, and prolonged durations, to ensure your API endpoints can handle the load.
  • 🔍 Assess API Dependencies: Verify if the APIs you depend on can withstand the load and determine their maximum capacity.

Installation

You can install metrics-monkey via npm:

npm install -g metrics-monkey

Usage

metrics-monkey --url <url> --method <method> --requests <requests> --concurrency <concurrency> --timeout <timeout> --duration <duration> --headers <headers> --body <body> --output <output>

Options:

  • --help: Display the help message with all available options and their descriptions.
  • --url: The URL to benchmark.
  • --method: The HTTP method to use (GET, POST, PUT, DELETE).
  • --requests: The total number of requests to make.
  • --concurrency: The number of concurrent requests.
  • --timeout: The timeout for each request in seconds.
  • --duration: The duration of the test in milliseconds.
  • --headers: The headers to include with each request (in JSON format).
  • --body: The body content to include with POST or PUT requests.
  • --output: The output format (plain or json).

Examples

1: Basic GET Request Benchmark

metrics-monkey --url https://jsonplaceholder.typicode.com/posts --method GET --requests 1000 --concurrency 50 --timeout 10 --duration 60000

Description: Benchmarks a GET request to https://jsonplaceholder.typicode.com/posts. The test will issue 1000 requests with a concurrency of 50, a timeout of 10 seconds per request, and will run for 6 seconds.

Example Output:

progress [======================================--] 94% | ETA: 1s | 943/1000

Benchmark Results
------------------------------
  Requests per Second: 163.67
  Latency (ms):       
    Avg:       250.38ms
    Stdev:     341.99ms
    Max:       2.26ms
  Throughput (MB/s):   0.00
  HTTP Codes:         
    200xx: 943
------------------------------

Total time: 6s

2: POST Request with Custom Headers

metrics-monkey --url https://api.example.com/data --method POST --requests 500 --concurrency 20 --timeout 5 --headers '{"Authorization": "Bearer my-token"}' --body '{"key": "value"}' 

Description: Sends 500 POST requests to https://api.example.com/data, including a custom Authorization header and a JSON body. The tool will use a concurrency of 20, a timeout of 5 seconds per request

Example Output:

progress [========================================] 100% | ETA: 0s | 500/500

Benchmark Results
------------------------------
  Requests per Second: 75.41
  Latency (ms):       
    Avg:       260.07ms
    Stdev:     304.49ms
    Max:       1.99ms
  Throughput (MB/s):   0.00
  HTTP Codes:         
    0xx: 500
------------------------------

Total time: 6s

3: PUT Request with Extended Duration

metrics-monkey --url https://api.example.com/update --method PUT --requests 2000 --concurrency 100 --timeout 15 --duration 120000 

Description: Performs a PUT request to https://api.example.com/update with 2000 requests and a concurrency of 100. The test will run for 2 minutes (120,000 milliseconds) with each request timing out after 15 seconds. The results will be displayed in plain text format.

Example Output:

progress [========================================] 100% | ETA: 0s | 2000/2000

Benchmark Results
------------------------------
  Requests per Second: 38.01
  Latency (ms):       
    Avg:       2595.13ms
    Stdev:     3039.69ms
    Max:       12.60ms
  Throughput (MB/s):   0.00
  HTTP Codes:         
    0xx: 2000
------------------------------

Total time: 52s