mirror of
https://github.com/vsilchenkov/catcher.git
synced 2025-10-08 13:51:51 +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.6%
Batchfile
0.3%
Makefile
0.1%