Почему не так популярно, когда мобильное приложение отправляет журнал cra sh в ELK - PullRequest
3 голосов
/ 13 июля 2020

Разрабатываю мобильное приложение на IOS и Android. В настоящее время я использую Firebase Crashlyti c для отслеживания приложений cra sh log.

Я не совсем удовлетворен тем, что я могу делать с Crashlyti c. Например, когда пользователь сообщил о проблеме и записал видео приложение cra sh в указанное c время, я хотел бы просмотреть журнал с устройства примерно в это время, но это непросто с Crashlyti c .

Всплывающее окно в моей голове, чтобы мобильное приложение отправляло журнал cra sh в мою AWS очередь SQS и каким-то образом передавал его в Elasticsearch, чтобы я мог фильтровать журнал с помощью Kibana.

Я хотел бы реализовать что-то вроде этого

  1. Мобильное приложение хранит журнал всего во вращаемом временном файле.
  2. При соблюдении следующих условий отправляйте журнал из файла в очередь SQS.
  • Перед отображением всплывающего окна с ошибкой
  • После любого приложения cra sh event
  • Когда API не ответил после X секунды
Если обнаружена какая-либо ошибка в процессе отправки журнала в 2., установите флаг retry_send_error=true в памяти. При любом возможном событии приложения, если обнаружено, что retry_send_error==true в памяти, попробуйте отправить журнал снова. Создайте лямбду, прослушивающую очередь SQS, и отправьте журнал в LogSta sh или Elasticsearch.

Я искал в Inte rnet, чтобы найти ссылку пример и не смог найти ни одного хорошего. Поэтому я сомневаюсь, что в моем решении что-то не так.

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

Ответы [ 2 ]

3 голосов
/ 24 июля 2020

Здесь хорошая статья, в которой объясняются многие решения для удаленного ведения журнала для мобильных приложений.

Лучший способ отправить журнал в стек elasti c - использовать Hyperlog .

Hyperlog - это бесплатная библиотека с открытым исходным кодом для отправки ваших журналов в ELK или RequestBin, службу для проверки полезных данных HTTP.

ELK относится к Elasticsearch, Logsta sh, Kibana - сервисам для хранения, сбора и мониторинга логов. Несмотря на то, что они в основном используются для веб-приложений, мы также можем отправлять журналы из наших приложений в ELK. Развертывание и настройка стека ELK выходит за рамки этой статьи, но вы можете найти подробности здесь. Вы также можете выбрать одного из поставщиков стека ELK, их довольно много.

Вы также можете посмотреть Bugfender и Loggly , для которых не требуется весь стек elasti c для мониторинга и устранения неполадок ваших приложений.

3 голосов
/ 24 июля 2020

То, как вы хотите это решить, в основном неплохое. Но на мой взгляд ELK - это не совсем то, что вам нужно.

SQS + Lambda - хорошая идея для агрегирования и фильтрации большого количества запросов publi c, но есть некоторые проблемы с безопасностью или эффективностью (или, возможно, стоимостью). И архитектура этого будет совсем непростой.

Однако, если я могу порекомендовать sentry.io , это именно тот инструмент, который вам нужен, поскольку я правильно понимаю проблему.

И у часового есть решение для мобильного , android и iOS тоже.

Я использовал часового для разные вещи и иметь понятный интерфейс для работы. С минимальным назначением кода вы можете пометить события, выдать хорошие исключения для фильтрации, а остальное решит часовой.

...