Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is it not popular to have a mobile application send crash log to ELK

I am developing a mobile application on IOS and Android. Currently I use Firebase Crashlytic to track application crash log.

I am not quite satisfied with what I can do with Crashlytic. For example when a user reported an issue and had a video record an app crash at a specific time, I would like to see the log from the device around that time, but it's not easy with Crashlytic.

A solution popup in my mind to have the mobile application send the crash log to my AWS SQS queue and somehow pass it to Elasticsearch so that I can filter the log using Kibana.

I would like to implement something like this

  1. The mobile app keep log of everything into a rotatable temporary file.
  2. When meet following conditions, send the log from file to the SQS queue.
  • Before showing any error popup
  • After any app crash event
  • When an API did not response after X seconds
  1. If found any error in the process of sending log in 2., set flag retry_send_error=true in memory.
  2. On any possible application event, if found that retry_send_error==true in memory, try send the log again.
  3. Create a lambda listening the SQS queue and send the log to LogStash or Elasticsearch.

I have been searching on the Internet to find some reference example and could not find any good one. So I doubt my solution could have something wrong.

Please help suggest if you know some good example with architecture similar to this, or if you know the reason why this solution is not so popular.

like image 498
asinkxcoswt Avatar asked Mar 03 '23 06:03

asinkxcoswt


1 Answers

The way you want to solve this is basically not bad. But in my opinion ELK is not precisely you want.

The SQS + Lambda is a good idea to aggregate and filter the lots of public requests, but have some issues with security, or efficiency (or maybe cost). And the architecture of that will not be simple at all.

However, if I may recommend sentry.io, which is exactly the tool you need there as I understand the problem correctly.

And sentry have solution for mobile, android and iOS too.

I did use sentry for different things, and have a clearly readable interface to work with. With minimal code assigns you can tag the events, throw good Exceptions for filtering, and sentry solves the rest.

like image 63
Mikopet Avatar answered Apr 07 '23 07:04

Mikopet