Skip to content

unit-team-spbu/logger

Repository files navigation

Сервис логгирования

Данный документ содержит описание работы и информацию о развертке микросервиса предназначенного для сохранения логов работы всех микросервисов.

Название: logger

Структура сервиса:

Файл Описание
logger.py Код микросервиса
config.yml Конфигурационный файл со строкой подключения к RabbitMQ и MongoDB
run.sh Файл для запуска сервиса из Docker контейнера
requirements.txt Верхнеуровневые зависимости
Dockerfile Описание сборки контейнера сервиса
docker-compose.yml Изолированная развертка сервиса вместе с (RabbitMQ, MongoDB)
README.md Описание микросервиса

API

RPC

Для добавления логов в микрос нужно импортировать RpcProxy, если его еще нет:

from nameko.rpc import RpcProxy

В поле класса микросервиса добавить:

logger_rpc = RpcProxy('logger')

После этого нужных местах вызывать соответствующий метод:

self.logger_rpc.log(<имя микросервиса>, <имя текущего метода>, <аргументы метода>, <статус>, <описание лога>)
  • Имя микросервиса: self.name
  • Имя текущего метода: self.<method>._name__
  • Если метод не имеет аргументов - None, если аргумент один - сам аргумент, если аргументов несколько - список этих аргументов. Все аргументы должны быть json сериализуемы!
  • Статус: Info - информационное сообщение, Error - ошибка.
  • Описание лога: строка с описанием произошедшего.

HTTP

Для получения логов можно использовать один из двух методов:

  • Полная версия логов с аргументами:
GET http://localhost:8013/full_logs HTTP/1.1
  • Урезанная версия логов без аргументов:
GET http://localhost:8013/short_logs HTTP/1.1

Развертывание и запуск

Локальный запуск

Для локального запуска микросервиса требуется запустить контейнер с RabbitMQ и MongoDB.

docker-compose up -d

Затем из папки микросервиса вызвать

nameko run logger

Для проверки rpc запустите в командной строке:

nameko shell

После чего откроется интерактивная Python среда. Обратитесь к сервису одной из команд, представленных выше в разделе rpc

Запуск в контейнере

Чтобы запустить микросервис в контейнере вызовите команду:

docker-compose up

если вы не хотите просмотривать логи, добавьте флаг -d в конце

Микросервис запустится вместе с RabbitMQ в контейнере.

Во всех случаях запуска вместе с MongoDB также разворачивается mongo-express - инструмент, с помощью которого можно просматривать и изменять содержимое подключенной базы (подключение в контейнерах сконфигурировано и производится автоматически). Сервис хостится локально на порту 8081.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published