Добавить в корзинуПозвонить
Найти в Дзене
Анастасия Софт

Визуализация результатов k6: Grafana, InfluxDB и другие варианты

Привет, коллеги! Если вы хотите не просто запускать нагрузочные тесты с помощью k6, но и получать красивые и информативные графики в реальном времени, то эта статья для вас. Мы научимся интегрировать k6 с InfluxDB и Grafana — двумя мощными инструментами для мониторинга и визуализации данных. И да, мы будем делать это с улыбкой на лице и с комментариями к каждой строке кода, чтобы даже новичок понял, что и зачем происходит. Если у вас ещё нет InfluxDB, установите его. Для пользователей macOS: brew install influxdb Для других операционных систем следуйте официальной инструкции. После установки запустите InfluxDB: influxd По умолчанию InfluxDB будет доступен по адресу http://localhost:8086. Откройте InfluxDB CLI: influx Создайте базу данных для хранения метрик: CREATE DATABASE k6 Создайте файл test.js со следующим содержимым: import http from 'k6/http'; // Импортируем модуль для HTTP-запросов
import { check } from 'k6'; // Импортируем функцию для проверок
export default function () {
Оглавление

Привет, коллеги! Если вы хотите не просто запускать нагрузочные тесты с помощью k6, но и получать красивые и информативные графики в реальном времени, то эта статья для вас. Мы научимся интегрировать k6 с InfluxDB и Grafana — двумя мощными инструментами для мониторинга и визуализации данных. И да, мы будем делать это с улыбкой на лице и с комментариями к каждой строке кода, чтобы даже новичок понял, что и зачем происходит.

🧰 Что нам понадобится

  • k6 — инструмент для нагрузочного тестирования.
  • InfluxDB — база данных временных рядов для хранения метрик.
  • Grafana — платформа для визуализации данных.
  • Docker (по желанию) — для упрощения установки и настройки.

🛠 Шаг 1: Установка и настройка InfluxDB

1.1 Установка InfluxDB

Если у вас ещё нет InfluxDB, установите его. Для пользователей macOS:

brew install influxdb

Для других операционных систем следуйте официальной инструкции.

1.2 Запуск InfluxDB

После установки запустите InfluxDB:

influxd

По умолчанию InfluxDB будет доступен по адресу http://localhost:8086.

1.3 Создание базы данных

Откройте InfluxDB CLI:

influx

Создайте базу данных для хранения метрик:

CREATE DATABASE k6

🧪 Шаг 2: Написание теста на k6

Создайте файл test.js со следующим содержимым:

import http from 'k6/http'; // Импортируем модуль для HTTP-запросов
import { check } from 'k6'; // Импортируем функцию для проверок

export default function () {
const res = http.get('https://test-api.com'); // Отправляем GET-запрос

// Проверяем, что статус ответа 200
check(res, {
'is status 200': (r) => r.status === 200,
});
}

🚀 Шаг 3: Запуск теста с выводом в InfluxDB

Теперь запустим тест с выводом результатов в InfluxDB:

k6 run --out influxdb=http://localhost:8086/k6 test.js

Объяснение:

  • --out influxdb=http://localhost:8086/k6: указывает k6 отправлять метрики в InfluxDB по указанному адресу и базе данных.
  • test.js: имя нашего теста.

📊 Шаг 4: Настройка Grafana для визуализации данных

4.1 Установка Grafana

Если у вас ещё нет Grafana, установите его. Для пользователей macOS:

brew install grafana

Для других операционных систем следуйте официальной инструкции.

4.2 Запуск Grafana

После установки запустите Grafana:

brew services start grafana

По умолчанию Grafana будет доступна по адресу http://localhost:3000. Войдите с использованием стандартных учётных данных:

  • Логин: admin
  • Пароль: admin

4.3 Добавление источника данных InfluxDB

  1. В Grafana перейдите в Configuration > Data Sources.
  2. Нажмите Add data source и выберите InfluxDB.
  3. Введите следующие параметры:
    URL: http://localhost:8086
    Database: k6
    User: оставьте пустым
    Password: оставьте пустым
  4. Нажмите Save & Test, чтобы проверить подключение.

4.4 Импорт готовой панели для k6

Чтобы не создавать панель с нуля, импортируем готовую:

  1. Перейдите в Create > Import.
  2. Введите ID панели: 2587.
  3. Нажмите Load.
  4. Выберите источник данных InfluxDB и нажмите Import.

Теперь у вас есть красивая панель с графиками, отображающими результаты теста.

🧩 Шаг 5: Дополнительные настройки и советы

5.1 Использование Docker для упрощения настройки

Если вы хотите упростить настройку и запуск InfluxDB и Grafana, используйте Docker. Вот пример docker-compose.yml:

version: '3'

services:
influxdb:
image: influxdb:2.0
ports:
- "8086:8086"
environment:
- INFLUXDB_DB=k6
- INFLUXDB_ADMIN_USER=admin
- INFLUXDB_ADMIN_PASSWORD=admin
- INFLUXDB_USER=k6
- INFLUXDB_USER_PASSWORD=k6password

grafana:
image: grafana/grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
depends_on:
- influxdb

Запустите контейнеры:

docker-compose up -d

Теперь InfluxDB будет доступен по адресу http://localhost:8086, а Grafana — по адресу http://localhost:3000.

5.2 Использование TimescaleDB вместо InfluxDB

Если вы предпочитаете использовать TimescaleDB, k6 поддерживает вывод метрик и в эту базу данных. Инструкции по настройке можно найти в официальной документации.

✅ Резюме

Теперь вы знаете, как:

  • Установить и настроить InfluxDB и Grafana.
  • Написать простой тест на k6.
  • Запустить тест с выводом результатов в InfluxDB.
  • Настроить Grafana для визуализации данных в реальном времени.

Надеюсь, эта статья была полезной и понятной. Если у вас возникнут вопросы или предложения, не стесняйтесь обращаться. Удачи в нагрузочном тестировании! 🚀