Rate limiter for the sentry.
Project description
Sentry Rate Limit
Приложение обеспечивает гибкий способ управления количеством ошибок на организацию/проект/ключ.
Минимальные требования
- Python >= 3.9
- PostgreSQL >= 11.8
- Sentry API auth token
Authentication token permissions:
org:read
project:read
project:write
Запуск приложения
- Скопировать файл конфигурации
ratelimit/config.example.py
вratelimit/config.py
- Изменить настройки в файле конфигурации
ratelimit/config.py
, если это необходимо - Установить необходимые зависимости
pip install -r requirements.txt
- Собрать приложение
python setup.py install
- Запустить приложение
sentry-rate-limit
Запуск приложения в виртуальном окружение Python
- Создать виртуально окружение
python3 -m venv .venv
- Активировать виртуальное окружение:
source .venv/bin/activate
- для Linux и MacOS.venv\Scripts\activate.bat
- для Windowsdeactivate
- для завершения работы в виртуальном окружении
- Скопировать файл конфигурации
ratelimit/config.example.py
вratelimit/config.py
- Изменить настройки в файле конфигурации
ratelimit/config.py
, если это необходимо - Установить необходимые зависимости
pip install -r requirements.txt
- Собрать приложение
python setup.py install
- Запустить приложение
sentry-rate-limit
Запуск приложения в Docker
- Собрать образ
docker build --file ./docker/Dockerfile --tag YOUR_IMAGE_NAME . --no-cache
- Запустить приложение
docker run --name YOUR_NAME --rm -it YOUR_IMAGE_NAME
Пример запуска с переменными окружения в Docker
docker run --name YOUR_NAME \
-e "SENTRY_BEARER_TOKEN=00000000000000000000000000000000" \
-e "LOGGING_ENABLE=True" \
-e "LOGGING_LEVEL=info" \
--rm -it YOUR_IMAGE_NAME
Environment variables
Sentry
SENTRY_URL
: URL адрес для подключения к Sentry (examplehttps://sentry.io
)SENTRY_BEARER_TOKEN
: Токен авторизации (подробнее)
PostgreSQL
POSTGRES_DB_NAME
: Название базы данных (defaultpostgres
)POSTGRES_DB_USER
: Имя пользователя (defaultpostgres
)POSTGRES_DB_PASSWORD
: Пароль пользователяPOSTGRES_HOST
: Имя хоста (defaultlocalhost
)POSTGRES_PORT
: Порт подключения (default5432
)
Логирование
LOGGING_ENABLE
: Активация логирования (defaultFalse
)LOGGING_LEVEL
: Уровень логирования (defaultdebug
)LOGGING_FILE_NAME
: Название файла для логов
Другие
DEFAULT_LIMIT_COUNT
: Количество ошибок (default300
)DEFAULT_LIMIT_WINDOW
: Временной интервал в секундах (default60
)MIN_LIMIT_COUNT
: Минимальное количество ошибок, допускаемых за 1 минуту (default60
)
Список команд
Приложение может работать в нескольких режимов команд:
Usage: sentry-rate-limit [OPTIONS] COMMAND [ARGS]...
Sentry Rate Limit this is a utility for setting limits in.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
add Add data to the database.
cleanup Delete data without dependencies.
delete Delete data from the database.
describe DESCRIBE.
get GET.
help Show this message and exit.
init Initialize the tables in the database.
set Set the speed limit in sentry.
sync Syncs data from Sentry.
update Update the data in the database.
Команды управления
Команда - init
Usage: sentry-rate-limit init [OPTIONS]
Initialize the tables in the database.
Options:
--help Show this message and exit.
Команда - add
Добавляет организацию в базу данных.
Нельзя добавить организацию, которой нет в Sentry
--limit-count
- установить лимит на всю организациюEсли лимит не указан, будет использоваться дефолтный лимит:
default_limit_count
в файлеratelimit/config.py
--desc
- добавить описание для лимита
Usage: sentry-rate-limit add [OPTIONS]
Add data to the database.
Examples:
$ sentry-rate-limit add --organization-name test --limit-count 300 --desc "Testing."
$ sentry-rate-limit add --organization-name test --limit-count 300
$ sentry-rate-limit add --organization-name test
Options:
-o, --organization-name TEXT Organization name. Not display name.
-l, --limit-count INTEGER Limit count.
-d, --desc TEXT Description.
--help Show this message and exit.
Команда - delete
Удаляет организацию из базы данных.
Usage: sentry-rate-limit delete [OPTIONS]
Delete data from the database.
Examples:
$ sentry-rate-limit delete --organization-name test
Options:
-o, --organization-name TEXT Organization name. Not display name.
--help Show this message and exit.
Команда - describe
- в разработке
Команда - get
- в разработке
Команда - update
Обновляет лимиты на организацию/проект/ключ в базе данных.
Usage: sentry-rate-limit update [OPTIONS] COMMAND [ARGS]...
Update the data in the database.
Options:
--help Show this message and exit.
Commands:
limit Update limit.
Usage: sentry-rate-limit update limit [OPTIONS]
Update limit.
Examples:
$ sentry-rate-limit update limit --organization-name test --limit-count 500 --desc "Testing."
$ sentry-rate-limit update limit --organization-name test --project-name LoadTest --limit-count 100
$ sentry-rate-limit update limit --organization-name test --project-name LoadTest --public-key cec9dfceb0b74c1c9a5e3c135585f364 --limit-count 50
Options:
-o, --organization-name TEXT Organization name. Not display name.
-p, --project-name TEXT Project name.
-k, --public-key TEXT Public key.
-l, --limit-count INTEGER Limit count. [required]
-d, --desc TEXT Description.
--help Show this message and exit.
Команды исполнения
Команда cleanup
Запускает удаление данных без зависимостей из базы данных.
Usage: sentry-rate-limit cleanup [OPTIONS]
Delete data without dependencies.
Options:
--help Show this message and exit.
Команда set
Устанавливает лимиты в sentry.
Usage: sentry-rate-limit set [OPTIONS]
Set the speed limit in sentry.
Options:
--help Show this message and exit.
Команда sync
Синхронизирует данные между sentry и базы данных.
Usage: sentry-rate-limit sync [OPTIONS]
Syncs data from Sentry.
Options:
-L, --limit-only Sync only limits.
-N, --no-limit Sync all except limits.
--help Show this message and exit.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sentry_rate_limit-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5b221419097cb9dcad497fae4b4c64b0e5fc5f10f27b924e61eb3998b39426f |
|
MD5 | 44ba3870abafb67fcb468c36ee0929da |
|
BLAKE2b-256 | 9d202a1430096c30aded13d3b0af751f7139a5fe5706ba6b23932fb2fba6bfb3 |