Конфигурация API сервера


Сервер API Bencher требует JSON-конфигурацию при запуске. Конфигурация может быть предоставлена тремя способами:

  • Переменная окружения BENCHER_CONFIG: Значение должно быть установлено как JSON-конфигурация
  • Переменная окружения BENCHER_CONFIG_PATH: Значение должно быть установлено как путь к файлу, содержащему JSON-конфигурацию
  • Файл /etc/bencher/bencher.json: Файл в этом расположении, содержащий JSON-конфигурацию

Если конфигурация не найдена, загружается конфигурация по умолчанию.

Пример 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

Имя Пример По умолчанию Обяз. Описание
url https://bencher.example.com http://localhost:3000 Да Указывает URL для хоста консоли Bencher UI.

security

Имя Пример По умолчанию Обяз. Описание
issuer https://api.bencher.example.com “bencher.dev” Нет Указывает выпускающий орган JSON Web Token (JWT). ВНИМАНИЕ Изменение этого значения приведет к тому, что все ранее созданные JWT больше не проходят проверку.
secret_key “UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy” Случайный UUID v4 Да Указывает ключ, используемый для генерации всех токенов. ОН ДОЛЖЕН БЫТЬ ОЧЕНЬ БЕЗОПАСНЫМ! Значение по умолчанию - это случайно сгенерированный UUID v4. При записи он будет выглядеть как ************.

server

Этот раздел основан на конфигурации сервера Dropshot.

Имя Пример По умолчанию Обяз. Описание
bind_address “0.0.0.0:6610” “0.0.0.0:6610” Да Указывает, что сервер должен привязываться к данному IP-адресу и TCP-порту. В общем случае серверы могут привязываться к более чем одному IP-адресу и порту, но это пока не поддерживается.
request_body_max_bytes 1048576 1048576 Да Указывает максимальное количество байт, разрешенное в теле запроса. Большие запросы получат ошибку 400.
tls.type “as_file” Нет Указывает, используется ли и как информация о сертификате и ключе TLS. Действительные значения включают “as_file” и “as_bytes”.
tls.cert_file “/path/to/cert.pem” Только если tls.type = as_file Указывает путь к файлу PEM, содержащему сертификат для идентификации сервера. Первый сертификат - это конечный сертификат субъекта, а оставшиеся - промежуточные сертификаты на пути к доверенному CA. Если указано, сервер будет прослушивать только TLS-соединения.
tls.key_file “/path/to/key.pem” Только если tls.type = as_file Указывает путь к файлу PEM, содержащему закрытый ключ, который будет использовать сервер. Если указано, сервер будет прослушивать только TLS-соединения.
tls.certs Только если tls.type = as_bytes То же, что и tls.cert_file, но предоставляемое в виде массива байт данных сертификата.
tls.key Только если tls.type = as_bytes То же, что и tls.key_file, но предоставляемое в виде массива байт данных ключа.

logging

Этот раздел основан на конфигурации журнала Dropshot.

Имя Пример По умолчанию Обязательно Описание
name “Bencher API” “Bencher API” Да Задает название логгера.
log.mode “stderr_terminal” “stderr_terminal” Да Управляет расположением журнала сервера. Допустимые режимы - “stderr_terminal” и “file”. Если режим - `“stderr_terminal”, человеко-читаемый вывод, возможно, с цветами и другим форматированием терминала, будет отправлен в stderr. Если режим - “file”, вывод в формате Bunyan будет отправлен на путь в файловой системе, заданный log.path. Смотрите также log.if_exists, который контролирует поведение, если путь назначения уже существует.
log.level “info” “info” Да Задает уровень тяжести сообщений в логе. Допустимые значения включают “trace”, “debug”, “info”, “warn”, “error” и “critical”, которые отражают растущую тяжесть. Сообщения лога указанного уровня и более высоких уровней будут включены в лог.
log.path Только если log.mode = “file” Если log.mode равно “file”, это свойство определяет путь к файлу журнала. Смотри также log.if_exists.
log.if_exists Только если log.mode = “file” Если log.mode равно “file”, это свойство задает что делать, если файл журнала уже существует. Допустимые значения включают “append” (что добавляет к существующему файлу), “truncate” (приведение существующего файла к изначальному), и “fail” (сервер немедленно остановит работу с выводом ошибки).

database

Имя Пример По умолчанию Обязательно Описание
file “path/to/database.db” “/var/lib/bencher/data/bencher.db” Да Управляет расположением базы данных сервера.
data_store.service “aws_s3” Нет Задает внешний сервис для хранения данных. Допустимые значения - “aws_s3”.
data_store.access_key_id “ABC123DoRemMiABC123” Только если data_store.service = “aws_s3” Если data_store.service = “aws_s3”, это свойство указывает идентификатор ключа доступа AWS. Смотрите также data_store.service.
data_store.secret_access_key “AA3Chr-JSF5sUQqKwayx-FvCfZKsMev-5BqPpcFC3m7” Только если data_store.service = “aws_s3” Если data_store.service = “aws_s3”, это свойство указывает секретный ключ доступа AWS. Смотрите также data_store.service. При логировании он будет обфусцирован как ************.
data_store.access_point “arn:aws:s3:some-region-1:123456789:accesspoint/my-bucket/path/to/backup/dir” Только если data_store.service = “aws_s3” Если data_store.service = “aws_s3”, это свойство указывает точку доступа AWS S3. Смотрите также data_store.service.
busy_timeout 5000 5000 Нет Указывает тайм-аут занятости для базы данных в миллисекундах. Предотвращает немедленные ошибки SQLITE_BUSY при блокировке.
cache_size 65536 65536 Нет Указывает размер страничного кэша в КиБ для соединения записи базы данных. Больший кэш позволяет избежать повторного чтения вытесненных страниц при больших загрузках и удалениях отчетов. Должен быть больше 0.

smtp

Этот раздел определяет конфигурацию службы SMTP. Весь раздел является необязательным. Если не указано, все сообщения будут отправляться в logging.

Имя Пример Значение по умолчанию Обязательно Описание
hostname “mailbonobo.com” Да Указывает имя хоста SMTP.
port 587 587 Нет Указывает порт SMTP.
insecure_host false Нет Управляет разрешением недействительных TLS-сертификатов для подключения SMTP.
starttls true true Нет Управляет использованием протокола STARTTLS для подключения SMTP.
username “bencher” Да Указывает имя пользователя на хосте SMTP.
secret “WM3F2u9cqSNdBPLfy9sJ5kk9” Да Указывает секрет для имени пользователя на хосте SMTP. При записи он будет отображаться в виде ************.
from_name “Bencher” Да Указывает имя, которое будет отображаться в разделе “от” всех электронных писем.
from_email info@bencher.example.com Да Указывает email, который будет отображаться в разделе “от” всех электронных писем.

plus

Этот раздел посвящен функциям, которые покрываются лицензией Bencher Plus.

plus.github

В этом разделе указывается конфигурация приложения GitHub, используемого для аутентификации OAuth2. У вас должна быть действующая лицензия Bencher Plus Enterprise для хотя бы одной организации на сервере. Весь раздел является необязательным. Если он не указан, то аутентификация с помощью GitHub не будет включена.

Название Пример По умолчанию Обязательно Описание
client_id Iv1.12864abcd1232048 Да Указывает идентификатор клиента для вашего приложения GitHub. Идентификатор клиента отличается от идентификатора приложения. Вы можете найти идентификатор клиента на странице настроек вашего приложения. Для получения дополнительной информации о переходе на страницу настроек вашего приложения GitHub, см. Изменение регистрации приложения GitHub.
client_secret 00000abcd12345wxyz123456789abcdefgh0000 Да Секретный ключ клиента для вашего приложения GitHub. Вы можете сгенерировать секретный ключ на странице настроек вашего приложения.

plus.google

В этом разделе задаётся конфигурация для Google-клиента, используемого для аутентификации через OAuth2. У вас должна быть действительная лицензия Bencher Plus Enterprise хотя бы для одной организации на сервере. Весь раздел является необязательным. Если раздел не указан, аутентификация через Google не будет включена.

Name Example Default Required Description
client_id 0123456789-abcdefg0112358envs.apps.googleusercontent.com Да Указывает идентификатор клиента для вашего клиента Google OAuth2.
client_secret GOCSPX-xyz987654321 Да Секрет клиента для вашего клиента Google OAuth2.

plus.disaster_recovery

Этот раздел описывает конфигурацию восстановления после аварий. Bencher поддерживает непрерывное реплицирование всех изменений базы данных. Для выполнения резервных копий по запросу или по расписанию, см. раздел конфигурации database.data_store.

Существует три схемы репликации:

  • file: Реплицирование в локальную файловую систему
    • path: Путь для репликации
  • sftp: Реплицирование по SFTP
    • host: Имя хоста целевой системы
    • port: Номер порта целевой системы
    • user: Имя пользователя на целевой системе
    • password: (Опционально) Пароль на целевой системе
    • path: (Опционально) Путь на целевой системе
    • key_path: (Опционально) Путь к SSH ключу
  • s3: Реплицирование в любое совместимое S3 хранилище
    • bucket: Имя bucket
    • path: (Опционально) Путь в bucket
    • endpoint: (AWS: Опционально | Не AWS: Обязательно) Конечная точка репликации
    • region: (Опционально) Регион bucket
    • access_key_id: Ключ доступа S3
    • secret_access_key: Секретный ключ доступа S3

Все три схемы репликации имеют следующие дополнительные опции:

  • snapshot.interval: (Опционально) Указывает, как часто будут создаваться новые snapshots. Это используется для уменьшения времени восстановления, так как новые snapshots будут содержать меньшее количество WAL кадров для применения. Политика retention также применяется к этим snapshots. Если вы не указываете интервал создания snapshot, то новый snapshot будет создан при каждом выполнении retention. По умолчанию retention выполняется каждые 24 часа.
  • snapshot.retention: (Опционально) Время, в течение которого будут сохраняться файлы snapshot и WAL. По истечении этого времени будет создан новый snapshot, а старый будет удален. Файлы WAL, которые существуют до самого старого snapshot, также будут удалены. Значение по умолчанию: 24h.
  • validation.interval: (Опционально) Если указано, Bencher автоматически восстановит и проверит, что данные на реплике соответствуют локальной копии. По умолчанию отключено. Включение этой функции может значительно увеличить стоимость запуска Bencher, так как большинство облачных сервисов взимают плату за загрузки.
  • sync_interval: (Опционально) Частота, с которой кадры передаются на реплику. Значение по умолчанию: 1s. Увеличение частоты может значительно повысить затраты на облачное хранилище.
  • checkpoint.interval: (Опционально) Как часто Litestream выполняет неблокирующий PASSIVE чекпоинт вне зависимости от количества страниц. Litestream пропускает чекпоинт, если активны читатели или писатели. Значение по умолчанию: 1m.
  • checkpoint.min_page_count: (Опционально) Минимальное количество WAL-страниц перед запуском неблокирующего PASSIVE чекпоинта (~4КБ на страницу). Litestream пропускает чекпоинт, если активны читатели или писатели. Значение по умолчанию: 1000 (~4МБ).
  • checkpoint.truncate_page_n: (Опционально) Пороговое количество страниц для блокирующего TRUNCATE чекпоинта. При достижении этого порога Litestream выполняет блокирующий чекпоинт, ожидающий завершения всех читателей и писателей, что может вызвать ошибки database is locked при нагрузке. Значение по умолчанию: 0 (отключено). Устанавливайте ненулевое значение только если вам нужен верхний предел размера WAL-файла и вы понимаете последствия блокировки.
Имя Пример По умолчанию Обязательно Описание
replica { … } Да Указывает объект реплики.
replica.scheme “s3” Да Указывает схему репликации. Для всех остальных ключей replica см. список выше.
snapshot.interval “1h” Нет Частота создания новых снапшотов. Сокращает время восстановления.
snapshot.retention “24h” 24h Нет Как долго хранятся файлы snapshot и WAL до замены.
validation.interval “6h” Нет Частота восстановления и проверки данных реплики на соответствие локальной копии. По умолчанию отключено.
checkpoint.interval “1m” 1m Нет Частота выполнения неблокирующего PASSIVE чекпоинта. Пропускается, если активны читатели/писатели.
checkpoint.min_page_count 1000 1000 Нет Минимальное количество WAL-страниц (~4КБ каждая) перед PASSIVE чекпоинтом. Пропускается, если активны читатели/писатели.
checkpoint.truncate_page_n 0 0 Нет Пороговое значение страниц для блокирующего TRUNCATE чекпоинта. 0 отключает. Ненулевые значения могут вызвать database is locked при нагрузке.

plus.registry

Этот раздел определяет конфигурацию хранилища реестра OCI (Open Container Initiative). Bencher может функционировать как OCI-совместимый реестр контейнеров/артефактов.

Если этот раздел не настроен, Bencher будет использовать локальное файловое хранилище в директории oci рядом с файлом базы данных. Это подходит для разработки и развёртываний с одним экземпляром.

Для производственных развёртываний с несколькими экземплярами или для надёжности настройте хранилище на базе S3.

Доступны два варианта service хранилища:

  • local: Хранение OCI-артефактов в локальной файловой системе (по умолчанию)
  • aws_s3: Хранение OCI-артефактов в AWS S3
    • access_key_id: Идентификатор ключа доступа AWS
    • secret_access_key: Секретный ключ доступа AWS
    • access_point: ARN точки доступа S3 с необязательным префиксом пути. Формат: arn:aws:s3:<region>:<account-id>:accesspoint/<access-point-name>[/<path-prefix>]
    • chunk_size: Минимальный размер фрагмента в байтах для буферизации данных загрузки перед сохранением в S3 (по умолчанию: 5 МБ). Тела HTTP-запросов поступают в виде маленьких сетевых фреймов (обычно 8–64 КБ). Без буферизации каждый фрейм становится отдельным объектом S3, создавая тысячи объектов на каждый слой. Это значение также соответствует минимальному размеру части для многочастной загрузки S3.
Имя Пример По умолчанию Обязательно Описание
url https://registry.bencher.example.com http://localhost:6610 Нет Внешне доступный URL API-сервера для доступа к OCI-реестру.
data_store { … } Нет Указывает бэкенд хранилища OCI. Локальный, если не указан.
data_store.service “local” или “aws_s3” Да Указывает тип сервиса хранилища.
data_store.access_key_id “AKIAIOSFODNN7EXAMPLE” только aws_s3 Идентификатор ключа доступа AWS.
data_store.secret_access_key “wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY” только aws_s3 Секретный ключ доступа AWS.
data_store.access_point “arn:aws:s3:us-east-1:123456789012:accesspoint/my-access-point/registry” только aws_s3 ARN точки доступа S3. Необязательный префикс пути после имени точки доступа.
data_store.chunk_size 5242880 5242880 только aws_s3 Минимальный размер фрагмента в байтах для буферизации данных загрузки перед сохранением в S3. По умолчанию: 5 МБ.
upload_timeout 3600 3600 Нет Тайм-аут сессии загрузки в секундах. Устаревшие загрузки очищаются при запуске новых загрузок.
max_body_size 1073741824 1073741824 Нет Максимальный размер тела в байтах для загрузки блобов и манифестов. Запросы, превышающие этот лимит, отклоняются с ошибкой 413 Payload Too Large. По умолчанию: 1 ГиБ.

plus.runners

Этот раздел настраивает систему раннеров для выполнения бенчмарков на bare metal. Раннеры — это серверные агенты, которые запрашивают и выполняют задачи бенчмарков.

Если этот раздел не настроен, Bencher будет использовать значения по умолчанию.

Имя Пример По умолчанию Обязательно Описание
heartbeat_timeout 90 90 Нет Время в секундах без хартбита до пометки задачи как неудавшейся.
job_timeout_grace_period 60 60 Нет Дополнительное время в секундах сверх настроенного тайм-аута задачи до её отмены сервером.
update_base_url https://example.com/downloads/ GitHub Releases Нет Базовый URL для загрузок самообновления раннера. По умолчанию используется URL загрузки GitHub Releases Bencher.

plus.rate_limiting

Этот раздел определяет ограничения скорости для сервера API. Весь раздел является необязательным. Если не указано, будут использоваться перечисленные значения по умолчанию.

Чтобы предотвратить создание unclaimed проектов, установите unclaimed_limit на 0.

Имя Пример По умолчанию Обязательно Описание
window 86400 86400 Нет Определяет окно ограничения скорости в секундах. По умолчанию установлено на один день.
unclaimed_limit 255 255 Нет Контролирует ограничение скорости для unclaimed проектов. Чтобы предотвратить создание unclaimed проектов, установите это значение на 0.
claimed_limit 65536 65536 Нет Контролирует ограничение скорости для claimed проектов.

public

Ограничитель скорости public применяется к каждому IP-адресу для неаутентифицированных запросов. Каждое подполе содержит ограничения minute, hour и day. Весь раздел является необязательным. Если не указано, будут использоваться перечисленные значения по умолчанию.

Имя Пример По умолчанию Обязательно Описание
requests { … } Нет Определяет ограничения скорости запросов по IP-адресу.
requests.minute 1024 1024 Нет Максимум запросов в минуту на IP-адрес.
requests.hour 4096 4096 Нет Максимум запросов в час на IP-адрес.
requests.day 8192 8192 Нет Максимум запросов в день на IP-адрес.
attempts { … } Нет Определяет ограничения скорости попыток аутентификации по IP-адресу.
attempts.minute 32 32 Нет Максимум попыток аутентификации в минуту на IP-адрес.
attempts.hour 64 64 Нет Максимум попыток аутентификации в час на IP-адрес.
attempts.day 128 128 Нет Максимум попыток аутентификации в день на IP-адрес.
runs { … } Нет Определяет ограничения скорости запусков бенчмарков по IP-адресу для невостребованных проектов.
runs.minute 64 64 Нет Максимум запусков бенчмарков в минуту на IP-адрес.
runs.hour 128 128 Нет Максимум запусков бенчмарков в час на IP-адрес.
runs.day 256 256 Нет Максимум запусков бенчмарков в день на IP-адрес.

user

Ограничитель скорости user применяется к каждому аутентифицированному пользователю. Каждое подполе содержит ограничения minute, hour и day. Весь раздел является необязательным. Если не указано, будут использоваться перечисленные значения по умолчанию.

Имя Пример По умолчанию Обязательно Описание
requests { … } Нет Определяет ограничения скорости запросов на пользователя.
requests.minute 2048 2048 Нет Максимум запросов в минуту на пользователя.
requests.hour 8192 8192 Нет Максимум запросов в час на пользователя.
requests.day 16384 16384 Нет Максимум запросов в день на пользователя.
attempts { … } Нет Определяет ограничения скорости попыток аутентификации на пользователя.
attempts.minute 2 2 Нет Максимум попыток аутентификации в минуту на пользователя.
attempts.hour 4 4 Нет Максимум попыток аутентификации в час на пользователя.
attempts.day 8 8 Нет Максимум попыток аутентификации в день на пользователя.
credentials { … } Нет Определяет ограничения скорости создания учётных данных на пользователя.
credentials.minute 4 4 Нет Максимум созданий учётных данных в минуту на пользователя.
credentials.hour 8 8 Нет Максимум созданий учётных данных в час на пользователя.
credentials.day 16 16 Нет Максимум созданий учётных данных в день на пользователя.
organizations { … } Нет Определяет ограничения скорости создания организаций на пользователя.
organizations.minute 2 2 Нет Максимум созданий организаций в минуту на пользователя.
organizations.hour 4 4 Нет Максимум созданий организаций в час на пользователя.
organizations.day 8 8 Нет Максимум созданий организаций в день на пользователя.
invites { … } Нет Определяет ограничения скорости приглашений на пользователя.
invites.minute 8 8 Нет Максимум приглашений в минуту на пользователя.
invites.hour 16 16 Нет Максимум приглашений в час на пользователя.
invites.day 32 32 Нет Максимум приглашений в день на пользователя.
runs { … } Нет Определяет ограничения скорости запусков бенчмарков на пользователя.
runs.minute 64 64 Нет Максимум запусков бенчмарков в минуту на пользователя.
runs.hour 1024 1024 Нет Максимум запусков бенчмарков в час на пользователя.
runs.day 4096 4096 Нет Максимум запусков бенчмарков в день на пользователя.

project

Ограничитель скорости project применяется к каждому проекту. Каждое подполе содержит ограничения minute, hour и day. Весь раздел является необязательным. Если не указано, будут использоваться перечисленные значения по умолчанию.

Имя Пример По умолчанию Обязательно Описание
requests { … } Нет Определяет ограничения скорости запросов на проект.
requests.minute 2048 2048 Нет Максимум запросов в минуту на проект.
requests.hour 8192 8192 Нет Максимум запросов в час на проект.
requests.day 16384 16384 Нет Максимум запросов в день на проект.
runs { … } Нет Определяет ограничения скорости запусков бенчмарков на проект.
runs.minute 64 64 Нет Максимум запусков бенчмарков в минуту на проект.
runs.hour 1024 1024 Нет Максимум запусков бенчмарков в час на проект.
runs.day 4096 4096 Нет Максимум запусков бенчмарков в день на проект.

runner

Ограничитель скорости runner применяется к каждому раннеру. Каждое подполе содержит ограничения minute, hour и day. Весь раздел является необязательным. Если не указано, будут использоваться перечисленные значения по умолчанию.

Имя Пример По умолчанию Обязательно Описание
requests { … } Нет Определяет ограничения скорости запросов на раннер.
requests.minute 16 16 Нет Максимум запросов в минуту на раннер.
requests.hour 256 256 Нет Максимум запросов в час на раннер.
requests.day 4096 4096 Нет Максимум запросов в день на раннер.

oci_bandwidth

oci_bandwidth определяет дневные лимиты пропускной способности OCI-реестра для каждого уровня организации. Весь раздел является необязательным. Если не указано, будут использоваться перечисленные значения по умолчанию.

Имя Пример По умолчанию Обязательно Описание
unclaimed 1073741824 1073741824 Нет Максимум байт в день для невостребованных организаций (0 участников). По умолчанию 1 ГиБ.
free 10737418240 10737418240 Нет Максимум байт в день для бесплатных (востребованных, без платного плана) организаций. По умолчанию 10 ГиБ.
plus 107374182400 107374182400 Нет Максимум байт в день для организаций Plus (Team/Enterprise). По умолчанию 100 ГиБ.

plus.stats

В этом разделе указывается, собираются ли и когда статистические данные сервера. Весь раздел является необязательным. Если он не указан, будут использованы перечисленные значения по умолчанию. То есть, статистика сервера собирается, если вы на это не отказываетесь. Установите значение enabled в false, чтобы отключить сбор статистики сервера.

Название Пример По умолчанию Обязательно Описание
offset 11242 11242 Нет Определяет смещение от полуночи в секундах для сбора статистики сервера. По умолчанию это происходит в 03:07:22 UTC.
enabled true true Нет Контролирует, собирается ли статистика сервера. Установите значение false, чтобы отказаться.


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