From 6c31e88a2d821ae2dd8cb34ef414ffb936b39004 Mon Sep 17 00:00:00 2001 From: "app-token-modules[bot]" <125905105+app-token-modules[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 08:23:31 -0400 Subject: [PATCH] Found new managed modules references (#522) --- modules/sync/cncf/xds/state.json | 4 + modules/sync/envoyproxy/envoy/state.json | 24 ++ modules/sync/googleapis/googleapis/state.json | 28 ++ .../grpc-ecosystem/grpc-gateway/state.json | 20 + ...4c17b18db756a8b6b24fd2600784d7022c9bca6999 | 14 + ...e09531ea17753b456a734f016a19e6b72e6f859460 | 386 ++++++++++++++++++ ...328a3e9858a16d1710760ea567a00b927c4d8ec2dd | 78 ++++ ...33b9588853ec521d3877b90e33cf5bc7a8d3185f8f | 14 + ...6790053194c44b3c4bbd8a8bc33d4382aaad94cab7 | 191 +++++++++ .../opentelemetry/opentelemetry/state.json | 4 + modules/sync/state.json | 10 +- 11 files changed, 768 insertions(+), 5 deletions(-) create mode 100644 modules/sync/opentelemetry/opentelemetry/cas/285402de4f78e1f36789b1872701bd96221f8397b5c417d3968db4e3e3b89d9393938b0534889b269f8a234c17b18db756a8b6b24fd2600784d7022c9bca6999 create mode 100644 modules/sync/opentelemetry/opentelemetry/cas/81747ed0636b2b3bab6b1506c7785d23080d64245e2e5bc35bf0579bcf833c6931571a28c2293f4ea13b76e09531ea17753b456a734f016a19e6b72e6f859460 create mode 100644 modules/sync/opentelemetry/opentelemetry/cas/ab4cd286c36dc237d7cfd9c852158e2d26e74c7b0cdfee9187f3b6ee6006d1996ae24ac82b20e4f115193b328a3e9858a16d1710760ea567a00b927c4d8ec2dd create mode 100644 modules/sync/opentelemetry/opentelemetry/cas/bc7bd0f10f0786e3646e2ed72895484406446e017a14de5a9f8b7e1f254bfb949a27f584ab5e669b93969233b9588853ec521d3877b90e33cf5bc7a8d3185f8f create mode 100644 modules/sync/opentelemetry/opentelemetry/cas/d8e61b80015c5fd63ffc834b067e285cb02b92cf43e91f53bdf683b002e1c89a58543abec8751b6a21870f6790053194c44b3c4bbd8a8bc33d4382aaad94cab7 diff --git a/modules/sync/cncf/xds/state.json b/modules/sync/cncf/xds/state.json index cbdc0360..83d9b7a2 100644 --- a/modules/sync/cncf/xds/state.json +++ b/modules/sync/cncf/xds/state.json @@ -87,6 +87,10 @@ { "name": "7e7c9eab8450ac0babc38d713e4256e0a26765cb", "digest": "df1ca29fbd59d9fe1af15a0d36b6ee8841c382efe701b1b23ffcb06d106f126ae6ca2600993a3dd3a1b21922ef3b150c017bfb3d1802ccf5230b62af5f3b5db6" + }, + { + "name": "555b57ec207be86f811fb0c04752db6f85e3d7e2", + "digest": "df1ca29fbd59d9fe1af15a0d36b6ee8841c382efe701b1b23ffcb06d106f126ae6ca2600993a3dd3a1b21922ef3b150c017bfb3d1802ccf5230b62af5f3b5db6" } ] } \ No newline at end of file diff --git a/modules/sync/envoyproxy/envoy/state.json b/modules/sync/envoyproxy/envoy/state.json index 5dee7084..f0825384 100644 --- a/modules/sync/envoyproxy/envoy/state.json +++ b/modules/sync/envoyproxy/envoy/state.json @@ -37367,6 +37367,30 @@ { "name": "2abdcaa4ef2bcc0446a56686f02ba5ddb11f27d6", "digest": "035554fc7b6ea10b89c01b6a5a70377a434b4afd57ef411f1bba52642e3935704f12dd587d7713f3bf9e1ad22085d7bfbed2c3f22f54ba8cbfcfa690a62fce7d" + }, + { + "name": "351c8e4c2bdf01d05dad1bdcb0ce79394a302b4e", + "digest": "035554fc7b6ea10b89c01b6a5a70377a434b4afd57ef411f1bba52642e3935704f12dd587d7713f3bf9e1ad22085d7bfbed2c3f22f54ba8cbfcfa690a62fce7d" + }, + { + "name": "a248f13d7c9fccfa779b6e3546f5568a760cef42", + "digest": "035554fc7b6ea10b89c01b6a5a70377a434b4afd57ef411f1bba52642e3935704f12dd587d7713f3bf9e1ad22085d7bfbed2c3f22f54ba8cbfcfa690a62fce7d" + }, + { + "name": "3aa26878b65b97ddead542696204da947d5cfcc6", + "digest": "035554fc7b6ea10b89c01b6a5a70377a434b4afd57ef411f1bba52642e3935704f12dd587d7713f3bf9e1ad22085d7bfbed2c3f22f54ba8cbfcfa690a62fce7d" + }, + { + "name": "e77732b4df9fc8fe9c645b6afdfd175a1f099f93", + "digest": "035554fc7b6ea10b89c01b6a5a70377a434b4afd57ef411f1bba52642e3935704f12dd587d7713f3bf9e1ad22085d7bfbed2c3f22f54ba8cbfcfa690a62fce7d" + }, + { + "name": "e1828f4913da55fd86d89181f529797b02c9bf07", + "digest": "035554fc7b6ea10b89c01b6a5a70377a434b4afd57ef411f1bba52642e3935704f12dd587d7713f3bf9e1ad22085d7bfbed2c3f22f54ba8cbfcfa690a62fce7d" + }, + { + "name": "42bea50f6f8a5fe97105857c7ff522adb0eba080", + "digest": "035554fc7b6ea10b89c01b6a5a70377a434b4afd57ef411f1bba52642e3935704f12dd587d7713f3bf9e1ad22085d7bfbed2c3f22f54ba8cbfcfa690a62fce7d" } ] } \ No newline at end of file diff --git a/modules/sync/googleapis/googleapis/state.json b/modules/sync/googleapis/googleapis/state.json index f64948e4..7a17fb94 100644 --- a/modules/sync/googleapis/googleapis/state.json +++ b/modules/sync/googleapis/googleapis/state.json @@ -11515,6 +11515,34 @@ { "name": "980fda4bd40769be24506eee36eccf8d0c0898a5", "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" + }, + { + "name": "64be76add7caaf889f8a949aff5f5295dfe973dd", + "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" + }, + { + "name": "a5526a09082c5ac94e285c47919f481c1f999dc6", + "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" + }, + { + "name": "0f16abbe51676b83a966ae0787c680d0aaade137", + "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" + }, + { + "name": "fad53ab05d9c341bb78f427aa77fb9cd29a66c21", + "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" + }, + { + "name": "988827ee9ea52cf88691fd79ae430e3293546840", + "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" + }, + { + "name": "087cb30ad13897a7cbe3d44ec3f0486a991dbae4", + "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" + }, + { + "name": "0179dcc4d2b4d7376e7f0292b15c72aab3100dd6", + "digest": "f84a8af6f38f4df52930c0f787b05ab2ae7774947b01ab14b4466a8fe7d81220addfdeaa8f3d49f744be8c8c432073fc92a102db1dcf242280afa7267998850d" } ] } \ No newline at end of file diff --git a/modules/sync/grpc-ecosystem/grpc-gateway/state.json b/modules/sync/grpc-ecosystem/grpc-gateway/state.json index e388d896..ad011581 100644 --- a/modules/sync/grpc-ecosystem/grpc-gateway/state.json +++ b/modules/sync/grpc-ecosystem/grpc-gateway/state.json @@ -4187,6 +4187,26 @@ { "name": "819230f8872559ba5065211a6fde62a1e9671ea5", "digest": "ca527b4cf4830f8627f818662fb2e3f8368c0b1d429511bbc1da9677bf856ddf9e65a1695056486a84d17ce0d18cdddecd9e0f6fc04d5e07a873cfc59897a5ad" + }, + { + "name": "73d2f71c0d9ebe820c151cb5aef0ac24c498349f", + "digest": "ca527b4cf4830f8627f818662fb2e3f8368c0b1d429511bbc1da9677bf856ddf9e65a1695056486a84d17ce0d18cdddecd9e0f6fc04d5e07a873cfc59897a5ad" + }, + { + "name": "ec327b5e7a68fad6494c210dd29f8f0388d20197", + "digest": "ca527b4cf4830f8627f818662fb2e3f8368c0b1d429511bbc1da9677bf856ddf9e65a1695056486a84d17ce0d18cdddecd9e0f6fc04d5e07a873cfc59897a5ad" + }, + { + "name": "5586fc781d8594e74f6bfcf11e72d7b776af279c", + "digest": "ca527b4cf4830f8627f818662fb2e3f8368c0b1d429511bbc1da9677bf856ddf9e65a1695056486a84d17ce0d18cdddecd9e0f6fc04d5e07a873cfc59897a5ad" + }, + { + "name": "e44f33505a22fe4c291525f76504af74709980c6", + "digest": "ca527b4cf4830f8627f818662fb2e3f8368c0b1d429511bbc1da9677bf856ddf9e65a1695056486a84d17ce0d18cdddecd9e0f6fc04d5e07a873cfc59897a5ad" + }, + { + "name": "21355b478764e2a122e8534c8d581274a97e38a4", + "digest": "ca527b4cf4830f8627f818662fb2e3f8368c0b1d429511bbc1da9677bf856ddf9e65a1695056486a84d17ce0d18cdddecd9e0f6fc04d5e07a873cfc59897a5ad" } ] } \ No newline at end of file diff --git a/modules/sync/opentelemetry/opentelemetry/cas/285402de4f78e1f36789b1872701bd96221f8397b5c417d3968db4e3e3b89d9393938b0534889b269f8a234c17b18db756a8b6b24fd2600784d7022c9bca6999 b/modules/sync/opentelemetry/opentelemetry/cas/285402de4f78e1f36789b1872701bd96221f8397b5c417d3968db4e3e3b89d9393938b0534889b269f8a234c17b18db756a8b6b24fd2600784d7022c9bca6999 new file mode 100644 index 00000000..f61c7eef --- /dev/null +++ b/modules/sync/opentelemetry/opentelemetry/cas/285402de4f78e1f36789b1872701bd96221f8397b5c417d3968db4e3e3b89d9393938b0534889b269f8a234c17b18db756a8b6b24fd2600784d7022c9bca6999 @@ -0,0 +1,14 @@ +shake256:faedd41bb62749fa9e3e87f183fe58065f0d4ccf60e4d347727c04544ccdd08a43f1703d8f2cd31613fe1a767d63c33b280f34df99eda6ad2b25dfec4c4ead81 LICENSE +shake256:bc7bd0f10f0786e3646e2ed72895484406446e017a14de5a9f8b7e1f254bfb949a27f584ab5e669b93969233b9588853ec521d3877b90e33cf5bc7a8d3185f8f buf.md +shake256:129b5bb5b6320c82c55be1b47431cec3bb560b65fef63a6e4e86ee083fd3778bb18673f7bf8811e51bf28e1fad3f5a7b4a0cbbd99d26f7bb5248a2ee51de3dce buf.yaml +shake256:b73acd27791f9b50f3d87a9e0334a0cb92d01916f0d9092ac14afc0c399086031bd487ff089ef2b46c868da3ac7d5a9dc04c3a31d8ed7793a555c36865844262 opentelemetry/proto/collector/logs/v1/logs_service.proto +shake256:93ea860157923fd5d909df1d3874c8cd40a1122fa38a750e1001c1a7d67fb977b87cd3ca5ae3aad7a71261b02334b2d0b63db6932cd9b5ab085968948d05cdf2 opentelemetry/proto/collector/metrics/v1/metrics_service.proto +shake256:ab4cd286c36dc237d7cfd9c852158e2d26e74c7b0cdfee9187f3b6ee6006d1996ae24ac82b20e4f115193b328a3e9858a16d1710760ea567a00b927c4d8ec2dd opentelemetry/proto/collector/profiles/v1experimental/profiles_service.proto +shake256:f50ca854c89c90f4a067851061b2ec0a432d1f4df066fcff5bab89d9533141ea64a2be67fef5c0701e5f43503f795151a77bdd97f5881d30a1b8d322a4536960 opentelemetry/proto/collector/trace/v1/trace_service.proto +shake256:137b184847e113c546c6248699d66ab06ea820f7f560dd992aeab008487d4ab7b1a3374c05d3aa3764b1d0457b2aca7021a2ca428915fdb6183dccc16c5a7c30 opentelemetry/proto/common/v1/common.proto +shake256:99a13e6b1366246dfe45b749d5d42c2fad0cb320cc23a809cb19656462a59398c8c8f37cdba21eddce2e71d5e926e7754b7d3e0b4f79a4ab6e055149c24e6b4d opentelemetry/proto/logs/v1/logs.proto +shake256:a2bc581f74c74b6b71a4d0f76811dcb461747ffaf29c204e57af2d0c6763cf8344940b1647733d2ab92bbc29621c78ab7a08f4c3899cbb45141f26ac02eb83c9 opentelemetry/proto/metrics/v1/metrics.proto +shake256:81747ed0636b2b3bab6b1506c7785d23080d64245e2e5bc35bf0579bcf833c6931571a28c2293f4ea13b76e09531ea17753b456a734f016a19e6b72e6f859460 opentelemetry/proto/profiles/v1experimental/pprofextended.proto +shake256:d8e61b80015c5fd63ffc834b067e285cb02b92cf43e91f53bdf683b002e1c89a58543abec8751b6a21870f6790053194c44b3c4bbd8a8bc33d4382aaad94cab7 opentelemetry/proto/profiles/v1experimental/profiles.proto +shake256:fda2ae5270f46f199ad51603de3ad0fcfe9ad26bf7837afe646b843b1e85b6b14b908a8124f13925e9df7a6bde364d50f832bf50ea0f652e660d7b74c3611939 opentelemetry/proto/resource/v1/resource.proto +shake256:ff63d05a56039ac7ea25f14ca7de8e21c88382298da279f0b144915d3b10f33a451f6145162c6ab8c7c3473972c761128efc4613ed39683faf316172a1f90fa7 opentelemetry/proto/trace/v1/trace.proto diff --git a/modules/sync/opentelemetry/opentelemetry/cas/81747ed0636b2b3bab6b1506c7785d23080d64245e2e5bc35bf0579bcf833c6931571a28c2293f4ea13b76e09531ea17753b456a734f016a19e6b72e6f859460 b/modules/sync/opentelemetry/opentelemetry/cas/81747ed0636b2b3bab6b1506c7785d23080d64245e2e5bc35bf0579bcf833c6931571a28c2293f4ea13b76e09531ea17753b456a734f016a19e6b72e6f859460 new file mode 100644 index 00000000..bd300835 --- /dev/null +++ b/modules/sync/opentelemetry/opentelemetry/cas/81747ed0636b2b3bab6b1506c7785d23080d64245e2e5bc35bf0579bcf833c6931571a28c2293f4ea13b76e09531ea17753b456a734f016a19e6b72e6f859460 @@ -0,0 +1,386 @@ +// 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. +// +// 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. + +// Profile is a common stacktrace profile format. +// +// Measurements represented with this format should follow the +// following conventions: +// +// - Consumers should treat unset optional fields as if they had been +// set with their default value. +// +// - When possible, measurements should be stored in "unsampled" form +// 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 +// 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 +// 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. + +syntax = "proto3"; + +package opentelemetry.proto.profiles.v1experimental; + +import "opentelemetry/proto/common/v1/common.proto"; + +option csharp_namespace = "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. +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"]] + // 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; + // The set of samples recorded in this 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; + // Locations referenced by samples via location_indices. + repeated Location location = 4; + // Array of locations referenced by samples. + repeated int64 location_indices = 15; + // Functions referenced by locations. + repeated Function function = 5; + // Lookup table for attributes. + repeated opentelemetry.proto.common.v1.KeyValue attribute_table = 16; + // Represents a mapping between Attribute Keys and Units. + repeated AttributeUnit attribute_units = 17; + // Lookup table for links. + repeated Link link_table = 18; + // 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 + // interpretation of results. + + // Time of collection (UTC) represented as nanoseconds past the epoch. + int64 time_nanos = 9; + // Duration of the profile, if a duration makes sense. + int64 duration_nanos = 10; + // The kind of events between sampled occurrences. + // e.g [ "cpu","cycles" ] or [ "heap","bytes" ] + ValueType period_type = 11; + // The number of events between sampled occurrences. + int64 period = 12; + // 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. + // 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; +} + +// Represents a mapping between Attribute Keys and Units. +message AttributeUnit { + // Index into string table. + int64 attribute_key = 1; + // Index into string table. + int64 unit = 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 { + // A unique identifier of a trace that this linked span is part of. The ID is a + // 16-byte array. + bytes trace_id = 1; + + // A unique identifier for the linked span. The ID is an 8-byte array. + bytes span_id = 2; +} + +// Specifies the method of aggregating metric values, either DELTA (change since last report) +// or CUMULATIVE (total since a fixed start time). +enum AggregationTemporality { + /* UNSPECIFIED is the default AggregationTemporality, it MUST not be used. */ + AGGREGATION_TEMPORALITY_UNSPECIFIED = 0; + + /** DELTA is an AggregationTemporality for a profiler which reports + changes since last report time. Successive metrics contain aggregation of + values from continuous and non-overlapping intervals. + + The values for a DELTA metric are based only on the time interval + associated with one measurement cycle. There is no dependency on + previous measurements like is the case for CUMULATIVE metrics. + + For example, consider a system measuring the number of requests that + it receives and reports the sum of these requests every second as a + DELTA metric: + + 1. The system starts receiving at time=t_0. + 2. A request is received, the system measures 1 request. + 3. A request is received, the system measures 1 request. + 4. A request is received, the system measures 1 request. + 5. The 1 second collection cycle ends. A metric is exported for the + number of requests received over the interval of time t_0 to + t_0+1 with a value of 3. + 6. A request is received, the system measures 1 request. + 7. A request is received, the system measures 1 request. + 8. The 1 second collection cycle ends. A metric is exported for the + number of requests received over the interval of time t_0+1 to + t_0+2 with a value of 2. */ + AGGREGATION_TEMPORALITY_DELTA = 1; + + /** CUMULATIVE is an AggregationTemporality for a profiler which + reports changes since a fixed start time. This means that current values + of a CUMULATIVE metric depend on all previous measurements since the + start time. Because of this, the sender is required to retain this state + in some form. If this state is lost or invalidated, the CUMULATIVE metric + values MUST be reset and a new fixed start time following the last + reported measurement time sent MUST be used. + + For example, consider a system measuring the number of requests that + it receives and reports the sum of these requests every second as a + CUMULATIVE metric: + + 1. The system starts receiving at time=t_0. + 2. A request is received, the system measures 1 request. + 3. A request is received, the system measures 1 request. + 4. A request is received, the system measures 1 request. + 5. The 1 second collection cycle ends. A metric is exported for the + number of requests received over the interval of time t_0 to + t_0+1 with a value of 3. + 6. A request is received, the system measures 1 request. + 7. A request is received, the system measures 1 request. + 8. The 1 second collection cycle ends. A metric is exported for the + number of requests received over the interval of time t_0 to + t_0+2 with a value of 5. + 9. The system experiences a fault and loses state. + 10. The system recovers and resumes receiving at time=t_1. + 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. + + Note: Even though, when reporting changes since last report time, using + CUMULATIVE is valid, it is not recommended. */ + AGGREGATION_TEMPORALITY_CUMULATIVE = 2; +} + +// 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. + + 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. +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. + // 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; + // 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; + // References to attributes in Profile.attribute_table. [optional] + repeated uint64 attributes = 10; + + // Reference to link in Profile.link_table. [optional] + uint64 link = 12; + + // 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; +} + +// 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 + + // At most one of the following must be present + int64 str = 2; // Index into string table + int64 num = 3; + + // Should only be present when num is present. + // Specifies the units of num. + // Use arbitrary string (for example, "requests") as a custom count unit. + // If no unit is specified, consumer may apply heuristic to deduce the unit. + // 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; +} + +// 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; + // The limit of the address range occupied by this mapping. + uint64 memory_limit = 3; + // Offset in the binary that corresponds to the first mapped address. + uint64 file_offset = 4; + // 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; + // References to attributes in Profile.attribute_table. [optional] + repeated uint64 attributes = 12; + // 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; +} + +// 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. + // It can be unset if the mapping is unknown or not applicable for + // this profile type. + uint64 mapping_index = 2; + // 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; + // Multiple line indicates this location has inlined functions, + // where the last entry represents the caller into which the + // preceding entries were inlined. + // + // E.g., if memcpy() is inlined into printf: + // line[0].function_name == "memcpy" + // line[1].function_name == "printf" + repeated Line line = 4; + // 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; + + // References to attributes in Profile.attribute_table. [optional] + repeated uint64 attributes = 7; +} + +// 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; + // Line number in source code. + int64 line = 2; + // Column number in source code. + int64 column = 3; +} + +// 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 + // 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 + // Source file containing the function. + int64 filename = 4; // Index into string table + // Line number in source file. + int64 start_line = 5; +} diff --git a/modules/sync/opentelemetry/opentelemetry/cas/ab4cd286c36dc237d7cfd9c852158e2d26e74c7b0cdfee9187f3b6ee6006d1996ae24ac82b20e4f115193b328a3e9858a16d1710760ea567a00b927c4d8ec2dd b/modules/sync/opentelemetry/opentelemetry/cas/ab4cd286c36dc237d7cfd9c852158e2d26e74c7b0cdfee9187f3b6ee6006d1996ae24ac82b20e4f115193b328a3e9858a16d1710760ea567a00b927c4d8ec2dd new file mode 100644 index 00000000..d0e7894b --- /dev/null +++ b/modules/sync/opentelemetry/opentelemetry/cas/ab4cd286c36dc237d7cfd9c852158e2d26e74c7b0cdfee9187f3b6ee6006d1996ae24ac82b20e4f115193b328a3e9858a16d1710760ea567a00b927c4d8ec2dd @@ -0,0 +1,78 @@ +// 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.collector.profiles.v1experimental; + +import "opentelemetry/proto/profiles/v1experimental/profiles.proto"; + +option csharp_namespace = "OpenTelemetry.Proto.Collector.Profiles.V1Experimental"; +option java_multiple_files = true; +option java_package = "io.opentelemetry.proto.collector.profiles.v1experimental"; +option java_outer_classname = "ProfilesServiceProto"; +option go_package = "go.opentelemetry.io/proto/otlp/collector/profiles/v1experimental"; + +// 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. +service ProfilesService { + // For performance reasons, it is recommended to keep this RPC + // alive for the entire life of the application. + rpc Export(ExportProfilesServiceRequest) returns (ExportProfilesServiceResponse) {} +} + +message ExportProfilesServiceRequest { + // An array of ResourceProfiles. + // For data coming from a single resource this array will typically contain one + // 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; +} + +message ExportProfilesServiceResponse { + // The details of a partially successful export request. + // + // If the request is only partially accepted + // (i.e. when the server accepts only parts of the data and rejects the rest) + // the server MUST initialize the `partial_success` field and MUST + // set the `rejected_` with the number of items it rejected. + // + // Servers MAY also make use of the `partial_success` field to convey + // warnings/suggestions to senders even when the request was fully accepted. + // In such cases, the `rejected_` MUST have a value of `0` and + // the `error_message` MUST be non-empty. + // + // A `partial_success` message with an empty value (rejected_ = 0 and + // `error_message` = "") is equivalent to it not being set/present. Senders + // SHOULD interpret it the same way as in the full success case. + ExportProfilesPartialSuccess partial_success = 1; +} + +message ExportProfilesPartialSuccess { + // The number of rejected profiles. + // + // A `rejected_` field holding a `0` value indicates that the + // request was fully accepted. + int64 rejected_profiles = 1; + + // A developer-facing human-readable message in English. It should be used + // either to explain why the server rejected parts of the data during a partial + // success or to convey warnings/suggestions during a full success. The message + // should offer guidance on how users can address such issues. + // + // error_message is an optional field. An error_message with an empty value + // is equivalent to it not being set. + string error_message = 2; +} diff --git a/modules/sync/opentelemetry/opentelemetry/cas/bc7bd0f10f0786e3646e2ed72895484406446e017a14de5a9f8b7e1f254bfb949a27f584ab5e669b93969233b9588853ec521d3877b90e33cf5bc7a8d3185f8f b/modules/sync/opentelemetry/opentelemetry/cas/bc7bd0f10f0786e3646e2ed72895484406446e017a14de5a9f8b7e1f254bfb949a27f584ab5e669b93969233b9588853ec521d3877b90e33cf5bc7a8d3185f8f new file mode 100644 index 00000000..b308b624 --- /dev/null +++ b/modules/sync/opentelemetry/opentelemetry/cas/bc7bd0f10f0786e3646e2ed72895484406446e017a14de5a9f8b7e1f254bfb949a27f584ab5e669b93969233b9588853ec521d3877b90e33cf5bc7a8d3185f8f @@ -0,0 +1,14 @@ +**This is a third-party repository managed by Buf.** + +Updates to the [source repository](https://github.com/open-telemetry/opentelemetry-proto) are +automatically synced on a periodic basis, and each BSR commit is tagged with corresponding Git +commits. + +To depend on a specific Git commit, you can use it as your reference in your dependencies: + +``` +deps: + - buf.build/opentelemetry/opentelemetry: +``` + +For more information, see the [documentation](https://buf.build/docs/bsr/overview). diff --git a/modules/sync/opentelemetry/opentelemetry/cas/d8e61b80015c5fd63ffc834b067e285cb02b92cf43e91f53bdf683b002e1c89a58543abec8751b6a21870f6790053194c44b3c4bbd8a8bc33d4382aaad94cab7 b/modules/sync/opentelemetry/opentelemetry/cas/d8e61b80015c5fd63ffc834b067e285cb02b92cf43e91f53bdf683b002e1c89a58543abec8751b6a21870f6790053194c44b3c4bbd8a8bc33d4382aaad94cab7 new file mode 100644 index 00000000..bbc2b293 --- /dev/null +++ b/modules/sync/opentelemetry/opentelemetry/cas/d8e61b80015c5fd63ffc834b067e285cb02b92cf43e91f53bdf683b002e1c89a58543abec8751b6a21870f6790053194c44b3c4bbd8a8bc33d4382aaad94cab7 @@ -0,0 +1,191 @@ +// 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 │ +// └──────────────────┘ +// │ 1-n +// │ 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/modules/sync/opentelemetry/opentelemetry/state.json b/modules/sync/opentelemetry/opentelemetry/state.json index 09ab1a90..0af29349 100644 --- a/modules/sync/opentelemetry/opentelemetry/state.json +++ b/modules/sync/opentelemetry/opentelemetry/state.json @@ -723,6 +723,10 @@ { "name": "342e1d4c3a1fe43312823ffb53bd38327f263059", "digest": "c82a28903e9c05216bca442cd75378c82f6736515ab689f7f19bdff6589ba96c2f2b60b1f0489d03b4402e9380fecafc0481c3c1e9173477c684e5001c6cc826" + }, + { + "name": "4b60b81ef7820dd49176103836e3d518113e1412", + "digest": "285402de4f78e1f36789b1872701bd96221f8397b5c417d3968db4e3e3b89d9393938b0534889b269f8a234c17b18db756a8b6b24fd2600784d7022c9bca6999" } ] } \ No newline at end of file diff --git a/modules/sync/state.json b/modules/sync/state.json index c6085a07..f97e181e 100644 --- a/modules/sync/state.json +++ b/modules/sync/state.json @@ -18,11 +18,11 @@ }, { "module_name": "cncf/xds", - "latest_reference": "7e7c9eab8450ac0babc38d713e4256e0a26765cb" + "latest_reference": "555b57ec207be86f811fb0c04752db6f85e3d7e2" }, { "module_name": "envoyproxy/envoy", - "latest_reference": "2abdcaa4ef2bcc0446a56686f02ba5ddb11f27d6" + "latest_reference": "42bea50f6f8a5fe97105857c7ff522adb0eba080" }, { "module_name": "envoyproxy/protoc-gen-validate", @@ -38,7 +38,7 @@ }, { "module_name": "googleapis/googleapis", - "latest_reference": "980fda4bd40769be24506eee36eccf8d0c0898a5" + "latest_reference": "0179dcc4d2b4d7376e7f0292b15c72aab3100dd6" }, { "module_name": "googlechrome/lighthouse", @@ -50,7 +50,7 @@ }, { "module_name": "grpc-ecosystem/grpc-gateway", - "latest_reference": "819230f8872559ba5065211a6fde62a1e9671ea5" + "latest_reference": "21355b478764e2a122e8534c8d581274a97e38a4" }, { "module_name": "grpc/grpc", @@ -62,7 +62,7 @@ }, { "module_name": "opentelemetry/opentelemetry", - "latest_reference": "342e1d4c3a1fe43312823ffb53bd38327f263059" + "latest_reference": "4b60b81ef7820dd49176103836e3d518113e1412" }, { "module_name": "prometheus/client-model",