Trend
Trend 是一个用于表示自定义指标的对象,可以计算添加值的不同统计数据(最小值、最大值、平均值或百分位数)。它是四种自定义指标之一。
参数 | 类型 | 描述 |
---|---|---|
name | string | 自定义指标的名称。 |
isTime | boolean | 一个布尔值,指示添加到指标的值是时间值还是仅为无类型值。 |
方法 | 描述 |
---|---|
Trend.add(value, [tags]) | 向趋势指标添加一个值。 |
阈值中的趋势用法
当 Trend
在阈值表达式中使用时,可以使用一系列变量。
avg
表示平均值min
表示最小值max
表示最大值med
表示中位数p(N)
表示特定百分位数。N
是介于0.0
和100.0
之间的数字,表示要查看的百分位数,例如p(99.99)
表示 99.99 百分位数。
这些变量和函数的单位都以毫秒为单位。
阈值表达式示例
p(95) < 400
// 95% 的请求必须在 400 毫秒内完成p(99) < 1000
// 99% 的请求必须在 1 秒内完成。p(50) < 200
// 一半的请求必须在 200 毫秒内完成。max < 3000
// 最慢的请求必须在 3 秒内完成。
⚠️ 不要将
min
和max
用于阈值我们不建议使用
min
和max
来指定阈值,因为这些值代表了异常值。请改用百分位数。
示例
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://quickpizza.grafana.com/api/users/token/login', {
username: 'default',
password: 'supersecure',
});
serverWaitingTimeOnLogin.add(resp.timings.waiting);
sleep(1);
}