Skip to content

Commit 2ff124c

Browse files
authored
Merge branch 'main' into cijothomas/fix-hash
2 parents a1e1307 + 10456d4 commit 2ff124c

13 files changed

+69
-0
lines changed

opentelemetry-proto/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## vNext
44

5+
### Added
6+
7+
- Add `schemars::JsonSchema` trait support with `with-schemars` feature (#1419)
8+
59
## v0.4.0
610

711
### Added

opentelemetry-proto/Cargo.toml

+2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ logs = ["opentelemetry/logs", "opentelemetry_sdk/logs"]
4141
zpages = ["trace"]
4242

4343
# add ons
44+
with-schemars = ["schemars"]
4445
with-serde = ["serde"]
4546

4647
[dependencies]
@@ -49,6 +50,7 @@ tonic = { version = "0.9.0", default-features = false, optional = true, features
4950
prost = { version = "0.11.0", optional = true }
5051
opentelemetry = { version = "0.21", default-features = false, path = "../opentelemetry" }
5152
opentelemetry_sdk = { version = "0.21", default-features = false, path = "../opentelemetry-sdk" }
53+
schemars = { version = "0.8", optional = true }
5254
serde = { version = "1.0", optional = true, features = ["serde_derive"] }
5355

5456
[dev-dependencies]

opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.logs.v1.rs

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
12
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
23
#[allow(clippy::derive_partial_eq_without_eq)]
34
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -12,6 +13,7 @@ pub struct ExportLogsServiceRequest {
1213
super::super::super::logs::v1::ResourceLogs,
1314
>,
1415
}
16+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
1517
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
1618
#[allow(clippy::derive_partial_eq_without_eq)]
1719
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -34,6 +36,7 @@ pub struct ExportLogsServiceResponse {
3436
#[prost(message, optional, tag = "1")]
3537
pub partial_success: ::core::option::Option<ExportLogsPartialSuccess>,
3638
}
39+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
3740
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
3841
#[allow(clippy::derive_partial_eq_without_eq)]
3942
#[derive(Clone, PartialEq, ::prost::Message)]

opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.metrics.v1.rs

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
12
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
23
#[allow(clippy::derive_partial_eq_without_eq)]
34
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -12,6 +13,7 @@ pub struct ExportMetricsServiceRequest {
1213
super::super::super::metrics::v1::ResourceMetrics,
1314
>,
1415
}
16+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
1517
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
1618
#[allow(clippy::derive_partial_eq_without_eq)]
1719
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -34,6 +36,7 @@ pub struct ExportMetricsServiceResponse {
3436
#[prost(message, optional, tag = "1")]
3537
pub partial_success: ::core::option::Option<ExportMetricsPartialSuccess>,
3638
}
39+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
3740
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
3841
#[allow(clippy::derive_partial_eq_without_eq)]
3942
#[derive(Clone, PartialEq, ::prost::Message)]

opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.trace.v1.rs

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
12
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
23
#[allow(clippy::derive_partial_eq_without_eq)]
34
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -12,6 +13,7 @@ pub struct ExportTraceServiceRequest {
1213
super::super::super::trace::v1::ResourceSpans,
1314
>,
1415
}
16+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
1517
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
1618
#[allow(clippy::derive_partial_eq_without_eq)]
1719
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -34,6 +36,7 @@ pub struct ExportTraceServiceResponse {
3436
#[prost(message, optional, tag = "1")]
3537
pub partial_success: ::core::option::Option<ExportTracePartialSuccess>,
3638
}
39+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
3740
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
3841
#[allow(clippy::derive_partial_eq_without_eq)]
3942
#[derive(Clone, PartialEq, ::prost::Message)]

opentelemetry-proto/src/proto/tonic/opentelemetry.proto.common.v1.rs

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/// AnyValue is used to represent any type of attribute value. AnyValue may contain a
22
/// primitive value such as a string or integer or it may contain an arbitrary nested
33
/// object containing arrays, key-value lists and primitives.
4+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
45
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
56
#[allow(clippy::derive_partial_eq_without_eq)]
67
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -14,6 +15,7 @@ pub struct AnyValue {
1415
pub mod any_value {
1516
/// The value is one of the listed fields. It is valid for all values to be unspecified
1617
/// in which case this AnyValue is considered to be "empty".
18+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
1719
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
1820
#[allow(clippy::derive_partial_eq_without_eq)]
1921
#[derive(Clone, PartialEq, ::prost::Oneof)]
@@ -36,6 +38,7 @@ pub mod any_value {
3638
}
3739
/// ArrayValue is a list of AnyValue messages. We need ArrayValue as a message
3840
/// since oneof in AnyValue does not allow repeated fields.
41+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
3942
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
4043
#[allow(clippy::derive_partial_eq_without_eq)]
4144
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -49,6 +52,7 @@ pub struct ArrayValue {
4952
/// a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to
5053
/// avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches
5154
/// are semantically equivalent.
55+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
5256
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
5357
#[allow(clippy::derive_partial_eq_without_eq)]
5458
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -62,6 +66,7 @@ pub struct KeyValueList {
6266
}
6367
/// KeyValue is a key-value pair that is used to store Span attributes, Link
6468
/// attributes, etc.
69+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
6570
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
6671
#[allow(clippy::derive_partial_eq_without_eq)]
6772
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -73,6 +78,7 @@ pub struct KeyValue {
7378
}
7479
/// InstrumentationScope is a message representing the instrumentation scope information
7580
/// such as the fully qualified name and version.
81+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
7682
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
7783
#[allow(clippy::derive_partial_eq_without_eq)]
7884
#[derive(Clone, PartialEq, ::prost::Message)]

opentelemetry-proto/src/proto/tonic/opentelemetry.proto.logs.v1.rs

+6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
///
99
/// When new fields are added into this message, the OTLP request MUST be updated
1010
/// as well.
11+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
1112
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
1213
#[allow(clippy::derive_partial_eq_without_eq)]
1314
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -21,6 +22,7 @@ pub struct LogsData {
2122
pub resource_logs: ::prost::alloc::vec::Vec<ResourceLogs>,
2223
}
2324
/// A collection of ScopeLogs from a Resource.
25+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
2426
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
2527
#[allow(clippy::derive_partial_eq_without_eq)]
2628
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -38,6 +40,7 @@ pub struct ResourceLogs {
3840
pub schema_url: ::prost::alloc::string::String,
3941
}
4042
/// A collection of Logs produced by a Scope.
43+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
4144
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
4245
#[allow(clippy::derive_partial_eq_without_eq)]
4346
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -56,6 +59,7 @@ pub struct ScopeLogs {
5659
}
5760
/// A log record according to OpenTelemetry Log Data Model:
5861
/// <https://github.com/open-telemetry/oteps/blob/main/text/logs/0097-log-data-model.md>
62+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
5963
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
6064
#[allow(clippy::derive_partial_eq_without_eq)]
6165
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -138,6 +142,7 @@ pub struct LogRecord {
138142
pub span_id: ::prost::alloc::vec::Vec<u8>,
139143
}
140144
/// Possible values for LogRecord.SeverityNumber.
145+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
141146
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
142147
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
143148
#[repr(i32)]
@@ -241,6 +246,7 @@ impl SeverityNumber {
241246
///
242247
/// (logRecord.flags & LOG_RECORD_FLAGS_TRACE_FLAGS_MASK)
243248
///
249+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
244250
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
245251
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
246252
#[repr(i32)]

opentelemetry-proto/src/proto/tonic/opentelemetry.proto.metrics.v1.rs

+21
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
///
99
/// When new fields are added into this message, the OTLP request MUST be updated
1010
/// as well.
11+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
1112
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
1213
#[allow(clippy::derive_partial_eq_without_eq)]
1314
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -21,6 +22,7 @@ pub struct MetricsData {
2122
pub resource_metrics: ::prost::alloc::vec::Vec<ResourceMetrics>,
2223
}
2324
/// A collection of ScopeMetrics from a Resource.
25+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
2426
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
2527
#[allow(clippy::derive_partial_eq_without_eq)]
2628
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -38,6 +40,7 @@ pub struct ResourceMetrics {
3840
pub schema_url: ::prost::alloc::string::String,
3941
}
4042
/// A collection of Metrics produced by an Scope.
43+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
4144
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
4245
#[allow(clippy::derive_partial_eq_without_eq)]
4346
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -139,6 +142,7 @@ pub struct ScopeMetrics {
139142
/// to support correct rate calculation. Although it may be omitted
140143
/// when the start time is truly unknown, setting StartTimeUnixNano is
141144
/// strongly encouraged.
145+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
142146
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
143147
#[allow(clippy::derive_partial_eq_without_eq)]
144148
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -164,6 +168,7 @@ pub mod metric {
164168
/// Data determines the aggregation type (if any) of the metric, what is the
165169
/// reported value type for the data points, as well as the relatationship to
166170
/// the time interval over which they are reported.
171+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
167172
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
168173
#[allow(clippy::derive_partial_eq_without_eq)]
169174
#[derive(Clone, PartialEq, ::prost::Oneof)]
@@ -189,6 +194,7 @@ pub mod metric {
189194
/// aggregation, regardless of aggregation temporalities. Therefore,
190195
/// AggregationTemporality is not included. Consequently, this also means
191196
/// "StartTimeUnixNano" is ignored for all data points.
197+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
192198
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
193199
#[allow(clippy::derive_partial_eq_without_eq)]
194200
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -198,6 +204,7 @@ pub struct Gauge {
198204
}
199205
/// Sum represents the type of a scalar metric that is calculated as a sum of all
200206
/// reported measurements over a time interval.
207+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
201208
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
202209
#[allow(clippy::derive_partial_eq_without_eq)]
203210
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -214,6 +221,7 @@ pub struct Sum {
214221
}
215222
/// Histogram represents the type of a metric that is calculated by aggregating
216223
/// as a Histogram of all reported measurements over a time interval.
224+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
217225
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
218226
#[allow(clippy::derive_partial_eq_without_eq)]
219227
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -227,6 +235,7 @@ pub struct Histogram {
227235
}
228236
/// ExponentialHistogram represents the type of a metric that is calculated by aggregating
229237
/// as a ExponentialHistogram of all reported double measurements over a time interval.
238+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
230239
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
231240
#[allow(clippy::derive_partial_eq_without_eq)]
232241
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -244,6 +253,7 @@ pub struct ExponentialHistogram {
244253
/// data type. These data points cannot always be merged in a meaningful way.
245254
/// While they can be useful in some applications, histogram data points are
246255
/// recommended for new applications.
256+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
247257
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
248258
#[allow(clippy::derive_partial_eq_without_eq)]
249259
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -253,6 +263,7 @@ pub struct Summary {
253263
}
254264
/// NumberDataPoint is a single data point in a timeseries that describes the
255265
/// time-varying scalar value of a metric.
266+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
256267
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
257268
#[allow(clippy::derive_partial_eq_without_eq)]
258269
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -293,6 +304,7 @@ pub struct NumberDataPoint {
293304
pub mod number_data_point {
294305
/// The value itself. A point is considered invalid when one of the recognized
295306
/// value fields is not present inside this oneof.
307+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
296308
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
297309
#[allow(clippy::derive_partial_eq_without_eq)]
298310
#[derive(Clone, PartialEq, ::prost::Oneof)]
@@ -313,6 +325,7 @@ pub mod number_data_point {
313325
/// If the histogram does not contain the distribution of values, then both
314326
/// "explicit_bounds" and "bucket_counts" must be omitted and only "count" and
315327
/// "sum" are known.
328+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
316329
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
317330
#[allow(clippy::derive_partial_eq_without_eq)]
318331
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -395,6 +408,7 @@ pub struct HistogramDataPoint {
395408
/// summary statistics for a population of values, it may optionally contain the
396409
/// distribution of those values across a set of buckets.
397410
///
411+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
398412
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
399413
#[allow(clippy::derive_partial_eq_without_eq)]
400414
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -493,6 +507,7 @@ pub struct ExponentialHistogramDataPoint {
493507
pub mod exponential_histogram_data_point {
494508
/// Buckets are a set of bucket counts, encoded in a contiguous array
495509
/// of counts.
510+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
496511
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
497512
#[allow(clippy::derive_partial_eq_without_eq)]
498513
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -517,6 +532,7 @@ pub mod exponential_histogram_data_point {
517532
}
518533
/// SummaryDataPoint is a single data point in a timeseries that describes the
519534
/// time-varying values of a Summary metric.
535+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
520536
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
521537
#[allow(clippy::derive_partial_eq_without_eq)]
522538
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -572,6 +588,7 @@ pub mod summary_data_point {
572588
///
573589
/// See the following issue for more context:
574590
/// <https://github.com/open-telemetry/opentelemetry-proto/issues/125>
591+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
575592
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
576593
#[allow(clippy::derive_partial_eq_without_eq)]
577594
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -591,6 +608,7 @@ pub mod summary_data_point {
591608
/// Exemplars also hold information about the environment when the measurement
592609
/// was recorded, for example the span and trace ID of the active span when the
593610
/// exemplar was recorded.
611+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
594612
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
595613
#[allow(clippy::derive_partial_eq_without_eq)]
596614
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -629,6 +647,7 @@ pub mod exemplar {
629647
/// The value of the measurement that was recorded. An exemplar is
630648
/// considered invalid when one of the recognized value fields is not present
631649
/// inside this oneof.
650+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
632651
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
633652
#[allow(clippy::derive_partial_eq_without_eq)]
634653
#[derive(Clone, PartialEq, ::prost::Oneof)]
@@ -642,6 +661,7 @@ pub mod exemplar {
642661
/// AggregationTemporality defines how a metric aggregator reports aggregated
643662
/// values. It describes how those values relate to the time interval over
644663
/// which they are aggregated.
664+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
645665
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
646666
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
647667
#[repr(i32)]
@@ -739,6 +759,7 @@ impl AggregationTemporality {
739759
///
740760
/// (point.flags & DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK) == DATA_POINT_FLAGS_NO_RECORDED_VALUE_MASK
741761
///
762+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
742763
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
743764
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
744765
#[repr(i32)]

opentelemetry-proto/src/proto/tonic/opentelemetry.proto.resource.v1.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/// Resource information.
2+
#[cfg_attr(feature = "with-schemars", derive(schemars::JsonSchema))]
23
#[cfg_attr(feature = "with-serde", derive(serde::Serialize, serde::Deserialize))]
34
#[allow(clippy::derive_partial_eq_without_eq)]
45
#[derive(Clone, PartialEq, ::prost::Message)]

0 commit comments

Comments
 (0)