Приветствую, любители нагрузки. Для истории прошлые выпуски
-
Новости 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.yamlvus: 5duration: 30svariables: 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: 1msteps: - 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Автодополнение
Обновилось автодополнение для grpc и database. но пока только в visual editor
perfscale → tests → visual
Я понимаю, что не всем нравится такой редактор и я экспериментирую с разными форматами отображения. Пока имеем то, что имеем.
Кстати, автодополнение в YAML пока работает слабо. Думаю, что на следующей недели будет выглядеть лучше. Ведь то, что вы меняете в visual моментально отображается в yaml, это удобно и позволяет «прикинуть» сценарий.
Linked Accounts
Я сталкнулся с довольно проблематичной ошибкой для social login.
Сейчас для perfscale.ru(не путать с.su) у меня подключены 2 интеграции
-
Yandex
-
Gitflic
И все будет хорошо у вас, кроме того сценария, если у вас есть аккаунт в perfscale с одинаковой почтой и вы попытаетесь войти сначала через один social login, а потом и с помощью другой.
За неимением вариантов пришлось расчехлить ваибкод но получилось пока не очень. Так что пока остерегайтесь логина через yandex + gitflic при условии, что у вас тотже email используется учетной записью. Видел на некоторых проектах, когда мы можем линковать учетку между собой, но пока не успел доделать. По отдельности вход работает, поэтому я и вынес в отдельную вкладку а не в 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
Источник: habr.com