lucavallin
Published on

CI/CD Observability on GitHub Actions and the Role of OpenTelemetry

avatar
Name
Luca Cavallin

CI/CD observability is about monitoring and understanding the automated processes in software development and deployment. Just like an app or a system, your CI/CD tool of choice can also provide metrics and other insights into the performance and health of pipelines, helping developers and their teams detect issues early and improve efficiency.

How OpenTelemetry is Improving CI/CD Observability

OpenTelemetry, an observability framework, collects and exports telemetry data such as traces, metrics, and logs from various processes. It standardizes how data is collected, making it easier for developers to analyze and visualize the workflow and identify bottlenecks or failures in their applications, and now, in development pipelines.

The effort is on-going, and the OpenTelemetry community is actively exploring improvements to CI/CD observability through various proposals:

  1. Semantic Conventions for CI/CD: OpenTelemetry is proposing new semantic conventions for telemetry data in CI/CD processes. These conventions aim to provide a standardized method for describing and collecting data from various CI/CD events, helping in more precise monitoring and troubleshooting.

  2. GitHub Actions Receiver: Another proposal includes the development of a GitHub Actions Receiver, which processes GitHub Actions webhook events to create trace data for workflow and job executions. This would allow for more detailed observability into the workflows directly from GitHub.

  3. DORA Metrics Extraction: Discussions are also underway about best practices for extracting DORA (DevOps Research and Assessment) metrics from CD pipelines. This involves measuring software delivery performance and can significantly enhance the feedback loop for development teams.

How to Observe GitHub Actions Workflows

A few options are currently available on the GitHub Actions marketplace to integrate OpenTelemetry into CI/CD workflows. These tools can provide greater visibility into GitHub Actions workflows, resulting in more reliable and efficient pipelines.

  1. krzko/run-with-telemetry: This action allows commands within GitHub Actions workflows to be executed with OpenTelemetry instrumentation, capturing trace data.

  2. krzko/setup-telemetry: This tool ensures consistent telemetry across workflows by providing deterministic OpenTelemetry trace IDs and other necessary telemetry identifiers.

  3. krzko/export-job-telemetry: It exports job telemetry data, including resource attributes and timing data, to help monitor and optimize CI/CD performance.

Summary

In this (short) blog post we had a quick look at the concept of "CI/CD observability", a.k.a. the idea that CI/CD pipelines can and should be observable like any other system. OpenTelemetry, a tool for collecting data about software operations, is working on making these processes clearer and more effective. A few specific tools like krzko/run-with-telemetry, krzko/setup-telemetry and krzko/export-job-telemetry are available to "observe" GitHub Actions workflows. As CI/CD observability becomes more mainstream, we can expect more tools and best practices to emerge in the future.