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
- The mobile app keep log of everything into a rotatable temporary file.
- 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
- If found any error in the process of sending log in 2., set flag
retry_send_error=truein memory. - On any possible application event, if found that
retry_send_error==truein memory, try send the log again. - 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.