shad-go/middleware/httpgauge
2024-06-05 20:36:34 +03:00
..
httpgauge.go Describe gauge ServeHTTP method 2023-03-26 16:59:47 +04:00
httpgauge_test.go Updated to the most recent version, which uses go 1.22 2024-06-05 20:36:34 +03:00
README.md Updated to the most recent version, which uses go 1.22 2024-06-05 20:36:34 +03:00

httpgauge

Напишите middleware, считающий метрики числа запросов. Обычно, метрики измеряют с помощью библиотеки prometheus.

Но мы будем писать упрощённую версию, которая будет хранить метрики в map[string]int.

Ключом в такой map можно было бы сделать Path запроса, но это не очень хорошее решение. В пути часто встречаются изменяемые параметры. Например /user/0, /user/1, etc. В этом случае, мы не хотим отдельно измерять, что пришло 5 запросов к /user/0 и 10 запросов к /user/1. Для мониторинга за сервером нам нужно знать, что пришло 15 запросов к пути /user/{userID}.

Чтобы получить такой паттерн (/user/{userID}) вместо полного пути, нужно использовать библиотеку-роутер. Стандартная библиотека такого не умеет. В этой задаче мы будем использовать библиотеку chi.

Как получить такой паттерн из библиотеки chi - найдите сами)