shad-go/middleware/httpgauge/README.md

16 lines
1.5 KiB
Markdown
Raw Normal View History

2023-03-24 23:08:06 +00:00
# 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` - найдите сами)