-
Notifications
You must be signed in to change notification settings - Fork 1
Found new managed modules references #1047
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
Conversation
| }, | ||
| { | ||
| "name": "v1.8.0", | ||
| "digest": "876c5eafb14069d6ee37de358b4913cc3b2f3bcd5948e4a7b7694d4e95b53a30816c6a488e9757e15e7f11bf13090195746f13015bd935224df711215dbf0152" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cd modules/sync/opentelemetry/opentelemetry
casdiff v1.7.0 v1.8.0 --format=markdown4 files changed: 0 removed, 0 renamed, 0 added, 4 changed content
Files changed content:
opentelemetry/proto/metrics/v1/metrics.proto:
--- shake256:035864a76ebd31e3ac48b62f49e2172d838075d07b846c3a7e2382b02ff62d7564319fdec828dd6cff352bd12e3fb8a4d275eecc27d8d3a2989346d2ca88b4d2 opentelemetry/proto/metrics/v1/metrics.proto
+++ shake256:f6304492d43a53155504b3a57ac98efd25cc3df15c5da47fe26c6003d3c1b887f0cc95befd22777be61dff7a4ae38325978573428ba479d0087dabbfe6005b7d opentelemetry/proto/metrics/v1/metrics.proto
@@ -377,6 +377,16 @@
// where this point belongs. The list may be empty (may contain 0 elements).
// Attribute keys MUST be unique (it is not allowed to have more than one
// attribute with the same key).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 7;
// StartTimeUnixNano is optional but strongly encouraged, see the
@@ -425,6 +435,16 @@
// where this point belongs. The list may be empty (may contain 0 elements).
// Attribute keys MUST be unique (it is not allowed to have more than one
// attribute with the same key).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 9;
// StartTimeUnixNano is optional but strongly encouraged, see the
@@ -509,6 +529,16 @@
// where this point belongs. The list may be empty (may contain 0 elements).
// Attribute keys MUST be unique (it is not allowed to have more than one
// attribute with the same key).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 1;
// StartTimeUnixNano is optional but strongly encouraged, see the
@@ -625,6 +655,16 @@
// where this point belongs. The list may be empty (may contain 0 elements).
// Attribute keys MUST be unique (it is not allowed to have more than one
// attribute with the same key).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 7;
// StartTimeUnixNano is optional but strongly encouraged, see the
opentelemetry/proto/profiles/v1development/profiles.proto:
--- shake256:6c11c64d1548f9125b60265c5b81f733e9df638effa506173ecc0e9ba3f903d0361c004511834d236e58e110e94ce5199c47fad032152b645e9441207851e55c opentelemetry/proto/profiles/v1development/profiles.proto
+++ shake256:72bfe7f51e7b656b8fd50454af4cd76ce4dfbb14ce2ba19591e799afac97b4253aff5620d68adbf6ac213b1c527d86da1287a9fcc58074952cd87bdd97948721 opentelemetry/proto/profiles/v1development/profiles.proto
@@ -59,7 +59,7 @@
// │ ScopeProfiles │
// └──────────────────┘
// │
-// │ 1-1
+// │ 1-n
// ▼
// ┌──────────────────┐
// │ Profile │
@@ -67,15 +67,21 @@
// │ n-1
// │ 1-n ┌───────────────────────────────────────┐
// ▼ │ ▽
-// ┌──────────────────┐ 1-n ┌──────────────┐ ┌──────────┐
-// │ Sample │ ──────▷ │ KeyValue │ │ Link │
-// └──────────────────┘ └──────────────┘ └──────────┘
-// │ 1-n △ △
-// │ 1-n ┌─────────────────┘ │ 1-n
-// ▽ │ │
-// ┌──────────────────┐ n-1 ┌──────────────┐
-// │ Location │ ──────▷ │ Mapping │
-// └──────────────────┘ └──────────────┘
+// ┌──────────────────┐ 1-n ┌─────────────────┐ ┌──────────┐
+// │ Sample │ ──────▷ │ KeyValueAndUnit │ │ Link │
+// └──────────────────┘ └─────────────────┘ └──────────┘
+// │ △ △
+// │ n-1 │ │ 1-n
+// ▽ │ │
+// ┌──────────────────┐ │ │
+// │ Stack │ │ │
+// └──────────────────┘ │ │
+// │ 1-n │ │
+// │ 1-n ┌────────────────┘ │
+// ▽ │ │
+// ┌──────────────────┐ n-1 ┌─────────────┐
+// │ Location │ ──────▷ │ Mapping │
+// └──────────────────┘ └─────────────┘
// │
// │ 1-n
// ▼
@@ -92,12 +98,17 @@
// ProfilesDictionary represents the profiles data shared across the
// entire message being sent.
+//
+// Note that all fields in this message MUST have a zero value encoded as the first element.
+// This allows for _index fields pointing into the dictionary to use a 0 pointer value
+// to indicate 'null' / 'not set'. Unless otherwise defined, a 'zero value' message value
+// is one with all default field values, so as to minimize wire encoded size.
message ProfilesDictionary {
// Mappings from address ranges to the image/binary/library mapped
// into that address range referenced by locations via Location.mapping_index.
repeated Mapping mapping_table = 1;
- // Locations referenced by samples via Profile.location_indices.
+ // Locations referenced by samples via Stack.location_indices.
repeated Location location_table = 2;
// Functions referenced by locations via Line.function_index.
@@ -111,10 +122,27 @@
repeated string string_table = 5;
// A common table for attributes referenced by various messages.
- repeated opentelemetry.proto.common.v1.KeyValue attribute_table = 6;
+ // It 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 attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
+ repeated KeyValueAndUnit attribute_table = 6;
- // Represents a mapping between Attribute Keys and Units.
- repeated AttributeUnit attribute_units = 7;
+ // Stacks referenced by samples via Sample.stack_index.
+ repeated Stack stack_table = 7;
}
// ProfilesData represents the profiles data that can be stored in persistent storage,
@@ -135,6 +163,8 @@
// from non-containerized processes.
// Other resource groupings are possible as well and clarified via
// Resource.attributes and semantic conventions.
+ // Tools that visualize profiles should prefer displaying
+ // resources_profiles[0].scope_profiles[0].profiles[0] by default.
repeated ResourceProfiles resource_profiles = 1;
// One instance of ProfilesDictionary
@@ -192,75 +222,68 @@
// that is most useful to humans. There should be enough
// information present to determine the original sampled values.
//
-// - On-disk, the serialized proto must be gzip-compressed.
-//
// - The profile is represented as a set of samples, where each sample
-// references a sequence of locations, and where each location belongs
+// references a stack trace which is a list of locations, each belonging
// to a mapping.
-// - There is a N->1 relationship from sample.location_id entries to
-// locations. For every sample.location_id entry there must be a
+// - There is a N->1 relationship from Stack.location_indices entries to
+// locations. For every Stack.location_indices entry there must be a
// unique Location with that index.
// - There is an optional N->1 relationship from locations to
// mappings. For every nonzero Location.mapping_id there must be a
// unique Mapping with that index.
-// 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.
+// Represents a complete profile, including sample types, samples, mappings to
+// binaries, stacks, 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"]]
+ // The type and unit of all Sample.values in this profile.
+ // For a cpu or off-cpu profile this might be:
+ // ["cpu","nanoseconds"] or ["off_cpu","nanoseconds"]
// For a heap profile, this might be:
- // [["allocations","count"], ["space","bytes"]],
- // If one of the values represents the number of events represented
- // by the sample, by convention it should be at index 0 and use
- // sample_type.unit == "count".
- repeated ValueType sample_type = 1;
+ // ["allocated_objects","count"] or ["allocated_space","bytes"],
+ ValueType sample_type = 1;
// The set of samples recorded in this profile.
repeated Sample sample = 2;
- // References to locations in ProfilesDictionary.location_table.
- repeated int32 location_indices = 3;
-
- // The following fields 4-14 are informational, do not affect
+ // The following fields 3-12 are informational, do not affect
// interpretation of results.
// Time of collection (UTC) represented as nanoseconds past the epoch.
- int64 time_nanos = 4;
+ fixed64 time_unix_nano = 3;
// Duration of the profile, if a duration makes sense.
- int64 duration_nanos = 5;
+ uint64 duration_nano = 4;
// The kind of events between sampled occurrences.
// e.g [ "cpu","cycles" ] or [ "heap","bytes" ]
- ValueType period_type = 6;
+ ValueType period_type = 5;
// The number of events between sampled occurrences.
- int64 period = 7;
+ int64 period = 6;
// 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 int32 comment_strindices = 8; // Indices into ProfilesDictionary.string_table.
- // Index into the sample_type array to the default sample type.
- int32 default_sample_type_index = 9;
+ repeated int32 comment_strindices = 7; // Indices into ProfilesDictionary.string_table.
// 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 = 10;
+ // all zeroes is considered invalid. It may be used for deduplication and signal
+ // correlation purposes. It is acceptable to treat two profiles with different values
+ // in this field as not equal, even if they represented the same object at an earlier
+ // time.
+ // This field is optional; an ID may be assigned to an ID-less profile in a later step.
+ bytes profile_id = 8;
// 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 = 11;
+ uint32 dropped_attributes_count = 9;
// Specifies format of the original payload. Common values are defined in semantic conventions. [required if original_payload is present]
- string original_payload_format = 12;
+ string original_payload_format = 10;
// 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.
@@ -268,32 +291,12 @@
// 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 = 13;
+ bytes original_payload = 11;
// References to attributes in attribute_table. [optional]
- // It 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 int32 attribute_indices = 14;
+ repeated int32 attribute_indices = 12;
}
-// Represents a mapping between Attribute Keys and Units.
-message AttributeUnit {
- // Index into string table.
- int32 attribute_key_strindex = 1;
- // Index into string table.
- int32 unit_strindex = 2;
-}
-
// A pointer from a profile Sample to a trace Span.
// Connects a profile sample to a trace span, identified by unique trace and span IDs.
message Link {
@@ -381,32 +384,43 @@
AggregationTemporality aggregation_temporality = 3;
}
-// Each Sample records values encountered in some program
-// context. The program context is typically a stack trace, perhaps
-// augmented with auxiliary information like the thread-id, some
-// indicator of a higher level request being handled etc.
+// Each Sample records values encountered in some program context. The program
+// context is typically a stack trace, perhaps augmented with auxiliary
+// information like the thread-id, some indicator of a higher level request
+// being handled etc.
+//
+// A Sample MUST have have at least one values or timestamps_unix_nano entry. If
+// both fields are populated, they MUST contain the same number of elements, and
+// the elements at the same index MUST refer to the same event.
+//
+// Examples of different ways of representing a sample with the total value of 10:
+//
+// Report of a stacktrace at 10 timestamps (consumers must assume the value is 1 for each point):
+// values: []
+// timestamps_unix_nano: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+//
+// Report of a stacktrace with an aggregated value without timestamps:
+// values: [10]
+// timestamps_unix_nano: []
+//
+// Report of a stacktrace at 4 timestamps where each point records a specific value:
+// values: [2, 2, 3, 3]
+// timestamps_unix_nano: [1, 2, 3, 4]
message Sample {
- // 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.
- 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 = 3;
+ // Reference to stack in ProfilesDictionary.stack_table.
+ int32 stack_index = 1;
+ // The type and unit of each value is defined by Profile.sample_type.
+ repeated int64 values = 2;
// References to attributes in ProfilesDictionary.attribute_table. [optional]
- repeated int32 attribute_indices = 4;
+ repeated int32 attribute_indices = 3;
// Reference to link in ProfilesDictionary.link_table. [optional]
- optional int32 link_index = 5;
+ // It can be unset / set to 0 if no link exists, as link_table[0] is always a 'null' default value.
+ int32 link_index = 4;
- // 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 = 6;
+ // Timestamps associated with Sample represented in nanoseconds. These
+ // timestamps should fall within the Profile's time range.
+ repeated fixed64 timestamps_unix_nano = 5;
}
// Describes the mapping of a binary in memory, including its address range,
@@ -424,19 +438,21 @@
int32 filename_strindex = 4; // Index into ProfilesDictionary.string_table.
// References to attributes in ProfilesDictionary.attribute_table. [optional]
repeated int32 attribute_indices = 5;
- // The following fields indicate the resolution of symbolic info.
- bool has_functions = 6;
- bool has_filenames = 7;
- bool has_line_numbers = 8;
- bool has_inline_frames = 9;
}
+// A Stack represents a stack trace as a list of locations.
+message Stack {
+ // References to locations in ProfilesDictionary.location_table.
+ // The first location is the leaf frame.
+ repeated int32 location_indices = 1;
+}
+
// Describes function and line table debug information.
message Location {
// Reference to mapping in ProfilesDictionary.mapping_table.
- // It can be unset if the mapping is unknown or not applicable for
- // this profile type.
- optional int32 mapping_index = 1;
+ // It can be unset / set to 0 if the mapping is unknown or not applicable for
+ // this profile type, as mapping_table[0] is always a 'null' default mapping.
+ 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
@@ -451,15 +467,8 @@
// line[0].function_name == "memcpy"
// line[1].function_name == "printf"
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 = 4;
-
// References to attributes in ProfilesDictionary.attribute_table. [optional]
- repeated int32 attribute_indices = 5;
+ repeated int32 attribute_indices = 4;
}
// Details a specific line in a source code, linked to a function.
@@ -485,3 +494,12 @@
// Line number in source file. 0 means unset.
int64 start_line = 4;
}
+
+// A custom 'dictionary native' style of encoding attributes which is more convenient
+// for profiles than opentelemetry.proto.common.v1.KeyValue
+// Specifically, uses the string table for keys and allows optional unit information.
+message KeyValueAndUnit {
+ int32 key_strindex = 1;
+ opentelemetry.proto.common.v1.AnyValue value = 2;
+ int32 unit_strindex = 3; // zero indicates implicit (by semconv) or non-defined unit.
+}
opentelemetry/proto/resource/v1/resource.proto:
--- shake256:a1e75780e180d4b4f10bb96dd42d8a4fd324e696915ec8f8c055c163f05edcbe25df5784eacad0e0a2ab2e3962ed77b2c7a967a1660c568924f3dcda40e7fdc8 opentelemetry/proto/resource/v1/resource.proto
+++ shake256:05fb1e07ea7163d6f11a9130df52a6bdb4010646c3fbf7c316f52bd8f15f96d18c68dfa1f97b97a25b4451ce9522c4a6f3c94a5a06d18e8dc04767d535971e03 opentelemetry/proto/resource/v1/resource.proto
@@ -29,6 +29,16 @@
// Set of attributes that describe the resource.
// Attribute keys MUST be unique (it is not allowed to have more than one
// attribute with the same key).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 1;
// dropped_attributes_count is the number of dropped attributes. If the value is 0, then
opentelemetry/proto/trace/v1/trace.proto:
--- shake256:50e98809a66bd245d25d10017637d1a89cf70f555c4c2ecb26e79fac30bf6c06c74b0b4004610b7607c57981bee69d7d22d213f46985fdde89a8b0b9a7a27b20 opentelemetry/proto/trace/v1/trace.proto
+++ shake256:7f1794c2328377f0b10d0badf7aad63b752ff9f2e452adea7980b1d145edb3d156aced4588fe6fee203b608ba87d849d2b641affba5d9389083db770177a5086 opentelemetry/proto/trace/v1/trace.proto
@@ -206,10 +206,18 @@
// "example.com/myattribute": true
// "example.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).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 9;
// dropped_attributes_count is the number of attributes that were discarded. Attributes
@@ -230,6 +238,16 @@
// attributes is a collection of attribute key/value pairs on the event.
// Attribute keys MUST be unique (it is not allowed to have more than one
// attribute with the same key).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 3;
// dropped_attributes_count is the number of dropped attributes. If the value is 0,
@@ -262,6 +280,16 @@
// attributes is a collection of attribute key/value pairs on the link.
// Attribute keys MUST be unique (it is not allowed to have more than one
// attribute with the same key).
+ //
+ // The attribute values SHOULD NOT contain empty values.
+ // The attribute values SHOULD NOT contain bytes values.
+ // The attribute values SHOULD NOT contain array values different than array of string values, bool values, int values,
+ // double values.
+ // The attribute values SHOULD NOT contain kvlist values.
+ // The behavior of software that receives attributes containing such values can be unpredictable.
+ // These restrictions can change in a minor release.
+ // The restrictions take origin from the OpenTelemetry specification:
+ // https://github.com/open-telemetry/opentelemetry-specification/blob/v1.47.0/specification/common/README.md#attribute.
repeated opentelemetry.proto.common.v1.KeyValue attributes = 4;
// dropped_attributes_count is the number of dropped attributes. If the value is 0,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This module is a dependency of envoyproxy/envoy, but the only import of the breaking file is the same opentelemetry module itself, so we're good.
New managed modules references found. Please review.