@@ -21,38 +21,25 @@ use hyper::{Body, Client, Method, Request, Response, Server, StatusCode};
21
21
use skywalking:: context:: propagation:: context:: SKYWALKING_HTTP_CONTEXT_HEADER_KEY ;
22
22
use skywalking:: context:: propagation:: decoder:: decode_propagation;
23
23
use skywalking:: context:: propagation:: encoder:: encode_propagation;
24
- use skywalking:: context:: tracer:: Tracer ;
24
+ use skywalking:: context:: tracer:: { self , Tracer } ;
25
25
use skywalking:: reporter:: grpc:: GrpcReporter ;
26
26
use std:: convert:: Infallible ;
27
27
use std:: error:: Error ;
28
28
use std:: future:: pending;
29
29
use std:: net:: SocketAddr ;
30
30
use structopt:: StructOpt ;
31
- use tokio:: sync:: OnceCell ;
32
31
33
32
static NOT_FOUND_MSG : & str = "not found" ;
34
33
static SUCCESS_MSG : & str = "Success" ;
35
34
36
- static GLOBAL_TRACER : OnceCell < Tracer < GrpcReporter > > = OnceCell :: const_new ( ) ;
37
-
38
- fn set_global_tracer ( tracer : Tracer < GrpcReporter > ) {
39
- if GLOBAL_TRACER . set ( tracer) . is_err ( ) {
40
- panic ! ( "TRACER has setted" )
41
- }
42
- }
43
-
44
- fn get_global_tracer ( ) -> & ' static Tracer < GrpcReporter > {
45
- GLOBAL_TRACER . get ( ) . expect ( "TRACER haven't setted" )
46
- }
47
-
48
35
async fn handle_ping (
49
36
_req : Request < Body > ,
50
37
client : Client < HttpConnector > ,
51
38
) -> Result < Response < Body > , Infallible > {
52
- let mut context = get_global_tracer ( ) . create_trace_context ( ) ;
53
- let span = context. create_entry_span ( "/ping" ) . unwrap ( ) ;
39
+ let mut context = tracer :: create_trace_context ( ) ;
40
+ let _span = context. create_entry_span ( "/ping" ) ;
54
41
{
55
- let span2 = context. create_exit_span ( "/pong" , "consumer:8082" ) . unwrap ( ) ;
42
+ let _span2 = context. create_exit_span ( "/pong" , "consumer:8082" ) ;
56
43
let header = encode_propagation ( & context, "/pong" , "consumer:8082" ) ;
57
44
let req = Request :: builder ( )
58
45
. method ( Method :: GET )
@@ -62,10 +49,7 @@ async fn handle_ping(
62
49
. unwrap ( ) ;
63
50
64
51
client. request ( req) . await . unwrap ( ) ;
65
- context. finalize_span ( span2) ;
66
52
}
67
- context. finalize_span ( span) ;
68
- get_global_tracer ( ) . finalize_context ( context) ;
69
53
Ok ( Response :: new ( Body :: from ( "hoge" ) ) )
70
54
}
71
55
@@ -112,10 +96,8 @@ async fn handle_pong(_req: Request<Body>) -> Result<Response<Body>, Infallible>
112
96
. unwrap ( ) ,
113
97
)
114
98
. unwrap ( ) ;
115
- let mut context = get_global_tracer ( ) . create_trace_context_from_propagation ( ctx) ;
116
- let span = context. create_entry_span ( "/pong" ) . unwrap ( ) ;
117
- context. finalize_span ( span) ;
118
- get_global_tracer ( ) . finalize_context ( context) ;
99
+ let mut context = tracer:: create_trace_context_from_propagation ( ctx) ;
100
+ let _span = context. create_entry_span ( "/pong" ) ;
119
101
Ok ( Response :: new ( Body :: from ( "hoge" ) ) )
120
102
}
121
103
@@ -158,13 +140,13 @@ async fn main() -> Result<(), Box<dyn Error>> {
158
140
let reporter = GrpcReporter :: connect ( "http://collector:19876" ) . await ?;
159
141
160
142
let handle = if opt. mode == "consumer" {
161
- set_global_tracer ( Tracer :: new ( "consumer" , "node_0" , reporter) ) ;
162
- let handle = get_global_tracer ( ) . reporting ( pending ( ) ) ;
143
+ tracer :: set_global_tracer ( Tracer :: new ( "consumer" , "node_0" , reporter) ) ;
144
+ let handle = tracer :: reporting ( pending ( ) ) ;
163
145
run_consumer_service ( [ 0 , 0 , 0 , 0 ] ) . await ;
164
146
handle
165
147
} else if opt. mode == "producer" {
166
- set_global_tracer ( Tracer :: new ( "producer" , "node_0" , reporter) ) ;
167
- let handle = get_global_tracer ( ) . reporting ( pending ( ) ) ;
148
+ tracer :: set_global_tracer ( Tracer :: new ( "producer" , "node_0" , reporter) ) ;
149
+ let handle = tracer :: reporting ( pending ( ) ) ;
168
150
run_producer_service ( [ 0 , 0 , 0 , 0 ] ) . await ;
169
151
handle
170
152
} else {
0 commit comments