@@ -5,6 +5,7 @@ use opentelemetry_sdk::{
5
5
metrics:: { PeriodicReader , SdkMeterProvider } ,
6
6
Resource ,
7
7
} ;
8
+ use tracing_subscriber:: { layer:: SubscriberExt , util:: SubscriberInitExt , EnvFilter , Layer } ;
8
9
9
10
const SERVICE_NAME : & str = "service-name" ;
10
11
@@ -22,7 +23,14 @@ fn setup_meter_provider() -> SdkMeterProvider {
22
23
}
23
24
24
25
#[ tokio:: main]
25
- async fn main ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
26
+ async fn main ( ) {
27
+ // Enable tracing::fmt layer for viewing internal logs
28
+ let filter_fmt = EnvFilter :: new ( "info" ) . add_directive ( "opentelemetry=debug" . parse ( ) . unwrap ( ) ) ;
29
+ let fmt_layer = tracing_subscriber:: fmt:: layer ( )
30
+ . with_thread_names ( true )
31
+ . with_filter ( filter_fmt) ;
32
+
33
+ tracing_subscriber:: registry ( ) . with ( fmt_layer) . init ( ) ;
26
34
let meter_provider = setup_meter_provider ( ) ;
27
35
global:: set_meter_provider ( meter_provider. clone ( ) ) ;
28
36
@@ -35,53 +43,48 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
35
43
36
44
c. add (
37
45
1.0 ,
38
- [
46
+ & [
39
47
KeyValue :: new ( "name" , "apple" ) ,
40
48
KeyValue :: new ( "color" , "red" ) ,
41
- ]
42
- . as_ref ( ) ,
49
+ ] ,
43
50
) ;
44
51
c. add (
45
52
2.0 ,
46
- [
53
+ & [
47
54
KeyValue :: new ( "name" , "lemon" ) ,
48
55
KeyValue :: new ( "color" , "yellow" ) ,
49
- ]
50
- . as_ref ( ) ,
56
+ ] ,
51
57
) ;
52
58
c. add (
53
59
1.0 ,
54
- [
60
+ & [
55
61
KeyValue :: new ( "name" , "lemon" ) ,
56
62
KeyValue :: new ( "color" , "yellow" ) ,
57
- ]
58
- . as_ref ( ) ,
63
+ ] ,
59
64
) ;
60
65
c. add (
61
66
2.0 ,
62
- [
67
+ & [
63
68
KeyValue :: new ( "name" , "apple" ) ,
64
69
KeyValue :: new ( "color" , "green" ) ,
65
- ]
66
- . as_ref ( ) ,
70
+ ] ,
67
71
) ;
68
72
c. add (
69
73
5.0 ,
70
- [
74
+ & [
71
75
KeyValue :: new ( "name" , "apple" ) ,
72
76
KeyValue :: new ( "color" , "red" ) ,
73
- ]
74
- . as_ref ( ) ,
77
+ ] ,
75
78
) ;
76
79
c. add (
77
80
4.0 ,
78
- [
81
+ & [
79
82
KeyValue :: new ( "name" , "lemon" ) ,
80
83
KeyValue :: new ( "color" , "yellow" ) ,
81
- ]
82
- . as_ref ( ) ,
84
+ ] ,
83
85
) ;
84
86
85
- meter_provider. shutdown ( ) ?;
86
- Ok ( ( ) )
87
+ if let Err ( e) = meter_provider. shutdown ( ) {
88
+ println ! ( "Error shutting down meter provider: {:?}" , e) ;
89
+ }
87
90
}
0 commit comments