oruchkin / Async_API_sprint_3

AsyncAPI Спринт 3
1 stars 1 forks source link

Code Review #112

Closed BigDeepBlue closed 2 months ago

BigDeepBlue commented 2 months ago

Добрый день! Есть несколько замечаний

  1. [можно лучше] https://github.com/oruchkin/Async_API_sprint_3/blob/b3a50831fade362d9c8b4009ee17583a3454a5d7/ugc/api/src/api/app.py#L8 Подключение sentry лучше под настройку занести, чтобы не пытаться его подключать, например, в тестах
  2. В API лайков, закладок и рецензий не хватает авторизации, также пользователя правильнее получать из токена, чтобы нельзя было дергать API от лица другого юзера
  3. [просто для информации] Можно подключить ODM для работы с mongo, чтобы сделать код более объектно-ориентированным, например https://beanie-odm.dev/
  4. https://github.com/oruchkin/Async_API_sprint_3/blob/b3a50831fade362d9c8b4009ee17583a3454a5d7/ugc/api/src/ugc_logs.json#L1 Файлы/директории логов лучше указывать в .gitignore, ценности для репозитория они не имеют
  5. https://github.com/oruchkin/Async_API_sprint_3/blob/b3a50831fade362d9c8b4009ee17583a3454a5d7/ugc/elk/deploy/logstash.conf#L21 Конфигурацию 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}"
            }
        }

    Небольшой пример, там наверняка что-то пригодится https://github.com/RomanAVolodin/FastAPI-MongoDb-ELK. Там и добавление tag для сервиса, и разделение по индексам в ES и парсинг json логов в разделе processors. Расширенное логирование с дополнительными полями. И бонусом запуск кластера монги в автоматическом режиме

oruchkin commented 2 months ago

Все сделано здесь:

https://github.com/oruchkin/Async_API_sprint_3/pull/113