Add a new field, applicationCode, in TraceSegment.
This commit is contained in:
parent
3c44572d99
commit
a23538df38
|
|
@ -55,14 +55,23 @@ public class TraceSegment implements ISerializable<SegmentMessage> {
|
|||
*/
|
||||
private List<Span> spans;
|
||||
|
||||
/**
|
||||
* The <code>applicationCode</code> represents a name of current application/JVM and indicates which is business
|
||||
* role in the cluster.
|
||||
*
|
||||
* e.g. account_app, billing_app
|
||||
*/
|
||||
private String applicationCode;
|
||||
|
||||
/**
|
||||
* Create a trace segment, by given segmentId.
|
||||
* This segmentId is generated by TraceSegmentRef, AKA, from tracer/agent module.
|
||||
*
|
||||
* @param segmentId {@link #traceSegmentId}
|
||||
*/
|
||||
public TraceSegment(String segmentId) {
|
||||
public TraceSegment(String segmentId, String applicationCode) {
|
||||
this.traceSegmentId = segmentId;
|
||||
this.applicationCode = applicationCode;
|
||||
this.startTime = System.currentTimeMillis();
|
||||
this.spans = new LinkedList<Span>();
|
||||
}
|
||||
|
|
@ -72,7 +81,7 @@ public class TraceSegment implements ISerializable<SegmentMessage> {
|
|||
*
|
||||
* @param message from another {@link TraceSegment#serialize()}
|
||||
*/
|
||||
public TraceSegment(SegmentMessage message){
|
||||
public TraceSegment(SegmentMessage message) {
|
||||
deserialize(message);
|
||||
}
|
||||
|
||||
|
|
@ -138,6 +147,10 @@ public class TraceSegment implements ISerializable<SegmentMessage> {
|
|||
return Collections.unmodifiableList(spans);
|
||||
}
|
||||
|
||||
public String getApplicationCode() {
|
||||
return applicationCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TraceSegment{" +
|
||||
|
|
@ -154,6 +167,7 @@ public class TraceSegment implements ISerializable<SegmentMessage> {
|
|||
segmentBuilder.setTraceSegmentId(traceSegmentId);
|
||||
segmentBuilder.setStartTime(startTime);
|
||||
segmentBuilder.setEndTime(endTime);
|
||||
segmentBuilder.setApplicationCode(applicationCode);
|
||||
segmentBuilder.setPrimaryRef(primaryRef.serialize());
|
||||
for (TraceSegmentRef ref : refs) {
|
||||
segmentBuilder.addRefs(ref.serialize());
|
||||
|
|
@ -169,9 +183,10 @@ public class TraceSegment implements ISerializable<SegmentMessage> {
|
|||
traceSegmentId = message.getTraceSegmentId();
|
||||
startTime = message.getStartTime();
|
||||
endTime = message.getEndTime();
|
||||
applicationCode = message.getApplicationCode();
|
||||
(primaryRef = new TraceSegmentRef()).deserialize(message.getPrimaryRef());
|
||||
List<SegmentRefMessage> refsList = message.getRefsList();
|
||||
if(refsList != null){
|
||||
if (refsList != null) {
|
||||
this.refs = new LinkedList<TraceSegmentRef>();
|
||||
for (SegmentRefMessage refMessage : refsList) {
|
||||
TraceSegmentRef ref = new TraceSegmentRef();
|
||||
|
|
@ -181,7 +196,7 @@ public class TraceSegment implements ISerializable<SegmentMessage> {
|
|||
}
|
||||
|
||||
List<SpanMessage> spansList = message.getSpansList();
|
||||
if(spansList != null){
|
||||
if (spansList != null) {
|
||||
this.spans = new LinkedList<Span>();
|
||||
for (SpanMessage spanMessage : spansList) {
|
||||
spans.add(new Span(spanMessage));
|
||||
|
|
|
|||
|
|
@ -7,9 +7,10 @@ message SegmentMessage {
|
|||
string traceSegmentId = 1;
|
||||
int64 startTime = 2;
|
||||
int64 endTime = 3;
|
||||
SegmentRefMessage primaryRef = 4;
|
||||
repeated SegmentRefMessage refs = 5;
|
||||
repeated SpanMessage spans = 6;
|
||||
string applicationCode = 4;
|
||||
SegmentRefMessage primaryRef = 5;
|
||||
repeated SegmentRefMessage refs = 6;
|
||||
repeated SpanMessage spans = 7;
|
||||
}
|
||||
|
||||
message SegmentRefMessage {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public class SpanTestCase {
|
|||
|
||||
@Test
|
||||
public void testFinish() {
|
||||
TraceSegment owner = new TraceSegment("trace_1");
|
||||
TraceSegment owner = new TraceSegment("trace_1", "billing_app");
|
||||
|
||||
Span span1 = new Span(0, "serviceA");
|
||||
|
||||
|
|
|
|||
|
|
@ -10,15 +10,16 @@ import org.junit.Test;
|
|||
public class TraceSegmentTestCase {
|
||||
@Test
|
||||
public void testConstructor() {
|
||||
TraceSegment segment = new TraceSegment("trace_1");
|
||||
TraceSegment segment = new TraceSegment("trace_1", "billing_app");
|
||||
|
||||
Assert.assertEquals("trace_1", segment.getTraceSegmentId());
|
||||
Assert.assertTrue(segment.getStartTime() > 0);
|
||||
Assert.assertEquals("billing_app", segment.getApplicationCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRef() {
|
||||
TraceSegment segment = new TraceSegment("trace_3");
|
||||
TraceSegment segment = new TraceSegment("trace_3", "billing_app");
|
||||
|
||||
TraceSegmentRef ref1 = new TraceSegmentRef();
|
||||
ref1.setTraceSegmentId("parent_trace_0");
|
||||
|
|
@ -45,7 +46,7 @@ public class TraceSegmentTestCase {
|
|||
|
||||
@Test
|
||||
public void testArchiveSpan() {
|
||||
TraceSegment segment = new TraceSegment("trace_1");
|
||||
TraceSegment segment = new TraceSegment("trace_1", "billing_app");
|
||||
Span span1 = new Span(1, "/serviceA");
|
||||
segment.archive(span1);
|
||||
|
||||
|
|
@ -58,7 +59,7 @@ public class TraceSegmentTestCase {
|
|||
|
||||
@Test
|
||||
public void testFinish() {
|
||||
TraceSegment segment = new TraceSegment("trace_1");
|
||||
TraceSegment segment = new TraceSegment("trace_1", "billing_app");
|
||||
|
||||
Assert.assertTrue(segment.getEndTime() == 0);
|
||||
segment.finish();
|
||||
|
|
@ -67,7 +68,7 @@ public class TraceSegmentTestCase {
|
|||
|
||||
@Test
|
||||
public void testSerialize() {
|
||||
TraceSegment segment = new TraceSegment("trace_3");
|
||||
TraceSegment segment = new TraceSegment("trace_3", "billing_app");
|
||||
|
||||
TraceSegmentRef ref1 = new TraceSegmentRef();
|
||||
ref1.setTraceSegmentId("parent_trace_0");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.a.eye.skywalking.api.context;
|
||||
|
||||
import com.a.eye.skywalking.api.conf.Config;
|
||||
import com.a.eye.skywalking.trace.Span;
|
||||
import com.a.eye.skywalking.trace.TraceSegment;
|
||||
import com.a.eye.skywalking.api.util.TraceIdGenerator;
|
||||
|
|
@ -28,8 +29,11 @@ public final class TracerContext {
|
|||
|
||||
private int spanIdGenerator;
|
||||
|
||||
/**
|
||||
* Create a {@link TraceSegment} and init {@link #spanIdGenerator} as 0;
|
||||
*/
|
||||
TracerContext() {
|
||||
this.segment = new TraceSegment(TraceIdGenerator.generate());
|
||||
this.segment = new TraceSegment(TraceIdGenerator.generate(), Config.SkyWalking.APPLICATION_CODE);
|
||||
this.spanIdGenerator = 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue