Handling Logs for Converged Services
Problem
We want to give service users access to the logs of their Converged Services, so that they have better insights into their service and have the option to solve issues without having to reach out to us for support.
Goals
-
Define how we handle logs for Converged Services
-
Solution covers the requirement for Service Maturity Logs
Proposals
Collect Logs in Dedicated AppCat Logging Solution
One option is to provide a dedicated AppCat logging system to aggregate logs at a single place.
By forwarding logs to a central location, we can provide service users pre-built dashboards that display data about their service instances. We could potentially even integrate metrics into the same dashboards, giving the service users a complete overview of their services.
This could be accomplished using a central Loki instance and by forwarding the logs using a Promtail sidecar in every service. It is however not directly clear how we would handle access control for this central logging instance.
Use Logging Solution of Platform
Every APPUiO cluster already provides some logging stack.
At the very least on every Kubernetes cluster we can access the logs of a service using kubectl logs
.
APPUiO Cloud and APPUiO Managed OpenShift provide a logging stack based on Elasticsearch or Loki.
Service users can access logs in these systems if they have permissions to view the logs using kubectl
.
APPUiO Managed Kubernetes Services provide logs in a logging stack of the underlying cloud provider, which the service user should be able to access.
The service user uses the same systems to acces the logs of their own application.
Decision
We use the logging solution of the platform.
Rationale
While a custom AppCat log collection solution would give us more flexibility and potentially a much better UX, it doesn’t warrant the additional cost of engineering and running a separate solution.
Service users already use the platform to run their application, so they’re used to using it. Instead of reinventing the wheel, we should focus on using what is already available and maybe extend what is provided.