@@ -23,19 +23,26 @@ async fn main() -> anyhow::Result<()> {
23
23
. help ( "act as a client, and mount FUSE at given path" )
24
24
. index ( 2 )
25
25
)
26
+ . arg (
27
+ Arg :: with_name ( "tracer" )
28
+ . value_name ( "TRACER" )
29
+ . long ( "tracer" )
30
+ . short ( "t" )
31
+ . help ( "the tracer <logger | jaeger>, logger by default" )
32
+ )
26
33
. arg (
27
34
Arg :: with_name ( "jaeger-collector" )
28
35
. value_name ( "JAEGER_COLLECTOR" )
29
36
. long ( "jaeger-collector" )
30
37
. short ( "c" )
31
- . help ( "the jaeger collector endpoint" )
38
+ . help ( "the jaeger collector endpoint (e.g. tifs:127.0.0.1:14268) " )
32
39
)
33
40
. arg (
34
41
Arg :: with_name ( "jaeger-agent" )
35
42
. value_name ( "JAEGER_AGENT" )
36
43
. long ( "jaeger-agent" )
37
44
. short ( "a" )
38
- . help ( "the jaeger agent endpoint" )
45
+ . help ( "the jaeger agent endpoint (e.g. tifs:127.0.0.1:6831) " )
39
46
)
40
47
. arg (
41
48
Arg :: with_name ( "options" )
@@ -65,19 +72,38 @@ async fn main() -> anyhow::Result<()> {
65
72
)
66
73
. get_matches ( ) ;
67
74
68
- let mut tracer_builder = opentelemetry_jaeger:: new_pipeline ( ) . with_service_name ( "tifs-report" ) ;
69
- if let Some ( e) = matches. value_of ( "jaeger-agent" ) {
70
- tracer_builder = tracer_builder. with_agent_endpoint ( e)
71
- } ;
72
- if let Some ( e) = matches. value_of ( "jaeger-collector" ) {
73
- tracer_builder = tracer_builder. with_collector_endpoint ( e)
74
- } ;
75
- let tracer = tracer_builder. install_simple ( ) ?;
76
-
77
- tracing_subscriber:: registry ( )
78
- . with ( tracing_opentelemetry:: layer ( ) . with_tracer ( tracer) )
79
- . with ( EnvFilter :: from_default_env ( ) )
80
- . try_init ( ) ?;
75
+ match matches. value_of ( "tracer" ) . unwrap_or_else ( || {
76
+ if matches. value_of ( "jaeger-agent" ) . is_some ( )
77
+ || matches. value_of ( "jaeger-collector" ) . is_some ( )
78
+ {
79
+ "jaeger"
80
+ } else {
81
+ "logger"
82
+ }
83
+ } ) {
84
+ "logger" => {
85
+ tracing_subscriber:: fmt ( )
86
+ . with_env_filter ( EnvFilter :: from_default_env ( ) )
87
+ . try_init ( )
88
+ . map_err ( |err| anyhow:: anyhow!( "fail to init tracing subscriber: {}" , err) ) ?;
89
+ }
90
+ "jaeger" => {
91
+ let mut tracer_builder =
92
+ opentelemetry_jaeger:: new_pipeline ( ) . with_service_name ( "tifs-report" ) ;
93
+ if let Some ( e) = matches. value_of ( "jaeger-agent" ) {
94
+ tracer_builder = tracer_builder. with_agent_endpoint ( e)
95
+ } ;
96
+ if let Some ( e) = matches. value_of ( "jaeger-collector" ) {
97
+ tracer_builder = tracer_builder. with_collector_endpoint ( e)
98
+ } ;
99
+ let tracer = tracer_builder. install_simple ( ) ?;
100
+ tracing_subscriber:: registry ( )
101
+ . with ( EnvFilter :: from_default_env ( ) )
102
+ . with ( tracing_opentelemetry:: layer ( ) . with_tracer ( tracer) )
103
+ . try_init ( ) ?;
104
+ }
105
+ t => return Err ( anyhow:: anyhow!( "unsupported tracer: {}" , t) ) ,
106
+ }
81
107
82
108
let serve = matches. is_present ( "serve" ) ;
83
109
let foreground = serve || matches. is_present ( "foreground" ) ;
0 commit comments