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