DORA metrics: automatically, for all your Kubernetes workloads

Andreas Grabner
keptn
Published in
4 min readDec 9, 2022

--

DORA’s Four Key DevOps metrics have gained much attention as they provide critical insights into an organization’s maturity in automating the delivery of high-quality software. And rightfully so: According to the previous State of DevOps reports, organizations with higher successful deployment frequency have more business success in their market and tend to retain technical talent longer.

But getting those insights can sometimes be tricky and cause even more manual work. How can you extract DORA metrics more efficiently?

DORA to measure the maturity of the platform and deployed services

Platform engineers are asked to find ways to report DORA metrics to their application teams and business owners to justify the investment in new platforms and the apps they built on top. But DORA is also helpful for the platform engineering teams to measure the maturity and resiliency of the platform they provide to their organization.

Google’s blueprint implementation provides a step-by-step guide to get those insights by extending existing delivery pipelines (Jenkins, GitHub, GitLab, Flux, ArgoCD …) and having those send deployment events to a central custom data storage. Talking with platform engineers, however, we learned about a handful of challenges with Google’s approach:

a) Pipelines need to be manually extended with custom integration to send the data

b) 100% coverage is hard to reach. Pipelines are typically managed by the app teams, which limits motivation to add more complexity to an already complex system

c) No data collection standards are used, thus requiring custom storage

d) Data analytics is isolated and not part of the existing observability platform

One person’s challenge is another one’s opportunity!

Keptn automates DORA for all k8s workloads using OpenTelemetry

The feedback we gathered from all those platform engineers inspired our CNCF Keptn project community to deliver a solution to those challenges. And our solution provides:

· 100% coverage: Keptn installed as an Operator and controlled via k8s annotations

· WITHOUT changing any pipeline: capturing deployment lifecycle data from within k8s

· Using OpenTelemetry as standard to collect: providing metrics and traces in an open format

· Analytics in your observability tool: connect Keptn data with any other data you have

Sounds too good to be true?

I suggest you give it a test run. All you need to do is follow our Getting Started Guide that walks you through installing the operator, annotate your deployments or namespaces to get “lifecycle observed” by Keptn, and then start monitoring your deployments in real time.

The following screenshot shows some of the metrics we provide in a default Grafana dashboard that comes with one of our tutorial steps, showing:

· Time-based overview of deployments and how long they take

· Successful vs. Failed Deployments

· Deployment Duration and Deployment Frequency

Keptn observes any deployment on your k8s cluster and automatically provides the relevant DORA metrics without any additional integration work.
Keptn observes any deployment on your k8s cluster and automatically provides the relevant DORA metrics without any additional integration work.

Keptn provides metrics and traces the lifecycle of deployments from the time an external tool uses the K8s API to request a configuration change.

The following screenshot shows such a trace, highlighting how long each deployment took, when it finished or where it eventually failed.

Keptn automatically creates OpenTelemetry traces to provide insights into the lifecycle of your deployments. Find out here which deployments take long or where they fail.
Keptn automatically creates OpenTelemetry traces to provide insights into the lifecycle of your deployments. Find out here which deployments take long or where they fail.

From DORA to application-aware pre- and post-deployment checks

Keptn provides deployment lifecycle observability and brings two additional capabilities to your delivery automation. While the scope of this blog post is about DORA and Deployment Lifecycle Observability, it is important for us to explain what you can do on top of getting your metrics and traces:

Application-aware deployments: most of your workloads are made of several deployments that belong to an application. Kubernetes itself doesn’t have the concept of an application to understand when all components belonging to an application are fully deployed and healthy. Keptn, therefore, allows you to define an application context to trace the lifecycle of an application and not just its individual workloads

Pre- and post-deployment checks: Keptn has been around for almost 4 years. In its first incarnation, we focused on pre- and post-deployment checks, such as validating that external dependencies are ready before deploying a new version or validating SLOs (Service Level Objectives) after deployment was finished. With our application and deployment lifecycle observability, we allow you to define pre- and post-deployment checks on both application level and individual deployment.

Ready to get started? 5 minutes to your DORA metrics with Keptn

To get started in 5 minutes or less, please check out Getting Started with Keptn. Additional technical details can also be found on our Keptn Lifecycle Toolkit GitHub page.

Send us your screenshots, give us your feedback

Let us know if you have questions by leaving a comment on the blog or find us on the CNCF Slack in the #keptn channel. We would also be very happy to see some of your dashboards showing Keptn Observability data. Just post them on Slack, LinkedIn or Twitter (@keptnProject)

--

--