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

Итак, эту неделю открывают новости по 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