Skip to content

Commit 758dfcf

Browse files
committed
add --tracer flag
Signed-off-by: xixi <[email protected]>
1 parent b84f102 commit 758dfcf

File tree

1 file changed

+41
-15
lines changed

1 file changed

+41
-15
lines changed

src/bin/tifs.rs

+41-15
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,26 @@ async fn main() -> anyhow::Result<()> {
2323
.help("act as a client, and mount FUSE at given path")
2424
.index(2)
2525
)
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+
)
2633
.arg(
2734
Arg::with_name("jaeger-collector")
2835
.value_name("JAEGER_COLLECTOR")
2936
.long("jaeger-collector")
3037
.short("c")
31-
.help("the jaeger collector endpoint")
38+
.help("the jaeger collector endpoint (e.g. tifs:127.0.0.1:14268)")
3239
)
3340
.arg(
3441
Arg::with_name("jaeger-agent")
3542
.value_name("JAEGER_AGENT")
3643
.long("jaeger-agent")
3744
.short("a")
38-
.help("the jaeger agent endpoint")
45+
.help("the jaeger agent endpoint (e.g. tifs:127.0.0.1:6831)")
3946
)
4047
.arg(
4148
Arg::with_name("options")
@@ -65,19 +72,38 @@ async fn main() -> anyhow::Result<()> {
6572
)
6673
.get_matches();
6774

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+
}
81107

82108
let serve = matches.is_present("serve");
83109
let foreground = serve || matches.is_present("foreground");

0 commit comments

Comments
 (0)