Skip to content

Latest commit

 

History

History
99 lines (65 loc) · 4.57 KB

README.md

File metadata and controls

99 lines (65 loc) · 4.57 KB

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

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

Название: 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.