bencher run을 사용한 베어 메탈 이미지


베어 메탈 Runner는 OCI 이미지 형식으로 패키징된 벤치마크를 실행합니다. bencher run CLI 서브커맨드를 사용할 때, --image 옵션으로 Image를 선택하면 원격 베어 메탈 실행을 활성화할 수 있습니다.

지속적 벤치마킹, 즉 CI에서 벤치마킹할 때, 베어 메탈 Runner를 사용하면 벤치마크 결과의 노이즈를 크게 줄일 수 있습니다. 더 나아가, Bencher Bare Metal은 완전히 동일한 베어 메탈 Runner를 사용하여 CI 외부에서도 실행할 수 있습니다. 이를 통해 개발자와 에이전트는 전체 CI 워크플로우를 거치지 않고도 자신의 코드 변경 사항에 대한 성능을 확인할 수 있습니다. 전체 개요는 베어 메탈 워크플로우를 참조하세요.

--image <IMAGE>


원격 베어 메탈 Runner 실행을 위한 OCI 이미지 참조를 설정합니다 (예: my-image:tag, registry.bencher.dev/my-image:tag, 또는 Bencher Self-Hosted 인스턴스의 경우 localhost:6610/my-image:tag). Bencher API 서버의 OCI 레지스트리만 지원됩니다. --image가 설정되면, 벤치마크 명령은 로컬 대신 원격 베어 메탈 Runner에서 실행됩니다.

--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을 콜백 (bencher run 호출별 웹훅)을 사용하여 비동기적으로 기다릴 수 있습니다.

GitHub Actions를 사용하는 예시는 베어 메탈에서의 Pull Requests를 참조하세요.

--callback-url <URL>


선택 사항: 분리된 베어 메탈 Job의 콜백 URL을 지정합니다. URL은 https를 사용해야 합니다. 이 프로젝트가 속한 조직에는 활성화된 Bencher Plus 플랜이 있어야 합니다.

요청 헤더를 지정하려면 --callback-header 옵션을 사용하세요. 요청 본문을 지정하려면 --callback-body 옵션을 사용하세요. 그렇지 않으면 bencher run API 엔드포인트의 응답 본문이 기본으로 사용됩니다.

이 옵션은 --image 옵션과 --detach 플래그가 설정되어 있어야 합니다. 이 옵션은 --github-actions 옵션과 충돌합니다.

--callback-header <NAME: VALUE>


선택 사항: NAME: VALUE 형식으로 콜백 요청에 헤더를 추가합니다. 헤더 NAME의 최대 크기는 256바이트이고, 헤더 VALUE의 최대 크기는 8 KiB입니다. 이 옵션은 여러 번 지정할 수 있습니다(최대 16회).

다음 헤더는 지원되지 않습니다:

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

이 옵션은 --callback-url 옵션이 설정되어 있어야 합니다.

--callback-body <JSON>


선택 사항: 콜백 요청의 JSON 본문을 설정합니다. 이 JSON 값은 문자열 안에서 다음 템플릿 변수를 사용할 수 있습니다:

변수 확장 형식 값
{{ project.uuid }} 문자열 프로젝트 UUID
{{ project.name }} 문자열 프로젝트 이름
{{ project.slug }} 문자열 프로젝트 슬러그
{{ report }} 객체 보고서 (최대 1회)
{{ report.uuid }} 문자열 보고서 UUID
{{ job.uuid }} 문자열 Job UUID
{{ job.status }} 문자열 Job 종료 상태: processed, failed 또는 canceled

이 JSON 값 템플릿의 최대 크기는 64 KiB입니다. 템플릿 확장은 단일 패스로 이루어지며, 알 수 없는 템플릿 변수가 있으면 확장이 실패합니다.

이 옵션은 --callback-url 옵션이 설정되어 있어야 합니다. --callback-body 옵션을 지정하지 않으면 bencher run API 엔드포인트의 응답 본문("{{ 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


🐰 축하합니다! 베어 메탈 이미지에 대해 모두 배웠습니다! 🎉


브랜치 & 시작 지점 ➡ 계속 진행하세요.

🤖 이 문서는 AI에 의해 자동으로 번역되었습니다. 정확하지 않을 수도 있고 오류가 있을 수도 있습니다. 오류를 발견하면 GitHub에서 문제를 열어주세요.


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