Образы для выделенного оборудования с использованием bencher run


Runner’ы на выделенном оборудовании выполняют бенчмарки, упакованные в формат OCI Image. При использовании подкоманды CLI bencher run выберите Image с помощью опции --image, чтобы включить удалённое выполнение на выделенном оборудовании.

При непрерывном бенчмаркинге, то есть при бенчмаркинге в CI, использование runner’ов на выделенном оборудовании может значительно снизить уровень шума в результатах ваших бенчмарков. Более того, Bencher Bare Metal можно запускать вне CI на точно тех же runner’ах на выделенном оборудовании. Это позволяет как разработчикам, так и агентам проверять производительность изменений в коде, не проходя через весь CI-процесс. Смотрите Рабочий процесс на выделенном оборудовании для полного обзора.

--image <IMAGE>


Задаёт ссылку на OCI-образ для удалённого выполнения на Runner на выделенном оборудовании (например, my-image:tag, registry.bencher.dev/my-image:tag или для инстансов Bencher Self-Hosted localhost:6610/my-image:tag). Поддерживается только OCI-реестр API-сервера Bencher. Когда задана опция --image, команда бенчмарка выполняется на удалённом Runner на выделенном оборудовании, а не локально.

--entrypoint <ENTRYPOINT>


Переопределяет entrypoint контейнера для выполнения команды бенчмарка. Эта опция требует, чтобы была задана опция --image.

--env <KEY=VALUE>


Задаёт переменные окружения в формате KEY=VALUE. Может быть указана несколько раз. Эта опция требует, чтобы была задана опция --image.

--job-timeout <SECONDS>


Задаёт максимальное время выполнения Job в секундах. Смотрите документацию Job для получения дополнительной информации. Эта опция требует, чтобы была задана опция --image или опция --job.

--job-poll-interval <SECONDS>


Задаёт интервал опроса в секундах при ожидании завершения Job на выделенном оборудовании. Эта опция требует, чтобы была задана опция --image или опция --job. Эта опция конфликтует с опцией --detach.

--detach


Отсоединиться после отправки Job на выделенном оборудовании, не ожидая его завершения. Эта опция требует, чтобы была задана опция --image. Эта опция конфликтует с опцией --job-poll-interval.

--job <UUID>


Необязательно: Подключиться к Job на выделенном оборудовании. Чаще всего эта опция используется, когда отдельный вызов bencher run уже использовал флаг --detach. Ряд других опций bencher run при этом вступает в силу и работает так, как если бы вы никогда не отсоединялись. Это позволяет асинхронно ожидать Job на выделенном оборудовании с помощью callback (вебхуков для каждого отдельного вызова bencher run).

См. Pull Requests на выделенном оборудовании для примера с GitHub Actions.

--callback-url <URL>


Необязательно: Задает URL callback для отсоединенного Job на выделенном оборудовании. URL должен использовать https. У организации этого проекта должен быть активный план Bencher Plus.

Чтобы задать заголовки запроса, используйте опцию --callback-header. Чтобы задать тело запроса, используйте опцию --callback-body. В противном случае по умолчанию используется тело ответа эндпоинта API bencher run.

Эта опция требует, чтобы были заданы опция --image и флаг --detach. Эта опция конфликтует с опцией --github-actions.

--callback-header <NAME: VALUE>


Необязательно: Добавляет заголовок к запросу callback в формате NAME: VALUE. Максимальный размер NAME заголовка составляет 256 байт, а максимальный размер VALUE заголовка составляет 8 КиБ. Эту опцию можно указать несколько раз (не более 16).

Следующие заголовки не поддерживаются:

  • Connection
  • Content-Length
  • Host
  • Keep-Alive
  • Proxy-Connection
  • TE
  • Trailer
  • Transfer-Encoding
  • Upgrade

Эта опция требует, чтобы была задана опция --callback-url.

--callback-body <JSON>


Необязательно: Задает JSON-тело запроса callback. Это JSON-значение может использовать в строке любые из следующих переменных шаблона:

Переменная Раскрывается как Значение
{{ project.uuid }} Строка UUID Проекта
{{ project.name }} Строка Название Проекта
{{ project.slug }} Строка Slug Проекта
{{ report }} Объект Отчет (не более одного раза)
{{ report.uuid }} Строка UUID отчета
{{ job.uuid }} Строка UUID Job
{{ job.status }} Строка Конечное состояние Job: processed, failed или canceled

Максимальный размер этого шаблона JSON-значения составляет 64 КиБ. Шаблон раскрывается за один проход, и любая неизвестная переменная шаблона приводит к ошибке раскрытия.

Эта опция требует, чтобы была задана опция --callback-url. Если опция --callback-body не указана, по умолчанию используется тело ответа эндпоинта API bencher run ("{{ report }}").

Например, чтобы опубликовать сообщение во входящем вебхуке Slack:

Terminal window
bencher run \
--project project-abc4567-wxyz123456789 \
--image project-abc4567-wxyz123456789:latest \
--detach \
--callback-url "$SLACK_WEBHOOK_URL" \
--callback-body '{"text": "{{ project.name }}: Bencher Job {{ job.status }}", "blocks": [{"type": "section", "text": {"type": "mrkdwn", "text": "*{{ project.name }}*: Bencher Job {{ job.status }}\n<https://bencher.dev/console/projects/{{ project.slug }}/reports/{{ report.uuid }}|View the report>"}}]}' \
bencher mock


🐰 Поздравляем! Вы узнали всё об Образах для выделенного оборудования! 🎉


Продолжайте изучение: Ветки & Начальные точки ➡

🤖 Этот документ был автоматически переведён с помощью ИИ. Он может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.


Published: Sun, April 5, 2026 at 6:00:00 AM UTC | Last Updated: Sun, September 27, 2026 at 12:00:00 AM UTC