This is how we scale: Using a centralized logging solution

Click for: original source

Our current centralized logging solution is Logz.io: Cloud Observability for Engineers and most of our application logs are sent there from the k8s cluster. In addition, we use the logging system’s alert mechanism to trigger and send alerts to various sources, including email, Slack channels, etc. By Uriah Ahrak.

When we have several dozens of Lambda functions, we need to solve the problem in a generic way to reduce the amount of work and migration required by the developers who work with FaaS technology on a daily basis.

The article has these main parts:

  • Possible solutions
  • How do we plug in the currently deployed Lambda functions?
  • Deployment of logs consumer
  • Deployment of logs extension
  • Logging code-based Lambdas
  • Logging via CloudWatch log streams

For the final solution, we chose to have a segregation between our code and the logging system specifics. We initiated a Kinesis Stream, which is a generic process that anyone with AWS SDK and appropriate AuthZ can access and send logs in a specific format. If you have Lambda functions/applications that don’t support Lambda extensions, and you don’t want to change the code of the application in order to send logs towards the Kinesis Stream, you can use the CloudWatch Logger Lambda, which is listening to CloudWatch logs streams and pushing these logs automatically to the Kinesis Stream. Good read!

[Read More]

Tags devops aws app-development software-architecture serverless monitoring