[!WARNING]
OTEPs have been moved to the Specification repository. This repository has been preserved for reference purposes. Please otherwise refer to the Specification.
OpenTelemetry uses an "OTEP" (similar to a RFC) process for proposing changes to the OpenTelemetry specification.
The OpenTelemetry OTEP process is intended for changes that are cross-cutting - that is, applicable across languages and implementations - and either introduce new behaviour, change desired behaviour, or otherwise modify requirements.
In practice, this means that OTEPs should be used for such changes as:
On the other hand, they do not need to be used for such changes as:
Note: The above lists are intended only as examples and are not meant to be exhaustive. If you don't know whether a change requires an OTEP, please feel free to ask!
Sometimes, a change that is only immediately relevant within a single language or implementation may be indicative of a problem upstream in the specification. We encourage you to add an OTEP if and when you notice such cases.
While OTEPs are intended for "significant" changes, we recommend trying to keep each OTEP's scope as small as makes sense. A general rule of thumb is that if the core functionality proposed could still provide value without a particular piece, then that piece should be removed from the proposal and used instead as an example (and, ideally, given its own OTEP!).
For example, an OTEP proposing configurable sampling and various samplers should instead be split into one OTEP proposing configurable sampling as well as an OTEP per sampler.
0000-template.md
to text/0000-my-OTEP.md
, where my-OTEP
is a title relevant to your proposal, and 0000
is the OTEP ID. Leave the number as is for now. Once a Pull Request is made, update this ID to match the PR ID.proposed
by posting it as a PR. Once the PR is created, update the OTEP file name to use the PR ID as the OTEP ID.approved
when four reviewers github-approve the PR. The OTEP is then merged.rejected
or withdrawn
, the PR is closed. Note that these OTEPs submissions are still recorded, as GitHub retains both the discussion and the proposal, even if the branch is later deleted.approved
, an issue is created in the specification repo to integrate the OTEP into the spec.integrated
when four reviewers github-approve the spec PR. The PR is then merged, and the spec is versioned.integrated
into the spec, an issue is created in the backlog of every relevant OpenTelemetry implementation.The hope and expectation is that the OTEP process will evolve with the OpenTelemetry. The process is by no means fixed.
Have suggestions? Concerns? Questions? Please raise an issue or raise the matter on our community chat.
Our OTEP process borrows from the Rust RFC and Kubernetes Enhancement Proposal processes, the former also being very influential on the latter; as well as the OpenTracing OTEP process. Massive kudos and thanks to the respective authors and communities for providing excellent prior art 💖