.. | ||
dontlook | ||
grafana | ||
prometheus | ||
screenshots | ||
docker-compose.yaml | ||
Dockerfile | ||
main.go | ||
main_test.go | ||
README.md |
firegod
В этой задаче вам нужно научиться пользоваться связкой prometheus+grafana для отладки собственного кода.
Вам дан код сервиса. Нужно добавить в него метрики, и потом используя графану с помощью графиков ответить на ряд вопросов.
В этой задаче нет автоматической проверки. Чтобы получить оценку, нужно закоммитить свои ответы вместе со скриншотами в репозиторий, и поменять значение константы в Solved
в файле main.go
на true
.
Окружение
В файле docker-compose.yaml
описан тестовый стенд.
prometheus
- контейнер с прометеем, который собирает метрики и выполняет запросы над ними.grafana
- контейнер с графаной, дающий удобныйWeb UI
для работы с прометеем.my_service
- 5 реплик вашего сервиса.
Чтобы запустит тестовый стенд, выполните команду docker compose up --build
. Чтобы перезапустить стенд, остановите docker compose
нажав Ctrl+C
и перезапустите команду.
После запуска стенда, проверьте что:
- targets показывает правильный список процессов. Один прометей в состоянии
up
и 5 копий вашего сервиса в состоянииdown
с ошибкойserver returned HTTP status 404 Not Found
. - grafana пускает вас в интерфейс с логином
admin
и паролемgrafana
, а на странице Explore видно какие-то метрики (напримерup
).
Сервис
В пакете dontlook
находится код сервиса. В него смотреть нельзя.
Вам нужно дописать код сбора и экспорта метрик в файл main.go
.
- Сделайте так, чтобы метрики экспортировались по запросу
GET /metrics
. - Включите экспорт метрик go рантайма и процесса (если они уже не экспортируются по дефолту).
- Добавьте middleware записывающий метрики из http хендлеров.
Вопросы
- Сколько процессов каких сервисов подключено к прометею? (пример)
Ответ: 1 прометей и 5 моих сервисов.
-
Какой процесс постоянно перезапускается?
-
В каком процесс есть утечка файловых дескрипторов?
-
В каком процессе есть утечка памяти?
-
В каком процессе утекают горутины?
-
Какой хендлер пятисотит больше всех?
-
Сколько всего запросов в секунду приходит в сервис?
-
Какой хендлер медленнее всех отвечает, если сравнивать по 90-ой перцентиле времени ответа?
-
Какой хендлер генерирует больше всего трафика?