Клиент и асинхронный сервер для приема и отправки метрик. Сервер хранит метрики в структурах данных (идет перенос хранения в postgres).
Метрики хранятся по ключу формата <server_name>.<metric>\n
. Существует специальный ключ *\n
для получения всех данных хранящихся на сервере.
Запросы клиента
get <key>\n
— получить данные по ключу
put <key> <value> <timestamp>\n
— отправить значение с соответствующий ключом, значением и опциональной временной меткой (если не указана, сервер по умолчанию ставит время принятия)
`
Ответ сервера
<status>\n<data>\n\n
— в зависимости от статуса (ok
, error
) отправляет данныев формате <key> <data>\n
Пусть на сервере хранятся данные
key | value | timestamp |
---|---|---|
"palm.cpu" |
2.0 | 1150864247 |
"palm.cpu" |
0.5 | 1150864248 |
"eardrum.cpu" |
3.0 | 1150864250 |
Тогда по запросу get palm.cpu\n
придет ответ:
ok\npalm.cpu 2.0 1150864247\npalm.cpu 0.5 1150864248\n\n
Для запуска сервера нобходимо выполнить команду python3 Server.py
и ввести адрес и порт в формате <adress>:<port>
Работа клиента инкапсулирована в классе Client
, у которого есть метод get
, принимающий ключ в качестве аргумента, и метод put
, принимающий ключ, значение и опциональную временную метку.
Выполненный проект из курса «Погружение в Python»