Metrics to Measure

About

Load testing is not just about sending traffic — it’s about measuring the right system behaviors under stress. The success of a load test depends heavily on the metrics you capture, how you interpret them, and whether they align with your performance goals.

This section outlines the most important categories of metrics to track during load testing, across system layers and target types.

Category

Metric

What It Measures

Why It Matters

Where It's Relevant

User-Facing Performance

Response Time (Avg, P95, Max)

Time taken to serve a request (including network, processing, DB)

Indicates latency under load; high percentiles expose tail-end latency and bottlenecks

API, UI, Backend

Throughput (TPS, RPS)

Requests/transactions processed per second

Shows system's processing capacity and how it scales

API, Messaging, Backend

Error Rate (%)

% of failed requests (4xx, 5xx, timeouts, validation errors)

Affects user experience, SLA compliance, and system correctness

API, UI, Backend

Concurrent Users / Sessions

Simultaneous users or sessions being handled

Determines concurrency limits and helps validate user load handling

All

Request Completion Rate

Total successful vs attempted requests

Verifies system stability; low completion rate under load may indicate failures or dropped requests

All

Infrastructure & System

CPU Utilization (%)

CPU usage per service, container, or node

High CPU causes thread delays, processing lag, and degraded throughput

Backend, DB, Load Generator

Memory Usage (Heap/Non-Heap)

RAM used during test; includes garbage-collected memory

Memory leaks or GC pressure can slow the app or crash it

Backend, JVM Apps

GC Activity (JVM)

GC frequency, pause duration, memory reclaimed

Long GC pauses cause latency spikes and request timeout

JVM-Based Apps

Disk I/O

Read/write latency, IOPS, queue time

Affects DB performance, logging, and caching behavior

DB, File-Intensive Apps

Network I/O

Bytes sent/received, latency

Measures external call impact, CDN load, or backend communication lag

API, Integrations, Messaging

Load Generator Usage

Resource utilization of load testing tool

Ensures tool doesn’t become the bottleneck and can handle simulated load

Load Generator

Database Behavior

Query Execution Time

Average and percentile durations for key queries

Identifies slow DB operations and poor indexing

API, Backend, DB

Connection Pool Usage

Active, idle, waiting, and maxed-out connections

Pool saturation delays backend responses and increases error rates

Backend, DB

Slow Query Count

Number of queries exceeding performance threshold

Highlights inefficient or blocking queries

DB

Lock Contention / Deadlocks

Time spent waiting for locks or number of conflicts

Indicates concurrency issues or poor transaction design

DB

Transaction Rate

Total commits/rollbacks per second

Reveals DB’s processing throughput, especially for write-heavy workflows

DB

Application Runtime

Active Thread Count

Number of currently executing threads

Reflects service load; rising threads may indicate pooling issues or blocking I/O

Backend, Microservices

Thread Pool Utilization

Thread pool in-use vs available threads

Full pools mean requests queue or time out

Backend

Request Queuing Time

Time a request waits before being processed

Helps detect queue saturation and slow backend response

Async Services, APIs

Queue Depth (Messaging)

Length of processing queues (e.g., Kafka, RabbitMQ)

Backlogs show consumer underperformance or processing delay

Messaging, Event-driven Systems

Retry / Fallback Counts

Circuit breaker or retry invocations

Excessive fallback shows downstream fragility or threshold breaches

Microservices

Functional Correctness

Business Flow Success Rate

% of transactions that completed the full functional flow

Validates that core business actions succeed under stress (e.g., order placed, payment complete)

All

Data Integrity Issues

Duplicate, missing, or corrupted data under concurrency

Ensures correct handling of concurrent operations and transactions

DB, Backend

Side-Effects Validity

Were all expected updates, logs, messages created?

Confirms completeness of side operations like audits, event pushes, etc.

Backend

Execution Details

Test Ramp-up Duration

Time taken to reach full user load

Helps observe system behavior as load increases gradually

All

Steady-State Duration

How long the system was tested under full load

Important for soak or endurance testing, revealing gradual degradation

All

Requests Sent vs Scheduled

How many requests were planned vs how many were executed

Detects tool-side issues or throttling limits on request injection

All

Script / Assertion Failures

Errors from broken scripts or failed test assertions

Ensures script validity; separates tool errors from app behavior

All

Last updated