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.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 writeSender Работает именно через remote writeАвтодополнение

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

perfscale → tests → visualperfscale → 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

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев