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 23 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
28 changes: 28 additions & 0 deletions .cspell.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
version: 0.2
ignorePaths: ["elections/**/*"]
words:
- adot
- apac
- cdevents
- cicd
- cncf
- codecov
- codeowners
- dynatrace
- easycla
- eiffel
- emea
- faas
- gitter
- jemmic
- keptn
- kubecon
- liatrio
- lightstep
- logz
- maintainership
- observiq
- opentelemetry
Expand All @@ -20,6 +29,7 @@ words:
- otlp
- passcodes
- proto
- pytest
- runtimes
- signup
- skyscanner
Expand All @@ -29,6 +39,7 @@ words:
- subprojects
- subrepository
- supermajority
- tekton
- tiebreaking
- timebox
- timeboxing
Expand All @@ -38,6 +49,9 @@ words:
- triager
- triagers
# names and github handles
- acramsay
- adrielp
- afrittoli
adrielp marked this conversation as resolved.
Show resolved Hide resolved
- alolita
- amye
- aniszczyk
Expand All @@ -57,27 +71,38 @@ words:
- cijo
- codeboten
- danielgblanco
- darren17082
- denisivan
- dennisme
- dnsmichi
- drutu
- dsotirakis
- dyla
- dyladan
- elfo404
- e-backmark-ericsson
- fong
- henrikrexed
- horovits
- jaglowski
- jigar
- jpkrohling
- jsuereth
- juraci
- kamphaus
- kanzhelev
- kröhling
- krzko
- kuisathaverat
- lalitb
- lmolkova
- magnusbaeck
- mancuso
- martinkuba
- mateuszrzeszutek
- mayur
- mayurkale
- mhausenblas
- mirabella
- mtwo
- mwear
Expand All @@ -100,6 +125,7 @@ words:
- scheler
- sergey
- severin
- sguyon
- sharma
- sharrmander
- shkuro
Expand All @@ -111,11 +137,13 @@ words:
- svrnm
- tarnovski
- tedsuo
- thisthat
- tigran
- tigrannajaryan
- trask
- tsloughter
- tylerbenson
- xibz
- xoscar
- yahn
# slack spaces
Expand Down
130 changes: 130 additions & 0 deletions projects/ci-cd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# 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 specification 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 the following areas:

Only a few technologies are named here, so this is not all encompassing. As we build out these conventions, specifications, and prototypes we'll want to ensure that Observability is done within:

* The CI system (SCMs like GitHub/GitLab)
* The tools used within the CI system (Maven/Go)
* The CD system (SCMs if handling deploys / Keptn / ArgoCD)

Current, non-complete list of Deliverables:

* Semantic Convention Updates
* Specification Updates (as applicable)
* [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/)

> Working prototypes are partially available in these systems, but have been done outside of the context of this semantic conventions. Thus these prototypes would be updated based on semantic conventions defined.

### Related OTEP(s)

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).
This OTEP might be driven through other working groups, and isn't the direct focus of this working group, but is has wide arching impacts to enabling distributed tracing in batch systems.
As we work to define semantic conventions for CI/CD observability, this OTEP will without a doubt come into play in some form and thus is being listed as related but not a direct deliverable.


### Existing Related Solutions

adrielp marked this conversation as resolved.
Show resolved Hide resolved
The following is a list of prototypes, plugins, components, and CI/CD related tooling that attempt to address CI/CD observability in some form.

> This is not a complete list but can be used for reference.
adrielp marked this conversation as resolved.
Show resolved Hide resolved

| 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/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 |
| GitLab | [Distributed Tracing](https://docs.gitlab.com/ee/operations/tracing.html) | | * Tracing in GitLab pipelines |
| pytest | [pyTest OpenTelemetry plugin](https://pypi.org/project/pytest-otel/) | | * Tracing of Python test |
| Maven | [Maven OpenTelemetry extension](https://github.com/open-telemetry/opentelemetry-java-contrib/blob/main/maven-extension/README.md) | | * Tracing of Maven builds |
| Ansible | [Ansible OpenTelemetry Callback Plugin](https://docs.ansible.com/ansible/latest/collections/community/general/opentelemetry_callback.html) | | * Tracing in Ansible playbooks |
| JUnit | [JUnit to OpenTelemetry](https://github.com/mdelapenya/junit2otlp) | | * Tracing of JUnit test results |
| Eiffel | [Eiffel CI/CD Event Protocol](https://eiffel-community.github.io/) | | * Event protocol for CI/CD observability and interoperability |
| CDEvents | [CD Event Protocol](https://cdevents.dev/) | | * Event protocol for CI/CD observability and interoperability |
| Tekton | [Tracing Tekton Enhancement Proposal](https://github.com/tektoncd/community/blob/main/teps/0124-distributed-tracing-for-tasks-and-pipelines.md) | | * Tekton Task and Pipeline Tracing |

## Staffing / Help Wanted

### Required staffing

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

* @horovits Project Lead (Logz.io)
* @adrielp (Liatrio)
* @thisthat (Dynatrace, Keptn)
adrielp marked this conversation as resolved.
Show resolved Hide resolved
* @acramsay (Liatrio)
adrielp marked this conversation as resolved.
Show resolved Hide resolved
* @krzko (ANZ Bank)
* @Elfo404 (Grafana Labs)
* @dsotirakis (Grafana Labs)
* @xibz (Apple)
* @e-backmark-ericsson (Ericsson)
* @dnsmichi (GitLab)
adrielp marked this conversation as resolved.
Show resolved Hide resolved
* @kamphaus (Jemmic)
* @magnusbaeck (Axis Communications)
adrielp marked this conversation as resolved.
Show resolved Hide resolved
* @darren17082 (GitLab)
* @sguyon (GitLab)
* @kuisathaverat (Elastic)
* @mhausenblas (AWS, ADOT)
* @afrittoli (IBM, Tekton, CDEvents)

Need more:

- [x] domain experts
- [x] engineers
- [ ] TCs
- [ ] potentially maintainers/approvers in the event that we build language specific prototypes

## 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

Estimated time-frame: 6-12 Months

* Q1 Focus
* Kickoff
* Strategy
* Research and discovery
* OTEP Approval
* Q2 Focus
* Semantic Conventions
* Specifications
* Prototype Developments
* Q3 TBD
* Q4 TBD

> Note: The working groups intent is to be nimble and able to adjust quickly.

## Labels

* cicd