shad-go/middleware/httpgauge/README.md

17 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`.
2023-03-24 23:08:06 +00:00
Ключом в такой `map` можно было бы сделать `Path` запроса, но это не очень хорошее решение.
2023-03-24 23:08:06 +00:00
В пути часто встречаются изменяемые параметры. Например `/user/0`, `/user/1`, etc. В этом случае,
мы не хотим отдельно измерять, что пришло 5 запросов к `/user/0` и 10 запросов к `/user/1`.
2023-03-26 08:57:22 +00:00
Для мониторинга за сервером нам нужно знать, что пришло 15 запросов к пути `/user/{userID}`.
2023-03-24 23:08:06 +00:00
Чтобы получить такой паттерн (`/user/{userID}`) вместо полного пути, нужно использовать библиотеку-роутер.
2023-03-26 08:57:22 +00:00
Стандартная библиотека такого не умеет. В этой задаче мы будем использовать библиотеку [chi](https://github.com/go-chi/chi).
2023-03-24 23:08:06 +00:00
2023-03-26 08:57:22 +00:00
Как получить такой паттерн из библиотеки `chi` - найдите сами)