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

Doc update to introduce Tiered Platform Support Model #8224

Merged
merged 19 commits into from
Sep 25, 2023
Merged
Changes from 10 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
6335604
Doc update to introduce Tiered Platform Support
rrschulze Aug 13, 2023
f5302f0
Merge branch 'open-telemetry:main' into doc-update
rrschulze Aug 16, 2023
52b831a
Update typo in docs/platform-support.md - received vs. receivers
rrschulze Aug 27, 2023
4ec6b7d
Update link to issue 19195 in docs/platform-support.md
rrschulze Aug 27, 2023
6f530ef
Added definition of platform in docs/platform-support.md
rrschulze Aug 27, 2023
34234e6
Clarified OS version support and added requirement to name platform o…
rrschulze Sep 18, 2023
b94cb66
Update test strategy section in platform-support.md
rrschulze Sep 18, 2023
77a29a0
Updated tiered platform support model in platform-support.md
rrschulze Sep 18, 2023
4c2bfe8
Fix of typo in platform-support.md
rrschulze Sep 19, 2023
fd55577
Added statement about unsupported platforms in platform-support.md
rrschulze Sep 19, 2023
3c99849
Split first section into paragraphs in docs/platform-support.md
rrschulze Sep 21, 2023
987cbaf
Wording update to test strategy in docs/platform-support.md
rrschulze Sep 22, 2023
bd81c14
Update to initial section of docs/platform-support.md
rrschulze Sep 22, 2023
27103d8
Clarify release cycle in tier description of docs/platform-support.md
rrschulze Sep 22, 2023
f49a099
Wording update around release cycle in docs/platform-support.md
rrschulze Sep 22, 2023
457a69a
Update to include s390x in tier 3 in docs/platform-support.md
rrschulze Sep 22, 2023
cef60f1
Update to include s390x in tier 3 in docs/platform-support.md
rrschulze Sep 22, 2023
3943d17
Added owners for linux/s390x in doc/platform-support.md
rrschulze Sep 22, 2023
638c372
Updated reference to container platforms in doc/platform-support.md
rrschulze Sep 22, 2023
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
67 changes: 67 additions & 0 deletions docs/platform-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Platform Support
mx-psi marked this conversation as resolved.
Show resolved Hide resolved
mx-psi marked this conversation as resolved.
Show resolved Hide resolved

The OpenTelemetry Collector will be supported following a tiered platform support model to balance between the aim to support as many platforms as possible and to guarantee stability for the most important platforms. A platform is described by the pair of operating system and processor architecture family as they are defined by the Go programming language as [known operating systems and architectures for use with the GOOS and GOARCH values](https://go.dev/src/go/build/syslist.go). For a supported platform, the OpenTelemetry Collector is supported when the [minimum requirements](https://github.com/golang/go/wiki/MinimumRequirements) of the Go release used by the collector are met for the operating system and architecture. Each supported platform requires the naming of designated owners. The platform support for the OpenTelemetry Collector is broken into three tiers with different levels of support for each tier and aligns with the current test strategy. For platforms not listed as supported by any of the tiers, support cannot be assumed to be provided. While the project may accept specific changes related to these platforms, there will be no official builds, support of issues and development of enhancements or bug fixes for these platforms. Future development of project for supported platforms may break the functionality of unsupported platforms.
rrschulze marked this conversation as resolved.
Show resolved Hide resolved

## Current Test Strategy

mx-psi marked this conversation as resolved.
Show resolved Hide resolved
The current verification process of the OpenTelemetry Collector includes unit and performance tests for core and additional end-to-end and integration tests for contrib. In the end-to-end tests, receivers, processors, and exporters etc. are tested in a testbed, while the integration tests rely on actual instances and available container images. Additional stability tests are in preparation for the future as well. All verification tests are run on the linux/amd64 as the primary platform today. In addition, unit tests are run for the _contrib_ collector on windows/amd64. The tests use as execution environments the latest Ubuntu and Windows Server versions [supported as Github runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources).

The cross compile supports the following targets:
- darwin/amd64 and darwin/arm64
- linux/amd64, linux/arm64, linux/386, linux/arm and linux/ppc64le
- windows/amd64, windows/386.

Except of the mentioned tests for linux/amd64 and windows/amd64, none of the other platforms are tested today.
rrschulze marked this conversation as resolved.
Show resolved Hide resolved

Container images of the _core_ and _contrib_ collector are built and published to Docker Hub and ghcr.io for linux/amd64, linux/arm64, linux/i386, linux/arm and linux/ppc64le. End-to-end tests of the _contrib_ container images are run on the latest Ubuntu Linux supported by GitHub runners and for the four most recent Kubernetes versions.
codeboten marked this conversation as resolved.
Show resolved Hide resolved

## Tiered platform support model
mx-psi marked this conversation as resolved.
Show resolved Hide resolved

The OpenTelemetry Collector will be supported following a tiered platform support model to balance between the aim to support as many platforms as possible and to guarantee stability for the most important platforms. The platform support for the OpenTelemetry Collector is broken into three tiers with different levels of support for each tier.
rrschulze marked this conversation as resolved.
Show resolved Hide resolved

### Platform Support - Summary

The following tables summarized the platform tiers of support by the verification tests performed for them and by the specification if dummy implementations are allowed for selected features, the availability of precompiled binaries incl. container images and if bugfix releases are provided for previous releases in case of critical defects.

| Tier | Unit tests | Performance tests | End-to-end tests | Integrations tests | Dummy implementations | Precompiled binaries | Bugfix releases |
|------|------------|-------------------|------------------|--------------------|-----------------------|----------------------|-----------------|
| 1 | yes | yes | yes | yes | no | yes | yes |
| 2 | yes | optional | optional | optional | yes | yes | no |
| 3 | no | no | no | no | yes | yes | no |

### Tier 1 – Primary Support

The Tier 1 supported platforms are _guaranteed to work_. Precompiled binaries are built on the platform, fully supported for all collector add-ons (receivers, processor, exporters etc.), and continuously tested as part of the development processes to ensure any proposed change will function correctly. Build and test infrastructure is provided by the project. All tests are executed on the platform as part of automated continuous integration (CI) for each pull request and the biweekly release cycle. Any build or test failure block the release of the collector distribution for all platforms. Defects are addressed with priority and depending on severity fixed for previous release(s) in a bug fix release.
rrschulze marked this conversation as resolved.
Show resolved Hide resolved

Tier 1 platforms are currently:
| Platform | Owner(s) |
|-------------|-------------------------------------------------------------------------------------------------------------|
| linux/amd64 | [OpenTelemetry Collector approvers](https://github.com/open-telemetry/opentelemetry-collector#contributing) |

### Tier 2 – Secondary Support

Tier 2 platforms are _guaranteed to work with specified limitations_. Precompiled binaries are built and tested on the platform as part of the biweekly release cycle. Build and test infrastructure is provided by the platform maintainers. All tests are executed on the platform as far as they are applicable, and all prerequisites are fulfilled. Not executed tests and not tested collector add-ons (receivers, processors, exporters, etc.) are published on release of the collector distribution. Any build or test failure delays the release of the binaries for the respective platform but not the collector distribution for all other platforms. Defects are addressed but not with the priority as for Tier 1 and, if specific to the platform, require the support of the platform maintainers.
rrschulze marked this conversation as resolved.
Show resolved Hide resolved

Tier 2 platforms are currently:
| Platform | Owner(s) |
|---------------|-------------------------------------------------------------------------------------------------------------|
| windows/amd64 | [OpenTelemetry Collector approvers](https://github.com/open-telemetry/opentelemetry-collector#contributing) |

### Tier 3 - Community Support

Tier 3 platforms are _guaranteed to build_. Precompiled binaries are made available as part of the release process and as result of a cross compile build on Linux amd64 but the binaries are not tested at all. Any build failure delays the release of the binaries for the respective platform but not the collector distribution for all other platforms. Defects are addressed based on community contributions. Core developers might provide guidance or code reviews, but direct fixes may be limited.

Tier 3 platforms are currently:
| Platform | Owner(s) |
|---------------|-------------------------------------------------------------------------------------------------------------|
| darwin/amd64 | |
| darwin/arm64 | |
| linux/arm64 | |
| linux/386 | |
| linux/arm | |
| linux/ppc64le | |
rrschulze marked this conversation as resolved.
Show resolved Hide resolved
| windows/386 | |

The proposed additional platforms linux/s390x (#378) and aix/ppc64 ([#19195](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/19195)) will be included into Tier 3 once they're added to the OpenTelemetry Collector as platforms.
rrschulze marked this conversation as resolved.
Show resolved Hide resolved


Loading