mirror of
https://github.com/vsilchenkov/catcher.git
synced 2025-11-23 22:22:24 +02:00
master
Сервис регистрации ошибок и отправкой их в Sentry
Описание
- Catcher — сервис на Go для регистрации ошибок и отправки их в Sentry.
- Главная точка входа:
app/cmd/catcher/main.go. - Основная логика находится в
internal/(config, git, handler, lib, models, sentryhub, server, service, testutil). - Конфигурационные файлы — в
config/. - Скрипты для Windows-сервиса —
service/windows/. - Swagger/OpenAPI документация —
docs/и файлыswagger.*.
Основные методы HTTP API
POST /api/reg/pushReport— регистрация и отправка отчёта об ошибке в Sentry. Принимает структуру отчёта, возвращает идентификатор события.POST /api/prj/:id/sendEvent— ручная отправка события в Sentry. Позволяет отправить кастомное событие с произвольными параметрами. В теле запроса указываются необходимые поля события.POST /api/service/clearCache— очистка кэша (например, для сброса кешированных исключений или контекста).GET /swagger/*any— Swagger UI и документация для всех методов сервиса.
Сборка
- Сборка для Windows:
make build-winилиgo build .\app\cmd\catcher. - Swagger-документация:
swag init -g app/cmd/catcher/main.go --parseDependency.
Варианты запуска
Сервис поддерживает запуск с различными параметрами командной строки:
-config <путь>— указать путь к конфигурационному файлу (по умолчаниюconfig/config.yml)-debug— запустить сервис в режиме отладки (используетconfig_debug.yml)-port <номер>— задать порт сервера вручную
Примеры:
- go run .\app\cmd\catcher -config config/config_debug.yml -port 8080 -debug
- catcher.exe -config config/config.yml
Структура файла config.yml
Server
Port: порт, на котором запускается сервис (например, "8000").
Registry
UserMessage: текст для пользователя при ошибке.DumpType: тип дампа для отчёта.Timeout: таймаут ожидания ответа.
Projects
- Список проектов, для которых работает сервис.
- В каждом проекте:
Name,ID: имя и идентификатор проекта.- Service: отвечает за параметры интеграции с сервисом для получения дополнительных данных:
Use: включить/отключить интеграцию с сервисом (true/false)Url: адрес внешнего сервиса, куда отправляются запросыIimeOut: таймаут ожидания ответа от сервиса (в минутах)Credintials:UserName: имя пользователя для авторизацииPassword: пароль пользователя
Cache:Use: использовать кеширование запросов к сервисуExpiration: время жизни кеша (в минутах)
Exeptions:Use: использовать обработку исключенийCache:Use: кешировать исключенияExpiration: время жизни кеша исключений (в минутах)
Test:UserName: имя тестового пользователя для проверки интеграции
- Sentry: интеграция с Sentry
Dsn: DSN для SentryEnvironment: окружение (prod/dev)Platform: платформаContextAround: параметры контекста ошибкиAttachments: вложения к ошибкеSendingCache: кеш отправки
- Git: параметры доступа к исходному коду
Use: включить интеграциюUrl,Path,Token,Branch,SourceCodeRoot: настройки репозитория
- Extentions: список расширений
Log
Debug: режим отладкиLevel: уровень логирования (2-5)OutputInFile: логирование в файлDir: каталог логов
DeleteTempFiles
true: удалять временные файлы изweb/temp
Sentry (внутренний)
Use: включить Sentry для внутренних ошибокDsn: DSN для SentryAttachStacktrace: прикладывать stacktraceTracesSampleRate: частота трассировкиEnableTracing: включить трассировку
TODO
Description
Languages
Go
99.4%
Makefile
0.3%
Batchfile
0.2%
HTML
0.1%