Configuração do Servidor API


O Bencher API Server requer uma configuração JSON no momento da inicialização. A configuração pode ser fornecida de três maneiras:

  • Variável de ambiente BENCHER_CONFIG: O valor deve ser definido para a configuração JSON
  • Variável de ambiente BENCHER_CONFIG_PATH: O valor deve ser definido para o caminho de um arquivo que contenha a configuração JSON
  • Arquivo /etc/bencher/bencher.json: Um arquivo neste local contendo a configuração JSON

Se nenhuma configuração for encontrada, uma configuração padrão será carregada.

Exemplo de configuração JSON:

{
"console": {
"url": "https://bencher.example.com"
},
"security": {
"issuer": "https://api.bencher.example.com",
"secret_key": "UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy"
},
"server": {
"bind_address": "0.0.0.0:6610",
"request_body_max_bytes": 1048576,
"tls": {
"type": "as_file",
"cert_file": "/path/to/cert.pem",
"key_file": "/path/to/key.pem"
}
},
"logging": {
"name": "Bencher API",
"log": {
"stderr_terminal": {
"level": "info"
}
},
},
"database": {
"file": "/var/lib/bencher/data/bencher.db",
"data_store": {
"service": "aws_s3",
"access_key_id": "ABC123DoRemMiABC123",
"secret_access_key": "AA3Chr-JSF5sUQqKwayx-FvCfZKsMev-5BqPpcFC3m7",
"access_point": "arn:aws:s3:some-region-1:123456789:accesspoint/my-bucket/path/to/backup/dir"
},
"busy_timeout": 5000,
"cache_size": 65536
},
"smtp": {
"hostname": "mailbonobo.com",
"port": 587,
"starttls": true,
"username": "bencher",
"secret": "WM3F2u9cqSNdBPLfy9sJ5kk9",
"from_name": "Bencher",
"from_email": "info@bencher.example.com"
},
"plus": {
"disaster_recovery": {
"replicas": [
{
"scheme": "s3",
"bucket": "my-bucket",
"path": "path/to/replicate",
"access_key_id": "ABC123DoRemMiABC123",
"secret_access_key": "AA3Chr-JSF5sUQqKwayx-FvCfZKsMev-5BqPpcFC3m7"
}
]
},
"registry": {
"url": "https://registry.bencher.example.com",
"data_store": {
"service": "aws_s3",
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"access_point": "arn:aws:s3:us-east-1:123456789012:accesspoint/my-access-point/registry",
"chunk_size": 5242880
},
"upload_timeout": 3600,
"max_body_size": 1073741824
},
"runners": {
"heartbeat_timeout": 90,
"job_timeout_grace_period": 60,
"update_base_url": "https://github.com/bencherdev/bencher/releases/download/"
},
"rate_limiting": {
"window": 86400,
"unclaimed_limit": 255,
"claimed_limit": 65536,
"public": {
"requests": {
"minute": 1024,
"hour": 4096,
"day": 8192
},
"attempts": {
"minute": 32,
"hour": 64,
"day": 128
},
"runs": {
"minute": 64,
"hour": 128,
"day": 256
}
},
"user": {
"requests": {
"minute": 2048,
"hour": 8192,
"day": 16384
},
"attempts": {
"minute": 2,
"hour": 4,
"day": 8
},
"credentials": {
"minute": 4,
"hour": 8,
"day": 16
},
"organizations": {
"minute": 2,
"hour": 4,
"day": 8
},
"invites": {
"minute": 8,
"hour": 16,
"day": 32
},
"runs": {
"minute": 64,
"hour": 1024,
"day": 4096
}
},
"project": {
"requests": {
"minute": 2048,
"hour": 8192,
"day": 16384
},
"runs": {
"minute": 64,
"hour": 1024,
"day": 4096
}
},
"runner": {
"requests": {
"minute": 16,
"hour": 256,
"day": 4096
}
},
"oci_bandwidth": {
"unclaimed": 1073741824,
"free": 10737418240,
"plus": 107374182400
}
},
"stats": {
"offset": 11242,
"enabled": true
}
}
}

console

Nome Exemplo Padrão Obrigatório Descrição
url https://bencher.example.com http://localhost:3000 Sim Indica a URL para o console do host do Bencher UI.

security

Nome Exemplo Padrão Obrigatório Descrição
issuer https://api.bencher.example.com “bencher.dev” Não Indica o emissor do JSON Web Token (JWT). ATENÇÃO Alterar este valor fará com que todos os JWTs gerados anteriormente não validem.
secret_key “UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy” UUID v4 aleatório Sim Indica a chave usada para gerar todos os tokens. DEVE SER MUITO SEGURA! O valor padrão é um UUID v4 gerado aleatoriamente. Sempre que exibido, aparecerá ofuscado como ************.

server

Esta seção é baseada na configuração do servidor Dropshot.

Nome Exemplo Padrão Obrigatório Descrição
bind_address “0.0.0.0:6610” “0.0.0.0:6610” Sim Especifica que o servidor deve se ligar ao dado IP e porta TCP. Em geral, servidores podem se ligar a mais de um IP e porta, mas isso não é (ainda?) suportado.
request_body_max_bytes 1048576 1048576 Sim Especifica o número máximo de bytes permitidos em um corpo de requisição. Requisições maiores vão receber um erro 400.
tls.type “as_file” Não Especifica se e como a informação do certificado e chave TLS são fornecidos. Valores válidos incluem “as_file” e “as_bytes”.
tls.cert_file “/path/to/cert.pem” Se tls.type = as_file Indica o caminho para um arquivo PEM contendo uma cadeia de certificados para o servidor se identificar. O primeiro certificado é o certificado de entidade final, e os restantes são intermediários até um CA confiável. Se especificado, o servidor só aceitará conexões TLS.
tls.key_file “/path/to/key.pem” Se tls.type = as_file Indica o caminho para um arquivo PKCS #8 codificado em PEM contendo a chave privada que o servidor usará. Se especificado, o servidor só aceitará conexões TLS.
tls.certs Se tls.type = as_bytes Idêntico a tls.cert_file, mas fornecido como um array de bytes dos dados de certificado.
tls.key Se tls.type = as_bytes Idêntico a tls.key_file, mas fornecido como um array de bytes dos dados da chave.

logging

Esta seção é baseada na configuração de logging do Dropshot.

Nome Exemplo Padrão Obrigatório Descrição
name “Bencher API” “Bencher API” Sim Especifica o nome do registrador.
log.mode “stderr_terminal” “stderr_terminal” Sim Controla para onde vai o registro do servidor. Os modos válidos são “stderr-terminal” e “file”. Se o modo for “stderr-terminal”, uma saída legível para humanos, com cores e outras formatações de terminal se possível, será enviada para stderr. Se o modo for “file”, a saída no formato Bunyan será enviada para o caminho do sistema de arquivos fornecido por log.path. Veja também log.if_exists, que controla o comportamento se o caminho de destino já existir.
log.level “info” “info” Sim Especifica qual a gravidade das mensagens de log que devem ser incluídas no log. Os valores válidos incluem “trace”, “debug”, “info”, “warn”, “error”, e “critical”, que estão em ordem crescente de gravidade. As mensagens de log no nível especificado e níveis mais graves serão incluídas no log.
log.path Apenas se log.mode = “file” Se log.mode é “file”, esta propriedade determina o caminho para o arquivo de log. Veja também log.if_exists.
log.if_exists Apenas se log.mode = “file” Se log.mode é “file”, esta propriedade especifica o que fazer se o arquivo de log de destino já existir. Os valores válidos incluem “append” (que anexa ao arquivo existente), “truncate” (que trunca o arquivo existente e então o utiliza como se ele acabasse de ser criado), e “fail” (que faz o servidor sair imediatamente com um erro).

database

Nome Exemplo Padrão Obrigatório Descrição
file “path/to/database.db” “/var/lib/bencher/data/bencher.db” Sim Controla para onde vai a base de dados do servidor.
data_store.service “aws_s3” Não Especifica o serviço de armazenamento de dados remoto. Valores validos são “aws_s3”.
data_store.access_key_id “ABC123DoRemMiABC123” Apenas se data_store.service = “aws_s3” Se data_store.service = “aws_s3”, esta propriedade especifica o ID da chave de acesso do AWS. Veja também data_store.service.
data_store.secret_access_key “AA3Chr-JSF5sUQqKwayx-FvCfZKsMev-5BqPpcFC3m7” Apenas se data_store.service = “aws_s3” Se data_store.service = “aws_s3”, esta propriedade especifica a chave de acesso secreta do AWS. Veja também data_store.service. Quando registrada, ela aparecerá obfuscada como ************.
data_store.access_point “arn:aws:s3:some-region-1:123456789:accesspoint/my-bucket/path/to/backup/dir” Apenas se data_store.service = “aws_s3” Se data_store.service = “aws_s3”, esta propriedade especifica o ponto de acesso do AWS S3. Veja também data_store.service.
busy_timeout 5000 5000 Não Especifica o tempo limite de ocupação para o banco de dados em milissegundos. Previne erros SQLITE_BUSY imediatos sob contenção de bloqueio.
cache_size 65536 65536 Não Especifica o tamanho do cache de páginas em KiB para a conexão de escrita do banco de dados. Um cache maior evita a releitura de páginas removidas durante ingestões e exclusões de relatórios grandes. Deve ser maior que 0.

smtp

Esta seção especifica uma configuração de serviço SMTP. Toda a seção é opcional. Se não for especificada, todas as mensagens serão enviadas para logging.

Nome Exemplo Padrão Obrigatório Descrição
hostname “mailbonobo.com” Sim Especifica o nome do host SMTP.
port 587 587 Não Especifica a porta SMTP.
insecure_host false Não Controla se a conexão SMTP pode permitir certificados TLS inválidos.
starttls true true Não Controla se a conexão SMTP usa o protocolo STARTTLS.
username “bencher” Sim Especifica o nome de usuário no host SMTP.
secret “WM3F2u9cqSNdBPLfy9sJ5kk9” Sim Especifica o segredo para o nome de usuário no host SMTP. Sempre que registrado, aparecerá ofuscado como ************.
from_name “Bencher” Sim Especifica o nome que aparecerá na seção de remetente de todos os e-mails.
from_email info@bencher.example.com Sim Especifica o e-mail que aparecerá na seção de remetente de todos os e-mails.

plus

Esta seção é para recursos que são cobertos pela Licença Bencher Plus.

plus.github

Esta seção especifica a configuração para um aplicativo GitHub usado para autenticação OAuth2. Você deve ter uma licença Enterprise válida do Bencher Plus para pelo menos uma organização no servidor. A seção inteira é opcional. Se não especificada, a autenticação com o GitHub não será ativada.

Nome Exemplo Padrão Obrigatório Descrição
client_id Iv1.12864abcd1232048 Sim Especifica o ID do cliente para o seu aplicativo GitHub. O ID do cliente é diferente do ID do aplicativo. Você pode encontrar o ID do cliente na página de configurações do seu aplicativo. Para mais informações sobre como navegar até a página de configurações do seu aplicativo GitHub, veja Modificando um registro de aplicativo GitHub.
client_secret 00000abcd12345wxyz123456789abcdefgh0000 Sim O segredo do cliente para o seu aplicativo GitHub. Você pode gerar um segredo do cliente na página de configurações do seu aplicativo.

plus.google

Esta seção especifica a configuração para um cliente Google usado para autenticação OAuth2. Você deve ter uma licença Bencher Plus Enterprise válida para pelo menos uma organização no servidor. Toda a seção é opcional. Se não for especificada, a autenticação com o Google não será ativada.

Nome Exemplo Padrão Obrigatório Descrição
client_id 0123456789-abcdefg0112358envs.apps.googleusercontent.com Sim Especifica o ID do cliente para o seu cliente OAuth2 do Google.
client_secret GOCSPX-xyz987654321 Sim O segredo do cliente para o seu cliente OAuth2 do Google.

plus.disaster_recovery

Esta seção especifica a configuração de recuperação de desastres. O Bencher suporta a replicação contínua de todas as alterações no banco de dados. Para backups sob demanda ou agendados, consulte a seção database.data_store da configuração.

Existem três schemes de replicação:

  • file: Replicar para um caminho de arquivo local
    • path: Caminho para replicar
  • sftp: Replicar via SFTP
    • host: Nome do host do sistema de destino
    • port: Número da porta do sistema de destino
    • user: Nome de usuário no sistema de destino
    • password: (Opcional) Senha no sistema de destino
    • path: (Opcional) Caminho no sistema de destino
    • key_path: (Opcional) Caminho para a chave SSH
  • s3: Replicar para qualquer armazenamento de blob compatível com S3
    • bucket: Nome do bucket
    • path: (Opcional) Caminho no bucket
    • endpoint: (AWS: Opcional | Não-AWS: Obrigatório) Endpoint de replicação
    • region: (Opcional) Região do bucket
    • access_key_id: Chave de acesso do S3
    • secret_access_key: Chave de acesso secreta do S3

Todos os três schemes de replicação têm as seguintes opções adicionais:

  • snapshot.interval: (Opcional) Especifica com que frequência novos snapshots serão criados. Isso é usado para reduzir o tempo de restauração, já que snapshots mais novos terão menos frames WAL para aplicar. A retenção ainda se aplica a esses snapshots. Se você não definir um intervalo de snapshot, um novo snapshot será criado sempre que a retenção for realizada. A retenção ocorre a cada 24 horas por padrão.
  • snapshot.retention: (Opcional) A quantidade de tempo que os arquivos de snapshot e WAL serão mantidos. Após o período de retenção, um novo snapshot será criado e o antigo será removido. Arquivos WAL que existirem antes do snapshot mais antigo também serão removidos. O padrão é 24h.
  • validation.interval: (Opcional) Quando especificado, o Bencher restaurará automaticamente e validará que os dados na réplica correspondem à cópia local. Desativado por padrão. Habilitar isso pode aumentar significativamente o custo de execução do Bencher, já que a maioria dos serviços em nuvem cobra pelos downloads.
  • sync_interval: (Opcional) Frequência com que os frames são enviados para a réplica. O padrão é 1s. Aumentar a frequência pode aumentar significativamente os custos de armazenamento em nuvem.
  • checkpoint.interval: (Opcional) Com que frequência o Litestream realiza um checkpoint PASSIVE não bloqueante independentemente da contagem de páginas. O Litestream pula o checkpoint se leitores ou escritores estiverem ativos. O padrão é 1m.
  • checkpoint.min_page_count: (Opcional) Número mínimo de páginas WAL antes de um checkpoint PASSIVE não bloqueante ser acionado (~4KB por página). O Litestream pula o checkpoint se leitores ou escritores estiverem ativos. O padrão é 1000 (~4MB).
  • checkpoint.truncate_page_n: (Opcional) Limite de páginas para um checkpoint TRUNCATE bloqueante. Quando este limite é atingido, o Litestream realiza um checkpoint bloqueante que aguarda a conclusão de todos os leitores e escritores, o que pode causar erros database is locked sob carga. O padrão é 0 (desativado). Defina um valor diferente de zero apenas se precisar de um limite superior no tamanho do arquivo WAL e compreender as implicações do bloqueio.
Nome Exemplo Padrão Obrigatório Descrição
replica { … } Sim Especifica um objeto de réplica.
replica.scheme “s3” Sim Especifica o esquema de replicação. Para todas as outras chaves de replica, consulte a lista acima.
snapshot.interval “1h” Não Frequência de criação de novos snapshots. Reduz o tempo de restauração.
snapshot.retention “24h” 24h Não Quanto tempo os arquivos de snapshot e WAL são mantidos antes de serem substituídos.
validation.interval “6h” Não Frequência de restauração e validação dos dados de réplica contra a cópia local. Desativado por padrão.
checkpoint.interval “1m” 1m Não Frequência de execução de checkpoint PASSIVE não bloqueante. Ignorado se leitores/escritores estiverem ativos.
checkpoint.min_page_count 1000 1000 Não Páginas WAL mínimas (~4KB cada) antes de um checkpoint PASSIVE. Ignorado se leitores/escritores estiverem ativos.
checkpoint.truncate_page_n 0 0 Não Limite de páginas para checkpoint TRUNCATE bloqueante. 0 desativa. Valores diferentes de zero podem causar database is locked sob carga.

plus.registry

Esta seção especifica a configuração de armazenamento do registro OCI (Open Container Initiative). O Bencher pode funcionar como um registro de contêineres/artefatos compatível com OCI.

Se esta seção não estiver configurada, o Bencher usará armazenamento em sistema de arquivos local em um diretório oci adjacente ao arquivo de banco de dados. Isso é adequado para desenvolvimento e implantações de instância única.

Para implantações de produção com múltiplas instâncias ou para durabilidade, configure o armazenamento baseado em S3.

Há duas opções de service de armazenamento:

  • local: Armazenar artefatos OCI no sistema de arquivos local (padrão)
  • aws_s3: Armazenar artefatos OCI no AWS S3
    • access_key_id: ID da chave de acesso AWS
    • secret_access_key: Chave de acesso secreta AWS
    • access_point: ARN do ponto de acesso S3 com prefixo de caminho opcional. Formato: arn:aws:s3:<region>:<account-id>:accesspoint/<access-point-name>[/<path-prefix>]
    • chunk_size: Tamanho mínimo do fragmento em bytes para armazenamento em buffer dos dados de upload antes de salvar no S3 (padrão: 5 MB). Os corpos de requisição HTTP chegam como pequenos frames de rede (tipicamente 8–64 KB). Sem armazenamento em buffer, cada frame se torna um objeto S3 separado, criando milhares de objetos por camada. Este valor também corresponde ao tamanho mínimo de parte para uploads multipart do S3.
Nome Exemplo Padrão Obrigatório Descrição
url https://registry.bencher.example.com http://localhost:6610 Não A URL externamente acessível do servidor API para acesso ao registro OCI.
data_store { … } Não Especifica o backend de armazenamento OCI. Local se omitido.
data_store.service “local” ou “aws_s3” Sim Especifica o tipo de serviço de armazenamento.
data_store.access_key_id “AKIAIOSFODNN7EXAMPLE” apenas aws_s3 ID da chave de acesso AWS.
data_store.secret_access_key “wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY” apenas aws_s3 Chave de acesso secreta AWS.
data_store.access_point “arn:aws:s3:us-east-1:123456789012:accesspoint/my-access-point/registry” apenas aws_s3 ARN do ponto de acesso S3. Prefixo de caminho opcional após o nome do ponto de acesso.
data_store.chunk_size 5242880 5242880 apenas aws_s3 Tamanho mínimo do fragmento em bytes para armazenamento em buffer dos dados de upload antes de salvar no S3. Padrão: 5 MB.
upload_timeout 3600 3600 Não Timeout da sessão de upload em segundos. Uploads obsoletos são limpos ao iniciar novos uploads.
max_body_size 1073741824 1073741824 Não Tamanho máximo do corpo em bytes para uploads de blobs e manifestos. Requisições que excedam este limite são rejeitadas com 413 Payload Too Large. Padrão: 1 GiB.

plus.runners

Esta seção configura o sistema de runners para execução de benchmarks em bare metal. Runners são agentes de escopo de servidor que reivindicam e executam trabalhos de benchmark.

Se esta seção não estiver configurada, o Bencher usará os valores padrão.

Nome Exemplo Padrão Obrigatório Descrição
heartbeat_timeout 90 90 Não Tempo em segundos sem um heartbeat antes de marcar um trabalho como falhado.
job_timeout_grace_period 60 60 Não Tempo extra em segundos além do timeout configurado de um trabalho antes que o servidor o cancele.
update_base_url https://example.com/downloads/ GitHub Releases Não URL base para downloads de autoatualização do runner. Por padrão, a URL de download do GitHub Releases do Bencher.

plus.rate_limiting

Esta seção especifica o limite de taxa para o servidor da API. Toda a seção é opcional. Se não especificado, os valores padrão listados serão usados.

Para evitar que projetos unclaimed sejam criados, defina unclaimed_limit como 0.

Nome Exemplo Padrão Obrigatório Descrição
window 86400 86400 Não Especifica o limite de taxa em segundos. Configurado por padrão para um dia.
unclaimed_limit 255 255 Não Controla o limite de taxa para projetos unclaimed. Para evitar a criação de projetos unclaimed, defina este valor para 0.
claimed_limit 65536 65536 Não Controla o limite de taxa para projetos claimed.

public

O limitador de taxa public se aplica por endereço IP para solicitações não autenticadas. Cada subcampo contém limites de minute, hour e day. Toda a seção é opcional. Se não especificado, os valores padrão listados serão usados.

Nome Exemplo Padrão Obrigatório Descrição
requests { … } Não Especifica limites de taxa de solicitações por IP.
requests.minute 1024 1024 Não Solicitações máximas por minuto por endereço IP.
requests.hour 4096 4096 Não Solicitações máximas por hora por endereço IP.
requests.day 8192 8192 Não Solicitações máximas por dia por endereço IP.
attempts { … } Não Especifica limites de taxa de tentativas de autenticação por IP.
attempts.minute 32 32 Não Tentativas de autenticação máximas por minuto por endereço IP.
attempts.hour 64 64 Não Tentativas de autenticação máximas por hora por endereço IP.
attempts.day 128 128 Não Tentativas de autenticação máximas por dia por endereço IP.
runs { … } Não Especifica limites de taxa de execuções de benchmark por IP para projetos não reivindicados.
runs.minute 64 64 Não Execuções de benchmark máximas por minuto por endereço IP.
runs.hour 128 128 Não Execuções de benchmark máximas por hora por endereço IP.
runs.day 256 256 Não Execuções de benchmark máximas por dia por endereço IP.

user

O limitador de taxa user se aplica por usuário autenticado. Cada subcampo contém limites de minute, hour e day. Toda a seção é opcional. Se não especificado, os valores padrão listados serão usados.

Nome Exemplo Padrão Obrigatório Descrição
requests { … } Não Especifica limites de taxa de solicitações por usuário.
requests.minute 2048 2048 Não Solicitações máximas por minuto por usuário.
requests.hour 8192 8192 Não Solicitações máximas por hora por usuário.
requests.day 16384 16384 Não Solicitações máximas por dia por usuário.
attempts { … } Não Especifica limites de taxa de tentativas de autenticação por usuário.
attempts.minute 2 2 Não Tentativas de autenticação máximas por minuto por usuário.
attempts.hour 4 4 Não Tentativas de autenticação máximas por hora por usuário.
attempts.day 8 8 Não Tentativas de autenticação máximas por dia por usuário.
credentials { … } Não Especifica limites de taxa de criação de credenciais por usuário.
credentials.minute 4 4 Não Criações de credenciais máximas por minuto por usuário.
credentials.hour 8 8 Não Criações de credenciais máximas por hora por usuário.
credentials.day 16 16 Não Criações de credenciais máximas por dia por usuário.
organizations { … } Não Especifica limites de taxa de criação de organizações por usuário.
organizations.minute 2 2 Não Criações de organizações máximas por minuto por usuário.
organizations.hour 4 4 Não Criações de organizações máximas por hora por usuário.
organizations.day 8 8 Não Criações de organizações máximas por dia por usuário.
invites { … } Não Especifica limites de taxa de convites por usuário.
invites.minute 8 8 Não Convites máximos por minuto por usuário.
invites.hour 16 16 Não Convites máximos por hora por usuário.
invites.day 32 32 Não Convites máximos por dia por usuário.
runs { … } Não Especifica limites de taxa de execuções de benchmark por usuário.
runs.minute 64 64 Não Execuções de benchmark máximas por minuto por usuário.
runs.hour 1024 1024 Não Execuções de benchmark máximas por hora por usuário.
runs.day 4096 4096 Não Execuções de benchmark máximas por dia por usuário.

project

O limitador de taxa project se aplica por projeto. Cada subcampo contém limites de minute, hour e day. Toda a seção é opcional. Se não especificado, os valores padrão listados serão usados.

Nome Exemplo Padrão Obrigatório Descrição
requests { … } Não Especifica limites de taxa de solicitações por projeto.
requests.minute 2048 2048 Não Solicitações máximas por minuto por projeto.
requests.hour 8192 8192 Não Solicitações máximas por hora por projeto.
requests.day 16384 16384 Não Solicitações máximas por dia por projeto.
runs { … } Não Especifica limites de taxa de execuções de benchmark por projeto.
runs.minute 64 64 Não Execuções de benchmark máximas por minuto por projeto.
runs.hour 1024 1024 Não Execuções de benchmark máximas por hora por projeto.
runs.day 4096 4096 Não Execuções de benchmark máximas por dia por projeto.

runner

O limitador de taxa runner se aplica por runner. Cada subcampo contém limites de minute, hour e day. Toda a seção é opcional. Se não especificado, os valores padrão listados serão usados.

Nome Exemplo Padrão Obrigatório Descrição
requests { … } Não Especifica limites de taxa de solicitações por runner.
requests.minute 16 16 Não Solicitações máximas por minuto por runner.
requests.hour 256 256 Não Solicitações máximas por hora por runner.
requests.day 4096 4096 Não Solicitações máximas por dia por runner.

oci_bandwidth

O oci_bandwidth especifica os limites diários de largura de banda do registro OCI por nível de organização. Toda a seção é opcional. Se não especificado, os valores padrão listados serão usados.

Nome Exemplo Padrão Obrigatório Descrição
unclaimed 1073741824 1073741824 Não Bytes máximos por dia para organizações não reivindicadas (0 membros). Padrão de 1 GiB.
free 10737418240 10737418240 Não Bytes máximos por dia para organizações gratuitas (reivindicadas, sem plano pago). Padrão de 10 GiB.
plus 107374182400 107374182400 Não Bytes máximos por dia para organizações Plus (Team/Enterprise). Padrão de 100 GiB.

plus.stats

Esta seção especifica se e quando as estatísticas do servidor são coletadas. A seção inteira é opcional. Se não especificado, os valores padrão listados serão usados. Ou seja, as estatísticas do servidor são opt-out. Defina enabled como false para desabilitar as estatísticas do servidor.

Nome Exemplo Padrão Obrigatório Descrição
offset 11242 11242 Não Especifica o desvio da meia-noite em segundos para a coleta de estatísticas do servidor. Por padrão, roda às 03:07:22 UTC.
enabled true true Não Controla se as estatísticas do servidor são coletadas. Defina como false para optar por não participar.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Wed, July 8, 2026 at 12:00:00 AM UTC