forked from netology-code/mnt-homeworks
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Домашнее задание к занятию "10.01. Зачем и что нужно мониторить" | ||
|
||
## Обязательные задания | ||
|
||
1. Вас пригласили настроить мониторинг на проект. На онбординге вам рассказали, что проект представляет из себя | ||
платформу для вычислений с выдачей текстовых отчетов, которые сохраняются на диск. Взаимодействие с платформой | ||
осуществляется по протоколу http. Также вам отметили, что вычисления загружают ЦПУ. Какой минимальный набор метрик вы | ||
выведите в мониторинг и почему? | ||
|
||
2. Менеджер продукта посмотрев на ваши метрики сказал, что ему непонятно что такое RAM/inodes/CPUla. Также он сказал, | ||
что хочет понимать, насколько мы выполняем свои обязанности перед клиентами и какое качество обслуживания. Что вы | ||
можете ему предложить? | ||
|
||
3. Вашей DevOps команде в этом году не выделили финансирование на построение системы сбора логов. Разработчики в свою | ||
очередь хотят видеть все ошибки, которые выдают их приложения. Какое решение вы можете предпринять в этой ситуации, | ||
чтобы разработчики получали ошибки приложения? | ||
|
||
3. Вы, как опытный SRE, сделали мониторинг, куда вывели отображения выполнения SLA=99% по http кодам ответов. | ||
Вычисляете этот параметр по следующей формуле: summ_2xx_requests/summ_all_requests. Данный параметр не поднимается выше | ||
70%, но при этом в вашей системе нет кодов ответа 5xx и 4xx. Где у вас ошибка? | ||
|
||
## Дополнительное задание (со звездочкой*) - необязательно к выполнению | ||
|
||
Вы устроились на работу в стартап. На данный момент у вас нет возможности развернуть полноценную систему | ||
мониторинга, и вы решили самостоятельно написать простой python3-скрипт для сбора основных метрик сервера. Вы, как | ||
опытный системный-администратор, знаете, что системная информация сервера лежит в директории `/proc`. | ||
Также, вы знаете, что в системе Linux есть планировщик задач cron, который может запускать задачи по расписанию. | ||
|
||
Суммировав все, вы спроектировали приложение, которое: | ||
- является python3 скриптом | ||
- собирает метрики из папки `/proc` | ||
- складывает метрики в файл 'YY-MM-DD-awesome-monitoring.log' в директорию /var/log | ||
(YY - год, MM - месяц, DD - день) | ||
- каждый сбор метрик складывается в виде json-строки, в виде: | ||
+ timestamp (временная метка, int, unixtimestamp) | ||
+ metric_1 (метрика 1) | ||
+ metric_2 (метрика 2) | ||
|
||
... | ||
|
||
+ metric_N (метрика N) | ||
|
||
- сбор метрик происходит каждую 1 минуту по cron-расписанию | ||
|
||
Для успешного выполнения задания нужно привести: | ||
|
||
а) работающий код python3-скрипта, | ||
|
||
б) конфигурацию cron-расписания, | ||
|
||
в) пример верно сформированного 'YY-MM-DD-awesome-monitoring.log', имеющий не менее 5 записей, | ||
|
||
P.S.: количество собираемых метрик должно быть не менее 4-х. | ||
P.P.S.: по желанию можно себя не ограничивать только сбором метрик из `/proc`. |