Компонент построен на пакете https://github.com/go-chi/chi,
реализует интерфейс github.com/go-chi/chi/v5/Router
, который доступен в контейнере объектов.
type Config struct {
UseProfile bool
HealthCheckEndpoint string
MetricsEndpoint string
PprofEndpoint string
}
Описание полей:
Поле | Описание | Значение по умолчанию |
---|---|---|
HealthCheckEndpoint | Конечная точка для проверки работоспособности приложения, этот параметр может быть передан одним из 3-х методов: - флаг командной строки --server.http.routes.health_check - переменная окружения SERVER_HTTP_ROUTES_HEALTH_CHECK - значение в конфиг файле server.http.routes.health_check |
/health-check |
MetricsEndpoint | Конечная точка для получения метрик, этот параметр может быть передан одним из 3-х методов: - флаг командной строки --server.http.routes.metrics - переменная окружения SERVER_HTTP_ROUTES_METRICS - значение в конфиг файле server.http.routes.metrics |
/metrics |
PprofEndpoint | Конечная точка для доступа к гошному pprof, этот параметр может быть передан одним из 3-х методов: - флаг командной строки --server.http.routes.pprof - переменная окружения SERVER_HTTP_ROUTES_PPROF - значение в конфиг файле server.http.routes.pprof |
/debug |
UseProfile | Если "true", в роутинг будет добавлен путь к гошному pprof из параметра PprofEndpoint , этот параметр может быть передан одним из 3-х методов:- флаг командной строки --trace.pprof - переменная окружения TRACE_PPROF - значение в конфиг файле trace.pprof |
false |
Компонент предоставляет ряд middleware
в подпакете middleware
:
- TotalRequestCount - добавляет метрику по общему кол. запросов;
- DurationMetric - добавляет метрику по времени выполнения запроса;
- NewParam - помещает параметр из запроса, в контекст, для дальнейшего использования, более подробно middleware.
Метрики добавляются автоматически при добавлении middleware
.
go_http_server_requests_total - общее кол. запросов. Доступные лейблы в метрике:
- app - имя приложения;
- endpoint - конечная точка (путь) запроса;
- code - код ответа на запрос.
go_http_server_duration_seconds - время выполнения запроса. Доступные лейблы в метрике:
- app - имя приложения;
- endpoint - конечная точка (путь) запроса.