2
2
pub mod tonic {
3
3
use opentelemetry_proto:: tonic:: {
4
4
common:: v1:: {
5
- any_value:: Value , AnyValue , ArrayValue , InstrumentationScope , KeyValue ,
5
+ any_value:: Value , AnyValue , ArrayValue , KeyValue ,
6
6
KeyValueList ,
7
7
} ,
8
8
logs:: v1:: { LogRecord , ResourceLogs , ScopeLogs , SeverityNumber } ,
9
9
resource:: v1:: Resource ,
10
10
} ;
11
- use crate :: transform:: common:: { to_nanos, tonic:: ResourceAttributesWithSchema } ;
11
+ use crate :: transform:: common:: {
12
+ to_nanos,
13
+ tonic:: { ResourceAttributesWithSchema , instrumentation_scope_from_scope_ref_and_target} ,
14
+ } ;
12
15
use opentelemetry:: logs:: { AnyValue as LogsAnyValue , Severity } ;
13
16
use opentelemetry_sdk:: logs:: LogBatch ;
14
17
use std:: borrow:: Cow ;
15
18
use std:: collections:: HashMap ;
16
19
17
- impl From < LogsAnyValue > for AnyValue {
18
- fn from ( value : LogsAnyValue ) -> Self {
19
- AnyValue {
20
- value : Some ( value. into ( ) ) ,
21
- }
20
+ fn any_value_from_logs_any_value ( value : LogsAnyValue ) -> AnyValue {
21
+ AnyValue {
22
+ value : Some ( value_from_logs_any_value ( value) ) ,
22
23
}
23
24
}
24
25
25
- impl From < LogsAnyValue > for Value {
26
- fn from ( value : LogsAnyValue ) -> Self {
26
+ fn value_from_logs_any_value ( value : LogsAnyValue ) -> Value {
27
27
match value {
28
28
LogsAnyValue :: Double ( f) => Value :: DoubleValue ( f) ,
29
29
LogsAnyValue :: Int ( i) => Value :: IntValue ( i) ,
@@ -32,26 +32,21 @@ pub mod tonic {
32
32
LogsAnyValue :: ListAny ( v) => Value :: ArrayValue ( ArrayValue {
33
33
values : v
34
34
. into_iter ( )
35
- . map ( |v| AnyValue {
36
- value : Some ( v. into ( ) ) ,
37
- } )
35
+ . map ( |v| any_value_from_logs_any_value ( v) )
38
36
. collect ( ) ,
39
37
} ) ,
40
38
LogsAnyValue :: Map ( m) => Value :: KvlistValue ( KeyValueList {
41
39
values : m
42
40
. into_iter ( )
43
41
. map ( |( key, value) | KeyValue {
44
42
key : key. into ( ) ,
45
- value : Some ( AnyValue {
46
- value : Some ( value. into ( ) ) ,
47
- } ) ,
43
+ value : Some ( any_value_from_logs_any_value ( value) ) ,
48
44
} )
49
45
. collect ( ) ,
50
46
} ) ,
51
47
LogsAnyValue :: Bytes ( v) => Value :: BytesValue ( * v) ,
52
48
_ => unreachable ! ( "Nonexistent value type" ) ,
53
49
}
54
- }
55
50
}
56
51
57
52
impl From < & opentelemetry_sdk:: logs:: SdkLogRecord > for LogRecord {
@@ -93,9 +88,7 @@ pub mod tonic {
93
88
. attributes_iter ( )
94
89
. map ( |kv| KeyValue {
95
90
key : kv. 0 . to_string ( ) ,
96
- value : Some ( AnyValue {
97
- value : Some ( kv. 1 . clone ( ) . into ( ) ) ,
98
- } ) ,
91
+ value : Some ( any_value_from_logs_any_value ( kv. 1 . clone ( ) ) ) ,
99
92
} )
100
93
. collect ( )
101
94
} ,
@@ -156,7 +149,7 @@ pub mod tonic {
156
149
. schema_url( )
157
150
. map( ToOwned :: to_owned)
158
151
. unwrap_or_default( ) ,
159
- scope: Some ( super :: common :: tonic :: instrumentation_scope_from_scope_ref_and_target( instrumentation, log_record. target( ) . cloned( ) ) ) ,
152
+ scope: Some ( instrumentation_scope_from_scope_ref_and_target( instrumentation, log_record. target( ) . cloned( ) ) ) ,
160
153
log_records: vec![ log_record. into( ) ] ,
161
154
} ] ,
162
155
}
@@ -193,10 +186,10 @@ pub mod tonic {
193
186
let scope_logs = scope_map
194
187
. into_iter ( )
195
188
. map ( |( key, log_data) | ScopeLogs {
196
- scope : Some ( InstrumentationScope :: from ( (
189
+ scope : Some ( instrumentation_scope_from_scope_ref_and_target (
197
190
log_data. first ( ) . unwrap ( ) . 1 ,
198
191
Some ( key. into_owned ( ) . into ( ) ) ,
199
- ) ) ) ,
192
+ ) ) ,
200
193
schema_url : resource. schema_url . clone ( ) . unwrap_or_default ( ) ,
201
194
log_records : log_data
202
195
. into_iter ( )
0 commit comments