Config Serveur API


Le serveur API Bencher nécessite une configuration JSON au démarrage. La configuration peut être fournie de trois manières :

  • Variable d’environnement BENCHER_CONFIG : La valeur doit être définie sur la configuration JSON
  • Variable d’environnement BENCHER_CONFIG_PATH : La valeur doit être définie sur le chemin d’un fichier contenant la configuration JSON
  • Fichier /etc/bencher/bencher.json : Un fichier à cet emplacement contenant la configuration JSON

Si aucune configuration n’est trouvée, une configuration par défaut est chargée.

Exemple de configuration 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

Nom Exemple Par Défaut Obligatoire Description
url https://bencher.example.com http://localhost:3000 Oui Spécifie l’URL de l’hôte de la console UI Bencher.

security

Nom Exemple Par Défaut Obligatoire Description
issuer https://api.bencher.example.com “bencher.dev” Non Spécifie l’émetteur du Jeton Web JSON (JWT). AVERTISSEMENT Modifier cette valeur fera en sorte que tous les JWT précédemment générés ne soient plus valides.
secret_key “UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy” UUID v4 aléatoire Oui Spécifie la clé utilisée pour générer tous les tokens. CELA DOIT ÊTRE TRÈS SÉCURISÉ ! La valeur par défaut est un UUID v4 aléatoirement généré. Lorsqu’il est connecté, il apparaîtra obscurci comme ************.

server

Cette section se base sur la configuration du serveur Dropshot.

Nom Exemple Par Défaut Obligatoire Description
bind_address “0.0.0.0:6610” “0.0.0.0:6610” Oui Spécifie que le serveur doit se lier à l’adresse IP et au port TCP donnés. En général, les serveurs peuvent se lier à plus d’une adresse IP et à un port, mais ce n’est pas (encore ?) pris en charge.
request_body_max_bytes 1048576 1048576 Oui Spécifie le nombre maximum d’octets autorisés dans un corps de requête. Les requêtes plus grandes recevront une erreur 400.
tls.type “as_file” Non Spécifie si et comment les informations de certificat et de clé TLS sont fournies. Les valeurs valides incluent “as_file” et “as_bytes”.
tls.cert_file “/path/to/cert.pem” Seulement si tls.type = as_file Spécifie le chemin vers un fichier PEM contenant une chaîne de certificats permettant au serveur de s’identifier. Le premier certificat est le certificat final, et le reste sont des certificats intermédiaires menant à une CA de confiance. Si spécifié, le serveur écoutera uniquement pour les connexions TLS.
tls.key_file “/path/to/key.pem” Seulement si tls.type = as_file Spécifie le chemin vers un fichier PKCS #8 encodé en PEM contenant la clé privée que le serveur utilisera. Si spécifié, le serveur écoutera uniquement pour les connexions TLS.
tls.certs Seulement si tls.type = as_bytes Identique à tls.cert_file, mais fourni sous la forme d’un tableau d’octets de données de certificat.
tls.key Seulement si tls.type = as_bytes Identique à tls.key_file, mais fourni sous la forme d’un tableau d’octets de données clés.

logging

Cette section est basée sur la configuration de logging Dropshot.

Nom Exemple Par défaut Requis Description
name “Bencher API” “Bencher API” Oui Spécifie le nom du logger.
log.mode “stderr_terminal” “stderr_terminal” Oui Contrôle où le logging du serveur sera envoyé. Les modes valides sont “stderr-terminal” et “file”. Si le mode est “stderr-terminal”, la sortie lisible par l’homme, avec couleurs et autres formatages de terminal si possible, sera envoyée à stderr. Si le mode est “file”, la sortie au format Bunyan sera envoyée au chemin du système de fichiers indiqué par log.path. Voir aussi log.if_exists, qui contrôle le comportement si le chemin de destination existe déjà.
log.level “info” “info” Oui Spécifie le niveau de gravité des messages de log qui doivent être inclus dans le log. Les valeurs valides comprennent “trace”, “debug”, “info”, “warn”, “error” et “critical”, qui sont en ordre croissant de gravité. Les messages de log au niveau spécifié et aux niveaux plus graves seront inclus dans le log.
log.path Seulement si log.mode = “file” Si log.mode est “file”, cette propriété détermine le chemin vers le fichier de log. Voir aussi log.if_exists.
log.if_exists Seulement si log.mode = “file” Si log.mode est “file”, cette propriété spécifie ce que l’on doit faire si le fichier de log de destination existe déjà. Les valeurs valides incluent “append” (qui ajoute à la fin du fichier existant), “truncate” (qui tronque le fichier existant puis l’utilise comme s’il venait d’être créé), et “fail” (qui provoque la sortie immédiate du serveur avec une erreur).

database

Nom Exemple Par défaut Requis Description
file “path/to/database.db” “/var/lib/bencher/data/bencher.db” Oui Contrôle où la base de données du serveur sera envoyée.
data_store.service “aws_s3” Non Spécifie le service de stockage de données à distance. Les valeurs valides sont “aws_s3”.
data_store.access_key_id “ABC123DoRemMiABC123” Seulement si data_store.service = “aws_s3” Si data_store.service = “aws_s3”, cette propriété spécifie l’ID de la clé d’accès AWS. Voir aussi data_store.service.
data_store.secret_access_key “AA3Chr-JSF5sUQqKwayx-FvCfZKsMev-5BqPpcFC3m7” Seulement si data_store.service = “aws_s3” Si data_store.service = “aws_s3”, cette propriété spécifie la clé d’accès secrète AWS. Voir aussi data_store.service. Lorsqu’elle est enregistrée, elle apparaîtra sous forme obfusquée, c’est-à-dire ************.
data_store.access_point “arn:aws:s3:some-region-1:123456789:accesspoint/my-bucket/path/to/backup/dir” Seulement si data_store.service = “aws_s3” Si data_store.service = “aws_s3”, cette propriété spécifie le point d’accès AWS S3. Voir aussi data_store.service.
busy_timeout 5000 5000 Non Spécifie le délai d’attente pour la base de données en millisecondes. Empêche les erreurs SQLITE_BUSY immédiates en cas de contention de verrou.
cache_size 65536 65536 Non Spécifie la taille du cache de pages en KiB pour la connexion d’écriture de la base de données. Un cache plus grand évite de relire les pages évincées lors des ingestions et suppressions de rapports volumineux. Doit être supérieur à 0.

smtp

Cette section spécifie une configuration du service SMTP. Toute la section est optionnelle. Si elle n’est pas spécifiée, tous les messages seront envoyés à logging à la place.

Nom Exemple Défaut Requis Description
hostname “mailbonobo.com” Oui Spécifie le nom d’hôte SMTP.
port 587 587 Non Spécifie le port SMTP.
insecure_host false Non Contrôle si la connexion SMTP peut autoriser des certificats TLS invalides.
starttls true true Non Contrôle si la connexion SMTP utilise le protocole STARTTLS.
username “bencher” Oui Spécifie le nom d’utilisateur sur l’hôte SMTP.
secret “WM3F2u9cqSNdBPLfy9sJ5kk9” Oui Spécifie le secret pour le nom d’utilisateur sur l’hôte SMTP. Lorsqu’il est enregistré, il apparaîtra masqué sous forme de ************.
from_name “Bencher” Oui Spécifie le nom qui apparaîtra dans la section expéditeur de tous les e-mails.
from_email info@bencher.example.com Oui Spécifie l’e-mail qui apparaîtra dans la section expéditeur de tous les e-mails.

plus

Cette section concerne les fonctionnalités couvertes par la Licence Bencher Plus.

plus.github

Cette section spécifie la configuration pour une application GitHub utilisée pour l’authentification OAuth2. Vous devez avoir une licence Bencher Plus Enterprise valide pour au moins une organisation sur le serveur. La totalité de la section est optionnelle. Si elle n’est pas spécifiée, alors l’authentification avec GitHub ne sera pas activée.

Nom Exemple Par défaut Requis Description
client_id Iv1.12864abcd1232048 Oui Spécifie l’ID client de votre application GitHub. L’ID client est différent de l’ID de l’application. Vous pouvez trouver l’ID client sur la page des paramètres de votre application. Pour plus d’informations sur la manière de naviguer vers la page des paramètres de votre application GitHub, consultez Modifiant une inscription d’application GitHub.
client_secret 00000abcd12345wxyz123456789abcdefgh0000 Oui Le secret client de votre application GitHub. Vous pouvez générer un secret client sur la page des paramètres de votre application.

plus.google

Cette section spécifie la configuration pour un client Google utilisé pour l’authentification OAuth2. Vous devez disposer d’une licence Bencher Plus Entreprise valide pour au moins une organisation sur le serveur. Toute la section est facultative. Si elle n’est pas spécifiée, l’authentification via Google ne sera pas activée.

Nom Exemple Par défaut Obligatoire Description
client_id 0123456789-abcdefg0112358envs.apps.googleusercontent.com Oui Spécifie l’identifiant du client OAuth2 Google.
client_secret GOCSPX-xyz987654321 Oui Le secret du client OAuth2 Google.

plus.disaster_recovery

Cette section spécifie la configuration de la récupération en cas de sinistre. Bencher prend en charge la réplication continue de tous les changements de base de données. Pour exécuter des sauvegardes à la demande ou programmées, consultez la section database.data_store de la configuration.

Il existe trois schémas de réplication :

  • file: Répliquer vers un chemin de fichier local
    • path: Chemin de réplication
  • sftp: Répliquer via SFTP
    • host: Nom d’hôte du système cible
    • port: Numéro de port du système cible
    • user: Nom d’utilisateur sur le système cible
    • password: (Optionnel) Mot de passe sur le système cible
    • path: (Optionnel) Chemin sur le système cible
    • key_path: (Optionnel) Chemin vers la clé SSH
  • s3: Répliquer vers un stockage de blob compatible S3
    • bucket: Nom du bucket
    • path: (Optionnel) Chemin dans le bucket
    • endpoint: (AWS: Optionnel | Non-AWS: Requis) Point de terminaison de réplication
    • region: (Optionnel) Région du bucket
    • access_key_id: Clé d’accès S3
    • secret_access_key: Clé d’accès secret S3

Les trois schémas de réplique ont les options supplémentaires suivantes :

  • snapshot.interval: (Optionnel) Spécifie la fréquence de création des nouveaux snapshots. Cela permet de réduire le temps de restauration car les snapshots plus récents auront moins de trames WAL à appliquer. La rétention s’applique toujours à ces snapshots. Si vous ne définissez pas d’intervalle de snapshot, un nouveau snapshot sera créé chaque fois que la rétention sera effectuée. La rétention se produit toutes les 24 heures par défaut.
  • snapshot.retention: (Optionnel) La durée pendant laquelle les fichiers snapshot & WAL seront conservés. Après la période de rétention, un nouveau snapshot sera créé et l’ancien sera supprimé. Les fichiers WAL existants avant le snapshot le plus ancien seront également supprimés. La valeur par défaut est 24h.
  • validation.interval: (Optionnel) Lorsqu’il est spécifié, Bencher restaurera automatiquement et validera que les données sur la réplique correspondent à la copie locale. Désactivé par défaut. Activer cela peut augmenter considérablement le coût d’exécution de Bencher car la plupart des services cloud facturent les téléchargements.
  • sync_interval: (Optionnel) Fréquence à laquelle les trames sont poussées vers la réplique. La valeur par défaut est 1s. Augmenter la fréquence peut augmenter considérablement les coûts de stockage cloud.
  • checkpoint.interval: (Optionnel) Fréquence à laquelle Litestream effectue un checkpoint PASSIVE non bloquant indépendamment du nombre de pages. Litestream ignore le checkpoint si des lecteurs ou écrivains sont actifs. La valeur par défaut est 1m.
  • checkpoint.min_page_count: (Optionnel) Nombre minimum de pages WAL avant qu’un checkpoint PASSIVE non bloquant ne soit déclenché (~4Ko par page). Litestream ignore le checkpoint si des lecteurs ou écrivains sont actifs. La valeur par défaut est 1000 (~4Mo).
  • checkpoint.truncate_page_n: (Optionnel) Seuil de pages pour un checkpoint TRUNCATE bloquant. Lorsque ce seuil est atteint, Litestream effectue un checkpoint bloquant qui attend la fin de tous les lecteurs et écrivains, ce qui peut provoquer des erreurs database is locked en cas de charge. La valeur par défaut est 0 (désactivé). Ne définissez une valeur non nulle que si vous avez besoin d’une limite supérieure sur la taille du fichier WAL et comprenez les implications du blocage.
Nom Exemples Défaut Requis Description
replica { … } Oui Spécifie un objet réplique.
replica.scheme “s3” Oui Spécifie le schéma de réplication. Pour toutes les autres clés de replica, voir la liste ci-dessus.
snapshot.interval “1h” Non Fréquence de création des nouveaux snapshots. Réduit le temps de restauration.
snapshot.retention “24h” 24h Non Durée de conservation des fichiers snapshot et WAL avant remplacement.
validation.interval “6h” Non Fréquence de restauration et validation des données de réplique par rapport à la copie locale. Désactivé par défaut.
checkpoint.interval “1m” 1m Non Fréquence d’exécution d’un checkpoint PASSIVE non bloquant. Ignoré si des lecteurs/écrivains sont actifs.
checkpoint.min_page_count 1000 1000 Non Pages WAL minimales (~4Ko chacune) avant un checkpoint PASSIVE. Ignoré si des lecteurs/écrivains sont actifs.
checkpoint.truncate_page_n 0 0 Non Seuil de pages pour un checkpoint TRUNCATE bloquant. 0 désactive. Les valeurs non nulles peuvent provoquer database is locked en charge.

plus.registry

Cette section spécifie la configuration du stockage du registre OCI (Open Container Initiative). Bencher peut fonctionner comme un registre de conteneurs/artefacts compatible OCI.

Si cette section n’est pas configurée, Bencher utilisera le stockage du système de fichiers local dans un répertoire oci adjacent au fichier de base de données. Ceci est adapté au développement et aux déploiements à instance unique.

Pour les déploiements de production avec plusieurs instances ou pour la durabilité, configurez le stockage basé sur S3.

Il existe deux options de service de stockage :

  • local : Stocker les artefacts OCI sur le système de fichiers local (par défaut)
  • aws_s3 : Stocker les artefacts OCI dans AWS S3
    • access_key_id : ID de clé d’accès AWS
    • secret_access_key : Clé d’accès secrète AWS
    • access_point : ARN du point d’accès S3 avec préfixe de chemin optionnel. Format : arn:aws:s3:<region>:<account-id>:accesspoint/<access-point-name>[/<path-prefix>]
    • chunk_size : Taille minimale de fragment en octets pour la mise en tampon des données d’upload avant le stockage dans S3 (par défaut : 5 Mo). Les corps de requête HTTP arrivent sous forme de petites trames réseau (typiquement 8–64 Ko). Sans mise en tampon, chaque trame devient un objet S3 séparé, créant des milliers d’objets par couche. Cette valeur correspond également à la taille minimale de partie pour les uploads multipart S3.
Nom Exemple Par défaut Requis Description
url https://registry.bencher.example.com http://localhost:6610 Non L’URL accessible de l’extérieur du serveur API pour l’accès au registre OCI.
data_store { … } Non Spécifie le backend de stockage OCI. Local si omis.
data_store.service “local” ou “aws_s3” Oui Spécifie le type de service de stockage.
data_store.access_key_id “AKIAIOSFODNN7EXAMPLE” aws_s3 uniquement ID de clé d’accès AWS.
data_store.secret_access_key “wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY” aws_s3 uniquement Clé d’accès secrète AWS.
data_store.access_point “arn:aws:s3:us-east-1:123456789012:accesspoint/my-access-point/registry” aws_s3 uniquement ARN du point d’accès S3. Préfixe de chemin optionnel après le nom du point d’accès.
data_store.chunk_size 5242880 5242880 aws_s3 uniquement Taille minimale de fragment en octets pour la mise en tampon des données d’upload avant le stockage dans S3. Par défaut : 5 Mo.
upload_timeout 3600 3600 Non Délai d’expiration de la session d’upload en secondes. Les uploads obsolètes sont nettoyés au démarrage de nouveaux uploads.
max_body_size 1073741824 1073741824 Non Taille maximale du corps en octets pour les uploads de blobs et manifestes. Les requêtes dépassant cette limite sont rejetées avec 413 Payload Too Large. Par défaut : 1 Gio.

plus.runners

Cette section configure le système de runners pour l’exécution de benchmarks sur bare metal. Les runners sont des agents à l’échelle du serveur qui réclament et exécutent des tâches de benchmark.

Si cette section n’est pas configurée, Bencher utilisera les valeurs par défaut.

Nom Exemple Par défaut Requis Description
heartbeat_timeout 90 90 Non Temps en secondes sans battement de cœur avant de marquer une tâche comme échouée.
job_timeout_grace_period 60 60 Non Temps supplémentaire en secondes au-delà du délai configuré d’une tâche avant que le serveur ne l’annule.
update_base_url https://example.com/downloads/ GitHub Releases Non URL de base pour les téléchargements de mise à jour automatique du runner. Par défaut, l’URL de téléchargement des GitHub Releases de Bencher.

plus.rate_limiting

Cette section spécifie la limitation de débit pour le serveur API. Toute la section est facultative. Si elle n’est pas spécifiée, les valeurs par défaut énumérées seront utilisées.

Pour empêcher la création de projets unclaimed, définissez la unclaimed_limit à 0.

Nom Exemple Défaut Requis Description
window 86400 86400 Non Spécifie la période de limitation de débit en secondes. Défini par défaut à une journée.
unclaimed_limit 255 255 Non Contrôle la limitation de débit pour les projets unclaimed. Pour empêcher la création de projets unclaimed, définissez cette valeur à 0.
claimed_limit 65536 65536 Non Contrôle la limitation de débit pour les projets claimed.

public

Le limiteur de débit public s’applique par adresse IP pour les requêtes non authentifiées. Chaque sous-champ contient des limites minute, hour et day. Toute la section est facultative. Si elle n’est pas spécifiée, les valeurs par défaut énumérées seront utilisées.

Nom Exemple Défaut Requis Description
requests { … } Non Spécifie les limites de débit des requêtes par IP.
requests.minute 1024 1024 Non Requêtes maximales par minute par adresse IP.
requests.hour 4096 4096 Non Requêtes maximales par heure par adresse IP.
requests.day 8192 8192 Non Requêtes maximales par jour par adresse IP.
attempts { … } Non Spécifie les limites de débit des tentatives d’authentification par IP.
attempts.minute 32 32 Non Tentatives d’authentification maximales par minute par adresse IP.
attempts.hour 64 64 Non Tentatives d’authentification maximales par heure par adresse IP.
attempts.day 128 128 Non Tentatives d’authentification maximales par jour par adresse IP.
runs { … } Non Spécifie les limites de débit des exécutions de benchmark par IP pour les projets non réclamés.
runs.minute 64 64 Non Exécutions de benchmark maximales par minute par adresse IP.
runs.hour 128 128 Non Exécutions de benchmark maximales par heure par adresse IP.
runs.day 256 256 Non Exécutions de benchmark maximales par jour par adresse IP.

user

Le limiteur de débit user s’applique par utilisateur authentifié. Chaque sous-champ contient des limites minute, hour et day. Toute la section est facultative. Si elle n’est pas spécifiée, les valeurs par défaut énumérées seront utilisées.

Nom Exemple Défaut Requis Description
requests { … } Non Spécifie les limites de débit des requêtes par utilisateur.
requests.minute 2048 2048 Non Requêtes maximales par minute par utilisateur.
requests.hour 8192 8192 Non Requêtes maximales par heure par utilisateur.
requests.day 16384 16384 Non Requêtes maximales par jour par utilisateur.
attempts { … } Non Spécifie les limites de débit des tentatives d’authentification par utilisateur.
attempts.minute 2 2 Non Tentatives d’authentification maximales par minute par utilisateur.
attempts.hour 4 4 Non Tentatives d’authentification maximales par heure par utilisateur.
attempts.day 8 8 Non Tentatives d’authentification maximales par jour par utilisateur.
credentials { … } Non Spécifie les limites de débit de création d’identifiants par utilisateur.
credentials.minute 4 4 Non Créations d’identifiants maximales par minute par utilisateur.
credentials.hour 8 8 Non Créations d’identifiants maximales par heure par utilisateur.
credentials.day 16 16 Non Créations d’identifiants maximales par jour par utilisateur.
organizations { … } Non Spécifie les limites de débit de création d’organisations par utilisateur.
organizations.minute 2 2 Non Créations d’organisations maximales par minute par utilisateur.
organizations.hour 4 4 Non Créations d’organisations maximales par heure par utilisateur.
organizations.day 8 8 Non Créations d’organisations maximales par jour par utilisateur.
invites { … } Non Spécifie les limites de débit des invitations par utilisateur.
invites.minute 8 8 Non Invitations maximales par minute par utilisateur.
invites.hour 16 16 Non Invitations maximales par heure par utilisateur.
invites.day 32 32 Non Invitations maximales par jour par utilisateur.
runs { … } Non Spécifie les limites de débit des exécutions de benchmark par utilisateur.
runs.minute 64 64 Non Exécutions de benchmark maximales par minute par utilisateur.
runs.hour 1024 1024 Non Exécutions de benchmark maximales par heure par utilisateur.
runs.day 4096 4096 Non Exécutions de benchmark maximales par jour par utilisateur.

project

Le limiteur de débit project s’applique par projet. Chaque sous-champ contient des limites minute, hour et day. Toute la section est facultative. Si elle n’est pas spécifiée, les valeurs par défaut énumérées seront utilisées.

Nom Exemple Défaut Requis Description
requests { … } Non Spécifie les limites de débit des requêtes par projet.
requests.minute 2048 2048 Non Requêtes maximales par minute par projet.
requests.hour 8192 8192 Non Requêtes maximales par heure par projet.
requests.day 16384 16384 Non Requêtes maximales par jour par projet.
runs { … } Non Spécifie les limites de débit des exécutions de benchmark par projet.
runs.minute 64 64 Non Exécutions de benchmark maximales par minute par projet.
runs.hour 1024 1024 Non Exécutions de benchmark maximales par heure par projet.
runs.day 4096 4096 Non Exécutions de benchmark maximales par jour par projet.

runner

Le limiteur de débit runner s’applique par runner. Chaque sous-champ contient des limites minute, hour et day. Toute la section est facultative. Si elle n’est pas spécifiée, les valeurs par défaut énumérées seront utilisées.

Nom Exemple Défaut Requis Description
requests { … } Non Spécifie les limites de débit des requêtes par runner.
requests.minute 16 16 Non Requêtes maximales par minute par runner.
requests.hour 256 256 Non Requêtes maximales par heure par runner.
requests.day 4096 4096 Non Requêtes maximales par jour par runner.

oci_bandwidth

Le oci_bandwidth spécifie les limites quotidiennes de bande passante du registre OCI par niveau d’organisation. Toute la section est facultative. Si elle n’est pas spécifiée, les valeurs par défaut énumérées seront utilisées.

Nom Exemple Défaut Requis Description
unclaimed 1073741824 1073741824 Non Octets maximum par jour pour les organisations non réclamées (0 membres). Par défaut 1 Gio.
free 10737418240 10737418240 Non Octets maximum par jour pour les organisations gratuites (réclamées, sans plan payant). Par défaut 10 Gio.
plus 107374182400 107374182400 Non Octets maximum par jour pour les organisations Plus (Team/Enterprise). Par défaut 100 Gio.

plus.stats

Cette section spécifie si et quand les statistiques du serveur sont collectées. L’ensemble de la section est facultatif. Si non spécifié, les valeurs par défaut énumérées seront utilisées. C’est-à-dire que les statistiques du serveur sont opt-out. Mettez enabled sur false pour désactiver les statistiques du serveur.

Nom Exemple Par défaut Requis Description
offset 11242 11242 Non Spécifie le décalage depuis minuit en secondes pour la collecte des statistiques du serveur. Par défaut, il s’éxécute à 03:07:22 UTC.
enabled true true Non Contrôle si les statistiques du serveur sont collectées. Mettez sur false pour opt-out.


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