Imagens em hardware dedicado com bencher run


Os Runners em hardware dedicado executam benchmarks empacotados no Formato de Imagem OCI. Ao usar o subcomando CLI bencher run, selecione uma Image com a opção --image para habilitar a execução remota em hardware dedicado.

Ao fazer Benchmarking Contínuo, que é o benchmarking no CI, o uso de runners em hardware dedicado pode reduzir drasticamente a quantidade de ruído nos resultados dos seus benchmarks. Além disso, o Bencher Bare Metal pode ser executado fora do CI usando os exatos mesmos runners em hardware dedicado. Isso permite que tanto desenvolvedores quanto agentes verifiquem o desempenho das suas alterações de código sem terem que passar por um fluxo de trabalho de CI inteiro. Veja o Fluxo de trabalho em hardware dedicado para uma visão geral completa.

--image <IMAGE>


Define a referência da imagem OCI para a execução remota no Runner em hardware dedicado (por exemplo, my-image:tag, registry.bencher.dev/my-image:tag, ou para instâncias do Bencher Self-Hosted localhost:6610/my-image:tag). Apenas o registry OCI do servidor da API do Bencher é suportado. Quando --image é definido, o comando de benchmark é executado em um Runner em hardware dedicado remoto em vez de localmente.

--entrypoint <ENTRYPOINT>


Sobrescreve o entrypoint do contêiner para executar o comando de benchmark. Esta opção requer que a opção --image esteja definida.

--env <KEY=VALUE>


Define variáveis de ambiente no formato KEY=VALUE. Pode ser especificada várias vezes. Esta opção requer que a opção --image esteja definida.

--job-timeout <SECONDS>


Define o tempo máximo de execução do job em segundos. Veja a documentação do Job para mais detalhes. Esta opção requer que a opção --image ou a opção --job esteja definida.

--job-poll-interval <SECONDS>


Define o intervalo de polling em segundos ao aguardar a conclusão do Job em hardware dedicado. Esta opção requer que a opção --image ou a opção --job esteja definida. Esta opção entra em conflito com a opção --detach.

--detach


Desanexa após enviar o Job em hardware dedicado, sem aguardar a sua conclusão. Esta opção requer que a opção --image esteja definida. Esta opção entra em conflito com a opção --job-poll-interval.

--job <UUID>


Opcional: Conecta-se a um Job em hardware dedicado. Na maioria das vezes, esta opção é usada quando uma invocação separada do bencher run já usou a flag --detach. Várias outras opções do bencher run entram em ação e funcionam como se você nunca tivesse desanexado. Isso permite aguardar Jobs em hardware dedicado de forma assíncrona usando callbacks (webhooks por invocação do bencher run).

Veja Pull Requests em hardware dedicado para um exemplo usando o GitHub Actions.

--callback-url <URL>


Opcional: Especifica uma URL de callback para um Job em hardware dedicado desanexado. A URL deve usar https. A Organização deste Projeto deve ter um plano Bencher Plus ativo.

Para especificar os cabeçalhos da requisição, use a opção --callback-header. Para especificar o corpo da requisição, use a opção --callback-body. Caso contrário, o corpo da resposta do endpoint da API do bencher run é usado por padrão.

Esta opção requer que a opção --image e a flag --detach estejam definidas. Esta opção entra em conflito com a opção --github-actions.

--callback-header <NAME: VALUE>


Opcional: Adiciona um cabeçalho à requisição do callback no formato NAME: VALUE. O NAME do cabeçalho tem um tamanho máximo de 256 bytes, e o VALUE do cabeçalho tem um tamanho máximo de 8 KiB. Esta opção pode ser especificada várias vezes (no máximo 16).

Os seguintes cabeçalhos não são suportados:

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

Esta opção requer que a opção --callback-url esteja definida.

--callback-body <JSON>


Opcional: Define o corpo JSON da requisição do callback. Este valor JSON pode usar qualquer uma das seguintes variáveis de template em uma string:

Variável Expande como Valor
{{ project.uuid }} String UUID do Projeto
{{ project.name }} String Nome do Projeto
{{ project.slug }} String Slug do Projeto
{{ report }} Objeto Relatório (limite de 1)
{{ report.uuid }} String UUID do relatório
{{ job.uuid }} String UUID do Job
{{ job.status }} String Estado final do Job: processed, failed ou canceled

O tamanho máximo deste template de valor JSON é 64 KiB. A expansão do template é feita em uma única passagem, e qualquer variável de template desconhecida fará a expansão falhar.

Esta opção requer que a opção --callback-url esteja definida. Se a opção --callback-body não for especificada, o corpo da resposta do endpoint da API do bencher run ("{{ report }}") é usado por padrão.

Por exemplo, para publicar uma mensagem em um webhook de entrada do 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


🐰 Parabéns! Você aprendeu tudo sobre Imagens em hardware dedicado! 🎉


Continuar: Branches & Start Points ➡

🤖 Este documento foi traduzido automaticamente por IA. Pode não ser preciso e pode conter erros. Se você encontrar algum erro, abra um problema no GitHub.


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