52
52
* SofaTracer
53
53
*
54
54
* @author yangguanchao
55
- * @since 2017/06/17
55
+ * @since 2017 /06/17
56
56
*/
57
57
public class SofaTracer implements Tracer {
58
58
@@ -90,6 +90,15 @@ public class SofaTracer implements Tracer {
90
90
*/
91
91
private final Sampler sampler ;
92
92
93
+ /**
94
+ * Instantiates a new Sofa tracer.
95
+ *
96
+ * @param tracerType the tracer type
97
+ * @param clientReporter the client reporter
98
+ * @param serverReporter the server reporter
99
+ * @param sampler the sampler
100
+ * @param tracerTags the tracer tags
101
+ */
93
102
protected SofaTracer (String tracerType , Reporter clientReporter , Reporter serverReporter ,
94
103
Sampler sampler , Map <String , Object > tracerTags ) {
95
104
this .tracerType = tracerType ;
@@ -103,6 +112,12 @@ protected SofaTracer(String tracerType, Reporter clientReporter, Reporter server
103
112
}
104
113
}
105
114
115
+ /**
116
+ * Instantiates a new Sofa tracer.
117
+ *
118
+ * @param tracerType the tracer type
119
+ * @param sampler the sampler
120
+ */
106
121
protected SofaTracer (String tracerType , Sampler sampler ) {
107
122
this .tracerType = tracerType ;
108
123
this .clientReporter = null ;
@@ -112,6 +127,17 @@ protected SofaTracer(String tracerType, Sampler sampler) {
112
127
this .sampler = sampler ;
113
128
}
114
129
130
+ /**
131
+ * Instantiates a new Sofa tracer.
132
+ *
133
+ * @param tracerType the tracer type
134
+ * @param clientReporter the client reporter
135
+ * @param serverReporter the server reporter
136
+ * @param clientEventReporter the client event reporter
137
+ * @param serverEventReporter the server event reporter
138
+ * @param sampler the sampler
139
+ * @param tracerTags the tracer tags
140
+ */
115
141
protected SofaTracer (String tracerType , Reporter clientReporter , Reporter serverReporter ,
116
142
Reporter clientEventReporter , Reporter serverEventReporter ,
117
143
Sampler sampler , Map <String , Object > tracerTags ) {
@@ -150,6 +176,11 @@ public <C> SpanContext extract(Format<C> format, C carrier) {
150
176
return registryExtractor .extract (carrier );
151
177
}
152
178
179
+ /**
180
+ * Report span.
181
+ *
182
+ * @param span the span
183
+ */
153
184
public void reportSpan (SofaTracerSpan span ) {
154
185
if (span == null ) {
155
186
return ;
@@ -175,15 +206,20 @@ public void reportSpan(SofaTracerSpan span) {
175
206
}
176
207
}
177
208
209
+ /**
210
+ * Report event.
211
+ *
212
+ * @param span the span
213
+ */
178
214
public void reportEvent (SofaTracerSpan span ) {
179
215
if (span == null ) {
180
216
return ;
181
217
}
182
- // // sampler is support & current span is root span
218
+ // sampler is support & current span is root span
183
219
if (sampler != null && (span .isClient () && span .getParentSofaTracerSpan () == null )) {
184
220
span .getSofaTracerSpanContext ().setSampled (sampler .sample (span ).isSampled ());
185
221
}
186
- //invoke listener
222
+ // invoke listener
187
223
this .invokeReportListeners (span );
188
224
if (span .isClient ()
189
225
|| this .getTracerType ().equalsIgnoreCase (ComponentNameConstants .FLEXIBLE )) {
@@ -195,7 +231,7 @@ public void reportEvent(SofaTracerSpan span) {
195
231
this .serverEventReporter .report (span );
196
232
}
197
233
} else {
198
- //ignore ,do not statical
234
+ // ignore ,do not statical
199
235
SelfLog .warn ("Span reported neither client nor server.Ignore!" );
200
236
}
201
237
}
@@ -224,30 +260,65 @@ public void close() {
224
260
}
225
261
}
226
262
263
+ /**
264
+ * Gets tracer type.
265
+ *
266
+ * @return the tracer type
267
+ */
227
268
public String getTracerType () {
228
269
return tracerType ;
229
270
}
230
271
272
+ /**
273
+ * Gets client reporter.
274
+ *
275
+ * @return the client reporter
276
+ */
231
277
public Reporter getClientReporter () {
232
278
return clientReporter ;
233
279
}
234
280
281
+ /**
282
+ * Gets server reporter.
283
+ *
284
+ * @return the server reporter
285
+ */
235
286
public Reporter getServerReporter () {
236
287
return serverReporter ;
237
288
}
238
289
290
+ /**
291
+ * Gets client event reporter.
292
+ *
293
+ * @return the client event reporter
294
+ */
239
295
public Reporter getClientEventReporter () {
240
296
return clientEventReporter ;
241
297
}
242
298
299
+ /**
300
+ * Gets server event reporter.
301
+ *
302
+ * @return the server event reporter
303
+ */
243
304
public Reporter getServerEventReporter () {
244
305
return serverEventReporter ;
245
306
}
246
307
308
+ /**
309
+ * Gets sampler.
310
+ *
311
+ * @return the sampler
312
+ */
247
313
public Sampler getSampler () {
248
314
return sampler ;
249
315
}
250
316
317
+ /**
318
+ * Gets tracer tags.
319
+ *
320
+ * @return the tracer tags
321
+ */
251
322
public Map <String , Object > getTracerTags () {
252
323
return tracerTags ;
253
324
}
@@ -257,6 +328,11 @@ public String toString() {
257
328
return "SofaTracer{" + "tracerType='" + tracerType + '}' ;
258
329
}
259
330
331
+ /**
332
+ * Invoke report listeners.
333
+ *
334
+ * @param sofaTracerSpan the sofa tracer span
335
+ */
260
336
protected void invokeReportListeners (SofaTracerSpan sofaTracerSpan ) {
261
337
List <SpanReportListener > listeners = SpanReportListenerHolder
262
338
.getSpanReportListenersHolder ();
@@ -287,6 +363,11 @@ public class SofaTracerSpanBuilder implements io.opentracing.Tracer.SpanBuilder
287
363
288
364
private final Map <String , Object > tags = new HashMap <>();
289
365
366
+ /**
367
+ * Instantiates a new Sofa tracer span builder.
368
+ *
369
+ * @param operationName the operation name
370
+ */
290
371
public SofaTracerSpanBuilder (String operationName ) {
291
372
this .operationName = operationName ;
292
373
}
@@ -455,6 +536,9 @@ private SofaTracerSpanContext preferredReference() {
455
536
}
456
537
}
457
538
539
+ /**
540
+ * The type Builder.
541
+ */
458
542
public static final class Builder {
459
543
460
544
private final String tracerType ;
@@ -471,51 +555,113 @@ public static final class Builder {
471
555
472
556
private Sampler sampler ;
473
557
558
+ /**
559
+ * Instantiates a new Builder.
560
+ *
561
+ * @param tracerType the tracer type
562
+ */
474
563
public Builder (String tracerType ) {
475
564
AssertUtils .isTrue (StringUtils .isNotBlank (tracerType ), "tracerType must be not empty" );
476
565
this .tracerType = tracerType ;
477
566
}
478
567
568
+ /**
569
+ * With client reporter builder.
570
+ *
571
+ * @param clientReporter the client reporter
572
+ * @return the builder
573
+ */
479
574
public Builder withClientReporter (Reporter clientReporter ) {
480
575
this .clientReporter = clientReporter ;
481
576
return this ;
482
577
}
483
578
579
+ /**
580
+ * With server reporter builder.
581
+ *
582
+ * @param serverReporter the server reporter
583
+ * @return the builder
584
+ */
484
585
public Builder withServerReporter (Reporter serverReporter ) {
485
586
this .serverReporter = serverReporter ;
486
587
return this ;
487
588
}
488
589
590
+ /**
591
+ * With client event reporter builder.
592
+ *
593
+ * @param clientEventReporter the client event reporter
594
+ * @return the builder
595
+ */
489
596
public Builder withClientEventReporter (Reporter clientEventReporter ) {
490
597
this .clientEventReporter = clientEventReporter ;
491
598
return this ;
492
599
}
493
600
601
+ /**
602
+ * With server event reporter builder.
603
+ *
604
+ * @param serverEventReporter the server event reporter
605
+ * @return the builder
606
+ */
494
607
public Builder withServerEventReporter (Reporter serverEventReporter ) {
495
608
this .serverEventReporter = serverEventReporter ;
496
609
return this ;
497
610
}
498
611
612
+ /**
613
+ * With sampler builder.
614
+ *
615
+ * @param sampler the sampler
616
+ * @return the builder
617
+ */
499
618
public Builder withSampler (Sampler sampler ) {
500
619
this .sampler = sampler ;
501
620
return this ;
502
621
}
503
622
623
+ /**
624
+ * With tag builder.
625
+ *
626
+ * @param key the key
627
+ * @param value the value
628
+ * @return the builder
629
+ */
504
630
public Builder withTag (String key , String value ) {
505
631
tracerTags .put (key , value );
506
632
return this ;
507
633
}
508
634
635
+ /**
636
+ * With tag builder.
637
+ *
638
+ * @param key the key
639
+ * @param value the value
640
+ * @return the builder
641
+ */
509
642
public Builder withTag (String key , Boolean value ) {
510
643
tracerTags .put (key , value );
511
644
return this ;
512
645
}
513
646
647
+ /**
648
+ * With tag builder.
649
+ *
650
+ * @param key the key
651
+ * @param value the value
652
+ * @return the builder
653
+ */
514
654
public Builder withTag (String key , Number value ) {
515
655
tracerTags .put (key , value );
516
656
return this ;
517
657
}
518
658
659
+ /**
660
+ * With tags builder.
661
+ *
662
+ * @param tags the tags
663
+ * @return the builder
664
+ */
519
665
public Builder withTags (Map <String , ?> tags ) {
520
666
if (tags == null || tags .size () <= 0 ) {
521
667
return this ;
@@ -543,6 +689,11 @@ public Builder withTags(Map<String, ?> tags) {
543
689
return this ;
544
690
}
545
691
692
+ /**
693
+ * Build sofa tracer.
694
+ *
695
+ * @return the sofa tracer
696
+ */
546
697
public SofaTracer build () {
547
698
try {
548
699
sampler = SamplerFactory .getSampler ();
0 commit comments