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

Non-Goals

  • Define log handling of other service types such as brokered Cloud Services

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.