Skip to content

Commit

Permalink
Revert "Remove deprecated messages and fields from metrics (open-tele…
Browse files Browse the repository at this point in the history
…metry#342)"

This reverts commit 8ba33cc.
  • Loading branch information
MikeGoldsmith authored and VinozzZ committed Jun 21, 2024
1 parent b3060d2 commit c4e974c
Showing 1 changed file with 218 additions and 14 deletions.
232 changes: 218 additions & 14 deletions opentelemetry/proto/metrics/v1/metrics.proto
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,7 @@ message ScopeMetrics {
// when the start time is truly unknown, setting StartTimeUnixNano is
// strongly encouraged.
message Metric {
reserved 4, 6, 8;

// name of the metric.
// name of the metric, including its DNS name prefix. It must be unique.
string name = 1;

// description of the metric, which can be used in documentation.
Expand All @@ -182,8 +180,28 @@ message Metric {
// reported value type for the data points, as well as the relatationship to
// the time interval over which they are reported.
oneof data {
// IntGauge and IntSum are deprecated and will be removed soon.
// 1. Old senders and receivers that are not aware of this change will
// continue using the `int_gauge` and `int_sum` fields.
// 2. New senders, which are aware of this change MUST send only `gauge`
// and `sum` fields.
// 3. New receivers, which are aware of this change MUST convert these into
// `gauge` and `sum` by using the provided as_int field in the oneof values.
// This field will be removed in ~3 months, on July 1, 2021.
IntGauge int_gauge = 4 [deprecated = true];
Gauge gauge = 5;
// This field will be removed in ~3 months, on July 1, 2021.
IntSum int_sum = 6 [deprecated = true];
Sum sum = 7;

// IntHistogram is deprecated and will be removed soon.
// 1. Old senders and receivers that are not aware of this change will
// continue using the `int_histogram` field.
// 2. New senders, which are aware of this change MUST send only `histogram`.
// 3. New receivers, which are aware of this change MUST convert this into
// `histogram` by simply converting all int64 values into float.
// This field will be removed in ~3 months, on July 1, 2021.
IntHistogram int_histogram = 8 [deprecated = true];
Histogram histogram = 9;
ExponentialHistogram exponential_histogram = 10;
Summary summary = 11;
Expand Down Expand Up @@ -349,14 +367,22 @@ enum DataPointFlags {
// NumberDataPoint is a single data point in a timeseries that describes the
// time-varying scalar value of a metric.
message NumberDataPoint {
reserved 1;

// The set of key/value pairs that uniquely identify the timeseries from
// 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).
repeated opentelemetry.proto.common.v1.KeyValue attributes = 7;

// Labels is deprecated and will be removed soon.
// 1. Old senders and receivers that are not aware of this change will
// continue using the `labels` field.
// 2. New senders, which are aware of this change MUST send only `attributes`.
// 3. New receivers, which are aware of this change MUST convert this into
// `labels` by simply converting all int64 values into float.
//
// This field will be removed in ~3 months, on July 1, 2021.
repeated opentelemetry.proto.common.v1.StringKeyValue labels = 1 [deprecated = true];

// StartTimeUnixNano is optional but strongly encouraged, see the
// the detailed comments above Metric.
//
Expand Down Expand Up @@ -397,14 +423,22 @@ message NumberDataPoint {
// "explicit_bounds" and "bucket_counts" must be omitted and only "count" and
// "sum" are known.
message HistogramDataPoint {
reserved 1;

// The set of key/value pairs that uniquely identify the timeseries from
// 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).
repeated opentelemetry.proto.common.v1.KeyValue attributes = 9;

// Labels is deprecated and will be removed soon.
// 1. Old senders and receivers that are not aware of this change will
// continue using the `labels` field.
// 2. New senders, which are aware of this change MUST send only `attributes`.
// 3. New receivers, which are aware of this change MUST convert this into
// `labels` by simply converting all int64 values into float.
//
// This field will be removed in ~3 months, on July 1, 2021.
repeated opentelemetry.proto.common.v1.StringKeyValue labels = 1 [deprecated = true];

// StartTimeUnixNano is optional but strongly encouraged, see the
// the detailed comments above Metric.
//
Expand Down Expand Up @@ -511,7 +545,7 @@ message ExponentialHistogramDataPoint {
// doing so. This is specifically to enforce compatibility w/ OpenMetrics,
// see: https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#histogram
optional double sum = 5;

// scale describes the resolution of the histogram. Boundaries are
// located at powers of the base, where:
//
Expand Down Expand Up @@ -549,7 +583,7 @@ message ExponentialHistogramDataPoint {
// of counts.
message Buckets {
// Offset is the bucket index of the first entry in the bucket_counts array.
//
//
// Note: This uses a varint encoding as a simple form of compression.
sint32 offset = 1;

Expand All @@ -563,7 +597,7 @@ message ExponentialHistogramDataPoint {
// especially zeros, so uint64 has been selected to ensure
// varint encoding.
repeated uint64 bucket_counts = 2;
}
}

// Flags that apply to this specific data point. See DataPointFlags
// for the available flags and their meaning.
Expand Down Expand Up @@ -591,14 +625,22 @@ message ExponentialHistogramDataPoint {
// SummaryDataPoint is a single data point in a timeseries that describes the
// time-varying values of a Summary metric.
message SummaryDataPoint {
reserved 1;

// The set of key/value pairs that uniquely identify the timeseries from
// 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).
repeated opentelemetry.proto.common.v1.KeyValue attributes = 7;

// Labels is deprecated and will be removed soon.
// 1. Old senders and receivers that are not aware of this change will
// continue using the `labels` field.
// 2. New senders, which are aware of this change MUST send only `attributes`.
// 3. New receivers, which are aware of this change MUST convert this into
// `labels` by simply converting all int64 values into float.
//
// This field will be removed in ~3 months, on July 1, 2021.
repeated opentelemetry.proto.common.v1.StringKeyValue labels = 1 [deprecated = true];

// StartTimeUnixNano is optional but strongly encouraged, see the
// the detailed comments above Metric.
//
Expand Down Expand Up @@ -658,13 +700,22 @@ message SummaryDataPoint {
// was recorded, for example the span and trace ID of the active span when the
// exemplar was recorded.
message Exemplar {
reserved 1;

// The set of key/value pairs that were filtered out by the aggregator, but
// recorded alongside the original measurement. Only key/value pairs that were
// filtered out by the aggregator should be included
repeated opentelemetry.proto.common.v1.KeyValue filtered_attributes = 7;

// Labels is deprecated and will be removed soon.
// 1. Old senders and receivers that are not aware of this change will
// continue using the `filtered_labels` field.
// 2. New senders, which are aware of this change MUST send only
// `filtered_attributes`.
// 3. New receivers, which are aware of this change MUST convert this into
// `filtered_labels` by simply converting all int64 values into float.
//
// This field will be removed in ~3 months, on July 1, 2021.
repeated opentelemetry.proto.common.v1.StringKeyValue filtered_labels = 1 [deprecated = true];

// time_unix_nano is the exact time when this exemplar was recorded
//
// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
Expand All @@ -689,3 +740,156 @@ message Exemplar {
// or if the trace is not sampled.
bytes trace_id = 5;
}

//
// Move deprecated messages below this line
//

// IntDataPoint is deprecated. Use integer value in NumberDataPoint.
message IntDataPoint {
option deprecated = true;

// The set of labels that uniquely identify this timeseries.
repeated opentelemetry.proto.common.v1.StringKeyValue labels = 1;

// StartTimeUnixNano is optional but strongly encouraged, see the
// the detailed comments above Metric.
//
// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
// 1970.
fixed64 start_time_unix_nano = 2;

// TimeUnixNano is required, see the detailed comments above Metric.
//
// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
// 1970.
fixed64 time_unix_nano = 3;

// value itself.
sfixed64 value = 4;

// (Optional) List of exemplars collected from
// measurements that were used to form the data point
repeated IntExemplar exemplars = 5;
}

// IntGauge is deprecated. Use Gauge with an integer value in NumberDataPoint.
message IntGauge {
option deprecated = true;

repeated IntDataPoint data_points = 1;
}

// IntSum is deprecated. Use Sum with an integer value in NumberDataPoint.
message IntSum {
option deprecated = true;

repeated IntDataPoint data_points = 1;

// aggregation_temporality describes if the aggregator reports delta changes
// since last report time, or cumulative changes since a fixed start time.
AggregationTemporality aggregation_temporality = 2;

// If "true" means that the sum is monotonic.
bool is_monotonic = 3;
}

// IntHistogramDataPoint is deprecated; use HistogramDataPoint.
message IntHistogramDataPoint {
option deprecated = true;

// The set of labels that uniquely identify this timeseries.
repeated opentelemetry.proto.common.v1.StringKeyValue labels = 1;

// StartTimeUnixNano is optional but strongly encouraged, see the
// the detailed comments above Metric.
//
// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
// 1970.
fixed64 start_time_unix_nano = 2;

// TimeUnixNano is required, see the detailed comments above Metric.
//
// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
// 1970.
fixed64 time_unix_nano = 3;

// count is the number of values in the population. Must be non-negative. This
// value must be equal to the sum of the "count" fields in buckets if a
// histogram is provided.
fixed64 count = 4;

// sum of the values in the population. If count is zero then this field
// must be zero. This value must be equal to the sum of the "sum" fields in
// buckets if a histogram is provided.
sfixed64 sum = 5;

// bucket_counts is an optional field contains the count values of histogram
// for each bucket.
//
// The sum of the bucket_counts must equal the value in the count field.
//
// The number of elements in bucket_counts array must be by one greater than
// the number of elements in explicit_bounds array.
repeated fixed64 bucket_counts = 6;

// explicit_bounds specifies buckets with explicitly defined bounds for values.
//
// The boundaries for bucket at index i are:
//
// (-infinity, explicit_bounds[i]] for i == 0
// (explicit_bounds[i-1], explicit_bounds[i]] for 0 < i < size(explicit_bounds)
// (explicit_bounds[i-1], +infinity) for i == size(explicit_bounds)
//
// The values in the explicit_bounds array must be strictly increasing.
//
// Histogram buckets are inclusive of their upper boundary, except the last
// bucket where the boundary is at infinity. This format is intentionally
// compatible with the OpenMetrics histogram definition.
repeated double explicit_bounds = 7;

// (Optional) List of exemplars collected from
// measurements that were used to form the data point
repeated IntExemplar exemplars = 8;
}

// IntHistogram is deprecated, replaced by Histogram points using double-
// valued exemplars.
message IntHistogram {
option deprecated = true;

repeated IntHistogramDataPoint data_points = 1;

// aggregation_temporality describes if the aggregator reports delta changes
// since last report time, or cumulative changes since a fixed start time.
AggregationTemporality aggregation_temporality = 2;
}

// IntExemplar is deprecated. Use Exemplar with as_int for value
message IntExemplar {
option deprecated = true;

// The set of labels that were filtered out by the aggregator, but recorded
// alongside the original measurement. Only labels that were filtered out
// by the aggregator should be included
repeated opentelemetry.proto.common.v1.StringKeyValue filtered_labels = 1;

// time_unix_nano is the exact time when this exemplar was recorded
//
// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
// 1970.
fixed64 time_unix_nano = 2;

// Numerical int value of the measurement that was recorded.
sfixed64 value = 3;

// (Optional) Span ID of the exemplar trace.
// span_id may be missing if the measurement is not recorded inside a trace
// or if the trace is not sampled.
bytes span_id = 4;

// (Optional) Trace ID of the exemplar trace.
// trace_id may be missing if the measurement is not recorded inside a trace
// or if the trace is not sampled.
bytes trace_id = 5;
}

0 comments on commit c4e974c

Please sign in to comment.