- Go 98.7%
- Shell 1.3%
|
All checks were successful
continuous-integration/drone/tag Build is passing
|
||
|---|---|---|
| .vscode | ||
| db | ||
| lib | ||
| .drone.yml | ||
| .gitignore | ||
| docker-entrypoint.sh | ||
| Dockerfile.amd64 | ||
| Dockerfile.arm64 | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| main_test.go | ||
| README.md | ||
Сборщик логов через Nats
Сервис для сбора логов, отправленных в указанную очередь в Nats. Данный сервис НЕ БУДЕТ ПОЛУЧАТЬ НАСТРОЙКИ ЧЕРЕЗ yt-settings. Все настройки указываются через переменные окружения. Так как таблица с логами может быть очень большой, то миграция таблицы может занять очень много времени. В таком случае обновление структуры может быть запущено только через коммаду (без автоматики при запуске).
Создание и обновление структуры БД
Если используется SQLite3, MySQL/MariaDB, PostgreSQL или SQLServer, то обновление БД может выполнить само приложения. Для ClickHouse обновление структуры не выполняется в автоматическом режиме, а только вручную в самой СУБД. Это связано с тем, что у ClickHouse очень много различных настроек "движков" и каждый из них может иметь собственную задачу.
Таблица для ClickHouse:
CREATE TABLE IF NOT EXISTS logs (
log_level INTEGER,
start_time DATETIME,
start_time_nano INTEGER,
end_time DATETIME,
end_time_nano INTEGER,
func_name TEXT,
id_call VARCHAR (50),
id_call_prev VARCHAR (50),
call_from VARCHAR (250),
id_call_response VARCHAR (50),
path TEXT,
status_code INTEGER,
size INTEGER,
msg TEXT,
err_code INTEGER,
err TEXT
)
ENGINE = ReplacingMergeTree() PARTITION BY (log_level, toDate(start_time), toDate(end_time))
ORDER BY (log_level, start_time, start_time_nano, end_time,end_time_nano)
SETTINGS index_granularity = 8192;
Далле таблицу можно снабдить дополнительными параметрами (по вкусу/требованию).
Переменные окружения
ENV
development/production. По умолчанию production.
NATS_ADDR
Адрес менеджера очередей. По умолчанию nats://localhost:4222
DB_DRIVER
Используемая СУБД. По умолчанию sqlite
DB_NAME
Имя БД. По умолчанию db/logger.db
DB_LOGIN
Логин БД
DB_PASSWORD
Пароль БД
DB_HOST
Хост подключения
DB_PORT
Порт подключения
DB_PREFIX
Префикс для таблиц
DB_MIGRATE
Запуск создания и/или миграции структуры БД
QUEUE_LOG
Имя очереди для получения логов. По умолчанию logs
DB_MAX_BATCH_INSERT
Максимальное количество записей для вставки пакетом в БД. По умолчанию 100