From a4caf759b74bb9541205a6313f62f272decb8391 Mon Sep 17 00:00:00 2001 From: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com> Date: Tue, 7 May 2024 11:38:33 -0400 Subject: [PATCH 01/11] Add @open-telemetry/profiling-maintainers as CODEOWNERS (#550) --- .github/CODEOWNERS | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ef10dc4d9..ae4f3acbf 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -22,4 +22,7 @@ opentelemetry/proto/trace/ @open-telemetry/specs-approvers @open-telemetry/sp opentelemetry/proto/metrics/ @open-telemetry/specs-approvers @open-telemetry/specs-metrics-approvers # Logs owners (global + logs) -opentelemetry/proto/logs/ @open-telemetry/specs-approvers @open-telemetry/specs-logs-approvers \ No newline at end of file +opentelemetry/proto/logs/ @open-telemetry/specs-approvers @open-telemetry/specs-logs-approvers + +# Profiles owners (global + profiles) +opentelemetry/proto/profiles @open-telemetry/specs-approvers @open-telemetry/profiling-maintainers From f16a3fdf35e3ad4c9b8aaef705e234ef8a2abfdf Mon Sep 17 00:00:00 2001 From: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com> Date: Tue, 7 May 2024 12:17:27 -0400 Subject: [PATCH 02/11] Fix RELEASING.md document (#548) The document is outdated. We are now using Github's release feature. Resolves https://github.com/open-telemetry/opentelemetry-proto/issues/508 Co-authored-by: Armin Ruech <7052238+arminru@users.noreply.github.com> --- RELEASING.md | 97 ++++++++-------------------------------------------- 1 file changed, 15 insertions(+), 82 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 207d234a9..5546cd8e0 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -1,89 +1,22 @@ -# How to Create a Release of OpenTelemetry Proto (for Maintainers Only) +# How to Create a Release -## Tagging the Release +_Instruction for Maintainers only._ -Our release branches follow the naming convention of `v..x`, while -the tags include the patch version `v..`. For example, the -same branch `v0.3.x` would be used to create all `v0.3` tags (e.g. `v0.3.0`, -`v0.3.1`). +- Prepare the release by updating [CHANGELOG.md](CHANGELOG.md), see for example +[this PR](https://github.com/open-telemetry/opentelemetry-proto/pull/537). +Merge the PR. From this point on no new PRs can be merged until the release is complete. -In this section upstream repository refers to the main opentelemetry-proto -github repository. +- Go to Github [release page](https://github.com/open-telemetry/opentelemetry-proto/releases), +click `Draft a new release`. -Before any push to the upstream repository you need to create a [personal access -token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/). +- Click "Choose a tag" and specify the next version number. The Target branch should be "main". -1. Create the release branch and push it to GitHub: +- Click "Generate release notes" to get a draft release note. Remove editorial +changes from the notes and any other changes that you don't want in the release notes. +In addition, you can refer to [CHANGELOG.md](CHANGELOG.md) for a list of major changes since last release. - ```bash - MAJOR=0 MINOR=3 PATCH=0 # Set appropriately for new release - git checkout -b v$MAJOR.$MINOR.x main - git push upstream v$MAJOR.$MINOR.x - ``` +- Click "Publish Release". -2. Enable branch protection for the new branch, if you have admin access. - Otherwise, let someone with admin access know that there is a new release - branch. - - - Open the branch protection settings for the new branch, by following - [Github's instructions](https://help.github.com/articles/configuring-protected-branches/). - - Copy the settings from a previous branch, i.e., check - - `Protect this branch` - - `Require pull request reviews before merging` - - `Require status checks to pass before merging` - - `Include administrators` - - Enable the following required status checks: - - `cla/linuxfoundation` - - `ci/circleci: build` - - Uncheck everything else. - - Click "Save changes". - -3. For `vMajor.Minor.x` branch: - - - Create and push a tag: - - ```bash - git checkout v$MAJOR.$MINOR.x - git pull upstream v$MAJOR.$MINOR.x - git tag -a v$MAJOR.$MINOR.$PATCH -m "Version $MAJOR.$MINOR.$PATCH" - git push upstream v$MAJOR.$MINOR.$PATCH - ``` - -## Patch Release - -All patch releases should include only bug-fixes, and must avoid -adding/modifying the public APIs. To cherry-pick one commit use the following -instructions: - -- Create and push a tag: - -```bash -COMMIT=1224f0a # Set the right commit hash. -git checkout -b cherrypick v$MAJOR.$MINOR.x -git cherry-pick -x $COMMIT -git commit -a -m "Cherry-pick commit $COMMIT" -``` - -- Go through PR review and merge it to GitHub v$MAJOR.$MINOR.x branch. - -- Tag a new patch release when all commits are merged. - -## Announcement - -Once deployment is done, go to Github [release -page](https://github.com/open-telemetry/opentelemetry-proto/releases), press -`Draft a new release` to write release notes about the new release. - -You can use `git log upstream/v$MAJOR.$((MINOR-1)).x..upstream/v$MAJOR.$MINOR.x --graph --first-parent` -or the Github [compare tool](https://github.com/open-telemetry/opentelemetry-proto/compare/) -to view a summary of all commits since last release as a reference. - -In addition, you can refer to [CHANGELOG.md](CHANGELOG.md) -for a list of major changes since last release. - -## Update release versions in documentations and CHANGELOG files - -After releasing is done, you need to update [README.md](README.md) and [CHANGELOG.md](CHANGELOG.md). - -Create a PR to mark the new release in [CHANGELOG.md](CHANGELOG.md) on main branch. +Our tags follow the naming convention of `v1..`. Increment `minor` by 1 +and use `patch` value of 0 for new minor version releases. For patch releases keep `minor` +unchanged and increment the `patch`. From a05597bff803d3d9405fcdd1e1fb1f42bed4eb7a Mon Sep 17 00:00:00 2001 From: Jonathan Halliday Date: Mon, 13 May 2024 16:48:39 +0100 Subject: [PATCH 03/11] profiles: add missing java_package option to pprofextended. (#558) Gah, we put java_package on one file but not the other. Oops. Apparently the opentelementry-proto-java artifact can't be consumed by opentelemetry-java without this. --- opentelemetry/proto/profiles/v1experimental/pprofextended.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opentelemetry/proto/profiles/v1experimental/pprofextended.proto b/opentelemetry/proto/profiles/v1experimental/pprofextended.proto index bd3008355..5ebe1fd93 100644 --- a/opentelemetry/proto/profiles/v1experimental/pprofextended.proto +++ b/opentelemetry/proto/profiles/v1experimental/pprofextended.proto @@ -59,6 +59,8 @@ package opentelemetry.proto.profiles.v1experimental; import "opentelemetry/proto/common/v1/common.proto"; option csharp_namespace = "OpenTelemetry.Proto.Profiles.V1Experimental"; +option java_multiple_files = true; +option java_package = "io.opentelemetry.proto.profiles.v1experimental"; option go_package = "go.opentelemetry.io/proto/otlp/profiles/v1experimental"; // Represents a complete profile, including sample types, samples, From bd7cf55b6d45f3c587d2131b68a7e5a501bdb10c Mon Sep 17 00:00:00 2001 From: Long Yang Date: Thu, 6 Jun 2024 01:38:21 +0800 Subject: [PATCH 04/11] Fix typo; According to the definition of message Sample, the relation between Sample and Link should be n-1 (#564) --- opentelemetry/proto/profiles/v1experimental/pprofextended.proto | 2 +- opentelemetry/proto/profiles/v1experimental/profiles.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opentelemetry/proto/profiles/v1experimental/pprofextended.proto b/opentelemetry/proto/profiles/v1experimental/pprofextended.proto index 5ebe1fd93..b5b5b88fc 100644 --- a/opentelemetry/proto/profiles/v1experimental/pprofextended.proto +++ b/opentelemetry/proto/profiles/v1experimental/pprofextended.proto @@ -205,7 +205,7 @@ enum AggregationTemporality { 11. A request is received, the system measures 1 request. 12. The 1 second collection cycle ends. A metric is exported for the number of requests received over the interval of time t_1 to - t_0+1 with a value of 1. + t_1+1 with a value of 1. Note: Even though, when reporting changes since last report time, using CUMULATIVE is valid, it is not recommended. */ diff --git a/opentelemetry/proto/profiles/v1experimental/profiles.proto b/opentelemetry/proto/profiles/v1experimental/profiles.proto index bbc2b2931..84b0108f8 100644 --- a/opentelemetry/proto/profiles/v1experimental/profiles.proto +++ b/opentelemetry/proto/profiles/v1experimental/profiles.proto @@ -55,7 +55,7 @@ option go_package = "go.opentelemetry.io/proto/otlp/profiles/v1experimental"; // ┌──────────────────┐ // │ Profile │ // └──────────────────┘ -// │ 1-n +// │ n-1 // │ 1-n ┌───────────────────────────────────────┐ // ▼ │ ▽ // ┌──────────────────┐ 1-n ┌──────────────┐ ┌──────────┐ From 40b3c1b746767cbc13c2e39da3eaf1a23e54ffdd Mon Sep 17 00:00:00 2001 From: jack-berg <34418638+jack-berg@users.noreply.github.com> Date: Fri, 28 Jun 2024 08:19:11 -0500 Subject: [PATCH 05/11] Prepare changelog for 1.3.2 release (#563) Co-authored-by: Armin Ruech <7052238+arminru@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7af14f176..c8b0e4589 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,20 @@ ## Unreleased -Full list of differences found in [this compare](https://github.com/open-telemetry/opentelemetry-proto/compare/v1.1.0...main). +The full list of changes can be found in the compare view for the respective release at . -### Added +## 1.3.2 - 2024-06-28 + +### Changed + +* profiles: add missing java_package option to pprofextended. [#558](https://github.com/open-telemetry/opentelemetry-proto/pull/558) + +## 1.3.1 - 2024-05-07 ### Changed +* profiles: fix versioning in selector. [#551](https://github.com/open-telemetry/opentelemetry-proto/pull/551) + ## 1.3.0 - 2024-04-24 ### Added From ff457cecf46cf219602e587d86d66f3b8cb3efe6 Mon Sep 17 00:00:00 2001 From: Krisztian Fekete <103492698+krisztianfekete@users.noreply.github.com> Date: Tue, 2 Jul 2024 19:05:07 +0200 Subject: [PATCH 06/11] Add resource attributes and scope to metrics proto diagram (#519) Fixes https://github.com/open-telemetry/opentelemetry-proto/issues/518. --- opentelemetry/proto/metrics/v1/metrics.proto | 21 ++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/opentelemetry/proto/metrics/v1/metrics.proto b/opentelemetry/proto/metrics/v1/metrics.proto index 19bb7ff8d..1a9e0b77c 100644 --- a/opentelemetry/proto/metrics/v1/metrics.proto +++ b/opentelemetry/proto/metrics/v1/metrics.proto @@ -29,6 +29,24 @@ option go_package = "go.opentelemetry.io/proto/otlp/metrics/v1"; // storage, OR can be embedded by other protocols that transfer OTLP metrics // data but do not implement the OTLP protocol. // +// MetricsData +// └─── ResourceMetrics +// ├── Resource +// ├── SchemaURL +// └── ScopeMetrics +// ├── Scope +// ├── SchemaURL +// └── Metric +// ├── Name +// ├── Description +// ├── Unit +// └── data +// ├── Gauge +// ├── Sum +// ├── Histogram +// ├── ExponentialHistogram +// └── Summary +// // The main difference between this message and collector protocol is that // in this message there will not be any "control" or "metadata" specific to // OTLP protocol. @@ -85,7 +103,6 @@ message ScopeMetrics { // // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/data-model.md // -// // The data model and relation between entities is shown in the // diagram below. Here, "DataPoint" is the term used to refer to any // one of the specific data point value types, and "points" is the term used @@ -97,7 +114,7 @@ message ScopeMetrics { // - DataPoint contains timestamps, attributes, and one of the possible value type // fields. // -// Metric +// Metric // +------------+ // |name | // |description | From 484241a016d7b81f20b6e19d00ffbc4a3b864a22 Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Mon, 22 Jul 2024 17:21:49 +0200 Subject: [PATCH 07/11] Remove HTTP 1.1 restriction from Protocol Details (#571) In the `Protocol Details` section the spec states that it defines how OTLP is implemented over grpc and **http 1.1**, but later in the document in section `OTLP/HTTP` it states "Implementations MAY use HTTP/1.1 or HTTP/2 transports." This may confuse end readers and I suggest that it is easier to drop the 1.1 in the Protocol Details section. --- docs/specification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/specification.md b/docs/specification.md index efa2c3654..157f0a1ef 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -72,7 +72,7 @@ OTLP defines the encoding of telemetry data and the protocol used to exchange data between the client and the server. This specification defines how OTLP is implemented over -[gRPC](https://grpc.io/) and HTTP 1.1 transports and specifies +[gRPC](https://grpc.io/) and HTTP transports and specifies [Protocol Buffers schema](https://developers.google.com/protocol-buffers/docs/overview) that is used for the payloads. From 9833c48ed163156e492882e35aa1a1263a1f6a01 Mon Sep 17 00:00:00 2001 From: Santosh Cheler Date: Mon, 29 Jul 2024 09:28:49 -0700 Subject: [PATCH 08/11] Added example of an Event (#538) --- CHANGELOG.md | 1 + examples/README.md | 1 + examples/events.json | 75 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 examples/events.json diff --git a/CHANGELOG.md b/CHANGELOG.md index c8b0e4589..12b13a27f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ The full list of changes can be found in the compare view for the respective rel [#484](https://github.com/open-telemetry/opentelemetry-proto/pull/484) * Add metric.metadata for supporting additional metadata on metrics [#514](https://github.com/open-telemetry/opentelemetry-proto/pull/514) +* Add example of an Event [#538](https://github.com/open-telemetry/opentelemetry-proto/pull/538) ### Changed diff --git a/examples/README.md b/examples/README.md index 2c689431b..c3344bbce 100644 --- a/examples/README.md +++ b/examples/README.md @@ -6,6 +6,7 @@ that can be used as request payloads. - Trace [trace.json](trace.json) - Metrics [metrics.json](metrics.json) - Logs [logs.json](logs.json) + - Events [events.json](events.json) ## Trying it out diff --git a/examples/events.json b/examples/events.json new file mode 100644 index 000000000..57abd14ce --- /dev/null +++ b/examples/events.json @@ -0,0 +1,75 @@ +{ + "resourceLogs": [ + { + "resource": { + "attributes": [ + { + "key": "service.name", + "value": { + "stringValue": "my.service" + } + } + ] + }, + "scopeLogs": [ + { + "scope": { + "name": "my.library", + "version": "1.0.0", + "attributes": [ + { + "key": "my.scope.attribute", + "value": { + "stringValue": "some scope attribute" + } + } + ] + }, + "logRecords": [ + { + "timeUnixNano": "1544712660300000000", + "observedTimeUnixNano": "1544712660300000000", + "severityNumber": 9, + "attributes": [ + { + "key": "event.name", + "value": { + "stringValue": "browser.page_view" + } + } + ], + "body": { + "kvlistValue": [ + { + "key": "type", + "value": { + "intValue": "0" + } + }, + { + "key": "url", + "value": { + "stringValue": "https://www.guidgenerator.com/online-guid-generator.aspx" + } + }, + { + "key": "referrer", + "value": { + "stringValue": "https://wwww.google.com" + } + }, + { + "key": "title", + "value": { + "stringValue": "Free Online GUID Generator" + } + } + ] + } + } + ] + } + ] + } + ] + } From 35c97806f233c17680f9a00461310b17e0085dd8 Mon Sep 17 00:00:00 2001 From: jack-berg <34418638+jack-berg@users.noreply.github.com> Date: Sat, 10 Aug 2024 11:47:54 -0500 Subject: [PATCH 09/11] Fix broken link to community contributing guide (#573) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 426dafe3a..56d5c1e63 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ # Contributing Read OpenTelemetry project [contributing -guide](https://github.com/open-telemetry/community/blob/main/CONTRIBUTING.md) +guide](https://github.com/open-telemetry/community/blob/main/guides/contributor/README.md) for general information about the project. ## Prerequisites From 14afbd4e133ee8a8a5a9f7a0fd3a09d5a9456340 Mon Sep 17 00:00:00 2001 From: Florian Lehner Date: Tue, 13 Aug 2024 17:39:30 +0200 Subject: [PATCH 10/11] profiles: align type of index into string table (#557) With `Mapping.filename`, `Function.name`, `Label.key` and others the type of the index into the string table is always of type `int64`. For consistency align the type of `Location.type_index`, which is also an index into the string table, to `int64`. Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com> --- opentelemetry/proto/profiles/v1experimental/pprofextended.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentelemetry/proto/profiles/v1experimental/pprofextended.proto b/opentelemetry/proto/profiles/v1experimental/pprofextended.proto index b5b5b88fc..42c0a9df6 100644 --- a/opentelemetry/proto/profiles/v1experimental/pprofextended.proto +++ b/opentelemetry/proto/profiles/v1experimental/pprofextended.proto @@ -355,7 +355,7 @@ message Location { bool is_folded = 5; // Type of frame (e.g. kernel, native, python, hotspot, php). Index into string table. - uint32 type_index = 6; + int64 type_index = 6; // References to attributes in Profile.attribute_table. [optional] repeated uint64 attributes = 7; From e6923b74ccb43c884308b589cc00f972c12b4055 Mon Sep 17 00:00:00 2001 From: jack-berg <34418638+jack-berg@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:50:17 -0500 Subject: [PATCH 11/11] Update CODEOWNERS to reflect spec sponsor role (#572) --- .github/CODEOWNERS | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ae4f3acbf..cbbb68f22 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -13,16 +13,7 @@ # # Global owners, will be the owners for everything in the repo. Membership is tracked via https://github.com/open-telemetry/community/blob/main/community-members.md -* @open-telemetry/specs-approvers - -# Trace owners (global + trace) -opentelemetry/proto/trace/ @open-telemetry/specs-approvers @open-telemetry/specs-trace-approvers - -# Metrics owners (global + metrics) -opentelemetry/proto/metrics/ @open-telemetry/specs-approvers @open-telemetry/specs-metrics-approvers - -# Logs owners (global + logs) -opentelemetry/proto/logs/ @open-telemetry/specs-approvers @open-telemetry/specs-logs-approvers +* @open-telemetry/spec-sponsors # Profiles owners (global + profiles) -opentelemetry/proto/profiles @open-telemetry/specs-approvers @open-telemetry/profiling-maintainers +opentelemetry/proto/profiles @open-telemetry/spec-sponsors @open-telemetry/profiling-maintainers