Reducing observability cognitive load in KubeVirt
UD2.120 (Chavanne) | Day 2 | 13:10 - 13:40 | Speakers: João Vilaça
Abstract
KubeVirt, which provides additional functionality to Kubernetes clusters, to perform virtual machine management, is a large multi-component project that, like many others, grew rapidly with a strong focus on delivering new features. In the beginning, observability was not a priority. Whenever necessary, the developers of each component would add Prometheus instrumentation in their code bases in very different ways.
As the project matured and observability became increasingly more important, we created a dedicated team. By then, there were high levels of intertwined observability and business logic code. It was challenging to keep a mental model of how different teams implemented observability across repositories and difficult to maintain them in sync with new features.
This presentation will outline and demo how we modularized the code and made it more readable, and maintainable. By encapsulating the Prometheus monitoring best practices and the common patterns into a library with a strict interface and using it as a dependency for all KubeVirt components, we reduced code complexity, made it easy to maintain and evolve, and reduced the risk of introducing errors. Our experience will give you a clear path forward on how to clean up and improve observability code in your projects.
Attachments
Speakers
Links
External Links
Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.
