Не считая перечисленных ниже мелочей, работа отличная 🔥
Конфигурацию ELK рекомендую слегка изменить. Вот тут вы все кладете в один индекс, но в приложении у вас уже множество сервисов (выдачи контента, авторизации, ugc, админка и т.д.). Из одного индекса вылавливать все это будет крайне сложно. Попробуйте разделить, например так:
if ( [tag] == "nginx" ) {
elasticsearch {
hosts => [ "${ES_HOST}" ]
index => "nginx-%{+YYYY.MM.dd}"
}
}
else if ( [tag] == "auth_app" ) {
elasticsearch {
hosts => [ "${ES_HOST}" ]
index => "auth_app-%{+YYYY.MM.dd}"
}
}
else if ( [tag] == "fast_api_app" ) {
elasticsearch {
hosts => [ "${ES_HOST}" ]
index => "fast_api_app-%{+YYYY.MM.dd}"
}
}
И слегка докрутив логирование в самих сервисах добавив tag и logstash.LogstashHandler
Не забывайте использовать flake8. Вот результат работы в api_ugc.
❯ flake8 api_ugc --max-line-length 120
api_ugc/core/enums.py:14:1: E302 expected 2 blank lines, found 1
api_ugc/core/logger_config.py:8:1: E302 expected 2 blank lines, found 1
api_ugc/core/logger_config.py:25:18: W292 no newline at end of file
api_ugc/api/v1/film_comments.py:5:121: E501 line too long (122 > 120 characters)
api_ugc/services/mongo/mongo_repository.py:172:121: E501 line too long (123 > 120 characters)
Любое API не сможет долго существовать и развиваться без покрытия тестами. Сейчас оно уже довольно функционально и тесты нужны. (хотя бы основная логика)
В файле api_ugc/services/mongo/mongo_repository.py множество "детских" ошибок вот такого типа:
Не считая перечисленных ниже мелочей, работа отличная 🔥
Конфигурацию ELK рекомендую слегка изменить. Вот тут вы все кладете в один индекс, но в приложении у вас уже множество сервисов (выдачи контента, авторизации, ugc, админка и т.д.). Из одного индекса вылавливать все это будет крайне сложно. Попробуйте разделить, например так:
И слегка докрутив логирование в самих сервисах добавив tag и logstash.LogstashHandler
Не забывайте использовать flake8. Вот результат работы в api_ugc.
Любое API не сможет долго существовать и развиваться без покрытия тестами. Сейчас оно уже довольно функционально и тесты нужны. (хотя бы основная логика)
В файле api_ugc/services/mongo/mongo_repository.py множество "детских" ошибок вот такого типа:
https://pheanex.github.io/pylint/