6
6
use std:: collections:: HashMap ;
7
7
use std:: time:: SystemTime ;
8
8
9
- use async_trait:: async_trait;
10
9
use criterion:: { criterion_group, criterion_main, Criterion } ;
11
10
12
11
use opentelemetry:: logs:: {
13
12
AnyValue , LogRecord as _, LogResult , Logger as _, LoggerProvider as _, Severity ,
14
13
} ;
15
14
use opentelemetry:: trace:: Tracer ;
16
15
use opentelemetry:: trace:: TracerProvider as _;
17
- use opentelemetry:: { InstrumentationLibrary , Key } ;
18
- use opentelemetry_sdk:: export:: logs:: { LogData , LogExporter } ;
19
- use opentelemetry_sdk:: logs:: { Logger , LoggerProvider } ;
16
+ use opentelemetry:: Key ;
17
+ use opentelemetry_sdk:: export:: logs:: LogData ;
18
+ use opentelemetry_sdk:: logs:: { Logger , LoggerProvider , LogProcessor } ;
20
19
use opentelemetry_sdk:: trace;
21
20
use opentelemetry_sdk:: trace:: { Sampler , TracerProvider } ;
22
21
23
22
#[ derive( Debug ) ]
24
- struct VoidExporter ;
23
+ struct NoopProcessor ;
25
24
26
- #[ async_trait]
27
- impl LogExporter for VoidExporter {
28
- async fn export < ' a > ( & mut self , _batch : Vec < std:: borrow:: Cow < ' a , LogData > > ) -> LogResult < ( ) > {
29
- LogResult :: Ok ( ( ) )
25
+ impl LogProcessor for NoopProcessor {
26
+ fn emit ( & self , _data : & mut LogData ) { }
27
+
28
+ fn force_flush ( & self ) -> LogResult < ( ) > {
29
+ Ok ( ( ) )
30
+ }
31
+
32
+ fn shutdown ( & self ) -> LogResult < ( ) > {
33
+ Ok ( ( ) )
34
+ }
35
+
36
+ #[ cfg( feature = "logs_level_enabled" ) ]
37
+ fn event_enabled (
38
+ & self ,
39
+ _level : opentelemetry:: logs:: Severity ,
40
+ _target : & str ,
41
+ _name : & str ,
42
+ ) -> bool {
43
+ true
30
44
}
31
45
}
32
46
@@ -35,7 +49,7 @@ fn log_benchmark_group<F: Fn(&Logger)>(c: &mut Criterion, name: &str, f: F) {
35
49
36
50
group. bench_function ( "no-context" , |b| {
37
51
let provider = LoggerProvider :: builder ( )
38
- . with_simple_exporter ( VoidExporter )
52
+ . with_log_processor ( NoopProcessor { } )
39
53
. build ( ) ;
40
54
41
55
let logger = provider. logger ( "no-context" ) ;
@@ -45,7 +59,7 @@ fn log_benchmark_group<F: Fn(&Logger)>(c: &mut Criterion, name: &str, f: F) {
45
59
46
60
group. bench_function ( "with-context" , |b| {
47
61
let provider = LoggerProvider :: builder ( )
48
- . with_simple_exporter ( VoidExporter )
62
+ . with_log_processor ( NoopProcessor { } )
49
63
. build ( ) ;
50
64
51
65
let logger = provider. logger ( "with-context" ) ;
0 commit comments