Perfscale news #5

3 мин
Perfscale news #5

Приветствую, любители нагрузки. Для истории прошлые выпуски

  • Новости Perfscale № 1

  • Perfscale news #2: Fix Protocol, Magic metrics и MCP

  • perfscale news #3 Websocket, Inference, NPM

  • Perfscale news #4. GRPC, Fixed Triggers, Child Process

Итак, эту неделю открывают новости по OSS проекту — perfscale oss.

Perfscale OSS (open source software)

SQL

Да, вы не ослышались. Теперь даже в OSS движке вы можете написать что‑то такое

# db.config.yaml
vus: 5
duration: 30s
variables: db_dsn: postgres://bench:secret@127.0.0.1:5432/bench

Ну а в самом тесте, что‑то такое

steps: - name: connect uses: std/db-connect@v1 with: driver: postgres dsn: "${{ vars.db_dsn }}" mode: persistent outputs: conn - name: begin tx uses: std/db-tx-begin@v1 with: { id: "${{ conn.id }}" } - name: create bench table uses: std/db-query@v1 with: id: "${{ conn.id }}" query: CREATE TABLE IF NOT EXISTS bench (id TEXT, payload TEXT) - name: insert row uses: std/db-query@v1 with: id: "${{ conn.id }}" # The SQL text is never interpolated — values move through `params`. query: INSERT INTO bench (id, payload) VALUES ($1, $2) params: ["${{ vars.uid }}", "payload"] - name: read it back uses: std/db-query@v1 with: id: "${{ conn.id }}" query: SELECT payload FROM bench WHERE id = $1 params: ["${{ vars.uid }}"] check: duration_ms_lt: 50 - name: commit uses: std/db-tx-commit@v1 with: { id: "${{ conn.id }}" } - name: close uses: std/db-close@v1 with: { id: "${{ conn.id }}" }

Кстати, в этом примере приведен весь жизненный цикл db от создания и до закрытия. Но никто не мешает вам переместить подключение к БД на уровень конфигурации. Это тоже будет работать.

Thresholds

Теперь в поле after для конфигурации можно писать метрики качества. Причем, если у вас скрипт, допустим для http, но написали метрики для gprc в частности. То метрики качества будут проигнорированы. Зато при запуске той же конфигурации, но для gprc сценария — то алерты сработают как надо.

пример конфигурации

config: vus: 10 duration: 1m
steps: - name: query use: std/db-query@v1 with: id: ${{ conn.id }} query: SELECT * FROM orders WHERE created > $1 params: ["2026-01-01"]
after: - name: slo gate use: std/thresholds@v1 with: db_query_duration: ["p95<500", "max<2000"] db_query_failed: ["rate<0.05"] db_errors: ["count==0"] severity: fail # can be fail, pass, warn message: "checkout SLO"

Кстати, message в thresholds поддерживает переменные, так что вы можете писать любое сообщение. А для controlplane стоит trim для большого текста. Будьте аккуратнее с этим.

далее, переходим к платным фичам

Controlplane (paywall)

Интеграции

Появилась встраивание с Prometheus‑like (Prometheus, Victoria Metrics) как sender(perfscale → prom) так и receiver (prom → perfscale).

Sender Работает именно через remote write
Sender Работает именно через remote write

Автодополнение

Обновилось автодополнение для grpc и database. но пока только в visual editor

perfscale → tests → visual
perfscale → tests → visual

Я понимаю, что не всем нравится такой редактор и я экспериментирую с разными форматами отображения. Пока имеем то, что имеем.

Кстати, автодополнение в YAML пока работает слабо. Думаю, что на следующей недели будет выглядеть лучше. Ведь то, что вы меняете в visual моментально отображается в yaml, это удобно и позволяет «прикинуть» сценарий.

Linked Accounts

Я сталкнулся с довольно проблематичной ошибкой для social login.

Сейчас для perfscale.ru(не путать с.su) у меня подключены 2 интеграции

  • Yandex

  • Gitflic

И все будет хорошо у вас, в дополнение к этого сценария, если у вас есть аккаунт в perfscale с одинаковой почтой и вы попытаетесь войти сначала через один social login, а потом и с помощью другой.

За неимением вариантов пришлось расчехлить ваибкод но получилось пока не очень. Так что пока остерегайтесь логина через yandex + gitflic при условии, что у вас тотже email используется учетной записью. Видел на некоторых проектах, когда мы можем линковать учетку между собой, но пока не успел доделать. По отдельности вход работает, следовательно я и вынес в отдельную вкладку а не в settings

Вот так работает неработающее окно. Скоро починю и перемещу в settings
Вот так работает неработающее окно. Скоро починю и перемещу в settings

И да, gitflic не стандартный OIDC провайдер, следовательно пришлось немного кода вокруг написать. Ну а кто говорил, что будет легко?)


Думаю, что с фичами немного приостановится и сконцентрироваться на техдолге, к тому же уже начинается копится конкретный как технический, так и не технический долг

На сегодня все. По традиции оставляю ссылки на проект

Github проекта: https://github.com/Perfscale/perfscale

Сайт проекта: https://perfscale.ru

Сайт проекта вне РФ контура: https://perfscale.su

Документация проекта: https://perfscale.ru/docs

Мой канал: https://t.me/haradkou_sdet

Читают сейчас

Российские школьники получили 7 золотых и 1 бронзовую медаль на Международной олимпиаде по ИИ IOAI 2026

44 минуты назад

Российские школьники получили 7 золотых и 1 бронзовую медаль на Международной олимпиаде по ИИ IOAI 2026

Команда из России завоевала 8 медалей — 7 золотых и 1 бронзовую — на третьей Международной олимпиаде по искусственному интеллекту (IOAI 2026) среди старшеклассников. Мероприятие проходило в Казахстане

Asus позволила ИИ‑агентам настраивать параметры монитора пользователя через DisplayWidget

49 минут назад

Asus позволила ИИ‑агентам настраивать параметры монитора пользователя через DisplayWidget

ASUS обновила своё ПО для управления мониторами DisplayWidget, добавив совместимым ИИ‑агентам возможность настраивать параметры дисплея по запросу пользователя. Для этого компания разработала новый CL

«Колда» и «Танки» в одном флаконе: в мультиплеере Call of Duty: World at War могла быть прокачиваемая бронетехника

1 час назад

«Колда» и «Танки» в одном флаконе: в мультиплеере Call of Duty: World at War могла быть прокачиваемая бронетехника

Датамайнер Forward в процессе расследования обнаружил, что в многопользовательском режиме Call of Duty: World at War изначально планировались сражения с участием техники. Ознакомиться новость полность

Команда Google Creative Lab собрала офлайн‑переводчик на Raspberry Pi 5 с локальной Gemma 4

1 час назад

Команда Google Creative Lab собрала офлайн‑переводчик на Raspberry Pi 5 с локальной Gemma 4

Команда Google Creative Lab представила Gemma Translator — мобильный голосовой переводчик, который работает полностью локально. Устройство собрали на базе одноплатника Raspberry Pi 5 с 8 ГБ оперативно

Стэнфордские учёные впервые создали вирусы при помощи искусственного интеллекта

1 час назад

Стэнфордские учёные впервые создали вирусы при помощи искусственного интеллекта

Учёные в первый раз создали вирусы‑бактериофаги при помощи искусственного интеллекта. «Коктейль» из этих вирусов смог уничтожить бактерии кишечной палочки, устойчивые к природным бактериофагам. Для пр