@@ -34,51 +34,65 @@ use tracing::error;
3434use tracing_subscriber:: prelude:: * ;
3535use tracing_subscriber:: Registry ;
3636
37- fn benchmark_with_ot_layer ( c : & mut Criterion , name : & str , num_attributes : usize ) {
37+ fn setup_provider ( ) -> SdkLoggerProvider {
3838 let user_event_processor = Processor :: builder ( "myprovider" ) . build ( ) . unwrap ( ) ;
39- let provider = SdkLoggerProvider :: builder ( )
39+ SdkLoggerProvider :: builder ( )
4040 . with_resource (
4141 Resource :: builder_empty ( )
4242 . with_service_name ( "benchmark" )
4343 . build ( ) ,
4444 )
4545 . with_log_processor ( user_event_processor)
46- . build ( ) ;
46+ . build ( )
47+ }
48+
49+ fn benchmark_4_attributes ( c : & mut Criterion ) {
50+ let provider = setup_provider ( ) ;
51+ let ot_layer = tracing_layer:: OpenTelemetryTracingBridge :: new ( & provider) ;
52+ let subscriber = Registry :: default ( ) . with ( ot_layer) ;
53+
54+ tracing:: subscriber:: with_default ( subscriber, || {
55+ c. bench_function ( "User_Event_4_Attributes" , |b| {
56+ b. iter ( || {
57+ error ! (
58+ name : "CheckoutFailed" ,
59+ field1 = "field1" ,
60+ field2 = "field2" ,
61+ field3 = "field3" ,
62+ field4 = "field4" ,
63+ message = "Unable to process checkout."
64+ ) ;
65+ } ) ;
66+ } ) ;
67+ } ) ;
68+ }
69+
70+ fn benchmark_6_attributes ( c : & mut Criterion ) {
71+ let provider = setup_provider ( ) ;
4772 let ot_layer = tracing_layer:: OpenTelemetryTracingBridge :: new ( & provider) ;
4873 let subscriber = Registry :: default ( ) . with ( ot_layer) ;
4974
5075 tracing:: subscriber:: with_default ( subscriber, || {
51- c. bench_function ( name , |b| {
76+ c. bench_function ( "User_Event_6_Attributes" , |b| {
5277 b. iter ( || {
53- if num_attributes == 4 {
54- error ! (
55- name : "CheckoutFailed" ,
56- field1 = "field1" ,
57- field2 = "field2" ,
58- field3 = "field3" ,
59- field4 = "field4" ,
60- message = "Unable to process checkout."
61- ) ;
62- } else if num_attributes == 6 {
63- error ! (
64- name : "CheckoutFailed" ,
65- field1 = "field1" ,
66- field2 = "field2" ,
67- field3 = "field3" ,
68- field4 = "field4" ,
69- field5 = "field5" ,
70- field6 = "field6" ,
71- message = "Unable to process checkout."
72- ) ;
73- }
78+ error ! (
79+ name : "CheckoutFailed" ,
80+ field1 = "field1" ,
81+ field2 = "field2" ,
82+ field3 = "field3" ,
83+ field4 = "field4" ,
84+ field5 = "field5" ,
85+ field6 = "field6" ,
86+ message = "Unable to process checkout."
87+ ) ;
7488 } ) ;
7589 } ) ;
7690 } ) ;
7791}
7892
7993fn criterion_benchmark ( c : & mut Criterion ) {
80- benchmark_with_ot_layer ( c , "User_Event_4_Attributes" , 4 ) ;
81- benchmark_with_ot_layer ( c , "User_Event_6_Attributes" , 6 )
94+ benchmark_4_attributes ( c ) ;
95+ benchmark_6_attributes ( c ) ;
8296}
8397
8498criterion_group ! {
0 commit comments