Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
Trend
Trend is an object for representing a custom metric that allows for calculating different statistics on the added values (min, max, average or percentiles). It is one of the four custom metrics.
Parameter | Type | Description |
---|---|---|
name | string | The name of the custom metric. |
isTime | boolean | A boolean indicating whether the values added to the metric are time values or just untyped values. |
Method | Description |
---|---|
Trend.add(value, [tags]) | Add a value to the trend metric. |
Trend usage in Thresholds
When Trend
is used in a threshold expression, there are a range of variables that can be used.
avg
for averagemin
for minimummax
for maximummed
for medianp(N)
for specific percentile.N
is a number between0.0
and100.0
meaning the percentile value to look at, e.g.p(99.99)
means the 99.99th percentile.
The unit of these variables and functions are all in milliseconds.
Example threshold expressions:
p(95) < 400
// 95% of requests must finish below 400msp(99) < 1000
// 99% of requests must finish within 1s.p(50) < 200
// half of requests must finish within 200ms.max < 3000
// the slowest request must finish within 3s.
⚠️ Don’t use
min
andmax
in thresholdsWe don’t recommend using
min
andmax
for specifying thresholds because these values represent outliers. Use percentiles instead.
Examples
import { Trend } from 'k6/metrics';
const myTrend = new Trend('my_trend');
export default function () {
myTrend.add(1);
myTrend.add(2, { tag1: 'value', tag2: 'value2' });
}
import { Trend } from 'k6/metrics';
import { sleep } from 'k6';
import http from 'k6/http';
const serverWaitingTimeOnLogin = new Trend('serverWaitingTimeOnLogin', true);
export const options = {
vus: 1,
duration: '1m',
thresholds: {
serverWaitingTimeOnLogin: ['p(95) < 200'],
},
};
export default function () {
const resp = http.post('https://test-api.k6.io/auth/token/login/', {
username: 'test-user',
password: 'supersecure',
});
serverWaitingTimeOnLogin.add(resp.timings.waiting);
sleep(1);
}