| Why We want to provide a remote logging service to allow developers to see the logs on device on the backend for their mobile applications. The service should:
- can be used on its own to provide a general remote logging service for mobile apps
- can be used by other mobile services to collect logs on mobile devices
- the developers should be able to specify how many logs should be persisted on device (either by time or by size) in mobile apps
- by default, the logs should not be sent to the backend. Developers should be able to see what devices are connected to the backend, and choose which device should upload its logs.
- the logs should be stored in the EFK stack and developers will be able to view and filter/query the logs using EFK
There are a few unknowns: 1. What is the logging framework look like on the client side?
- how the logs are persisted?
- how the logs are uploaded to the backend service?
- how often the logs should be uploaded to the backend?
- what is the performance of the logging framework?
2. How do we push the logs from the device to the EFK stack?
- do we need to separate service
- or can we push the logs from clients to the EFK stack directly?
What To answer those questions, we want to do spike first. The spike should implement an E2E remote logging service for Android. It includes:
- An APB that can be used to provision the remote logging service
- can we provision EFK as part of this?
- A logging SDK for Android that can be used to persist logs and push logs when required
- To keep it simple for the sake of the spike, we can query if the logs need to be upload on app start, and upload the logs on app start only
- is there any open source solutions we can use?
- A remote logging service on the backend
- do we need one?
- how do we allow developers to choose which device to upload logs?
- how do we get the logs into EFK? One option could be the service simply write the logs to std out, and fluentd will push the logs into EFK.
A demo should be created to show the service working from E2E. Based on the spike, a proposal should be created for the remote logging service. |