barrage — скилл
Скилл и Go-утилита для нагрузочных тестов: HTTP, база и Redis на общей шкале времени и отчет с точкой, где просела система
- 129 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Создает реальную нагрузку на указанные адреса, базы и Redis.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/barrageОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Создает реальную нагрузку на указанные адреса, базы и Redis.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
barrage — утилита на Go, которая гонит нагрузку на HTTP, базу данных и Redis одновременно и пишет задержки каждого слоя в общие временные корзины. Отчет сопоставляет их по корзинам и показывает, просел ли сам сервис или хранилище под ним. Скилл из `SKILL.md` ведет агента по этапам: осмотреть проект, спросить у пользователя цели, собрать конфиг в YAML, запустить `barrage run` и разобрать результат. Агент ничего не домысливает и уточняет недостающее. Прогоны сравнивает `barrage compare`, отчет получается самодостаточным HTML.
Для кого. Бэкенд-разработчику и SRE, которые ищут узкое место в связке API, базы и кэша. Postgres, MySQL и SQLite поддерживаются из коробки.
Подходит, если
- Сервис замедлился под нагрузкой, и неясно, виновато приложение или база.
- Нужен отчет, где задержки API, базы и Redis лежат на одной шкале времени.
- Перед релизом сравнивают два прогона через `barrage compare`.
- Нагрузку на хранилища проверяют с имитацией сбоев через Toxiproxy.
Не подходит, если
- Тест нужен по готовому сценарию с браузером и скриптами пользователя.
- Проверять предстоит чужую продакшен-систему без разрешения владельца.
- Достаточно разового замера одного HTTP-адреса.
Пример запроса к агенту
Найди узкое место: нагрузи API и Postgres вместе и покажи, в какой момент база начала тормозить приложение.Ограничения
Утилита создает реальную нагрузку: направляйте ее на свои стенды, боевые системы без согласования трогать нельзя. База и Redis проверяются только при настроенных подключениях в `config.yaml`. Установочный скрипт качает готовый бинарь из релизов GitHub, при желании собирайте из исходников (нужен Go 1.25 и новее). Отчет подтягивает Chart.js с CDN, а данные прогона встроены в страницу. Агент следует рабочему порядку из `SKILL.md`: сначала осмотр проекта и вопросы, затем конфиг, поэтому полностью автоматический запуск без подтверждений не предполагается.
Как отключить. Удалите папку скилла и бинарь `barrage` из каталога, куда его поставил скрипт. Файлы конфигов и отчетов уберите вручную.
Частые вопросы
Как поставить barrage?
Выполните `curl -fsSL https://raw.githubusercontent.com/codetesla51/barrage/main/install.sh | bash`. Скрипт берет готовый бинарь из релизов, Go для этого не нужен.
Какие базы поддерживаются?
Postgres, MySQL и SQLite. Другой драйвер подключается пустым импортом, потому что слой работает поверх `database/sql`.
Чем barrage отличается от обычного нагрузочного теста?
Он пишет задержки HTTP, базы и Redis в одни корзины времени и отмечает, в какой корзине просел слой хранения и задело ли это приложение.
Как сравнить два прогона?
Команда `barrage compare --baseline base.json --current new.json` показывает разницу между результатами.
Нужен ли браузер для отчета в CI?
Нет. Ключи `--no-report --json results.json` пишут результат в файл без открытия страницы.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл учит агента писать тесты для Go на фреймворке gotest: хуки жизненного цикла, параллельность и запуск через go tool.
Caliper прогоняет задачи агента с вашим скиллом и без него и показывает, помогает ли скилл и сколько токенов он стоит
CLI для оценки и доработки скиллов агентов: декларативные тесты в YAML, запуск на разных движках и структурированные отчеты
CLI и MCP для проверки скиллов: повторяемые тесты на YAML, сравнение отчетов, поиск регрессий и процесс skilled-improve
Скилл, который один раз читает репозиторий и ставит проверки: правила кода становятся шлюзами, которые ломают коммит или CI.
HTTP-нагрузочный тест на Rust с MCP-сервером: агент запускает прогон и получает перцентили задержек и разбивку статусов.
Коротко о README
Утилита ведет нагрузку по HTTP, базе и Redis с общей линией времени и пишет отчет HTML. Сценарии, темп и рампа задаются в `config.yaml`, для CI есть JSON-вывод без браузера.
Бейдж для README
Исходный SKILL.md
--- name: barrage description: Diagnose app slowness with barrage — run HTTP/DB/Redis/scenario load, correlate spikes to find bottlenecks, compare runs for regressions, estimate capacity. Use when a project is slow, when asked where latency comes from, or when working in the barrage repo itself. --- # Barrage skill Barrage is a Go CLI that answers one question: **when an app slows down, is it the app, or the database / cache underneath it?** It fires HTTP, DB, and Redis load on one clock, buckets every layer's latencies onto the same timeline, and flags exactly which bucket a storage layer spiked in — and whether the app felt it. Use this skill whenever: - someone says "the API is slow", "p99 is high", "it works locally but not under load", "find the bottleneck" - you need to check a project for perf problems (N+1, missing index, pool exhaustion, cache miss, rate limiter, slow journey step) - you need a before/after proof for a migration, tuning pass, or release - you are editing the barrage repo itself ## Install / build ```sh # preferred: prebuilt binary from GitHub releases (no Go needed) curl -fsSL https://raw.githubusercontent.com/codetesla51/barrage/main/install.sh | bash # pin a version, change the install dir, or build from source instead: curl -fsSL https://raw.githubusercontent.com/codetesla51/barrage/main/install.sh | bash -s -- --version v0.7.2 --dir ~/.local/bin curl -fsSL https://raw.githubusercontent.com/codetesla51/barrage/main/install.sh | bash -s -- --from-source # from a checkout (requires Go 1.25+): go build -o barrage ./cmd/barrage go install github.com/codetesla51/barrage/cmd/barrage@latest # fallback only ``` ## Fastest run (30 seconds) ```sh # 1. start the demo backend (login/me/products/orders/checkout on :8080) go run ./cmd/demoserver & # 2. run a canned profile against it ./barrage run -c examples/light.yaml ./barrage run -c examples/scenarios-weighted.yaml # user journeys, not plain HTTP # 3. artifacts land next to you ls report.html results.json # --report PATH, --json PATH, --no-report to skip ./barrage run -c config.yaml -o # ...and open the report in a browser