16 lines
1.5 KiB
Markdown
16 lines
1.5 KiB
Markdown
# httpgauge
|
||
|
||
Напишите middleware, считающий метрики числа запросов. Обычно, метрики измеряют
|
||
с помощью библиотеки [prometheus](https://github.com/prometheus/client_golang).
|
||
|
||
Но мы будем писать упрошённую версию, которая будет хранить метрики в `map[string]int`.
|
||
|
||
Ключём в такой `map` можно было бы сделать `Path` запроса, но это не очень хорошее решение.
|
||
В пути часто встречаются изменяемые параметры. Например `/user/0`, `/user/1`, etc. В этом случае,
|
||
мы не хотим отдельно измерять, что пришло 5 запросов к `/user/0` и 10 запросов к `/user/1`.
|
||
Для мониторинга за сервером нам нужно знать, что пришло 15 запросов к пути `/user/{userID}`.
|
||
|
||
Чтобы получить такой паттерн (`/user/{userID}`) вместо полного пути, нужно использовать библиотеку-роутер.
|
||
Стандартная библиотека такого не умеет. В этой задаче мы будем использовать библиотеку [chi](https://github.com/go-chi/chi).
|
||
|
||
Как получить такой паттерн из библиотеки `chi` - найдите сами)
|