shad-go/middleware/httpgauge/README.md
2023-03-26 08:57:22 +00:00

16 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` - найдите сами)