Configuración del Servidor API
El servidor API de Bencher requiere una configuración JSON al iniciar. La configuración se puede proporcionar de tres maneras:
- Variable de entorno
BENCHER_CONFIG: El valor debe ser la configuración JSON - Variable de entorno
BENCHER_CONFIG_PATH: El valor debe ser la ruta de un archivo que contenga la configuración JSON - Archivo
/etc/bencher/bencher.json: Un archivo en esta ubicación que contenga la configuración JSON
Si no se encuentra ninguna configuración, se cargará una configuración predeterminada.
Ejemplo de configuración 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", "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": { "replica": { "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", "storage": { "scheme": "s3", "bucket": "my-bucket", "path": "registry", "endpoint": "https://s3.example.com", "region": "auto", "access_key_id": "AKIAIOSFODNN7EXAMPLE", "secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "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, "plus_limit": 1048576, "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
| Nombre | Ejemplo | Predeterminado | Obligatorio | Descripción |
|---|---|---|---|---|
| url | “https://bencher.example.com” | “http://localhost:3000” | Sí | Especifica la URL para el host de la consola de Bencher UI. |
security
| Nombre | Ejemplo | Predeterminado | Obligatorio | Descripción |
|---|---|---|---|---|
| issuer | “https://api.bencher.example.com” | “bencher.dev” | No | Especifica el emisor del Token Web JSON (JWT). ADVERTENCIA Cambiar este valor hará que todos los JWT generados anteriormente ya no se validen. |
| secret_key | “UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy” | UUID v4 aleatorio | Sí | Especifica la clave utilizada para generar todos los tokens y para sellar los callbacks pendientes. ¡DEBE SER MUY SEGURA! El valor predeterminado es un UUID v4 generado aleatoriamente. Cuando se registra, aparecerá de manera ofuscada como ************. |
server
Esta sección se basa en la configuración del servidor Dropshot.
| Nombre | Ejemplo | Predeterminado | Obligatorio | Descripción |
|---|---|---|---|---|
| bind_address | “0.0.0.0:6610” | “0.0.0.0:6610” | Sí | Especifica que el servidor debe vincularse a la IP y puerto TCP proporcionados. En general, los servidores pueden vincularse a más de una dirección IP y puerto, pero esto no es (¿aún?) compatible. |
| request_body_max_bytes | 1048576 | 1048576 | Sí | Especifica el número máximo de bytes permitidos en el cuerpo de una solicitud. Las solicitudes más grandes recibirán un error 400. |
| tls.type | “as_file” | — | No | Especifica si y cómo se proporciona la información del certificado y llave TLS. Los valores válidos incluyen “as_file” y “as_bytes”. |
| tls.cert_file | “/path/to/cert.pem” | — | Solo si tls.tipo = as_file | Especifica la ruta a un archivo PEM que contiene una cadena de certificados para que el servidor se identifique. El primer certificado es el certificado de entidad final, y los restantes son certificados intermedios en camino a una CA de confianza. Si se especifica, el servidor solo escuchará conexiones TLS. |
| tls.key_file | “/path/to/key.pem” | — | Solo si tls.tipo = as_file | Especifica la ruta a un archivo PEM codificado en PKCS #8 que contiene la llave privada que usará el servidor. Si se especifica, el servidor solo escuchará conexiones TLS. |
| tls.certs | — | — | Solo si tls.tipo = as_bytes | Idéntico a tls.archivo_cert, pero proporcionado como un array de bytes de datos de certificado. |
| tls.key | — | — | Solo si tls.tipo = as_bytes | Idéntico a tls.archivo_llave, pero proporcionado como un array de bytes de datos de llave. |
logging
Esta sección se basa en la configuración de registro de Dropshot.
| Nombre | Ejemplo | Default | Requerido | Descripción |
|---|---|---|---|---|
| name | “Bencher API” | “Bencher API” | Sí | Especifica el nombre del registro (logger). |
| log.level | “info” | “info” | Sí | Especifica qué gravedad de mensajes de registro se deben incluir en el registro. Los valores válidos incluyen “trace”, “debug”, “info”, “warn”, “error” y “critical”, que están en orden creciente de gravedad. Los mensajes de registro en el nivel especificado y en niveles más severos se incluirán en el registro. |
| log.path | — | — | Solo si log.mode = “file” | Si log.mode es “file”, esta propiedad determina el camino al archivo de registro. Ver también log.if_exists. |
| log.if_exists | — | — | Solo si log.mode = “file” | Si log.mode es “file”, esta propiedad especifica qué hacer si el archivo de registro destino ya existe. Los valores válidos incluyen “append” (que agrega al archivo existente), “truncate” (que trunca el archivo existente y luego lo usa como si acabara de ser creado), y “fail” (que hace que el servidor se cierre inmediatamente con un error). |
database
| Nombre | Ejemplo | Default | Requerido | Descripción |
|---|---|---|---|---|
| file | “ruta/hacia/database.db” | “/var/lib/bencher/data/bencher.db” | Sí | Controla hacia donde irá la base de datos del servidor. |
| busy_timeout | 5000 | 5000 | No | Especifica el tiempo de espera ocupado para la base de datos en milisegundos. Previene errores SQLITE_BUSY inmediatos bajo contención de bloqueo. |
| cache_size | 65536 | 65536 | No | Especifica el tamaño de la caché de páginas en KiB para la conexión de escritura de la base de datos. Una caché más grande evita releer páginas expulsadas durante ingestas y eliminaciones de informes grandes. Debe ser mayor que 0. |
smtp
Esta sección especifica una configuración de servicio SMTP.
Toda la sección es opcional.
Si no se especifica, todos los mensajes serán enviados a logging en su lugar.
| Nombre | Ejemplo | Predeterminado | Requerido | Descripción |
|---|---|---|---|---|
| hostname | “mailbonobo.com” | — | Sí | Especifica el hostname del SMTP. |
| port | 587 | 587 | No | Especifica el puerto del SMTP. |
| insecure_host | — | false | No | Controla si la conexión SMTP puede permitir certificados TLS no válidos. |
| starttls | true | true | No | Controla si la conexión SMTP utiliza el protocolo STARTTLS. |
| username | “bencher” | — | Sí | Especifica el nombre de usuario en el host SMTP. |
| secret | “WM3F2u9cqSNdBPLfy9sJ5kk9” | — | Sí | Especifica el secreto para el nombre de usuario en el host SMTP. Cada vez que se registre, aparecerá ofuscado como ************. |
| from_name | “Bencher” | — | Sí | Especifica el nombre que aparecerá en la sección de remitente de todos los correos electrónicos. |
| from_email | “info@bencher.example.com” | — | Sí | Especifica el correo electrónico que aparecerá en la sección de remitente de todos los correos electrónicos. |
plus
Esta sección es para las características que están cubiertas por la Licencia Bencher Plus.
plus.github
Esta sección especifica la configuración para una aplicación de GitHub utilizada para la autenticación OAuth2. Debes tener una licencia válida de Bencher Plus Enterprise para al menos una organización en el servidor. Toda la sección es opcional. Si no se especifica, la autenticación con GitHub no estará habilitada.
| Nombre | Ejemplo | Predeterminado | Requerido | Descripción |
|---|---|---|---|---|
| client_id | Iv1.12864abcd1232048 | — | Sí | Especifica el ID de cliente de tu aplicación de GitHub. El ID de cliente es diferente del ID de la aplicación. Puedes encontrar el ID de cliente en la página de configuración de tu aplicación. Para más información sobre cómo navegar a la página de configuración de tu aplicación de GitHub, consulta Modificar el registro de una aplicación de GitHub. |
| client_secret | 00000abcd12345wxyz123456789abcdefgh0000 | — | Sí | El secreto de cliente para tu aplicación de GitHub. Puedes generar un secreto de cliente en la página de configuración de tu aplicación. |
plus.google
Esta sección especifica la configuración para un cliente de Google utilizado para la autenticación OAuth2. Debe tener una licencia Bencher Plus Enterprise válida para al menos una organización en el servidor. Toda la sección es opcional. Si no se especifica, la autenticación con Google no se habilitará.
| Name | Example | Default | Required | Description |
|---|---|---|---|---|
| client_id | 0123456789-abcdefg0112358envs.apps.googleusercontent.com | — | Yes | Especifica el ID de cliente para su cliente OAuth2 de Google. |
| client_secret | GOCSPX-xyz987654321 | — | Yes | El secreto del cliente para su cliente OAuth2 de Google. |
plus.disaster_recovery
Esta sección especifica la configuración de recuperación ante desastres. Bencher admite la replicación continua de todos los cambios en la base de datos.
Hay dos esquemas de replicación:
file: Replicar a una ruta de archivo localpath: Ruta para replicar a
s3: Replicar a cualquier almacenamiento compatible con S3bucket: Nombre del bucketpath: (Opcional) Ruta en el bucketendpoint: (AWS: Opcional | No AWS: Requerido) Punto final de replicaciónregion: (Opcional) Región del bucketaccess_key_id: Clave de acceso S3secret_access_key: Clave secreta de acceso S3
Ambos esquemas de réplica tienen las siguientes opciones adicionales:
snapshot.interval: (Opcional) Especifica con qué frecuencia se crearán nuevas instantáneas. Esto se utiliza para reducir el tiempo de restauración, ya que las instantáneas más nuevas tendrán menos marcos WAL que aplicar. La retención aún se aplica a estas instantáneas. Si no establece un intervalo de instantáneas, se creará una nueva instantánea siempre que se realice la retención. Por defecto, la retención ocurre cada 24 horas.snapshot.retention: (Opcional) Cantidad de tiempo que se conservarán los archivos de snapshot y WAL. Después del período de retención, se creará una nueva instantánea y se eliminará la antigua. Los archivos WAL que existan antes de la instantánea más antigua también se eliminarán. Por defecto es24h.validation.interval: (Opcional) Cuando se especifica, Bencher restaurará automáticamente y validará que los datos en la réplica coincidan con la copia local. Deshabilitado por defecto. Habilitar esto puede aumentar significativamente el costo de ejecutar Bencher, ya que la mayoría de los servicios en la nube cobran por las descargas.sync_interval: (Opcional) Frecuencia en la que se envían marcos a la réplica. Por defecto es1s. Aumentar la frecuencia puede aumentar significativamente los costos de almacenamiento en la nube.checkpoint.interval: (Opcional) Con qué frecuencia Litestream realiza un checkpoint PASSIVE no bloqueante independientemente del número de páginas. Litestream omite el checkpoint si hay lectores o escritores activos. Por defecto es1m.checkpoint.min_page_count: (Opcional) Número mínimo de páginas WAL antes de que se active un checkpoint PASSIVE no bloqueante (~4KB por página). Litestream omite el checkpoint si hay lectores o escritores activos. Por defecto es1000(~4MB).checkpoint.truncate_page_n: (Opcional) Umbral de páginas para un checkpoint TRUNCATE bloqueante. Cuando se alcanza este umbral, Litestream realiza un checkpoint bloqueante que espera a que todos los lectores y escritores finalicen, lo que puede causar erroresdatabase is lockedbajo carga. Por defecto es0(deshabilitado). Solo establezca un valor distinto de cero si necesita un límite superior en el tamaño del archivo WAL y comprende las implicaciones del bloqueo.
| Nombre | Ejemplo | Por defecto | Requerido | Descripción |
|---|---|---|---|---|
| replica | { … } | — | Sí | Especifica un objeto de réplica. |
| replica.scheme | “s3” | — | Sí | Especifica el esquema de replicación. Para todas las demás claves replica, consulte la lista anterior. |
| snapshot.interval | “1h” | — | No | Con qué frecuencia se crean nuevas instantáneas. Reduce el tiempo de restauración. |
| snapshot.retention | “24h” | 24h | No | Cuánto tiempo se conservan los archivos de snapshot y WAL antes de ser reemplazados. |
| validation.interval | “6h” | — | No | Con qué frecuencia se restauran y validan los datos de réplica contra la copia local. Deshabilitado por defecto. |
| checkpoint.interval | “1m” | 1m | No | Con qué frecuencia se ejecuta un checkpoint PASSIVE no bloqueante. Se omite si hay lectores/escritores activos. |
| checkpoint.min_page_count | 1000 | 1000 | No | Páginas WAL mínimas (~4KB cada una) antes de un checkpoint PASSIVE. Se omite si hay lectores/escritores activos. |
| checkpoint.truncate_page_n | 0 | 0 | No | Umbral de páginas para un checkpoint TRUNCATE bloqueante. 0 deshabilita. Valores distintos de cero pueden causar database is locked bajo carga. |
plus.registry
Esta sección especifica la configuración de almacenamiento del registro OCI (Open Container Initiative). Bencher puede funcionar como un registro de contenedores/artefactos compatible con OCI.
Si esta sección no está configurada, Bencher usará almacenamiento en el sistema de archivos local
en un directorio registry junto al archivo de base de datos.
Esto es adecuado para desarrollo y despliegues de instancia única.
Para despliegues de producción con múltiples instancias o para durabilidad, configure almacenamiento compatible con S3.
Hay dos schemes de almacenamiento:
file: Almacenar artefactos OCI en el sistema de archivos local (predeterminado)path: (Opcional) Directorio para los datos del registro. Por defecto, un directorioregistryjunto al archivo de base de datos.
s3: Almacenar artefactos OCI en cualquier almacenamiento compatible con S3bucket: Nombre del bucketpath: (Opcional) Prefijo de clave en el bucket. Las barras iniciales, finales y repetidas se eliminan, por lo queregistry,registry/y/registryalmacenan todos bajoregistry.endpoint: (AWS: Opcional | No AWS: Requerido) Punto final de almacenamientoregion: (Opcional) Región del bucket. Requerido para AWS. Por defectoauto, que es lo que esperan los almacenamientos compatibles con S3.access_key_id: Clave de acceso S3secret_access_key: Clave secreta de acceso S3chunk_size: (Opcional) Tamaño mínimo de fragmento en bytes para almacenar en búfer los datos de carga antes de guardarlos. Predeterminado: 5 MB. Los cuerpos de solicitud HTTP llegan como pequeños frames de red (típicamente 8 a 64 KB). Sin almacenamiento en búfer, cada frame se convierte en un objeto separado, creando miles de objetos por capa. Este valor también coincide con el tamaño mínimo de parte de carga multiparte de S3.
Establezca una regla de ciclo de vida del bucket que aborte las cargas multiparte incompletas. Un fallo a mitad de la finalización de una carga de blob deja una, y el servidor no la aborta.
Si anteriormente configuró un path que comenzaba o terminaba con una barra, mueva los objetos existentes al prefijo normalizado antes de actualizar. Un path de registry/ almacenaba claves bajo registry//<project>/... y ahora las almacena bajo registry/<project>/.... Cada segmento de path también se codifica en porcentaje en la clave almacenada cuando contiene un carácter de control ASCII, un carácter no ASCII o uno de \ {` `^` `} % ` ] " > [ ~ < # | * ?, y un segmento que sea exactamente . o .. se almacena como %2E o %2E%2E. Cualquier otro carácter, incluidos los espacios, +, =, @ y :, se almacena tal cual, por lo que team#1 se convierte en team%231 mientras que team+1 sigue siendo team+1. Los datos almacenados bajo un prefijo que ahora se codifica necesitan el mismo traslado. Antes de mover cualquier dato, liste las claves realmente almacenadas en el bucket y compárelas con el nuevo prefijo.
| Nombre | Ejemplo | Predeterminado | Requerido | Descripción |
|---|---|---|---|---|
| url | “https://registry.bencher.example.com” | “http://localhost:6610” | No | La URL externamente accesible del servidor API para acceso al registro OCI. |
| storage | { … } | — | No | Especifica el backend de almacenamiento del registro. Archivos locales si se omite. |
| storage.scheme | “s3” | — | Sí | Especifica el scheme de almacenamiento. Para todas las demás claves de storage, vea la lista anterior. |
| upload_timeout | 3600 | 3600 | No | Tiempo de espera de sesión de carga en segundos. Las cargas obsoletas se limpian al iniciar nuevas cargas. |
| max_body_size | 1073741824 | 1073741824 | No | Tamaño máximo del cuerpo en bytes para cargas de blobs y manifiestos. Las solicitudes que excedan este límite son rechazadas con 413 Payload Too Large. Predeterminado: 1 GiB. |
plus.runners
Esta sección configura el sistema de runners para la ejecución de benchmarks en bare metal. Los runners son agentes de ámbito de servidor que reclaman y ejecutan trabajos de benchmark.
Si esta sección no está configurada, Bencher usará los valores predeterminados.
| Nombre | Ejemplo | Predeterminado | Requerido | Descripción |
|---|---|---|---|---|
| heartbeat_timeout | 90 | 90 | No | Tiempo en segundos sin un latido antes de marcar un trabajo como desconocido. |
| job_timeout_grace_period | 60 | 60 | No | Tiempo extra en segundos más allá del timeout configurado de un trabajo antes de que el servidor lo cancele. |
| update_base_url | https://example.com/downloads/ | GitHub Releases | No | URL base para las descargas de autoactualización del runner. De forma predeterminada, la URL de descarga de GitHub Releases de Bencher. |
plus.rate_limiting
Esta sección especifica la limitación de tasa para el servidor API. Toda la sección es opcional. Si no se especifica, se utilizarán los valores predeterminados enumerados.
Para evitar que se creen proyectos unclaimed,
establezca el unclaimed_limit en 0.
| Nombre | Ejemplo | Por defecto | Requerido | Descripción |
|---|---|---|---|---|
| window | 86400 | 86400 | No | Especifica la ventana de limitación de tasa en segundos. Establecido por defecto a un día. |
| unclaimed_limit | 255 | 255 | No | Controla la limitación de tasa para proyectos unclaimed. Para evitar que se creen proyectos unclaimed, establezca este valor en 0. |
| claimed_limit | 65536 | 65536 | No | Controla la limitación de tasa para proyectos claimed. |
| plus_limit | 1048576 | 1048576 | No | Controla la limitación de tasa de métricas para organizaciones con un plan Bencher Plus. |
public
El limitador de tasa public se aplica por dirección IP para solicitudes no autenticadas.
Cada subcampo contiene límites de minute, hour y day.
Toda la sección es opcional.
Si no se especifica, se utilizarán los valores predeterminados enumerados.
| Nombre | Ejemplo | Por defecto | Requerido | Descripción |
|---|---|---|---|---|
| requests | { … } | — | No | Especifica límites de tasa de solicitudes por IP. |
| requests.minute | 1024 | 1024 | No | Solicitudes máximas por minuto por dirección IP. |
| requests.hour | 4096 | 4096 | No | Solicitudes máximas por hora por dirección IP. |
| requests.day | 8192 | 8192 | No | Solicitudes máximas por día por dirección IP. |
| attempts | { … } | — | No | Especifica límites de tasa de intentos de autenticación por IP. |
| attempts.minute | 32 | 32 | No | Intentos de autenticación máximos por minuto por dirección IP. |
| attempts.hour | 64 | 64 | No | Intentos de autenticación máximos por hora por dirección IP. |
| attempts.day | 128 | 128 | No | Intentos de autenticación máximos por día por dirección IP. |
| runs | { … } | — | No | Especifica límites de tasa de ejecuciones de benchmark por IP para proyectos no reclamados. |
| runs.minute | 64 | 64 | No | Ejecuciones de benchmark máximas por minuto por dirección IP. |
| runs.hour | 128 | 128 | No | Ejecuciones de benchmark máximas por hora por dirección IP. |
| runs.day | 256 | 256 | No | Ejecuciones de benchmark máximas por día por dirección IP. |
user
El limitador de tasa user se aplica por usuario autenticado.
Cada subcampo contiene límites de minute, hour y day.
Toda la sección es opcional.
Si no se especifica, se utilizarán los valores predeterminados enumerados.
| Nombre | Ejemplo | Por defecto | Requerido | Descripción |
|---|---|---|---|---|
| requests | { … } | — | No | Especifica límites de tasa de solicitudes por usuario. |
| requests.minute | 2048 | 2048 | No | Solicitudes máximas por minuto por usuario. |
| requests.hour | 8192 | 8192 | No | Solicitudes máximas por hora por usuario. |
| requests.day | 16384 | 16384 | No | Solicitudes máximas por día por usuario. |
| attempts | { … } | — | No | Especifica límites de tasa de intentos de autenticación por usuario. |
| attempts.minute | 2 | 2 | No | Intentos de autenticación máximos por minuto por usuario. |
| attempts.hour | 4 | 4 | No | Intentos de autenticación máximos por hora por usuario. |
| attempts.day | 8 | 8 | No | Intentos de autenticación máximos por día por usuario. |
| credentials | { … } | — | No | Especifica límites de tasa de creación de credenciales por usuario. |
| credentials.minute | 4 | 4 | No | Creaciones de credenciales máximas por minuto por usuario. |
| credentials.hour | 8 | 8 | No | Creaciones de credenciales máximas por hora por usuario. |
| credentials.day | 16 | 16 | No | Creaciones de credenciales máximas por día por usuario. |
| organizations | { … } | — | No | Especifica límites de tasa de creación de organizaciones por usuario. |
| organizations.minute | 2 | 2 | No | Creaciones de organizaciones máximas por minuto por usuario. |
| organizations.hour | 4 | 4 | No | Creaciones de organizaciones máximas por hora por usuario. |
| organizations.day | 8 | 8 | No | Creaciones de organizaciones máximas por día por usuario. |
| invites | { … } | — | No | Especifica límites de tasa de invitaciones por usuario. |
| invites.minute | 8 | 8 | No | Invitaciones máximas por minuto por usuario. |
| invites.hour | 16 | 16 | No | Invitaciones máximas por hora por usuario. |
| invites.day | 32 | 32 | No | Invitaciones máximas por día por usuario. |
| runs | { … } | — | No | Especifica límites de tasa de ejecuciones de benchmark por usuario. |
| runs.minute | 64 | 64 | No | Ejecuciones de benchmark máximas por minuto por usuario. |
| runs.hour | 1024 | 1024 | No | Ejecuciones de benchmark máximas por hora por usuario. |
| runs.day | 4096 | 4096 | No | Ejecuciones de benchmark máximas por día por usuario. |
project
El limitador de tasa project se aplica por proyecto.
Cada subcampo contiene límites de minute, hour y day.
Toda la sección es opcional.
Si no se especifica, se utilizarán los valores predeterminados enumerados.
| Nombre | Ejemplo | Por defecto | Requerido | Descripción |
|---|---|---|---|---|
| requests | { … } | — | No | Especifica límites de tasa de solicitudes por proyecto. |
| requests.minute | 2048 | 2048 | No | Solicitudes máximas por minuto por proyecto. |
| requests.hour | 8192 | 8192 | No | Solicitudes máximas por hora por proyecto. |
| requests.day | 16384 | 16384 | No | Solicitudes máximas por día por proyecto. |
| runs | { … } | — | No | Especifica límites de tasa de ejecuciones de benchmark por proyecto. |
| runs.minute | 64 | 64 | No | Ejecuciones de benchmark máximas por minuto por proyecto. |
| runs.hour | 1024 | 1024 | No | Ejecuciones de benchmark máximas por hora por proyecto. |
| runs.day | 4096 | 4096 | No | Ejecuciones de benchmark máximas por día por proyecto. |
runner
El limitador de tasa runner se aplica por runner.
Cada subcampo contiene límites de minute, hour y day.
Toda la sección es opcional.
Si no se especifica, se utilizarán los valores predeterminados enumerados.
| Nombre | Ejemplo | Por defecto | Requerido | Descripción |
|---|---|---|---|---|
| requests | { … } | — | No | Especifica límites de tasa de solicitudes por runner. |
| requests.minute | 16 | 16 | No | Solicitudes máximas por minuto por runner. |
| requests.hour | 256 | 256 | No | Solicitudes máximas por hora por runner. |
| requests.day | 4096 | 4096 | No | Solicitudes máximas por día por runner. |
oci_bandwidth
El oci_bandwidth especifica los límites diarios de ancho de banda del registro OCI por nivel de organización.
Toda la sección es opcional.
Si no se especifica, se utilizarán los valores predeterminados enumerados.
| Nombre | Ejemplo | Por defecto | Requerido | Descripción |
|---|---|---|---|---|
| unclaimed | 1073741824 | 1073741824 | No | Bytes máximos por día para organizaciones no reclamadas (0 miembros). Por defecto 1 GiB. |
| free | 10737418240 | 10737418240 | No | Bytes máximos por día para organizaciones gratuitas (reclamadas, sin plan de pago). Por defecto 10 GiB. |
| plus | 107374182400 | 107374182400 | No | Bytes máximos por día para organizaciones Plus (Team/Enterprise). Por defecto 100 GiB. |
plus.stats
Esta sección especifica si y cuándo se recogen las estadísticas del servidor.
Toda la sección es opcional.
Si no se especifica, se utilizarán los valores predeterminados listados.
Es decir, las estadísticas del servidor son de opt-out.
Establece enabled en false para desactivar las estadísticas del servidor.
| Nombre | Ejemplo | Predeterminado | Obligatorio | Descripción |
|---|---|---|---|---|
| offset | 11242 | 11242 | No | Especifica el desplazamiento desde la medianoche en segundos para la recogida de estadísticas del servidor. Por defecto, se ejecuta a las 03:07:22 UTC. |
| enabled | true | true | No | Controla si se recogen las estadísticas del servidor. Establece en false para optar por no participar. |