Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for SIG CICD observability #1822

Merged
merged 31 commits into from
Jan 26, 2024
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
232cf9a
docs: define new working group project for CICD observability
adrielp Nov 29, 2023
572c18d
chore: fix typo per sugestion
adrielp Nov 29, 2023
029d61e
chore: update opentelemetry based on suggestion
adrielp Nov 29, 2023
8c6a05b
chore: fix typos in OpenTelemetry and KubeCon names per suggestions
adrielp Nov 29, 2023
a295a0f
docs: add thisthat to list of staffing
adrielp Nov 29, 2023
595a439
Merge branch 'main' into cicd-wg
adrielp Nov 29, 2023
2649b07
chore: add words and handles to cspell
adrielp Nov 29, 2023
699bde3
docs: add table and update potential prototype list
adrielp Dec 1, 2023
ea43c55
chore: add keptn to words list
adrielp Dec 1, 2023
9540256
docs: remove runner fork links for now
adrielp Dec 1, 2023
0f5c6db
docs: add Jenkins hosts metrics in table
adrielp Dec 1, 2023
6f24e84
docs: update staffing, update other information based on comments
adrielp Dec 7, 2023
e13fc7d
docs: add additional words to cspell
adrielp Dec 7, 2023
23c3bc2
docs: fix plurality
adrielp Dec 7, 2023
bb09f4f
Merge branch 'main' into cicd-wg
adrielp Dec 18, 2023
8be040c
docs: add additional names to list, update deliverables, add timeline
adrielp Dec 18, 2023
058f1a0
chore: fix word for spelling
adrielp Dec 18, 2023
62fa0da
Merge branch 'main' into cicd-wg
adrielp Jan 10, 2024
fac30b4
[chore] add mhausenblas and afrittoli to working group
adrielp Jan 10, 2024
16ab087
[chore] add works to spell check
adrielp Jan 10, 2024
c3cdd07
[chore] add tekton mention and fix cdevents spacing
adrielp Jan 12, 2024
c7cca2b
[chore] add mention of specification in the description
adrielp Jan 12, 2024
823c618
[chore] fix reversion of tekton addition
adrielp Jan 12, 2024
98c68c9
[chore] add members to group and add suggested changes
adrielp Jan 16, 2024
d675a79
[chore] update CICD SIG doc with changes from TC suggestions
adrielp Jan 19, 2024
bd2ae8c
[chore] fix spelling
adrielp Jan 19, 2024
619329e
[chore] add more members to SIG
adrielp Jan 23, 2024
c8652b9
[chore] fix typo in name
adrielp Jan 23, 2024
f501a7c
Merge branch 'main' into cicd-wg
adrielp Jan 26, 2024
4fdd340
chore: add Carlos and Josh as TC sponsors and remove verbiage
adrielp Jan 26, 2024
3e6a421
Merge branch 'main' into cicd-wg
trask Jan 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .cspell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ version: 0.2
ignorePaths: ["elections/**/*"]
words:
- apac
- cicd
- cncf
- codecov
- codeowners
Expand All @@ -10,6 +11,8 @@ words:
- emea
- faas
- gitter
- keptn
- kubecon
- lightstep
- maintainership
- observiq
Expand Down Expand Up @@ -38,6 +41,7 @@ words:
- triager
- triagers
# names and github handles
- adrielp
- alolita
- amye
- aniszczyk
Expand All @@ -64,6 +68,7 @@ words:
- dyladan
- fong
- henrikrexed
- horovits
- jaglowski
- jigar
- jpkrohling
Expand Down Expand Up @@ -111,6 +116,7 @@ words:
- svrnm
- tarnovski
- tedsuo
- thisthat
- tigran
- tigrannajaryan
- trask
Expand Down
85 changes: 85 additions & 0 deletions projects/ci-cd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# CI/CD Observability Semantic Conventions Working Group

## Description

The goal of this working group is define the semantic conventions for CI/CD Observability and outline
a path forward for the OpenTelemetry community.

### Why

The goal of this project is to establish standard semantic conventions for Continuous
Integration (CI) and Continuous (CD) observability. This will provide a common language
adrielp marked this conversation as resolved.
Show resolved Hide resolved
and standardized formats for CI/CD observability, enabling the community to observe CI/CD systems.

This will broaden the target audience of OpenTelemetry to Release Engineering and DevOps teams,
adrielp marked this conversation as resolved.
Show resolved Hide resolved
further cementing OpenTelemetry as the industry standard Observability framework.

The timing is ripe to start now. The [CI/CD Observability OTEP](https://github.com/open-telemetry/oteps/pull/223/files)
has been open since January of 2023 and with the recent changes to the OTEP process, the KubeCon talk, and vendor acknowledgements, there's momentum available to carry this forward. The industry
is heavily looking for solutions and watching the related OTEP with interest.

## Deliverables

The CI/CD observability working group is planning to deliver the [CI/CD Observability OTEP](https://github.com/open-telemetry/oteps/pull/223/files) with prototypes in at least two major vendors:

* [GitHub](https://github.com)
* [GitLab](https://gitlab.com)
adrielp marked this conversation as resolved.
Show resolved Hide resolved
* [Jenkins](https://www.jenkins.io/)
* [Keptn](https://lifecycle.keptn.sh/)

A related OTEP that is of great interest to the CI/CD OTEP is that of [Environment Variables as Context Propagators](https://github.com/open-telemetry/opentelemetry-specification/issues/740) which this working group would be available to help with.
adrielp marked this conversation as resolved.
Show resolved Hide resolved

> Note: The environment variables as context propagators enables batch systems as a whole, and not just CI/CD systems. We're here to support and will leverage, but it's possible that other working groups already have that OTEP on their radar.

Working prototypes are partially available in these two systems, but have been done outside of the context of this semantic conventions. Thus these prototypes would be updated based on semantic conventions defined.
adrielp marked this conversation as resolved.
Show resolved Hide resolved

The following is a current snapshot of prototypes, plugins, components, and CI/CD related tooling that attempt to address CI/CD observability in some form.

| Related Vendor | Prototype | Related Resources | Comments |
|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|
| GitHub | [GitHub Actions Receiver](https://github.com/krzko/opentelemetry-collector-contrib/tree/feat-add-githubactionseventreceiver/receiver/githubactionsreceiver) | [OTEL Issue 27460](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/27460) | * Event logs to traces |
| GitHub/GitLab | [Git Provider Receiver](https://github.com/liatrio/liatrio-otel-collector/tree/main/pkg/receiver/gitproviderreceiver) | [OTEL Issue 22028](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/22028) | * Delivery metrics by scraping Git vendors |
| K8S | [Keptn](https://lifecycle.keptn.sh/) | [Keptn GitHub Repo](https://github.com/keptn/lifecycle-toolkit) | * Focused on observability in Kubernetes deployments |
| Jenkins | [OpenTelemetry plugin](https://plugins.jenkins.io/opentelemetry/) | [Plugin GitHub Repo](https://github.com/jenkinsci/opentelemetry-plugin) | * Tracing of Jenkins pipelines |
| Jenkins | [OpenTelemetry Agent Host Metrics](https://plugins.jenkins.io/opentelemetry-agent-metrics/) | | * Metrics for Jenkins hosts |
| CLI | [OTEL CLI](https://github.com/equinix-labs/otel-cli) | | * Tracing through a CLI wrapper |
| GitHub | [OpenTelemetry Export Trace - Inception health](https://github.com/marketplace/actions/opentelemetry-export-trace) | [GitHub Action Repo](https://github.com/inception-health/otel-export-trace-action) | * Traces via a GitHub action |
| GitHub | [OpenTelemetry Actions Exporter - New Relic](https://github.com/marketplace/actions/new-relic-opentelemetry-github-actions-exporter) | [GitHub Action Repo](https://github.com/newrelic-experimental/gha-new-relic-exporter) | * Metrics on workflow runs |
| GitHub | [Run with Telemetry GitHub Action](https://github.com/krzko/run-with-telemetry) | | * Traces via GitHub action |

adrielp marked this conversation as resolved.
Show resolved Hide resolved
adrielp marked this conversation as resolved.
Show resolved Hide resolved

## Staffing / Help Wanted
adrielp marked this conversation as resolved.
Show resolved Hide resolved

The goal of this project will consist of three stages:

1. Working group preparation
2. Specification
3. Implementation

### Required staffing

All stages will require a project lead, domain experts, and engineers at a minimum.

* @horovits (tentative project lead)
* @adrielp
* @thisthat
adrielp marked this conversation as resolved.
Show resolved Hide resolved

adrielp marked this conversation as resolved.
Show resolved Hide resolved
Need more:

* domain experts
* engineers
* potentially TC's and maintainers/approvers in the event that we build language specific prototypes

> Note: We are working on gathering a huddle with some folks in the industry so between that call and this PR we should be able to fill up and better define staffing and stages. At that point we will remove this message.

## Meeting Times

Once a project is started, the working group should meet regularly for discussion. These meeting times should be posted on the OpenTelemetry public calendar.

## Timeline

What is the expected timeline the project will aim to adhere to, and what resources and deliverables will be needed for each portion of the timeline? If the project has not been started, please describe this timeline in relative terms (one month in, two weeks later, etc). If a project has started, please include actual dates.

## Labels

* cicd