Пользовательские метрики и тренды в k6
Определяйте собственные метрики Counter, Gauge, Rate и Trend в k6, чтобы измерять именно то, что важно для сложных сценариев.
«Пользовательские метрики и тренды в k6» — бесплатный урок Load Testing & Performance Benchmarking (JMeter & k6) на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Load Testing & Performance Benchmarking (JMeter & k6), и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Load Testing & Performance Benchmarking (JMeter & k6) содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Beyond Built-in Metrics
k6 ships with built-in metrics like http_req_duration, but advanced tests often need to measure domain-specific values: items in a cart, business transaction time, or a custom error rate. k6 lets you create custom metrics.
The Four Metric Types
k6 offers four custom metric types from k6/metrics:
- Counter — cumulative sum.
- Gauge — last recorded value.
- Rate — percentage of non-zero/true values.
- Trend — statistics like min, max, avg, p95.
Importing Metric Constructors
Import the constructors you need and create the metric objects in module scope so they are shared across iterations.
import { Counter, Trend, Rate, Gauge } from 'k6/metrics';A Counter Example
A Counter accumulates a value over the whole test. Here we count how many orders were created.
const ordersCreated = new Counter('orders_created');
export default function () {
ordersCreated.add(1);
}A Trend for Timing
A Trend collects a series of numbers and reports statistics. It is ideal for timing custom logic.
import http from 'k6/http';
const loginTime = new Trend('login_time');
export default function () {
const res = http.post('https://test.k6.io/login');
loginTime.add(res.timings.duration);
}A Rate for Success Ratio
A Rate tracks how often a condition is true. Add true or false and k6 reports the percentage of trues.
const successRate = new Rate('success_rate');
successRate.add(res.status === 200);A Gauge for Last Value
A Gauge keeps only the most recent value you add. Use it for things like the current queue length reported by an endpoint.
const queueDepth = new Gauge('queue_depth');
queueDepth.add(42);Tagging Custom Metrics
Just like built-in metrics, you can attach tags when adding a value. This lets you slice your custom metric by endpoint or feature.
loginTime.add(res.timings.duration, { region: 'eu' });Thresholds on Custom Metrics
Custom metrics integrate fully with thresholds. You can fail a run if your business metric crosses a limit.
export const options = {
thresholds: {
login_time: ['p(95)<500'],
success_rate: ['rate>0.98'],
},
};Reading Custom Metrics in Summary
At the end of a run, custom metrics appear in the end-of-test summary alongside built-in ones, showing the appropriate statistics for their type.
k6 run scenario.jsChoosing the Right Type
Picking the correct metric type matters: use a Trend for durations, a Rate for success ratios, a Counter for totals, and a Gauge for snapshot values. The wrong type gives misleading summaries.
Quick Check
Pick the right metric type for the job.
Recap
You can now extend k6 with custom metrics.
Countersums,Gaugekeeps the last value,Ratetracks ratios,Trendreports stats.- Add tags and thresholds to custom metrics for targeted SLOs.
- They appear in the summary and any output backend.
Изучай Load Testing & Performance Benchmarking (JMeter & k6) с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 12
- Уроки
- 48
Часто задаваемые вопросы
Урок «Пользовательские метрики и тренды в k6» бесплатный?
Да — полный текст урока «Пользовательские метрики и тренды в k6» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Load Testing & Performance Benchmarking (JMeter & k6), подпишись на CoddyKit PRO. Курс Load Testing & Performance Benchmarking (JMeter & k6) содержит 4 уроков всего.
Чему я научусь в уроке «Пользовательские метрики и тренды в k6»?
Определяйте собственные метрики Counter, Gauge, Rate и Trend в k6, чтобы измерять именно то, что важно для сложных сценариев. Ты практикуешь Load Testing & Performance Benchmarking (JMeter & k6) с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Load Testing & Performance Benchmarking (JMeter & k6)?
Предыдущий опыт не требуется. Load Testing & Performance Benchmarking (JMeter & k6) на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Пользовательские метрики и тренды в k6»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Load Testing & Performance Benchmarking (JMeter & k6)?
Да. Каждый урок Load Testing & Performance Benchmarking (JMeter & k6) включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Сценарии виртуальных пользователей (VUs)
- Параметризация данных в k6
- Выполнение в облаке с k6
- Пользовательские метрики и тренды в k6