Skip to content

Commit defad31

Browse files
committed
minor clean ups
1 parent 5591034 commit defad31

4 files changed

Lines changed: 163 additions & 218 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
- Bump the revision of `sysinfo` to the revision at `15b3be3273ba286740122fed7bb7dccd2a79dc8f`. ([#4613](https://github.com/getsentry/relay/pull/4613))
3030
- Switch the processor and store to `async`. ([#4552](https://github.com/getsentry/relay/pull/4552))
3131
- Validate the spooling memory configuration on startup. ([#4617](https://github.com/getsentry/relay/pull/4617))
32-
- Adjust 'log' protocol / envelope item type per sdk feedback ([#4592](https://github.com/getsentry/relay/pull/4592))
32+
- Rework currently unused 'log' protocol / envelope item type schema. ([#4592](https://github.com/getsentry/relay/pull/4592))
3333
- Improve descriptiveness of autoscaling metric name. ([#4629](https://github.com/getsentry/relay/pull/4629))
3434

3535
## 25.3.0

relay-event-schema/src/protocol/ourlog.rs

Lines changed: 24 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
use relay_protocol::{
2-
Annotated, Empty, Error, FromValue, IntoValue, Object, SkipSerialization, Value,
3-
};
1+
use relay_protocol::{Annotated, Empty, FromValue, IntoValue, Object, SkipSerialization, Value};
42
use std::fmt::{self, Display};
5-
use std::str::FromStr;
63

74
use serde::{Serialize, Serializer};
85

@@ -20,7 +17,7 @@ pub struct OurLog {
2017
#[metastructure(required = true, trim = false)]
2118
pub trace_id: Annotated<TraceId>,
2219

23-
/// The Span id.
20+
/// The Span this log entry belongs to.
2421
#[metastructure(required = false, trim = false)]
2522
pub span_id: Annotated<SpanId>,
2623

@@ -37,7 +34,7 @@ pub struct OurLog {
3734
pub attributes: Annotated<Object<OurLogAttribute>>,
3835

3936
/// Additional arbitrary fields for forwards compatibility.
40-
#[metastructure(additional_properties, retain = true, pii = "maybe", trim = false)]
37+
#[metastructure(additional_properties, retain = true, pii = "maybe")]
4138
pub other: Object<Value>,
4239
}
4340

@@ -68,7 +65,10 @@ pub struct OurLogAttribute {
6865
impl OurLogAttribute {
6966
pub fn new(attribute_type: OurLogAttributeType, value: Value) -> Self {
7067
Self {
71-
value: OurLogAttributeValue::new(Annotated::new(attribute_type), Annotated::new(value)),
68+
value: OurLogAttributeValue {
69+
ty: Annotated::new(attribute_type),
70+
value: Annotated::new(value),
71+
},
7272
other: Object::new(),
7373
}
7474
}
@@ -87,34 +87,27 @@ impl fmt::Debug for OurLogAttribute {
8787
#[derive(Debug, Clone, PartialEq, Empty, FromValue, IntoValue, ProcessValue)]
8888
pub struct OurLogAttributeValue {
8989
#[metastructure(field = "type", required = true, trim = false)]
90-
pub ty: Annotated<String>,
90+
pub ty: Annotated<OurLogAttributeType>,
9191
#[metastructure(required = true, pii = "true")]
9292
pub value: Annotated<Value>,
9393
}
9494

95-
impl OurLogAttributeValue {
96-
pub fn new(attribute_type: Annotated<OurLogAttributeType>, value: Annotated<Value>) -> Self {
97-
Self {
98-
ty: attribute_type.map_value(|at| at.as_str().to_string()),
99-
value,
100-
}
101-
}
102-
}
103-
104-
#[derive(Debug)]
95+
#[derive(Debug, Clone, PartialEq, Eq)]
10596
pub enum OurLogAttributeType {
106-
Bool,
107-
Int,
97+
Boolean,
98+
Integer,
10899
Double,
109100
String,
110101
Unknown(String),
111102
}
112103

104+
impl ProcessValue for OurLogAttributeType {}
105+
113106
impl OurLogAttributeType {
114107
pub fn as_str(&self) -> &str {
115108
match self {
116-
Self::Bool => "boolean",
117-
Self::Int => "integer",
109+
Self::Boolean => "boolean",
110+
Self::Integer => "integer",
118111
Self::Double => "double",
119112
Self::String => "string",
120113
Self::Unknown(value) => value,
@@ -135,8 +128,8 @@ impl fmt::Display for OurLogAttributeType {
135128
impl From<String> for OurLogAttributeType {
136129
fn from(value: String) -> Self {
137130
match value.as_str() {
138-
"boolean" => Self::Bool,
139-
"integer" => Self::Int,
131+
"boolean" => Self::Boolean,
132+
"integer" => Self::Integer,
140133
"double" => Self::Double,
141134
"string" => Self::String,
142135
_ => Self::Unknown(value),
@@ -211,41 +204,26 @@ impl Display for OurLogLevel {
211204
write!(f, "{}", self.as_str())
212205
}
213206
}
214-
impl FromStr for OurLogLevel {
215-
type Err = ParseOurLogLevelError;
216207

217-
fn from_str(s: &str) -> Result<Self, Self::Err> {
218-
Ok(match s {
208+
impl From<String> for OurLogLevel {
209+
fn from(value: String) -> Self {
210+
match value.as_str() {
219211
"trace" => OurLogLevel::Trace,
220212
"debug" => OurLogLevel::Debug,
221213
"info" => OurLogLevel::Info,
222214
"warn" => OurLogLevel::Warn,
223215
"error" => OurLogLevel::Error,
224216
"fatal" => OurLogLevel::Fatal,
225-
other => OurLogLevel::Unknown(other.to_owned()),
226-
})
217+
_ => OurLogLevel::Unknown(value),
218+
}
227219
}
228220
}
229221

230222
impl FromValue for OurLogLevel {
231223
fn from_value(value: Annotated<Value>) -> Annotated<Self> {
232-
match value {
233-
Annotated(Some(Value::String(value)), mut meta) => {
234-
match OurLogLevel::from_str(&value) {
235-
Ok(value) => Annotated(Some(value), meta),
236-
Err(err) => {
237-
meta.add_error(Error::invalid(err));
238-
meta.set_original_value(Some(value));
239-
Annotated(None, meta)
240-
}
241-
}
242-
}
224+
match String::from_value(value) {
225+
Annotated(Some(value), meta) => Annotated(Some(value.into()), meta),
243226
Annotated(None, meta) => Annotated(None, meta),
244-
Annotated(Some(value), mut meta) => {
245-
meta.add_error(Error::expected("a level"));
246-
meta.set_original_value(Some(value));
247-
Annotated(None, meta)
248-
}
249227
}
250228
}
251229
}
@@ -273,18 +251,6 @@ impl Empty for OurLogLevel {
273251
}
274252
}
275253

276-
/// An error used when parsing `OurLogLevel`.
277-
#[derive(Debug)]
278-
pub struct ParseOurLogLevelError;
279-
280-
impl fmt::Display for ParseOurLogLevelError {
281-
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
282-
write!(f, "invalid our log level")
283-
}
284-
}
285-
286-
impl std::error::Error for ParseOurLogLevelError {}
287-
288254
#[cfg(test)]
289255
mod tests {
290256
use super::*;

relay-ourlogs/src/ourlog.rs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use std::str::FromStr;
2-
31
use chrono::{TimeZone, Utc};
42
use opentelemetry_proto::tonic::common::v1::any_value::Value as OtelValue;
53

@@ -13,15 +11,15 @@ use relay_protocol::{Annotated, Object, Value};
1311
fn otel_value_to_log_attribute(value: OtelValue) -> Option<OurLogAttribute> {
1412
match value {
1513
OtelValue::BoolValue(v) => Some(OurLogAttribute::new(
16-
OurLogAttributeType::Bool,
14+
OurLogAttributeType::Boolean,
1715
Value::Bool(v),
1816
)),
1917
OtelValue::DoubleValue(v) => Some(OurLogAttribute::new(
2018
OurLogAttributeType::Double,
2119
Value::F64(v),
2220
)),
2321
OtelValue::IntValue(v) => Some(OurLogAttribute::new(
24-
OurLogAttributeType::Int,
22+
OurLogAttributeType::Integer,
2523
Value::I64(v),
2624
)),
2725
OtelValue::StringValue(v) => Some(OurLogAttribute::new(
@@ -81,7 +79,7 @@ pub fn otel_to_sentry_log(otel_log: OtelLog) -> OurLog {
8179
attribute_data.insert(
8280
"sentry.severity_number".to_string(),
8381
Annotated::new(OurLogAttribute::new(
84-
OurLogAttributeType::Int,
82+
OurLogAttributeType::Integer,
8583
Value::I64(severity_number as i64),
8684
)),
8785
);
@@ -102,7 +100,7 @@ pub fn otel_to_sentry_log(otel_log: OtelLog) -> OurLog {
102100
attribute_data.insert(
103101
"sentry.trace_flags".to_string(),
104102
Annotated::new(OurLogAttribute::new(
105-
OurLogAttributeType::Int,
103+
OurLogAttributeType::Integer,
106104
Value::I64(0),
107105
)),
108106
);
@@ -126,7 +124,15 @@ pub fn otel_to_sentry_log(otel_log: OtelLog) -> OurLog {
126124
13..=16 => OurLogLevel::Warn,
127125
17..=20 => OurLogLevel::Error,
128126
21..=24 => OurLogLevel::Fatal,
129-
_ => OurLogLevel::from_str(&severity_text).unwrap_or(OurLogLevel::Info),
127+
_ => match severity_text.as_str() {
128+
"trace" => OurLogLevel::Trace,
129+
"debug" => OurLogLevel::Debug,
130+
"info" => OurLogLevel::Info,
131+
"warn" => OurLogLevel::Warn,
132+
"error" => OurLogLevel::Error,
133+
"fatal" => OurLogLevel::Fatal,
134+
_ => OurLogLevel::Info,
135+
},
130136
};
131137

132138
let mut other = Object::default();
@@ -171,7 +177,7 @@ pub fn ourlog_merge_otel(ourlog: Annotated<OurLog>) -> Annotated<OurLog> {
171177
attributes.insert(
172178
"sentry.severity_number".to_string(),
173179
Annotated::new(OurLogAttribute::new(
174-
OurLogAttributeType::Int,
180+
OurLogAttributeType::Integer,
175181
Value::I64(level_to_otel_severity_number(
176182
ourlog_value.level.value().cloned(),
177183
)),

0 commit comments

Comments
 (0)