Найти в Дзене

продолжение про мой опыт нагрузочного тестирования

продолжение про мой опыт нагрузочного тестирования первый пост двумя постами выше 👆 Неделя 2: Нагрузка интеграции с Kafka Во вторник или среду ко мне пришли с просьбой провести нагрузку асинхронного конвейера Маркетплейс → Kafka → WMS. 🤔 Почему бы и нет! подумал я - и пошёл разбираться. Для такой нагрузки одного k6 мало - понадобилось расширение xk6. Есть официальный вариант от Grafana и форк с расширенными возможностями. Я выбрал форк - он активнее развивается, больше документации и примеров применения. ⚙️ Проблемы и решения 1. Изоляция. Мы не могли лить тестовый трафик в общий топик - рисковали зацепить другие системы и остановить их работу. А там активно шло тестирование перед началом акции. Решение: изолировать топик и лить синтетику, после теста - чистить БД скриптом. Главное - подготовить валидные данные, иначе система не примет сообщения и наша нагрузка потеряет весь смысл. 2. Сетевой шум. При запуске с личного ПК задержка отправки сообщений достигала 1+ секунды, при том

продолжение про мой опыт нагрузочного тестирования

первый пост двумя постами выше 👆

Неделя 2: Нагрузка интеграции с Kafka

Во вторник или среду ко мне пришли с просьбой провести нагрузку асинхронного конвейера Маркетплейс → Kafka → WMS. 🤔

Почему бы и нет! подумал я - и пошёл разбираться.

Для такой нагрузки одного k6 мало - понадобилось расширение xk6. Есть официальный вариант от Grafana и форк с расширенными возможностями. Я выбрал форк - он активнее развивается, больше документации и примеров применения.

⚙️ Проблемы и решения

1. Изоляция.

Мы не могли лить тестовый трафик в общий топик - рисковали зацепить другие системы и остановить их работу. А там активно шло тестирование перед началом акции.

Решение: изолировать топик и лить синтетику, после теста - чистить БД скриптом. Главное - подготовить валидные данные, иначе система не примет сообщения и наша нагрузка потеряет весь смысл.

2. Сетевой шум.

При запуске с личного ПК задержка отправки сообщений достигала 1+ секунды, при том что брокер обрабатывал за 65 мс. Проблема - сеть.

Решение: запускать producer из Kubernetes(у нас куб) в той же сети, что и Kafka/WMS. Так, собственно и нужно делать. Но мы не могли =) не было ни времени, ни ресурсов девопса. Позже к этому обязательно придем.

3. Метрики.

Главная метрика - Consumer Lag (насколько быстро вычитываются сообщения - они не должны накапливаться в очереди).

k6 не может получить её напрямую, поэтому я реализовал получение через API Grafana используя свои логин и пароль. Лучше API key, но вариант с API key требовал помощи девопсов, а ресурсов не было. Самый лучший вариант, если для мониторинга у вас используется Grafana(у нас именно она) настроить в ней работу приложения k6. Это идеально решение к которому мы придем. Метрики берутся напрямую, замеры все пишутся сразу сюда же - очень удобно. Но опять же тут требуется помощь девопс, ну вы поняли?)

📊 Итог

Запустить нагрузку до 11.11 не успели, но сделали важные наработки. После акции обязательно продолжим - впереди Новый год и другие распродажи!

🧠 Инсайт двух недель:

Когда я впервые занимался нагрузкой (года 4 назад), думал, что сложнее всего - код.

На деле самое трудное - метрики, SLA/SLO, RPS, и понимание как правильно выстроить инструментарий.

В общем это был интересный опыт, зависал до ночи для решения задачки. Просто потому что это было очень интересно.

А что вас в работе увлекает настолько, что вы готовы делать это даже после завершения рабочего дня?

Или да ну его? 19:00 и домой. 🫡👇

🌐 Сайт | 💼 LinkedIn | 📘 Курс по Postman