aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libs')
-rw-r--r--contrib/libs/opentelemetry-proto/.yandex_meta/devtools.copyrights.report7
-rw-r--r--contrib/libs/opentelemetry-proto/.yandex_meta/devtools.licenses.report17
-rw-r--r--contrib/libs/opentelemetry-proto/.yandex_meta/licenses.list.txt18
-rw-r--r--contrib/libs/opentelemetry-proto/CHANGELOG.md27
-rw-r--r--contrib/libs/opentelemetry-proto/CONTRIBUTING.md2
-rw-r--r--contrib/libs/opentelemetry-proto/README.md8
-rw-r--r--contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/profiles/v1development/profiles_service.proto (renamed from contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto)12
-rw-r--r--contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto27
-rw-r--r--contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1development/profiles.proto (renamed from contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1experimental/pprofextended.proto)327
-rw-r--r--contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1experimental/profiles.proto191
-rw-r--r--contrib/libs/opentelemetry-proto/ya.make9
11 files changed, 315 insertions, 330 deletions
diff --git a/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.copyrights.report b/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.copyrights.report
index 201b10461b..82980c53bd 100644
--- a/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.copyrights.report
+++ b/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.copyrights.report
@@ -42,7 +42,7 @@ BELONGS ya.make
Score : 100.00
Match type : COPYRIGHT
Files with this license:
- opentelemetry/proto/profiles/v1experimental/pprofextended.proto [17:17]
+ opentelemetry/proto/profiles/v1development/profiles.proto [17:17]
KEEP COPYRIGHT_SERVICE_LABEL 4def72dc7d92cbd99458fedd7ced0efb
BELONGS ya.make
@@ -81,6 +81,5 @@ BELONGS ya.make
Score : 100.00
Match type : COPYRIGHT
Files with this license:
- opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto [1:1]
- opentelemetry/proto/profiles/v1experimental/pprofextended.proto [1:1]
- opentelemetry/proto/profiles/v1experimental/profiles.proto [1:1]
+ opentelemetry/proto/collector/profiles/v1development/profiles_service.proto [1:1]
+ opentelemetry/proto/profiles/v1development/profiles.proto [1:1]
diff --git a/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.licenses.report b/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.licenses.report
index 21c0181b8a..b4664ad641 100644
--- a/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.licenses.report
+++ b/contrib/libs/opentelemetry-proto/.yandex_meta/devtools.licenses.report
@@ -33,6 +33,17 @@
# FILE_INCLUDE - include all file data into licenses text file
# =======================
+KEEP Apache-2.0 0dce10f8944aa70ebb0aad0f6eb3ad4c
+BELONGS ya.make
+ Note: matched license text is too long. Read it in the source files.
+ Scancode info:
+ Original SPDX id: Apache-2.0
+ Score : 85.00
+ Match type : NOTICE
+ Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
+ Files with this license:
+ opentelemetry/proto/profiles/v1development/profiles.proto [15:29]
+
KEEP Apache-2.0 2b42edef8fa55315f34f2370b4715ca9
BELONGS ya.make
Note: matched license text is too long. Read it in the source files.
@@ -55,13 +66,11 @@ BELONGS ya.make
Files with this license:
opentelemetry/proto/collector/logs/v1/logs_service.proto [3:13]
opentelemetry/proto/collector/metrics/v1/metrics_service.proto [3:13]
- opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto [3:13]
+ opentelemetry/proto/collector/profiles/v1development/profiles_service.proto [3:13]
opentelemetry/proto/collector/trace/v1/trace_service.proto [3:13]
opentelemetry/proto/common/v1/common.proto [3:13]
opentelemetry/proto/logs/v1/logs.proto [3:13]
opentelemetry/proto/metrics/v1/metrics.proto [3:13]
- opentelemetry/proto/profiles/v1experimental/pprofextended.proto [3:13]
- opentelemetry/proto/profiles/v1experimental/pprofextended.proto [19:29]
- opentelemetry/proto/profiles/v1experimental/profiles.proto [3:13]
+ opentelemetry/proto/profiles/v1development/profiles.proto [3:13]
opentelemetry/proto/resource/v1/resource.proto [3:13]
opentelemetry/proto/trace/v1/trace.proto [3:13]
diff --git a/contrib/libs/opentelemetry-proto/.yandex_meta/licenses.list.txt b/contrib/libs/opentelemetry-proto/.yandex_meta/licenses.list.txt
index 5b75bb939e..d9f9e2a7c0 100644
--- a/contrib/libs/opentelemetry-proto/.yandex_meta/licenses.list.txt
+++ b/contrib/libs/opentelemetry-proto/.yandex_meta/licenses.list.txt
@@ -215,6 +215,24 @@
// limitations under the License.
+====================Apache-2.0====================
+// This file includes work covered by the following copyright and permission notices:
+//
+// Copyright 2016 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
====================COPYRIGHT====================
// Copyright 2016 Google Inc. All Rights Reserved.
diff --git a/contrib/libs/opentelemetry-proto/CHANGELOG.md b/contrib/libs/opentelemetry-proto/CHANGELOG.md
index c8b0e45899..379f8f8590 100644
--- a/contrib/libs/opentelemetry-proto/CHANGELOG.md
+++ b/contrib/libs/opentelemetry-proto/CHANGELOG.md
@@ -4,6 +4,32 @@
The full list of changes can be found in the compare view for the respective release at <https://github.com/open-telemetry/opentelemetry-proto/releases>.
+## 1.3.3. - 2024-11-19
+
+### Added
+
+* metrics: Add resource attributes and scope to metrics proto diagram. [#519](https://github.com/open-telemetry/opentelemetry-proto/pull/519)
+* metrics: Added json example for exponential histogram. [#580](https://github.com/open-telemetry/opentelemetry-proto/pull/580)
+
+### Changed
+
+* metrics: Clarify aggregation temporality for Summary metric type. [#591](https://github.com/open-telemetry/opentelemetry-proto/pull/591)
+* docs: Remove HTTP 1.1 restriction from Protocol Details [#571](https://github.com/open-telemetry/opentelemetry-proto/pull/571)
+* docs: Update specification to include development profiles [#582](https://github.com/open-telemetry/opentelemetry-proto/pull/582)
+* docs: update references to logging exporter [#581](https://github.com/open-telemetry/opentelemetry-proto/pull/581)
+* Makefile: exclude Profiles protocol from breaking-changes [#576](https://github.com/open-telemetry/opentelemetry-proto/pull/576)
+* Makefile: exclude Profiles service from breaking changes too [#586](https://github.com/open-telemetry/opentelemetry-proto/pull/586/)
+* profiles: align type of index into string table [#557](https://github.com/open-telemetry/opentelemetry-proto/pull/557)
+* profiles: drop Sample.stacktrace_id_index [#575](https://github.com/open-telemetry/opentelemetry-proto/pull/575)
+* profiles: drop BuildIdKind [#584](https://github.com/open-telemetry/opentelemetry-proto/pull/584)
+* profiles: drop Sample.label [#583](https://github.com/open-telemetry/opentelemetry-proto/pull/583)
+* profiles: drop Location.type_index [#578](https://github.com/open-telemetry/opentelemetry-proto/pull/578)
+* profiles: Rename profiles v1experimental to v1development [#585](https://github.com/open-telemetry/opentelemetry-proto/pull/585)
+* profiles: Make mapping in Profile optional [#556](https://github.com/open-telemetry/opentelemetry-proto/pull/556)
+* profiles: Fold the content of pprofextended.proto into profiles.proto, removing ProfileContainer. [#590](https://github.com/open-telemetry/opentelemetry-proto/pull/590)
+* profiles: Improve lookup table pattern use in profiles. [#592](https://github.com/open-telemetry/opentelemetry-proto/pull/592)
+* profiles: Renovations to experimental profiling schema. [#596](https://github.com/open-telemetry/opentelemetry-proto/pull/596)
+
## 1.3.2 - 2024-06-28
### Changed
@@ -31,6 +57,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/contrib/libs/opentelemetry-proto/CONTRIBUTING.md b/contrib/libs/opentelemetry-proto/CONTRIBUTING.md
index 426dafe3ae..56d5c1e63f 100644
--- a/contrib/libs/opentelemetry-proto/CONTRIBUTING.md
+++ b/contrib/libs/opentelemetry-proto/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
diff --git a/contrib/libs/opentelemetry-proto/README.md b/contrib/libs/opentelemetry-proto/README.md
index b84446eecf..bcdcf81a07 100644
--- a/contrib/libs/opentelemetry-proto/README.md
+++ b/contrib/libs/opentelemetry-proto/README.md
@@ -43,9 +43,9 @@ components as indicated by the Maturity table below.
| 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) |
+| profiles/\*<br>collector/profiles/* | Development | [Development](docs/specification.md#json-protobuf-encoding) |
-(See [maturity-matrix.yaml](https://github.com/open-telemetry/community/blob/47813530864b9fe5a5146f466a58bd2bb94edc72/maturity-matrix.yaml#L57)
+(See [Versioning and Stability](https://github.com/open-telemetry/opentelemetry-specification/blob/a08d1f92f62acd4aafe4dfaa04ae7bf28600d49e/specification/versioning-and-stability.md)
for definition of maturity levels).
## Stability Definition
@@ -89,8 +89,8 @@ is generated from the .proto files by any particular code generator.
## Experiments
In some cases we are trying to experiment with different features. In this case,
-we recommend using an "experimental" sub-directory instead of adding them to any
+we recommend using a "development" sub-directory instead of adding them to any
protocol version. These protocols should not be used, except for
development/testing purposes.
-Another review must be conducted for experimental protocols to join the main project.
+Another review must be conducted for in-development protocols to join the main project.
diff --git a/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto b/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/profiles/v1development/profiles_service.proto
index d0e7894b29..ab2433ed29 100644
--- a/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto
+++ b/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/profiles/v1development/profiles_service.proto
@@ -14,15 +14,15 @@
syntax = "proto3";
-package opentelemetry.proto.collector.profiles.v1experimental;
+package opentelemetry.proto.collector.profiles.v1development;
-import "opentelemetry/proto/profiles/v1experimental/profiles.proto";
+import "opentelemetry/proto/profiles/v1development/profiles.proto";
-option csharp_namespace = "OpenTelemetry.Proto.Collector.Profiles.V1Experimental";
+option csharp_namespace = "OpenTelemetry.Proto.Collector.Profiles.V1Development";
option java_multiple_files = true;
-option java_package = "io.opentelemetry.proto.collector.profiles.v1experimental";
+option java_package = "io.opentelemetry.proto.collector.profiles.v1development";
option java_outer_classname = "ProfilesServiceProto";
-option go_package = "go.opentelemetry.io/proto/otlp/collector/profiles/v1experimental";
+option go_package = "go.opentelemetry.io/proto/otlp/collector/profiles/v1development";
// Service that can be used to push profiles between one Application instrumented with
// OpenTelemetry and a collector, or between a collector and a central collector.
@@ -38,7 +38,7 @@ message ExportProfilesServiceRequest {
// element. Intermediary nodes (such as OpenTelemetry Collector) that receive
// data from multiple origins typically batch the data before forwarding further and
// in that case this array will contain multiple elements.
- repeated opentelemetry.proto.profiles.v1experimental.ResourceProfiles resource_profiles = 1;
+ repeated opentelemetry.proto.profiles.v1development.ResourceProfiles resource_profiles = 1;
}
message ExportProfilesServiceResponse {
diff --git a/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto b/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto
index 19bb7ff8d5..45e656735a 100644
--- a/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto
+++ b/contrib/libs/opentelemetry-proto/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 |
@@ -251,6 +268,9 @@ message ExponentialHistogram {
// data type. These data points cannot always be merged in a meaningful way.
// While they can be useful in some applications, histogram data points are
// recommended for new applications.
+// Summary metrics do not have an aggregation temporality field. This is
+// because the count and sum fields of a SummaryDataPoint are assumed to be
+// cumulative values.
message Summary {
repeated SummaryDataPoint data_points = 1;
}
@@ -589,7 +609,8 @@ message ExponentialHistogramDataPoint {
}
// SummaryDataPoint is a single data point in a timeseries that describes the
-// time-varying values of a Summary metric.
+// time-varying values of a Summary metric. The count and sum fields represent
+// cumulative values.
message SummaryDataPoint {
reserved 1;
diff --git a/contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1experimental/pprofextended.proto b/contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1development/profiles.proto
index b5b5b88fce..f1b31b6814 100644
--- a/contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1experimental/pprofextended.proto
+++ b/contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1development/profiles.proto
@@ -28,6 +28,124 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+syntax = "proto3";
+
+package opentelemetry.proto.profiles.v1development;
+
+import "opentelemetry/proto/common/v1/common.proto";
+import "opentelemetry/proto/resource/v1/resource.proto";
+
+option csharp_namespace = "OpenTelemetry.Proto.Profiles.V1Development";
+option java_multiple_files = true;
+option java_package = "io.opentelemetry.proto.profiles.v1development";
+option java_outer_classname = "ProfilesProto";
+option go_package = "go.opentelemetry.io/proto/otlp/profiles/v1development";
+
+// Relationships Diagram
+//
+// ┌──────────────────┐ LEGEND
+// │ ProfilesData │
+// └──────────────────┘ ─────▶ embedded
+// │
+// │ 1-n ─────▷ referenced by index
+// ▼
+// ┌──────────────────┐
+// │ ResourceProfiles │
+// └──────────────────┘
+// │
+// │ 1-n
+// ▼
+// ┌──────────────────┐
+// │ ScopeProfiles │
+// └──────────────────┘
+// │
+// │ 1-1
+// ▼
+// ┌──────────────────┐
+// │ Profile │
+// └──────────────────┘
+// │ n-1
+// │ 1-n ┌───────────────────────────────────────┐
+// ▼ │ ▽
+// ┌──────────────────┐ 1-n ┌──────────────┐ ┌──────────┐
+// │ Sample │ ──────▷ │ KeyValue │ │ Link │
+// └──────────────────┘ └──────────────┘ └──────────┘
+// │ 1-n △ △
+// │ 1-n ┌─────────────────┘ │ 1-n
+// ▽ │ │
+// ┌──────────────────┐ n-1 ┌──────────────┐
+// │ Location │ ──────▷ │ Mapping │
+// └──────────────────┘ └──────────────┘
+// │
+// │ 1-n
+// ▼
+// ┌──────────────────┐
+// │ Line │
+// └──────────────────┘
+// │
+// │ 1-1
+// ▽
+// ┌──────────────────┐
+// │ Function │
+// └──────────────────┘
+//
+
+// ProfilesData represents the profiles data that can be stored in persistent storage,
+// OR can be embedded by other protocols that transfer OTLP profiles data but do not
+// implement the OTLP protocol.
+//
+// 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.
+//
+// When new fields are added into this message, the OTLP request MUST be updated
+// as well.
+message ProfilesData {
+ // An array of ResourceProfiles.
+ // For data coming from a single resource this array will typically contain
+ // one element. Intermediary nodes that receive data from multiple origins
+ // typically batch the data before forwarding further and in that case this
+ // array will contain multiple elements.
+ repeated ResourceProfiles resource_profiles = 1;
+}
+
+
+// A collection of ScopeProfiles from a Resource.
+message ResourceProfiles {
+ reserved 1000;
+
+ // The resource for the profiles in this message.
+ // If this field is not set then no resource info is known.
+ opentelemetry.proto.resource.v1.Resource resource = 1;
+
+ // A list of ScopeProfiles that originate from a resource.
+ repeated ScopeProfiles scope_profiles = 2;
+
+ // The Schema URL, if known. This is the identifier of the Schema that the resource data
+ // is recorded in. To learn more about Schema URL see
+ // https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
+ // This schema_url applies to the data in the "resource" field. It does not apply
+ // to the data in the "scope_profiles" field which have their own schema_url field.
+ string schema_url = 3;
+}
+
+// A collection of Profiles produced by an InstrumentationScope.
+message ScopeProfiles {
+ // The instrumentation scope information for the profiles in this message.
+ // Semantically when InstrumentationScope isn't set, it is equivalent with
+ // an empty instrumentation scope name (unknown).
+ opentelemetry.proto.common.v1.InstrumentationScope scope = 1;
+
+ // A list of Profiles that originate from an instrumentation scope.
+ repeated Profile profiles = 2;
+
+ // The Schema URL, if known. This is the identifier of the Schema that the profile data
+ // is recorded in. To learn more about Schema URL see
+ // https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
+ // This schema_url applies to all profiles in the "profiles" field.
+ string schema_url = 3;
+}
+
// Profile is a common stacktrace profile format.
//
// Measurements represented with this format should follow the
@@ -52,20 +170,15 @@
// mappings. For every nonzero Location.mapping_id there must be a
// unique Mapping with that index.
-syntax = "proto3";
-
-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,
// mappings to binaries, locations, functions, string table, and additional metadata.
+// It modifies and annotates pprof Profile with OpenTelemetry specific fields.
+//
+// Note that whilst fields in this message retain the name and field id from pprof in most cases
+// for ease of understanding data migration, it is not intended that pprof:Profile and
+// OpenTelemetry:Profile encoding be wire compatible.
message Profile {
+
// A description of the samples associated with each Sample.value.
// For a cpu profile this might be:
// [["cpu","nanoseconds"]] or [["wall","seconds"]] or [["syscall","count"]]
@@ -79,58 +192,91 @@ message Profile {
repeated Sample sample = 2;
// Mapping from address ranges to the image/binary/library mapped
// into that address range. mapping[0] will be the main binary.
- repeated Mapping mapping = 3;
+ // If multiple binaries contribute to the Profile and no main
+ // binary can be identified, mapping[0] has no special meaning.
+ repeated Mapping mapping_table = 3;
// Locations referenced by samples via location_indices.
- repeated Location location = 4;
+ repeated Location location_table = 4;
// Array of locations referenced by samples.
- repeated int64 location_indices = 15;
+ repeated int32 location_indices = 5;
// Functions referenced by locations.
- repeated Function function = 5;
+ repeated Function function_table = 6;
// Lookup table for attributes.
- repeated opentelemetry.proto.common.v1.KeyValue attribute_table = 16;
+ repeated opentelemetry.proto.common.v1.KeyValue attribute_table = 7;
// Represents a mapping between Attribute Keys and Units.
- repeated AttributeUnit attribute_units = 17;
+ repeated AttributeUnit attribute_units = 8;
// Lookup table for links.
- repeated Link link_table = 18;
+ repeated Link link_table = 9;
// A common table for strings referenced by various messages.
// string_table[0] must always be "".
- repeated string string_table = 6;
- // frames with Function.function_name fully matching the following
- // regexp will be dropped from the samples, along with their successors.
- int64 drop_frames = 7; // Index into string table.
- // frames with Function.function_name fully matching the following
- // regexp will be kept, even if it matches drop_frames.
- int64 keep_frames = 8; // Index into string table.
-
- // The following fields are informational, do not affect
+ repeated string string_table = 10;
+
+ // The following fields 9-14 are informational, do not affect
// interpretation of results.
// Time of collection (UTC) represented as nanoseconds past the epoch.
- int64 time_nanos = 9;
+ int64 time_nanos = 11;
// Duration of the profile, if a duration makes sense.
- int64 duration_nanos = 10;
+ int64 duration_nanos = 12;
// The kind of events between sampled occurrences.
// e.g [ "cpu","cycles" ] or [ "heap","bytes" ]
- ValueType period_type = 11;
+ ValueType period_type = 13;
// The number of events between sampled occurrences.
- int64 period = 12;
+ int64 period = 14;
// Free-form text associated with the profile. The text is displayed as is
// to the user by the tools that read profiles (e.g. by pprof). This field
// should not be used to store any machine-readable information, it is only
// for human-friendly content. The profile must stay functional if this field
// is cleaned.
- repeated int64 comment = 13; // Indices into string table.
+ repeated int32 comment_strindices = 15; // Indices into string table.
// Index into the string table of the type of the preferred sample
// value. If unset, clients should default to the last sample value.
- int64 default_sample_type = 14;
+ int32 default_sample_type_strindex = 16;
+
+
+ // A globally unique identifier for a profile. The ID is a 16-byte array. An ID with
+ // all zeroes is considered invalid.
+ //
+ // This field is required.
+ bytes profile_id = 17;
+
+ // attributes is a collection of key/value pairs. Note, global attributes
+ // like server name can be set using the resource API. Examples of attributes:
+ //
+ // "/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
+ // "/http/server_latency": 300
+ // "abc.com/myattribute": true
+ // "abc.com/score": 10.239
+ //
+ // The OpenTelemetry API specification further restricts the allowed value types:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/common/README.md#attribute
+ // Attribute keys MUST be unique (it is not allowed to have more than one
+ // attribute with the same key).
+ repeated opentelemetry.proto.common.v1.KeyValue attributes = 18;
+
+ // dropped_attributes_count is the number of attributes that were discarded. Attributes
+ // can be discarded because their keys are too long or because there are too many
+ // attributes. If this value is 0, then no attributes were dropped.
+ uint32 dropped_attributes_count = 19;
+
+ // Specifies format of the original payload. Common values are defined in semantic conventions. [required if original_payload is present]
+ string original_payload_format = 20;
+
+ // Original payload can be stored in this field. This can be useful for users who want to get the original payload.
+ // Formats such as JFR are highly extensible and can contain more information than what is defined in this spec.
+ // Inclusion of original payload should be configurable by the user. Default behavior should be to not include the original payload.
+ // If the original payload is in pprof format, it SHOULD not be included in this field.
+ // The field is optional, however if it is present then equivalent converted data should be populated in other fields
+ // of this message as far as is practicable.
+ bytes original_payload = 21;
}
// Represents a mapping between Attribute Keys and Units.
message AttributeUnit {
// Index into string table.
- int64 attribute_key = 1;
+ int32 attribute_key_strindex = 1;
// Index into string table.
- int64 unit = 2;
+ int32 unit_strindex = 2;
}
// A pointer from a profile Sample to a trace Span.
@@ -214,8 +360,8 @@ enum AggregationTemporality {
// ValueType describes the type and units of a value, with an optional aggregation temporality.
message ValueType {
- int64 type = 1; // Index into string table.
- int64 unit = 2; // Index into string table.
+ int32 type_strindex = 1; // Index into string table.
+ int32 unit_strindex = 2; // Index into string table.
AggregationTemporality aggregation_temporality = 3;
}
@@ -225,52 +371,36 @@ message ValueType {
// augmented with auxiliary information like the thread-id, some
// indicator of a higher level request being handled etc.
message Sample {
- // The indices recorded here correspond to locations in Profile.location.
- // The leaf is at location_index[0]. [deprecated, superseded by locations_start_index / locations_length]
- repeated uint64 location_index = 1;
- // locations_start_index along with locations_length refers to to a slice of locations in Profile.location.
+ // locations_start_index along with locations_length refers to to a slice of locations in Profile.location_indices.
+ int32 locations_start_index = 1;
+ // locations_length along with locations_start_index refers to a slice of locations in Profile.location_indices.
// Supersedes location_index.
- uint64 locations_start_index = 7;
- // locations_length along with locations_start_index refers to a slice of locations in Profile.location.
- // Supersedes location_index.
- uint64 locations_length = 8;
- // A 128bit id that uniquely identifies this stacktrace, globally. Index into string table. [optional]
- uint32 stacktrace_id_index = 9;
+ int32 locations_length = 2;
// The type and unit of each value is defined by the corresponding
// entry in Profile.sample_type. All samples must have the same
// number of values, the same as the length of Profile.sample_type.
// When aggregating multiple samples into a single sample, the
// result has a list of values that is the element-wise sum of the
// lists of the originals.
- repeated int64 value = 2;
- // label includes additional context for this sample. It can include
- // things like a thread id, allocation size, etc.
- //
- // NOTE: While possible, having multiple values for the same label key is
- // strongly discouraged and should never be used. Most tools (e.g. pprof) do
- // not have good (or any) support for multi-value labels. And an even more
- // discouraged case is having a string label and a numeric label of the same
- // name on a sample. Again, possible to express, but should not be used.
- // [deprecated, superseded by attributes]
- repeated Label label = 3;
+ repeated int64 value = 3;
// References to attributes in Profile.attribute_table. [optional]
- repeated uint64 attributes = 10;
+ repeated int32 attribute_indices = 4;
// Reference to link in Profile.link_table. [optional]
- uint64 link = 12;
+ optional int32 link_index = 5;
// Timestamps associated with Sample represented in nanoseconds. These timestamps are expected
// to fall within the Profile's time range. [optional]
- repeated uint64 timestamps_unix_nano = 13;
+ repeated uint64 timestamps_unix_nano = 6;
}
// Provides additional context for a sample,
// such as thread ID or allocation size, with optional units. [deprecated]
message Label {
- int64 key = 1; // Index into string table
+ int32 key_strindex = 1; // Index into string table
// At most one of the following must be present
- int64 str = 2; // Index into string table
+ int32 str_strindex = 2; // Index into string table
int64 num = 3;
// Should only be present when num is present.
@@ -280,65 +410,43 @@ message Label {
// Consumers may also interpret units like "bytes" and "kilobytes" as memory
// units and units like "seconds" and "nanoseconds" as time units,
// and apply appropriate unit conversions to these.
- int64 num_unit = 4; // Index into string table
-}
-
-// Indicates the semantics of the build_id field.
-enum BuildIdKind {
- // Linker-generated build ID, stored in the ELF binary notes.
- BUILD_ID_LINKER = 0;
- // Build ID based on the content hash of the binary. Currently no particular
- // hashing approach is standardized, so a given producer needs to define it
- // themselves and thus unlike BUILD_ID_LINKER this kind of hash is producer-specific.
- // We may choose to provide a standardized stable hash recommendation later.
- BUILD_ID_BINARY_HASH = 1;
+ int32 num_unit_strindex = 4; // Index into string table
}
// Describes the mapping of a binary in memory, including its address range,
// file offset, and metadata like build ID
message Mapping {
- // Unique nonzero id for the mapping. [deprecated]
- uint64 id = 1;
// Address at which the binary (or DLL) is loaded into memory.
- uint64 memory_start = 2;
+ uint64 memory_start = 1;
// The limit of the address range occupied by this mapping.
- uint64 memory_limit = 3;
+ uint64 memory_limit = 2;
// Offset in the binary that corresponds to the first mapped address.
- uint64 file_offset = 4;
+ uint64 file_offset = 3;
// The object this entry is loaded from. This can be a filename on
// disk for the main binary and shared libraries, or virtual
// abstractions like "[vdso]".
- int64 filename = 5; // Index into string table
- // A string that uniquely identifies a particular program version
- // with high probability. E.g., for binaries generated by GNU tools,
- // it could be the contents of the .note.gnu.build-id field.
- int64 build_id = 6; // Index into string table
- // Specifies the kind of build id. See BuildIdKind enum for more details [optional]
- BuildIdKind build_id_kind = 11;
+ int32 filename_strindex = 4; // Index into string table
// References to attributes in Profile.attribute_table. [optional]
- repeated uint64 attributes = 12;
+ repeated int32 attribute_indices = 5;
// The following fields indicate the resolution of symbolic info.
- bool has_functions = 7;
- bool has_filenames = 8;
- bool has_line_numbers = 9;
- bool has_inline_frames = 10;
+ bool has_functions = 6;
+ bool has_filenames = 7;
+ bool has_line_numbers = 8;
+ bool has_inline_frames = 9;
}
// Describes function and line table debug information.
message Location {
- // Unique nonzero id for the location. A profile could use
- // instruction addresses or any integer sequence as ids. [deprecated]
- uint64 id = 1;
- // The index of the corresponding profile.Mapping for this location.
+ // Reference to mapping in Profile.mapping_table.
// It can be unset if the mapping is unknown or not applicable for
// this profile type.
- uint64 mapping_index = 2;
+ optional int32 mapping_index = 1;
// The instruction address for this location, if available. It
// should be within [Mapping.memory_start...Mapping.memory_limit]
// for the corresponding mapping. A non-leaf address may be in the
// middle of a call instruction. It is up to display tools to find
// the beginning of the instruction if necessary.
- uint64 address = 3;
+ uint64 address = 2;
// Multiple line indicates this location has inlined functions,
// where the last entry represents the caller into which the
// preceding entries were inlined.
@@ -346,25 +454,22 @@ message Location {
// E.g., if memcpy() is inlined into printf:
// line[0].function_name == "memcpy"
// line[1].function_name == "printf"
- repeated Line line = 4;
+ repeated Line line = 3;
// Provides an indication that multiple symbols map to this location's
// address, for example due to identical code folding by the linker. In that
// case the line information above represents one of the multiple
// symbols. This field must be recomputed when the symbolization state of the
// profile changes.
- bool is_folded = 5;
-
- // Type of frame (e.g. kernel, native, python, hotspot, php). Index into string table.
- uint32 type_index = 6;
+ bool is_folded = 4;
// References to attributes in Profile.attribute_table. [optional]
- repeated uint64 attributes = 7;
+ repeated int32 attribute_indices = 5;
}
// Details a specific line in a source code, linked to a function.
message Line {
- // The index of the corresponding profile.Function for this line.
- uint64 function_index = 1;
+ // Reference to function in Profile.function_table.
+ int32 function_index = 1;
// Line number in source code.
int64 line = 2;
// Column number in source code.
@@ -374,15 +479,13 @@ message Line {
// Describes a function, including its human-readable name, system name,
// source file, and starting line number in the source.
message Function {
- // Unique nonzero id for the function. [deprecated]
- uint64 id = 1;
// Name of the function, in human-readable form if available.
- int64 name = 2; // Index into string table
+ int32 name_strindex = 1; // Index into string table
// Name of the function, as identified by the system.
// For instance, it can be a C++ mangled name.
- int64 system_name = 3; // Index into string table
+ int32 system_name_strindex = 2; // Index into string table
// Source file containing the function.
- int64 filename = 4; // Index into string table
+ int32 filename_strindex = 3; // Index into string table
// Line number in source file.
- int64 start_line = 5;
+ int64 start_line = 4;
}
diff --git a/contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1experimental/profiles.proto b/contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1experimental/profiles.proto
deleted file mode 100644
index 84b0108f86..0000000000
--- a/contrib/libs/opentelemetry-proto/opentelemetry/proto/profiles/v1experimental/profiles.proto
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright 2023, OpenTelemetry Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto3";
-
-package opentelemetry.proto.profiles.v1experimental;
-
-import "opentelemetry/proto/common/v1/common.proto";
-import "opentelemetry/proto/resource/v1/resource.proto";
-import "opentelemetry/proto/profiles/v1experimental/pprofextended.proto";
-
-option csharp_namespace = "OpenTelemetry.Proto.Profiles.V1Experimental";
-option java_multiple_files = true;
-option java_package = "io.opentelemetry.proto.profiles.v1experimental";
-option java_outer_classname = "ProfilesProto";
-option go_package = "go.opentelemetry.io/proto/otlp/profiles/v1experimental";
-
-// Relationships Diagram
-//
-// ┌──────────────────┐ LEGEND
-// │ ProfilesData │
-// └──────────────────┘ ─────▶ embedded
-// │
-// │ 1-n ─────▷ referenced by index
-// ▼
-// ┌──────────────────┐
-// │ ResourceProfiles │
-// └──────────────────┘
-// │
-// │ 1-n
-// ▼
-// ┌──────────────────┐
-// │ ScopeProfiles │
-// └──────────────────┘
-// │
-// │ 1-n
-// ▼
-// ┌──────────────────┐
-// │ ProfileContainer │
-// └──────────────────┘
-// │
-// │ 1-1
-// ▼
-// ┌──────────────────┐
-// │ Profile │
-// └──────────────────┘
-// │ n-1
-// │ 1-n ┌───────────────────────────────────────┐
-// ▼ │ ▽
-// ┌──────────────────┐ 1-n ┌──────────────┐ ┌──────────┐
-// │ Sample │ ──────▷ │ KeyValue │ │ Link │
-// └──────────────────┘ └──────────────┘ └──────────┘
-// │ 1-n △ △
-// │ 1-n ┌─────────────────┘ │ 1-n
-// ▽ │ │
-// ┌──────────────────┐ n-1 ┌──────────────┐
-// │ Location │ ──────▷ │ Mapping │
-// └──────────────────┘ └──────────────┘
-// │
-// │ 1-n
-// ▼
-// ┌──────────────────┐
-// │ Line │
-// └──────────────────┘
-// │
-// │ 1-1
-// ▽
-// ┌──────────────────┐
-// │ Function │
-// └──────────────────┘
-//
-
-// ProfilesData represents the profiles data that can be stored in persistent storage,
-// OR can be embedded by other protocols that transfer OTLP profiles data but do not
-// implement the OTLP protocol.
-//
-// 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.
-//
-// When new fields are added into this message, the OTLP request MUST be updated
-// as well.
-message ProfilesData {
- // An array of ResourceProfiles.
- // For data coming from a single resource this array will typically contain
- // one element. Intermediary nodes that receive data from multiple origins
- // typically batch the data before forwarding further and in that case this
- // array will contain multiple elements.
- repeated ResourceProfiles resource_profiles = 1;
-}
-
-
-// A collection of ScopeProfiles from a Resource.
-message ResourceProfiles {
- reserved 1000;
-
- // The resource for the profiles in this message.
- // If this field is not set then no resource info is known.
- opentelemetry.proto.resource.v1.Resource resource = 1;
-
- // A list of ScopeProfiles that originate from a resource.
- repeated ScopeProfiles scope_profiles = 2;
-
- // The Schema URL, if known. This is the identifier of the Schema that the resource data
- // is recorded in. To learn more about Schema URL see
- // https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
- // This schema_url applies to the data in the "resource" field. It does not apply
- // to the data in the "scope_profiles" field which have their own schema_url field.
- string schema_url = 3;
-}
-
-// A collection of ProfileContainers produced by an InstrumentationScope.
-message ScopeProfiles {
- // The instrumentation scope information for the profiles in this message.
- // Semantically when InstrumentationScope isn't set, it is equivalent with
- // an empty instrumentation scope name (unknown).
- opentelemetry.proto.common.v1.InstrumentationScope scope = 1;
-
- // A list of ProfileContainers that originate from an instrumentation scope.
- repeated ProfileContainer profiles = 2;
-
- // The Schema URL, if known. This is the identifier of the Schema that the metric data
- // is recorded in. To learn more about Schema URL see
- // https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
- // This schema_url applies to all profiles in the "profiles" field.
- string schema_url = 3;
-}
-
-// A ProfileContainer represents a single profile. It wraps pprof profile with OpenTelemetry specific metadata.
-message ProfileContainer {
- // A globally unique identifier for a profile. The ID is a 16-byte array. An ID with
- // all zeroes is considered invalid.
- //
- // This field is required.
- bytes profile_id = 1;
-
- // start_time_unix_nano is the start time of the profile.
- // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.
- //
- // This field is semantically required and it is expected that end_time >= start_time.
- fixed64 start_time_unix_nano = 2;
-
- // end_time_unix_nano is the end time of the profile.
- // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.
- //
- // This field is semantically required and it is expected that end_time >= start_time.
- fixed64 end_time_unix_nano = 3;
-
- // attributes is a collection of key/value pairs. Note, global attributes
- // like server name can be set using the resource API. Examples of attributes:
- //
- // "/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
- // "/http/server_latency": 300
- // "abc.com/myattribute": true
- // "abc.com/score": 10.239
- //
- // The OpenTelemetry API specification further restricts the allowed value types:
- // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/common/README.md#attribute
- // Attribute keys MUST be unique (it is not allowed to have more than one
- // attribute with the same key).
- repeated opentelemetry.proto.common.v1.KeyValue attributes = 4;
-
- // dropped_attributes_count is the number of attributes that were discarded. Attributes
- // can be discarded because their keys are too long or because there are too many
- // attributes. If this value is 0, then no attributes were dropped.
- uint32 dropped_attributes_count = 5;
-
- // Specifies format of the original payload. Common values are defined in semantic conventions. [required if original_payload is present]
- string original_payload_format = 6;
-
- // Original payload can be stored in this field. This can be useful for users who want to get the original payload.
- // Formats such as JFR are highly extensible and can contain more information than what is defined in this spec.
- // Inclusion of original payload should be configurable by the user. Default behavior should be to not include the original payload.
- // If the original payload is in pprof format, it SHOULD not be included in this field.
- // The field is optional, however if it is present `profile` MUST be present and contain the same profiling information.
- bytes original_payload = 7;
-
- // This is a reference to a pprof profile. Required, even when original_payload is present.
- opentelemetry.proto.profiles.v1experimental.Profile profile = 8;
-}
diff --git a/contrib/libs/opentelemetry-proto/ya.make b/contrib/libs/opentelemetry-proto/ya.make
index ec3477245b..79e88d12a0 100644
--- a/contrib/libs/opentelemetry-proto/ya.make
+++ b/contrib/libs/opentelemetry-proto/ya.make
@@ -6,9 +6,9 @@ LICENSE(Apache-2.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.3.2)
+VERSION(1.4.0)
-ORIGINAL_SOURCE(https://github.com/open-telemetry/opentelemetry-proto/archive/v1.3.2.tar.gz)
+ORIGINAL_SOURCE(https://github.com/open-telemetry/opentelemetry-proto/archive/v1.4.0.tar.gz)
PY_NAMESPACE(.)
@@ -22,13 +22,12 @@ GRPC()
SRCS(
opentelemetry/proto/collector/logs/v1/logs_service.proto
opentelemetry/proto/collector/metrics/v1/metrics_service.proto
- opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto
+ opentelemetry/proto/collector/profiles/v1development/profiles_service.proto
opentelemetry/proto/collector/trace/v1/trace_service.proto
opentelemetry/proto/common/v1/common.proto
opentelemetry/proto/logs/v1/logs.proto
opentelemetry/proto/metrics/v1/metrics.proto
- opentelemetry/proto/profiles/v1experimental/pprofextended.proto
- opentelemetry/proto/profiles/v1experimental/profiles.proto
+ opentelemetry/proto/profiles/v1development/profiles.proto
opentelemetry/proto/resource/v1/resource.proto
opentelemetry/proto/trace/v1/trace.proto
)