Skip to content

Commit

Permalink
Document compatibility requirements for profiles
Browse files Browse the repository at this point in the history
Profiles maintainers, please take a look at the pprof
compatibility criteria added to CONTRIBUTING.md.
  • Loading branch information
tigrannajaryan committed May 17, 2024
1 parent a05597b commit 21db760
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 11 deletions.
13 changes: 13 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,16 @@ for general information about the project.

After making any changes to .proto files make sure to generate all
implementation by running `make gen-all`.

## Profiles Compatibility Requirements

The Otel profile format in
[profiles/v1experimental](opentelemetry/proto/profiles/v1experimental)
is derived from
[pprof](https://github.com/google/pprof/tree/main/proto) and is currently
in experimental state. We would like to continue maintaining compatibility with pprof.
All changes to profile proto should meet the following compatibility criteria:

- Every valid pprof profile is also a valid Otel profile AND,
- Every Otel profile is a valid pprof profile, after any new fields introduced in
Otel profile are discarded.
24 changes: 13 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,19 @@ To generate the raw gRPC client libraries, use `make gen-${LANGUAGE}`. Currently
1.0.0 and newer releases from this repository may contain unstable (alpha or beta)
components as indicated by the Maturity table below.

| Component | Binary Protobuf Maturity | JSON Maturity |
| --------- |--------------- | ------------- |
| common/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| resource/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| metrics/\*<br>collector/metrics/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| trace/\*<br>collector/trace/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| logs/\*<br>collector/logs/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| profiles/\*<br>collector/profiles/* | Experimental | [Experimental](docs/specification.md#json-protobuf-encoding) |

(See [maturity-matrix.yaml](https://github.com/open-telemetry/community/blob/47813530864b9fe5a5146f466a58bd2bb94edc72/maturity-matrix.yaml#L57)
for definition of maturity levels).
| Component | Binary Protobuf Maturity | JSON Maturity |
| --------- |--------------------------|------------------------------------------------------------------|
| common/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| resource/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| metrics/\*<br>collector/metrics/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| trace/\*<br>collector/trace/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| logs/\*<br>collector/logs/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |
| profiles/\*<br>collector/profiles/* | Experimental ** | [Experimental](docs/specification.md#json-protobuf-encoding) ** |

** Additional requirements for profiles are [listed here](CONTRIBUTING.md#profiles-compatibility-requirements).

See [maturity-matrix.yaml](https://github.com/open-telemetry/community/blob/47813530864b9fe5a5146f466a58bd2bb94edc72/maturity-matrix.yaml#L57)
for definition of maturity levels.

## Stability Definition

Expand Down

0 comments on commit 21db760

Please sign in to comment.