diff --git a/src/main/java/com/profiler/context/Annotation.java b/src/main/java/com/profiler/context/Annotation.java new file mode 100644 index 000000000..08dc76d03 --- /dev/null +++ b/src/main/java/com/profiler/context/Annotation.java @@ -0,0 +1,99 @@ +package com.profiler.context; + +public interface Annotation { + + public static class ClientSend implements Annotation { + @Override + public String toString() { + return "@CLIENT_SEND"; + } + } + + public static class ClientRecv implements Annotation { + @Override + public String toString() { + return "@CLIENT_RECV"; + } + } + + public static class ServerSend implements Annotation { + @Override + public String toString() { + return "@SERVER_SEND"; + } + } + + public static class ServerRecv implements Annotation { + @Override + public String toString() { + return "@SERVER_RECV"; + } + } + + public static class Message implements Annotation { + private String message; + + public Message(String message) { + this.message = message; + } + + @Override + public String toString() { + return "@MSG=" + message; + } + } + + public static class RpcName implements Annotation { + private final String service; + private final String rpc; + + public RpcName(String service, String rpc) { + this.service = service; + this.rpc = rpc; + } + + @Override + public String toString() { + return "@RPCNAME={service=" + service + ", rpc=" + rpc + "}"; + } + } + + public static class ClientAddr implements Annotation { + private final String address; + + public ClientAddr(String address) { + this.address = address; + } + + @Override + public String toString() { + return "@CLIENT_ADDR=" + address; + } + } + + public static class ServerAddr implements Annotation { + private final String address; + + public ServerAddr(String address) { + this.address = address; + } + + @Override + public String toString() { + return "@SERVER_ADDR=" + address; + } + } + + public static class BinaryAnnotation implements Annotation { + private final String key; + private final String type; + private final byte[] value; + + public BinaryAnnotation(String key, Object value) { + this.key = key; + this.type = value.getClass().getName(); + // TODO: convert to byte + this.value = null; + } + } +} diff --git a/src/main/java/com/profiler/context/EndPoint.java b/src/main/java/com/profiler/context/EndPoint.java new file mode 100644 index 000000000..920fce335 --- /dev/null +++ b/src/main/java/com/profiler/context/EndPoint.java @@ -0,0 +1,22 @@ +package com.profiler.context; + +public class EndPoint { + + public static final EndPoint NONE = null; + + private final String protocol; + private final String ip; + private final int port; + private final String name; + + public EndPoint(String protocol, String ip, int port, String name) { + this.protocol = protocol; + this.ip = ip; + this.port = port; + this.name = name; + } + + public String toString() { + return "EndPoint{Protocol=" + protocol + ", IP=" + ip + ", Port=" + port + ", Name=" + name + "]"; + } +} diff --git a/src/main/java/com/profiler/context/Header.java b/src/main/java/com/profiler/context/Header.java index 399fd8bec..8b3fac720 100644 --- a/src/main/java/com/profiler/context/Header.java +++ b/src/main/java/com/profiler/context/Header.java @@ -2,9 +2,11 @@ package com.profiler.context; public enum Header { - HTTP_TRACE_ID("x-tracer-trace_id"), - HTTP_TRACE_DEBUG("x-tracer-debug"), - HTTP_TRACE_PARENT_SPAN_ID("x-tracer-parent_span_id"); + HTTP_TRACE_ID("X-TRACER-TraceID"), + HTTP_SPAN_ID("X-TRACER-SpanID"), + HTTP_PARENT_SPAN_ID("X-TRACER-ParentSpanID"), + HTTP_SAMPLED("X-TRACER-Sampled"), + HTTP_FLAGS("X-TRACER-Flags"); private String token; diff --git a/src/main/java/com/profiler/context/Record.java b/src/main/java/com/profiler/context/Record.java new file mode 100644 index 000000000..e4dd65208 --- /dev/null +++ b/src/main/java/com/profiler/context/Record.java @@ -0,0 +1,31 @@ +package com.profiler.context; + +public class Record { + + private final TraceID traceId; + private final long timestamp; + private final Annotation annotation; + private final Long duration; + + public Record(TraceID traceId, long timestamp, Annotation annotation, Long duration) { + this.traceId = traceId; + this.timestamp = timestamp; + this.annotation = annotation; + this.duration = duration; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + + sb.append("Record={"); + sb.append("traceId=").append(traceId); + sb.append(", timestamp=").append(timestamp); + sb.append(", annotation=").append(annotation); + sb.append(", duration=").append(duration); + sb.append("}"); + + return sb.toString(); + } + +} diff --git a/src/main/java/com/profiler/context/RequestContext.java b/src/main/java/com/profiler/context/RequestContext.java deleted file mode 100644 index 02ae9343d..000000000 --- a/src/main/java/com/profiler/context/RequestContext.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.profiler.context; - -import com.profiler.util.NamedThreadLocal; - -public class RequestContext { - - private static final ThreadLocal trace = new NamedThreadLocal("Trace"); - - public static Trace getTrace(String traceID, String parentSpanID, String name, boolean debug) { - Trace t = trace.get(); - if (t == null) { - t = new Trace(traceID, parentSpanID, name, debug); - trace.set(t); - } - return t; - } - - /** - * Calling from Span.flush() - */ - public static void removeCurrentContext() { - trace.remove(); - } -} diff --git a/src/main/java/com/profiler/context/Span.java b/src/main/java/com/profiler/context/Span.java new file mode 100644 index 000000000..eb22de774 --- /dev/null +++ b/src/main/java/com/profiler/context/Span.java @@ -0,0 +1,58 @@ +package com.profiler.context; + +import java.util.Comparator; +import java.util.SortedSet; +import java.util.TreeSet; + +/** + * A span represents one RPC request. A trace is made up of many spans. + * + * @author netspider + * + */ +public class Span { + + private final TraceID traceID; + private final String name; + private final EndPoint endPoint; + + private final long createTime; + + private final SortedSet annotations = new TreeSet(new Comparator() { + @Override + public int compare(Annotation a1, Annotation a2) { + throw new RuntimeException("Comparator not implemented"); + // return (int) (a1.getTimestamp() - a2.getTimestamp()); + } + }); + + public Span(TraceID traceId, String name, EndPoint endPoint) { + this.traceID = traceId; + this.name = name; + this.endPoint = endPoint; + + this.createTime = System.nanoTime(); + } + + public boolean addAnnotation(Annotation annotation) { + return annotations.add(annotation); + } + + public int getAnnotationSize() { + return annotations.size(); + } + + public String toString() { + StringBuilder sb = new StringBuilder(); + + sb.append("Span={"); + sb.append("TraceID=").append(traceID); + sb.append(", CreateTime=").append(createTime); + sb.append(", Name=").append(name); + sb.append(", EndPoint=").append(endPoint); + sb.append(", Annotations=").append(annotations); + sb.append("}"); + + return sb.toString(); + } +} diff --git a/src/main/java/com/profiler/context/Trace.java b/src/main/java/com/profiler/context/Trace.java index 362b7bce2..4cb798717 100644 --- a/src/main/java/com/profiler/context/Trace.java +++ b/src/main/java/com/profiler/context/Trace.java @@ -1,38 +1,75 @@ package com.profiler.context; -import com.profiler.context.gen.Annotation; -import com.profiler.context.gen.BinaryAnnotation; -import com.profiler.context.gen.Span; +import java.util.ArrayList; +import java.util.List; + +import com.profiler.context.tracer.Tracer; +import com.profiler.util.NamedThreadLocal; /** + * use by interceptors * * @author netspider * */ public class Trace { - private static final int NO_PARENT_SPAN_ID = -1; + private static final ThreadLocal traceId = new NamedThreadLocal("TraceID"); - private final String traceID; + private static final List tracers = new ArrayList(1); - private final Span span; + private Trace() { - Trace(String traceID, String parentSpanID, String name, boolean debug) { - this.traceID = (traceID == null) ? TraceID.newTraceID() : traceID; - - this.span = new Span(); - this.span.setTraceID(this.traceID); - this.span.setSpanID(SpanID.newSpanID()); - this.span.setParentSpanId(parentSpanID); - this.span.setName(name); - this.span.setDebug(debug); } - public void record(Annotation annotation) { - span.addToAnnotations(annotation); + public static void addTracer(Tracer tracer) { + tracers.add(tracer); } - public void recordBinary(BinaryAnnotation annotation) { - span.addToBinaryAnnotations(annotation); + private static TraceID getTraceID() { + TraceID id = traceId.get(); + if (id == null) { + id = new TraceID(null, null, SpanID.newSpanID(), false, 0); + traceId.set(id); + } + return traceId.get(); } -} + + private static void record(Record record) { + for (Tracer t : tracers) { + t.record(record); + } + } + + public static void setTraceId(TraceID traceId) { + Trace.traceId.set(traceId); + } + + public static void record(Annotation annotation) { + record(new Record(getTraceID(), System.currentTimeMillis(), annotation, null)); + } + + public static void record(Annotation annotation, long duration) { + record(new Record(getTraceID(), System.currentTimeMillis(), annotation, duration)); + } + + public static void recordBinary(String key, Object value) { + record(new Record(getTraceID(), System.currentTimeMillis(), new Annotation.BinaryAnnotation(key, value), null)); + } + + public static void record(String message) { + record(new Record(getTraceID(), System.currentTimeMillis(), new Annotation.Message(message), null)); + } + + public static void recordRpcName(String service, String rpc) { + record(new Record(getTraceID(), System.currentTimeMillis(), new Annotation.RpcName(service, rpc), null)); + } + + public static void recordClientAddr(String address) { + record(new Record(getTraceID(), System.currentTimeMillis(), new Annotation.ClientAddr(address), null)); + } + + public static void recordServerAddr(String address) { + record(new Record(getTraceID(), System.currentTimeMillis(), new Annotation.ServerAddr(address), null)); + } +} \ No newline at end of file diff --git a/src/main/java/com/profiler/context/TraceID.java b/src/main/java/com/profiler/context/TraceID.java index 97a7d0486..5ba370b80 100644 --- a/src/main/java/com/profiler/context/TraceID.java +++ b/src/main/java/com/profiler/context/TraceID.java @@ -1,13 +1,32 @@ package com.profiler.context; -import java.util.UUID; - public class TraceID { + private String traceId; + private String parentSpanId; + private String spanId; + private boolean sampled; + private int flags; - public static final String EMPTY = null; + public TraceID(String traceId, String parentSpanId, String spanId, boolean sampled, int flags) { + this.traceId = (traceId == null) ? parentSpanId : traceId; + this.parentSpanId = (parentSpanId == null) ? spanId : parentSpanId; + this.spanId = spanId; + this.sampled = sampled; + this.flags = flags; + } - public static String newTraceID() { - UUID uuid = UUID.randomUUID(); - return uuid.toString(); + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + + sb.append("TraceID={"); + sb.append("traceId=").append(traceId); + sb.append(", parentSpanId=").append(parentSpanId); + sb.append(", spanId=").append(spanId); + sb.append(", sampled=").append(sampled); + sb.append(", flags=").append(flags); + sb.append("}"); + + return sb.toString(); } } diff --git a/src/main/java/com/profiler/context/gen/Annotation.java b/src/main/java/com/profiler/context/gen/Annotation.java deleted file mode 100644 index 9430fa830..000000000 --- a/src/main/java/com/profiler/context/gen/Annotation.java +++ /dev/null @@ -1,675 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.8.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.profiler.context.gen; - -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Annotation implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Annotation"); - - private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("timestamp", org.apache.thrift.protocol.TType.I64, (short)1); - private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField HOST_FIELD_DESC = new org.apache.thrift.protocol.TField("host", org.apache.thrift.protocol.TType.STRUCT, (short)3); - private static final org.apache.thrift.protocol.TField DURATION_FIELD_DESC = new org.apache.thrift.protocol.TField("duration", org.apache.thrift.protocol.TType.I32, (short)4); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new AnnotationStandardSchemeFactory()); - schemes.put(TupleScheme.class, new AnnotationTupleSchemeFactory()); - } - - private long timestamp; // required - private String value; // required - private Endpoint host; // optional - private int duration; // optional - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - TIMESTAMP((short)1, "timestamp"), - VALUE((short)2, "value"), - HOST((short)3, "host"), - DURATION((short)4, "duration"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // TIMESTAMP - return TIMESTAMP; - case 2: // VALUE - return VALUE; - case 3: // HOST - return HOST; - case 4: // DURATION - return DURATION; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __TIMESTAMP_ISSET_ID = 0; - private static final int __DURATION_ISSET_ID = 1; - private BitSet __isset_bit_vector = new BitSet(2); - private _Fields optionals[] = {_Fields.HOST,_Fields.DURATION}; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("timestamp", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); - tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.HOST, new org.apache.thrift.meta_data.FieldMetaData("host", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Endpoint.class))); - tmpMap.put(_Fields.DURATION, new org.apache.thrift.meta_data.FieldMetaData("duration", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Annotation.class, metaDataMap); - } - - public Annotation() { - } - - public Annotation( - long timestamp, - String value) - { - this(); - this.timestamp = timestamp; - setTimestampIsSet(true); - this.value = value; - } - - /** - * Performs a deep copy on other. - */ - public Annotation(Annotation other) { - __isset_bit_vector.clear(); - __isset_bit_vector.or(other.__isset_bit_vector); - this.timestamp = other.timestamp; - if (other.isSetValue()) { - this.value = other.value; - } - if (other.isSetHost()) { - this.host = new Endpoint(other.host); - } - this.duration = other.duration; - } - - public Annotation deepCopy() { - return new Annotation(this); - } - - @Override - public void clear() { - setTimestampIsSet(false); - this.timestamp = 0; - this.value = null; - this.host = null; - setDurationIsSet(false); - this.duration = 0; - } - - public long getTimestamp() { - return this.timestamp; - } - - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - setTimestampIsSet(true); - } - - public void unsetTimestamp() { - __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); - } - - /** Returns true if field timestamp is set (has been assigned a value) and false otherwise */ - public boolean isSetTimestamp() { - return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); - } - - public void setTimestampIsSet(boolean value) { - __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); - } - - public String getValue() { - return this.value; - } - - public void setValue(String value) { - this.value = value; - } - - public void unsetValue() { - this.value = null; - } - - /** Returns true if field value is set (has been assigned a value) and false otherwise */ - public boolean isSetValue() { - return this.value != null; - } - - public void setValueIsSet(boolean value) { - if (!value) { - this.value = null; - } - } - - public Endpoint getHost() { - return this.host; - } - - public void setHost(Endpoint host) { - this.host = host; - } - - public void unsetHost() { - this.host = null; - } - - /** Returns true if field host is set (has been assigned a value) and false otherwise */ - public boolean isSetHost() { - return this.host != null; - } - - public void setHostIsSet(boolean value) { - if (!value) { - this.host = null; - } - } - - public int getDuration() { - return this.duration; - } - - public void setDuration(int duration) { - this.duration = duration; - setDurationIsSet(true); - } - - public void unsetDuration() { - __isset_bit_vector.clear(__DURATION_ISSET_ID); - } - - /** Returns true if field duration is set (has been assigned a value) and false otherwise */ - public boolean isSetDuration() { - return __isset_bit_vector.get(__DURATION_ISSET_ID); - } - - public void setDurationIsSet(boolean value) { - __isset_bit_vector.set(__DURATION_ISSET_ID, value); - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case TIMESTAMP: - if (value == null) { - unsetTimestamp(); - } else { - setTimestamp((Long)value); - } - break; - - case VALUE: - if (value == null) { - unsetValue(); - } else { - setValue((String)value); - } - break; - - case HOST: - if (value == null) { - unsetHost(); - } else { - setHost((Endpoint)value); - } - break; - - case DURATION: - if (value == null) { - unsetDuration(); - } else { - setDuration((Integer)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case TIMESTAMP: - return Long.valueOf(getTimestamp()); - - case VALUE: - return getValue(); - - case HOST: - return getHost(); - - case DURATION: - return Integer.valueOf(getDuration()); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case TIMESTAMP: - return isSetTimestamp(); - case VALUE: - return isSetValue(); - case HOST: - return isSetHost(); - case DURATION: - return isSetDuration(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof Annotation) - return this.equals((Annotation)that); - return false; - } - - public boolean equals(Annotation that) { - if (that == null) - return false; - - boolean this_present_timestamp = true; - boolean that_present_timestamp = true; - if (this_present_timestamp || that_present_timestamp) { - if (!(this_present_timestamp && that_present_timestamp)) - return false; - if (this.timestamp != that.timestamp) - return false; - } - - boolean this_present_value = true && this.isSetValue(); - boolean that_present_value = true && that.isSetValue(); - if (this_present_value || that_present_value) { - if (!(this_present_value && that_present_value)) - return false; - if (!this.value.equals(that.value)) - return false; - } - - boolean this_present_host = true && this.isSetHost(); - boolean that_present_host = true && that.isSetHost(); - if (this_present_host || that_present_host) { - if (!(this_present_host && that_present_host)) - return false; - if (!this.host.equals(that.host)) - return false; - } - - boolean this_present_duration = true && this.isSetDuration(); - boolean that_present_duration = true && that.isSetDuration(); - if (this_present_duration || that_present_duration) { - if (!(this_present_duration && that_present_duration)) - return false; - if (this.duration != that.duration) - return false; - } - - return true; - } - - @Override - public int hashCode() { - return 0; - } - - public int compareTo(Annotation other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - Annotation typedOther = (Annotation)other; - - lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(typedOther.isSetTimestamp()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTimestamp()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timestamp, typedOther.timestamp); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetValue()).compareTo(typedOther.isSetValue()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetValue()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, typedOther.value); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetHost()).compareTo(typedOther.isSetHost()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetHost()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.host, typedOther.host); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetDuration()).compareTo(typedOther.isSetDuration()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetDuration()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.duration, typedOther.duration); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("Annotation("); - boolean first = true; - - sb.append("timestamp:"); - sb.append(this.timestamp); - first = false; - if (!first) sb.append(", "); - sb.append("value:"); - if (this.value == null) { - sb.append("null"); - } else { - sb.append(this.value); - } - first = false; - if (isSetHost()) { - if (!first) sb.append(", "); - sb.append("host:"); - if (this.host == null) { - sb.append("null"); - } else { - sb.append(this.host); - } - first = false; - } - if (isSetDuration()) { - if (!first) sb.append(", "); - sb.append("duration:"); - sb.append(this.duration); - first = false; - } - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bit_vector = new BitSet(1); - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class AnnotationStandardSchemeFactory implements SchemeFactory { - public AnnotationStandardScheme getScheme() { - return new AnnotationStandardScheme(); - } - } - - private static class AnnotationStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, Annotation struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // TIMESTAMP - if (schemeField.type == org.apache.thrift.protocol.TType.I64) { - struct.timestamp = iprot.readI64(); - struct.setTimestampIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // VALUE - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.value = iprot.readString(); - struct.setValueIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // HOST - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.host = new Endpoint(); - struct.host.read(iprot); - struct.setHostIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // DURATION - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.duration = iprot.readI32(); - struct.setDurationIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, Annotation struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC); - oprot.writeI64(struct.timestamp); - oprot.writeFieldEnd(); - if (struct.value != null) { - oprot.writeFieldBegin(VALUE_FIELD_DESC); - oprot.writeString(struct.value); - oprot.writeFieldEnd(); - } - if (struct.host != null) { - if (struct.isSetHost()) { - oprot.writeFieldBegin(HOST_FIELD_DESC); - struct.host.write(oprot); - oprot.writeFieldEnd(); - } - } - if (struct.isSetDuration()) { - oprot.writeFieldBegin(DURATION_FIELD_DESC); - oprot.writeI32(struct.duration); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class AnnotationTupleSchemeFactory implements SchemeFactory { - public AnnotationTupleScheme getScheme() { - return new AnnotationTupleScheme(); - } - } - - private static class AnnotationTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, Annotation struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetTimestamp()) { - optionals.set(0); - } - if (struct.isSetValue()) { - optionals.set(1); - } - if (struct.isSetHost()) { - optionals.set(2); - } - if (struct.isSetDuration()) { - optionals.set(3); - } - oprot.writeBitSet(optionals, 4); - if (struct.isSetTimestamp()) { - oprot.writeI64(struct.timestamp); - } - if (struct.isSetValue()) { - oprot.writeString(struct.value); - } - if (struct.isSetHost()) { - struct.host.write(oprot); - } - if (struct.isSetDuration()) { - oprot.writeI32(struct.duration); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, Annotation struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(4); - if (incoming.get(0)) { - struct.timestamp = iprot.readI64(); - struct.setTimestampIsSet(true); - } - if (incoming.get(1)) { - struct.value = iprot.readString(); - struct.setValueIsSet(true); - } - if (incoming.get(2)) { - struct.host = new Endpoint(); - struct.host.read(iprot); - struct.setHostIsSet(true); - } - if (incoming.get(3)) { - struct.duration = iprot.readI32(); - struct.setDurationIsSet(true); - } - } - } - -} - diff --git a/src/main/java/com/profiler/context/gen/BinaryAnnotation.java b/src/main/java/com/profiler/context/gen/BinaryAnnotation.java deleted file mode 100644 index 1d77854ba..000000000 --- a/src/main/java/com/profiler/context/gen/BinaryAnnotation.java +++ /dev/null @@ -1,789 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.8.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.profiler.context.gen; - -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class BinaryAnnotation implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BinaryAnnotation"); - - private static final org.apache.thrift.protocol.TField TIMESTAMP_FIELD_DESC = new org.apache.thrift.protocol.TField("timestamp", org.apache.thrift.protocol.TType.I64, (short)1); - private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("key", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)3); - private static final org.apache.thrift.protocol.TField ANNOTATION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("annotationType", org.apache.thrift.protocol.TType.STRING, (short)4); - private static final org.apache.thrift.protocol.TField HOST_FIELD_DESC = new org.apache.thrift.protocol.TField("host", org.apache.thrift.protocol.TType.STRUCT, (short)5); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new BinaryAnnotationStandardSchemeFactory()); - schemes.put(TupleScheme.class, new BinaryAnnotationTupleSchemeFactory()); - } - - private long timestamp; // required - private String key; // required - private ByteBuffer value; // required - private String annotationType; // required - private Endpoint host; // optional - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - TIMESTAMP((short)1, "timestamp"), - KEY((short)2, "key"), - VALUE((short)3, "value"), - ANNOTATION_TYPE((short)4, "annotationType"), - HOST((short)5, "host"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // TIMESTAMP - return TIMESTAMP; - case 2: // KEY - return KEY; - case 3: // VALUE - return VALUE; - case 4: // ANNOTATION_TYPE - return ANNOTATION_TYPE; - case 5: // HOST - return HOST; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __TIMESTAMP_ISSET_ID = 0; - private BitSet __isset_bit_vector = new BitSet(1); - private _Fields optionals[] = {_Fields.HOST}; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.TIMESTAMP, new org.apache.thrift.meta_data.FieldMetaData("timestamp", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); - tmpMap.put(_Fields.KEY, new org.apache.thrift.meta_data.FieldMetaData("key", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.VALUE, new org.apache.thrift.meta_data.FieldMetaData("value", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); - tmpMap.put(_Fields.ANNOTATION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("annotationType", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.HOST, new org.apache.thrift.meta_data.FieldMetaData("host", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Endpoint.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(BinaryAnnotation.class, metaDataMap); - } - - public BinaryAnnotation() { - } - - public BinaryAnnotation( - long timestamp, - String key, - ByteBuffer value, - String annotationType) - { - this(); - this.timestamp = timestamp; - setTimestampIsSet(true); - this.key = key; - this.value = value; - this.annotationType = annotationType; - } - - /** - * Performs a deep copy on other. - */ - public BinaryAnnotation(BinaryAnnotation other) { - __isset_bit_vector.clear(); - __isset_bit_vector.or(other.__isset_bit_vector); - this.timestamp = other.timestamp; - if (other.isSetKey()) { - this.key = other.key; - } - if (other.isSetValue()) { - this.value = org.apache.thrift.TBaseHelper.copyBinary(other.value); -; - } - if (other.isSetAnnotationType()) { - this.annotationType = other.annotationType; - } - if (other.isSetHost()) { - this.host = new Endpoint(other.host); - } - } - - public BinaryAnnotation deepCopy() { - return new BinaryAnnotation(this); - } - - @Override - public void clear() { - setTimestampIsSet(false); - this.timestamp = 0; - this.key = null; - this.value = null; - this.annotationType = null; - this.host = null; - } - - public long getTimestamp() { - return this.timestamp; - } - - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - setTimestampIsSet(true); - } - - public void unsetTimestamp() { - __isset_bit_vector.clear(__TIMESTAMP_ISSET_ID); - } - - /** Returns true if field timestamp is set (has been assigned a value) and false otherwise */ - public boolean isSetTimestamp() { - return __isset_bit_vector.get(__TIMESTAMP_ISSET_ID); - } - - public void setTimestampIsSet(boolean value) { - __isset_bit_vector.set(__TIMESTAMP_ISSET_ID, value); - } - - public String getKey() { - return this.key; - } - - public void setKey(String key) { - this.key = key; - } - - public void unsetKey() { - this.key = null; - } - - /** Returns true if field key is set (has been assigned a value) and false otherwise */ - public boolean isSetKey() { - return this.key != null; - } - - public void setKeyIsSet(boolean value) { - if (!value) { - this.key = null; - } - } - - public byte[] getValue() { - setValue(org.apache.thrift.TBaseHelper.rightSize(value)); - return value == null ? null : value.array(); - } - - public ByteBuffer bufferForValue() { - return value; - } - - public void setValue(byte[] value) { - setValue(value == null ? (ByteBuffer)null : ByteBuffer.wrap(value)); - } - - public void setValue(ByteBuffer value) { - this.value = value; - } - - public void unsetValue() { - this.value = null; - } - - /** Returns true if field value is set (has been assigned a value) and false otherwise */ - public boolean isSetValue() { - return this.value != null; - } - - public void setValueIsSet(boolean value) { - if (!value) { - this.value = null; - } - } - - public String getAnnotationType() { - return this.annotationType; - } - - public void setAnnotationType(String annotationType) { - this.annotationType = annotationType; - } - - public void unsetAnnotationType() { - this.annotationType = null; - } - - /** Returns true if field annotationType is set (has been assigned a value) and false otherwise */ - public boolean isSetAnnotationType() { - return this.annotationType != null; - } - - public void setAnnotationTypeIsSet(boolean value) { - if (!value) { - this.annotationType = null; - } - } - - public Endpoint getHost() { - return this.host; - } - - public void setHost(Endpoint host) { - this.host = host; - } - - public void unsetHost() { - this.host = null; - } - - /** Returns true if field host is set (has been assigned a value) and false otherwise */ - public boolean isSetHost() { - return this.host != null; - } - - public void setHostIsSet(boolean value) { - if (!value) { - this.host = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case TIMESTAMP: - if (value == null) { - unsetTimestamp(); - } else { - setTimestamp((Long)value); - } - break; - - case KEY: - if (value == null) { - unsetKey(); - } else { - setKey((String)value); - } - break; - - case VALUE: - if (value == null) { - unsetValue(); - } else { - setValue((ByteBuffer)value); - } - break; - - case ANNOTATION_TYPE: - if (value == null) { - unsetAnnotationType(); - } else { - setAnnotationType((String)value); - } - break; - - case HOST: - if (value == null) { - unsetHost(); - } else { - setHost((Endpoint)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case TIMESTAMP: - return Long.valueOf(getTimestamp()); - - case KEY: - return getKey(); - - case VALUE: - return getValue(); - - case ANNOTATION_TYPE: - return getAnnotationType(); - - case HOST: - return getHost(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case TIMESTAMP: - return isSetTimestamp(); - case KEY: - return isSetKey(); - case VALUE: - return isSetValue(); - case ANNOTATION_TYPE: - return isSetAnnotationType(); - case HOST: - return isSetHost(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof BinaryAnnotation) - return this.equals((BinaryAnnotation)that); - return false; - } - - public boolean equals(BinaryAnnotation that) { - if (that == null) - return false; - - boolean this_present_timestamp = true; - boolean that_present_timestamp = true; - if (this_present_timestamp || that_present_timestamp) { - if (!(this_present_timestamp && that_present_timestamp)) - return false; - if (this.timestamp != that.timestamp) - return false; - } - - boolean this_present_key = true && this.isSetKey(); - boolean that_present_key = true && that.isSetKey(); - if (this_present_key || that_present_key) { - if (!(this_present_key && that_present_key)) - return false; - if (!this.key.equals(that.key)) - return false; - } - - boolean this_present_value = true && this.isSetValue(); - boolean that_present_value = true && that.isSetValue(); - if (this_present_value || that_present_value) { - if (!(this_present_value && that_present_value)) - return false; - if (!this.value.equals(that.value)) - return false; - } - - boolean this_present_annotationType = true && this.isSetAnnotationType(); - boolean that_present_annotationType = true && that.isSetAnnotationType(); - if (this_present_annotationType || that_present_annotationType) { - if (!(this_present_annotationType && that_present_annotationType)) - return false; - if (!this.annotationType.equals(that.annotationType)) - return false; - } - - boolean this_present_host = true && this.isSetHost(); - boolean that_present_host = true && that.isSetHost(); - if (this_present_host || that_present_host) { - if (!(this_present_host && that_present_host)) - return false; - if (!this.host.equals(that.host)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - return 0; - } - - public int compareTo(BinaryAnnotation other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - BinaryAnnotation typedOther = (BinaryAnnotation)other; - - lastComparison = Boolean.valueOf(isSetTimestamp()).compareTo(typedOther.isSetTimestamp()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTimestamp()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timestamp, typedOther.timestamp); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetKey()).compareTo(typedOther.isSetKey()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetKey()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.key, typedOther.key); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetValue()).compareTo(typedOther.isSetValue()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetValue()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.value, typedOther.value); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetAnnotationType()).compareTo(typedOther.isSetAnnotationType()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetAnnotationType()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.annotationType, typedOther.annotationType); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetHost()).compareTo(typedOther.isSetHost()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetHost()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.host, typedOther.host); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("BinaryAnnotation("); - boolean first = true; - - sb.append("timestamp:"); - sb.append(this.timestamp); - first = false; - if (!first) sb.append(", "); - sb.append("key:"); - if (this.key == null) { - sb.append("null"); - } else { - sb.append(this.key); - } - first = false; - if (!first) sb.append(", "); - sb.append("value:"); - if (this.value == null) { - sb.append("null"); - } else { - org.apache.thrift.TBaseHelper.toString(this.value, sb); - } - first = false; - if (!first) sb.append(", "); - sb.append("annotationType:"); - if (this.annotationType == null) { - sb.append("null"); - } else { - sb.append(this.annotationType); - } - first = false; - if (isSetHost()) { - if (!first) sb.append(", "); - sb.append("host:"); - if (this.host == null) { - sb.append("null"); - } else { - sb.append(this.host); - } - first = false; - } - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bit_vector = new BitSet(1); - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class BinaryAnnotationStandardSchemeFactory implements SchemeFactory { - public BinaryAnnotationStandardScheme getScheme() { - return new BinaryAnnotationStandardScheme(); - } - } - - private static class BinaryAnnotationStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, BinaryAnnotation struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // TIMESTAMP - if (schemeField.type == org.apache.thrift.protocol.TType.I64) { - struct.timestamp = iprot.readI64(); - struct.setTimestampIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // KEY - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.key = iprot.readString(); - struct.setKeyIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // VALUE - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.value = iprot.readBinary(); - struct.setValueIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // ANNOTATION_TYPE - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.annotationType = iprot.readString(); - struct.setAnnotationTypeIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // HOST - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.host = new Endpoint(); - struct.host.read(iprot); - struct.setHostIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, BinaryAnnotation struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC); - oprot.writeI64(struct.timestamp); - oprot.writeFieldEnd(); - if (struct.key != null) { - oprot.writeFieldBegin(KEY_FIELD_DESC); - oprot.writeString(struct.key); - oprot.writeFieldEnd(); - } - if (struct.value != null) { - oprot.writeFieldBegin(VALUE_FIELD_DESC); - oprot.writeBinary(struct.value); - oprot.writeFieldEnd(); - } - if (struct.annotationType != null) { - oprot.writeFieldBegin(ANNOTATION_TYPE_FIELD_DESC); - oprot.writeString(struct.annotationType); - oprot.writeFieldEnd(); - } - if (struct.host != null) { - if (struct.isSetHost()) { - oprot.writeFieldBegin(HOST_FIELD_DESC); - struct.host.write(oprot); - oprot.writeFieldEnd(); - } - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class BinaryAnnotationTupleSchemeFactory implements SchemeFactory { - public BinaryAnnotationTupleScheme getScheme() { - return new BinaryAnnotationTupleScheme(); - } - } - - private static class BinaryAnnotationTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, BinaryAnnotation struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetTimestamp()) { - optionals.set(0); - } - if (struct.isSetKey()) { - optionals.set(1); - } - if (struct.isSetValue()) { - optionals.set(2); - } - if (struct.isSetAnnotationType()) { - optionals.set(3); - } - if (struct.isSetHost()) { - optionals.set(4); - } - oprot.writeBitSet(optionals, 5); - if (struct.isSetTimestamp()) { - oprot.writeI64(struct.timestamp); - } - if (struct.isSetKey()) { - oprot.writeString(struct.key); - } - if (struct.isSetValue()) { - oprot.writeBinary(struct.value); - } - if (struct.isSetAnnotationType()) { - oprot.writeString(struct.annotationType); - } - if (struct.isSetHost()) { - struct.host.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, BinaryAnnotation struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(5); - if (incoming.get(0)) { - struct.timestamp = iprot.readI64(); - struct.setTimestampIsSet(true); - } - if (incoming.get(1)) { - struct.key = iprot.readString(); - struct.setKeyIsSet(true); - } - if (incoming.get(2)) { - struct.value = iprot.readBinary(); - struct.setValueIsSet(true); - } - if (incoming.get(3)) { - struct.annotationType = iprot.readString(); - struct.setAnnotationTypeIsSet(true); - } - if (incoming.get(4)) { - struct.host = new Endpoint(); - struct.host.read(iprot); - struct.setHostIsSet(true); - } - } - } - -} - diff --git a/src/main/java/com/profiler/context/gen/Constants.java b/src/main/java/com/profiler/context/gen/Constants.java deleted file mode 100644 index 8e676b0fa..000000000 --- a/src/main/java/com/profiler/context/gen/Constants.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.8.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.profiler.context.gen; - -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Constants { - - public static final String CLIENT_SEND = "CS"; - - public static final String CLIENT_RECV = "CR"; - - public static final String SERVER_SEND = "SS"; - - public static final String SERVER_RECV = "SR"; - -} diff --git a/src/main/java/com/profiler/context/gen/Endpoint.java b/src/main/java/com/profiler/context/gen/Endpoint.java deleted file mode 100644 index 4b4437072..000000000 --- a/src/main/java/com/profiler/context/gen/Endpoint.java +++ /dev/null @@ -1,576 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.8.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.profiler.context.gen; - -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Endpoint implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Endpoint"); - - private static final org.apache.thrift.protocol.TField IP_FIELD_DESC = new org.apache.thrift.protocol.TField("ip", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("port", org.apache.thrift.protocol.TType.I16, (short)2); - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)3); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new EndpointStandardSchemeFactory()); - schemes.put(TupleScheme.class, new EndpointTupleSchemeFactory()); - } - - private String ip; // required - private short port; // required - private String name; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - IP((short)1, "ip"), - PORT((short)2, "port"), - NAME((short)3, "name"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // IP - return IP; - case 2: // PORT - return PORT; - case 3: // NAME - return NAME; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __PORT_ISSET_ID = 0; - private BitSet __isset_bit_vector = new BitSet(1); - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.IP, new org.apache.thrift.meta_data.FieldMetaData("ip", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.PORT, new org.apache.thrift.meta_data.FieldMetaData("port", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16))); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Endpoint.class, metaDataMap); - } - - public Endpoint() { - } - - public Endpoint( - String ip, - short port, - String name) - { - this(); - this.ip = ip; - this.port = port; - setPortIsSet(true); - this.name = name; - } - - /** - * Performs a deep copy on other. - */ - public Endpoint(Endpoint other) { - __isset_bit_vector.clear(); - __isset_bit_vector.or(other.__isset_bit_vector); - if (other.isSetIp()) { - this.ip = other.ip; - } - this.port = other.port; - if (other.isSetName()) { - this.name = other.name; - } - } - - public Endpoint deepCopy() { - return new Endpoint(this); - } - - @Override - public void clear() { - this.ip = null; - setPortIsSet(false); - this.port = 0; - this.name = null; - } - - public String getIp() { - return this.ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public void unsetIp() { - this.ip = null; - } - - /** Returns true if field ip is set (has been assigned a value) and false otherwise */ - public boolean isSetIp() { - return this.ip != null; - } - - public void setIpIsSet(boolean value) { - if (!value) { - this.ip = null; - } - } - - public short getPort() { - return this.port; - } - - public void setPort(short port) { - this.port = port; - setPortIsSet(true); - } - - public void unsetPort() { - __isset_bit_vector.clear(__PORT_ISSET_ID); - } - - /** Returns true if field port is set (has been assigned a value) and false otherwise */ - public boolean isSetPort() { - return __isset_bit_vector.get(__PORT_ISSET_ID); - } - - public void setPortIsSet(boolean value) { - __isset_bit_vector.set(__PORT_ISSET_ID, value); - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case IP: - if (value == null) { - unsetIp(); - } else { - setIp((String)value); - } - break; - - case PORT: - if (value == null) { - unsetPort(); - } else { - setPort((Short)value); - } - break; - - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case IP: - return getIp(); - - case PORT: - return Short.valueOf(getPort()); - - case NAME: - return getName(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case IP: - return isSetIp(); - case PORT: - return isSetPort(); - case NAME: - return isSetName(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof Endpoint) - return this.equals((Endpoint)that); - return false; - } - - public boolean equals(Endpoint that) { - if (that == null) - return false; - - boolean this_present_ip = true && this.isSetIp(); - boolean that_present_ip = true && that.isSetIp(); - if (this_present_ip || that_present_ip) { - if (!(this_present_ip && that_present_ip)) - return false; - if (!this.ip.equals(that.ip)) - return false; - } - - boolean this_present_port = true; - boolean that_present_port = true; - if (this_present_port || that_present_port) { - if (!(this_present_port && that_present_port)) - return false; - if (this.port != that.port) - return false; - } - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - return 0; - } - - public int compareTo(Endpoint other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - Endpoint typedOther = (Endpoint)other; - - lastComparison = Boolean.valueOf(isSetIp()).compareTo(typedOther.isSetIp()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetIp()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ip, typedOther.ip); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetPort()).compareTo(typedOther.isSetPort()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetPort()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.port, typedOther.port); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("Endpoint("); - boolean first = true; - - sb.append("ip:"); - if (this.ip == null) { - sb.append("null"); - } else { - sb.append(this.ip); - } - first = false; - if (!first) sb.append(", "); - sb.append("port:"); - sb.append(this.port); - first = false; - if (!first) sb.append(", "); - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bit_vector = new BitSet(1); - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class EndpointStandardSchemeFactory implements SchemeFactory { - public EndpointStandardScheme getScheme() { - return new EndpointStandardScheme(); - } - } - - private static class EndpointStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, Endpoint struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // IP - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.ip = iprot.readString(); - struct.setIpIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // PORT - if (schemeField.type == org.apache.thrift.protocol.TType.I16) { - struct.port = iprot.readI16(); - struct.setPortIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, Endpoint struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.ip != null) { - oprot.writeFieldBegin(IP_FIELD_DESC); - oprot.writeString(struct.ip); - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(PORT_FIELD_DESC); - oprot.writeI16(struct.port); - oprot.writeFieldEnd(); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class EndpointTupleSchemeFactory implements SchemeFactory { - public EndpointTupleScheme getScheme() { - return new EndpointTupleScheme(); - } - } - - private static class EndpointTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, Endpoint struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetIp()) { - optionals.set(0); - } - if (struct.isSetPort()) { - optionals.set(1); - } - if (struct.isSetName()) { - optionals.set(2); - } - oprot.writeBitSet(optionals, 3); - if (struct.isSetIp()) { - oprot.writeString(struct.ip); - } - if (struct.isSetPort()) { - oprot.writeI16(struct.port); - } - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, Endpoint struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(3); - if (incoming.get(0)) { - struct.ip = iprot.readString(); - struct.setIpIsSet(true); - } - if (incoming.get(1)) { - struct.port = iprot.readI16(); - struct.setPortIsSet(true); - } - if (incoming.get(2)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - } - } - -} - diff --git a/src/main/java/com/profiler/context/gen/Span.java b/src/main/java/com/profiler/context/gen/Span.java deleted file mode 100644 index fb7875ff2..000000000 --- a/src/main/java/com/profiler/context/gen/Span.java +++ /dev/null @@ -1,1086 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.8.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.profiler.context.gen; - -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Span implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Span"); - - private static final org.apache.thrift.protocol.TField TRACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("traceID", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField SPAN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("spanID", org.apache.thrift.protocol.TType.STRING, (short)3); - private static final org.apache.thrift.protocol.TField PARENT_SPAN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("parentSpanId", org.apache.thrift.protocol.TType.STRING, (short)4); - private static final org.apache.thrift.protocol.TField ANNOTATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("annotations", org.apache.thrift.protocol.TType.LIST, (short)5); - private static final org.apache.thrift.protocol.TField BINARY_ANNOTATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("binaryAnnotations", org.apache.thrift.protocol.TType.LIST, (short)6); - private static final org.apache.thrift.protocol.TField DEBUG_FIELD_DESC = new org.apache.thrift.protocol.TField("debug", org.apache.thrift.protocol.TType.BOOL, (short)7); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new SpanStandardSchemeFactory()); - schemes.put(TupleScheme.class, new SpanTupleSchemeFactory()); - } - - private String traceID; // required - private String name; // required - private String spanID; // required - private String parentSpanId; // optional - private List annotations; // required - private List binaryAnnotations; // required - private boolean debug; // optional - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - TRACE_ID((short)1, "traceID"), - NAME((short)2, "name"), - SPAN_ID((short)3, "spanID"), - PARENT_SPAN_ID((short)4, "parentSpanId"), - ANNOTATIONS((short)5, "annotations"), - BINARY_ANNOTATIONS((short)6, "binaryAnnotations"), - DEBUG((short)7, "debug"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // TRACE_ID - return TRACE_ID; - case 2: // NAME - return NAME; - case 3: // SPAN_ID - return SPAN_ID; - case 4: // PARENT_SPAN_ID - return PARENT_SPAN_ID; - case 5: // ANNOTATIONS - return ANNOTATIONS; - case 6: // BINARY_ANNOTATIONS - return BINARY_ANNOTATIONS; - case 7: // DEBUG - return DEBUG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __DEBUG_ISSET_ID = 0; - private BitSet __isset_bit_vector = new BitSet(1); - private _Fields optionals[] = {_Fields.PARENT_SPAN_ID,_Fields.DEBUG}; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.TRACE_ID, new org.apache.thrift.meta_data.FieldMetaData("traceID", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.SPAN_ID, new org.apache.thrift.meta_data.FieldMetaData("spanID", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.PARENT_SPAN_ID, new org.apache.thrift.meta_data.FieldMetaData("parentSpanId", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.ANNOTATIONS, new org.apache.thrift.meta_data.FieldMetaData("annotations", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Annotation.class)))); - tmpMap.put(_Fields.BINARY_ANNOTATIONS, new org.apache.thrift.meta_data.FieldMetaData("binaryAnnotations", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, BinaryAnnotation.class)))); - tmpMap.put(_Fields.DEBUG, new org.apache.thrift.meta_data.FieldMetaData("debug", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Span.class, metaDataMap); - } - - public Span() { - this.debug = false; - - } - - public Span( - String traceID, - String name, - String spanID, - List annotations, - List binaryAnnotations) - { - this(); - this.traceID = traceID; - this.name = name; - this.spanID = spanID; - this.annotations = annotations; - this.binaryAnnotations = binaryAnnotations; - } - - /** - * Performs a deep copy on other. - */ - public Span(Span other) { - __isset_bit_vector.clear(); - __isset_bit_vector.or(other.__isset_bit_vector); - if (other.isSetTraceID()) { - this.traceID = other.traceID; - } - if (other.isSetName()) { - this.name = other.name; - } - if (other.isSetSpanID()) { - this.spanID = other.spanID; - } - if (other.isSetParentSpanId()) { - this.parentSpanId = other.parentSpanId; - } - if (other.isSetAnnotations()) { - List __this__annotations = new ArrayList(); - for (Annotation other_element : other.annotations) { - __this__annotations.add(new Annotation(other_element)); - } - this.annotations = __this__annotations; - } - if (other.isSetBinaryAnnotations()) { - List __this__binaryAnnotations = new ArrayList(); - for (BinaryAnnotation other_element : other.binaryAnnotations) { - __this__binaryAnnotations.add(new BinaryAnnotation(other_element)); - } - this.binaryAnnotations = __this__binaryAnnotations; - } - this.debug = other.debug; - } - - public Span deepCopy() { - return new Span(this); - } - - @Override - public void clear() { - this.traceID = null; - this.name = null; - this.spanID = null; - this.parentSpanId = null; - this.annotations = null; - this.binaryAnnotations = null; - this.debug = false; - - } - - public String getTraceID() { - return this.traceID; - } - - public void setTraceID(String traceID) { - this.traceID = traceID; - } - - public void unsetTraceID() { - this.traceID = null; - } - - /** Returns true if field traceID is set (has been assigned a value) and false otherwise */ - public boolean isSetTraceID() { - return this.traceID != null; - } - - public void setTraceIDIsSet(boolean value) { - if (!value) { - this.traceID = null; - } - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public String getSpanID() { - return this.spanID; - } - - public void setSpanID(String spanID) { - this.spanID = spanID; - } - - public void unsetSpanID() { - this.spanID = null; - } - - /** Returns true if field spanID is set (has been assigned a value) and false otherwise */ - public boolean isSetSpanID() { - return this.spanID != null; - } - - public void setSpanIDIsSet(boolean value) { - if (!value) { - this.spanID = null; - } - } - - public String getParentSpanId() { - return this.parentSpanId; - } - - public void setParentSpanId(String parentSpanId) { - this.parentSpanId = parentSpanId; - } - - public void unsetParentSpanId() { - this.parentSpanId = null; - } - - /** Returns true if field parentSpanId is set (has been assigned a value) and false otherwise */ - public boolean isSetParentSpanId() { - return this.parentSpanId != null; - } - - public void setParentSpanIdIsSet(boolean value) { - if (!value) { - this.parentSpanId = null; - } - } - - public int getAnnotationsSize() { - return (this.annotations == null) ? 0 : this.annotations.size(); - } - - public java.util.Iterator getAnnotationsIterator() { - return (this.annotations == null) ? null : this.annotations.iterator(); - } - - public void addToAnnotations(Annotation elem) { - if (this.annotations == null) { - this.annotations = new ArrayList(); - } - this.annotations.add(elem); - } - - public List getAnnotations() { - return this.annotations; - } - - public void setAnnotations(List annotations) { - this.annotations = annotations; - } - - public void unsetAnnotations() { - this.annotations = null; - } - - /** Returns true if field annotations is set (has been assigned a value) and false otherwise */ - public boolean isSetAnnotations() { - return this.annotations != null; - } - - public void setAnnotationsIsSet(boolean value) { - if (!value) { - this.annotations = null; - } - } - - public int getBinaryAnnotationsSize() { - return (this.binaryAnnotations == null) ? 0 : this.binaryAnnotations.size(); - } - - public java.util.Iterator getBinaryAnnotationsIterator() { - return (this.binaryAnnotations == null) ? null : this.binaryAnnotations.iterator(); - } - - public void addToBinaryAnnotations(BinaryAnnotation elem) { - if (this.binaryAnnotations == null) { - this.binaryAnnotations = new ArrayList(); - } - this.binaryAnnotations.add(elem); - } - - public List getBinaryAnnotations() { - return this.binaryAnnotations; - } - - public void setBinaryAnnotations(List binaryAnnotations) { - this.binaryAnnotations = binaryAnnotations; - } - - public void unsetBinaryAnnotations() { - this.binaryAnnotations = null; - } - - /** Returns true if field binaryAnnotations is set (has been assigned a value) and false otherwise */ - public boolean isSetBinaryAnnotations() { - return this.binaryAnnotations != null; - } - - public void setBinaryAnnotationsIsSet(boolean value) { - if (!value) { - this.binaryAnnotations = null; - } - } - - public boolean isDebug() { - return this.debug; - } - - public void setDebug(boolean debug) { - this.debug = debug; - setDebugIsSet(true); - } - - public void unsetDebug() { - __isset_bit_vector.clear(__DEBUG_ISSET_ID); - } - - /** Returns true if field debug is set (has been assigned a value) and false otherwise */ - public boolean isSetDebug() { - return __isset_bit_vector.get(__DEBUG_ISSET_ID); - } - - public void setDebugIsSet(boolean value) { - __isset_bit_vector.set(__DEBUG_ISSET_ID, value); - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case TRACE_ID: - if (value == null) { - unsetTraceID(); - } else { - setTraceID((String)value); - } - break; - - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - case SPAN_ID: - if (value == null) { - unsetSpanID(); - } else { - setSpanID((String)value); - } - break; - - case PARENT_SPAN_ID: - if (value == null) { - unsetParentSpanId(); - } else { - setParentSpanId((String)value); - } - break; - - case ANNOTATIONS: - if (value == null) { - unsetAnnotations(); - } else { - setAnnotations((List)value); - } - break; - - case BINARY_ANNOTATIONS: - if (value == null) { - unsetBinaryAnnotations(); - } else { - setBinaryAnnotations((List)value); - } - break; - - case DEBUG: - if (value == null) { - unsetDebug(); - } else { - setDebug((Boolean)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case TRACE_ID: - return getTraceID(); - - case NAME: - return getName(); - - case SPAN_ID: - return getSpanID(); - - case PARENT_SPAN_ID: - return getParentSpanId(); - - case ANNOTATIONS: - return getAnnotations(); - - case BINARY_ANNOTATIONS: - return getBinaryAnnotations(); - - case DEBUG: - return Boolean.valueOf(isDebug()); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case TRACE_ID: - return isSetTraceID(); - case NAME: - return isSetName(); - case SPAN_ID: - return isSetSpanID(); - case PARENT_SPAN_ID: - return isSetParentSpanId(); - case ANNOTATIONS: - return isSetAnnotations(); - case BINARY_ANNOTATIONS: - return isSetBinaryAnnotations(); - case DEBUG: - return isSetDebug(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof Span) - return this.equals((Span)that); - return false; - } - - public boolean equals(Span that) { - if (that == null) - return false; - - boolean this_present_traceID = true && this.isSetTraceID(); - boolean that_present_traceID = true && that.isSetTraceID(); - if (this_present_traceID || that_present_traceID) { - if (!(this_present_traceID && that_present_traceID)) - return false; - if (!this.traceID.equals(that.traceID)) - return false; - } - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - boolean this_present_spanID = true && this.isSetSpanID(); - boolean that_present_spanID = true && that.isSetSpanID(); - if (this_present_spanID || that_present_spanID) { - if (!(this_present_spanID && that_present_spanID)) - return false; - if (!this.spanID.equals(that.spanID)) - return false; - } - - boolean this_present_parentSpanId = true && this.isSetParentSpanId(); - boolean that_present_parentSpanId = true && that.isSetParentSpanId(); - if (this_present_parentSpanId || that_present_parentSpanId) { - if (!(this_present_parentSpanId && that_present_parentSpanId)) - return false; - if (!this.parentSpanId.equals(that.parentSpanId)) - return false; - } - - boolean this_present_annotations = true && this.isSetAnnotations(); - boolean that_present_annotations = true && that.isSetAnnotations(); - if (this_present_annotations || that_present_annotations) { - if (!(this_present_annotations && that_present_annotations)) - return false; - if (!this.annotations.equals(that.annotations)) - return false; - } - - boolean this_present_binaryAnnotations = true && this.isSetBinaryAnnotations(); - boolean that_present_binaryAnnotations = true && that.isSetBinaryAnnotations(); - if (this_present_binaryAnnotations || that_present_binaryAnnotations) { - if (!(this_present_binaryAnnotations && that_present_binaryAnnotations)) - return false; - if (!this.binaryAnnotations.equals(that.binaryAnnotations)) - return false; - } - - boolean this_present_debug = true && this.isSetDebug(); - boolean that_present_debug = true && that.isSetDebug(); - if (this_present_debug || that_present_debug) { - if (!(this_present_debug && that_present_debug)) - return false; - if (this.debug != that.debug) - return false; - } - - return true; - } - - @Override - public int hashCode() { - return 0; - } - - public int compareTo(Span other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - Span typedOther = (Span)other; - - lastComparison = Boolean.valueOf(isSetTraceID()).compareTo(typedOther.isSetTraceID()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTraceID()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.traceID, typedOther.traceID); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetSpanID()).compareTo(typedOther.isSetSpanID()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSpanID()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.spanID, typedOther.spanID); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetParentSpanId()).compareTo(typedOther.isSetParentSpanId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetParentSpanId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentSpanId, typedOther.parentSpanId); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetAnnotations()).compareTo(typedOther.isSetAnnotations()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetAnnotations()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.annotations, typedOther.annotations); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetBinaryAnnotations()).compareTo(typedOther.isSetBinaryAnnotations()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetBinaryAnnotations()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.binaryAnnotations, typedOther.binaryAnnotations); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetDebug()).compareTo(typedOther.isSetDebug()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetDebug()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.debug, typedOther.debug); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("Span("); - boolean first = true; - - sb.append("traceID:"); - if (this.traceID == null) { - sb.append("null"); - } else { - sb.append(this.traceID); - } - first = false; - if (!first) sb.append(", "); - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - if (!first) sb.append(", "); - sb.append("spanID:"); - if (this.spanID == null) { - sb.append("null"); - } else { - sb.append(this.spanID); - } - first = false; - if (isSetParentSpanId()) { - if (!first) sb.append(", "); - sb.append("parentSpanId:"); - if (this.parentSpanId == null) { - sb.append("null"); - } else { - sb.append(this.parentSpanId); - } - first = false; - } - if (!first) sb.append(", "); - sb.append("annotations:"); - if (this.annotations == null) { - sb.append("null"); - } else { - sb.append(this.annotations); - } - first = false; - if (!first) sb.append(", "); - sb.append("binaryAnnotations:"); - if (this.binaryAnnotations == null) { - sb.append("null"); - } else { - sb.append(this.binaryAnnotations); - } - first = false; - if (isSetDebug()) { - if (!first) sb.append(", "); - sb.append("debug:"); - sb.append(this.debug); - first = false; - } - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bit_vector = new BitSet(1); - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class SpanStandardSchemeFactory implements SchemeFactory { - public SpanStandardScheme getScheme() { - return new SpanStandardScheme(); - } - } - - private static class SpanStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, Span struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // TRACE_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.traceID = iprot.readString(); - struct.setTraceIDIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // SPAN_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.spanID = iprot.readString(); - struct.setSpanIDIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // PARENT_SPAN_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.parentSpanId = iprot.readString(); - struct.setParentSpanIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // ANNOTATIONS - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list0 = iprot.readListBegin(); - struct.annotations = new ArrayList(_list0.size); - for (int _i1 = 0; _i1 < _list0.size; ++_i1) - { - Annotation _elem2; // required - _elem2 = new Annotation(); - _elem2.read(iprot); - struct.annotations.add(_elem2); - } - iprot.readListEnd(); - } - struct.setAnnotationsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 6: // BINARY_ANNOTATIONS - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list3 = iprot.readListBegin(); - struct.binaryAnnotations = new ArrayList(_list3.size); - for (int _i4 = 0; _i4 < _list3.size; ++_i4) - { - BinaryAnnotation _elem5; // required - _elem5 = new BinaryAnnotation(); - _elem5.read(iprot); - struct.binaryAnnotations.add(_elem5); - } - iprot.readListEnd(); - } - struct.setBinaryAnnotationsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 7: // DEBUG - if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { - struct.debug = iprot.readBool(); - struct.setDebugIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, Span struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.traceID != null) { - oprot.writeFieldBegin(TRACE_ID_FIELD_DESC); - oprot.writeString(struct.traceID); - oprot.writeFieldEnd(); - } - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - if (struct.spanID != null) { - oprot.writeFieldBegin(SPAN_ID_FIELD_DESC); - oprot.writeString(struct.spanID); - oprot.writeFieldEnd(); - } - if (struct.parentSpanId != null) { - if (struct.isSetParentSpanId()) { - oprot.writeFieldBegin(PARENT_SPAN_ID_FIELD_DESC); - oprot.writeString(struct.parentSpanId); - oprot.writeFieldEnd(); - } - } - if (struct.annotations != null) { - oprot.writeFieldBegin(ANNOTATIONS_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.annotations.size())); - for (Annotation _iter6 : struct.annotations) - { - _iter6.write(oprot); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.binaryAnnotations != null) { - oprot.writeFieldBegin(BINARY_ANNOTATIONS_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.binaryAnnotations.size())); - for (BinaryAnnotation _iter7 : struct.binaryAnnotations) - { - _iter7.write(oprot); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.isSetDebug()) { - oprot.writeFieldBegin(DEBUG_FIELD_DESC); - oprot.writeBool(struct.debug); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class SpanTupleSchemeFactory implements SchemeFactory { - public SpanTupleScheme getScheme() { - return new SpanTupleScheme(); - } - } - - private static class SpanTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, Span struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetTraceID()) { - optionals.set(0); - } - if (struct.isSetName()) { - optionals.set(1); - } - if (struct.isSetSpanID()) { - optionals.set(2); - } - if (struct.isSetParentSpanId()) { - optionals.set(3); - } - if (struct.isSetAnnotations()) { - optionals.set(4); - } - if (struct.isSetBinaryAnnotations()) { - optionals.set(5); - } - if (struct.isSetDebug()) { - optionals.set(6); - } - oprot.writeBitSet(optionals, 7); - if (struct.isSetTraceID()) { - oprot.writeString(struct.traceID); - } - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - if (struct.isSetSpanID()) { - oprot.writeString(struct.spanID); - } - if (struct.isSetParentSpanId()) { - oprot.writeString(struct.parentSpanId); - } - if (struct.isSetAnnotations()) { - { - oprot.writeI32(struct.annotations.size()); - for (Annotation _iter8 : struct.annotations) - { - _iter8.write(oprot); - } - } - } - if (struct.isSetBinaryAnnotations()) { - { - oprot.writeI32(struct.binaryAnnotations.size()); - for (BinaryAnnotation _iter9 : struct.binaryAnnotations) - { - _iter9.write(oprot); - } - } - } - if (struct.isSetDebug()) { - oprot.writeBool(struct.debug); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, Span struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(7); - if (incoming.get(0)) { - struct.traceID = iprot.readString(); - struct.setTraceIDIsSet(true); - } - if (incoming.get(1)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - if (incoming.get(2)) { - struct.spanID = iprot.readString(); - struct.setSpanIDIsSet(true); - } - if (incoming.get(3)) { - struct.parentSpanId = iprot.readString(); - struct.setParentSpanIdIsSet(true); - } - if (incoming.get(4)) { - { - org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.annotations = new ArrayList(_list10.size); - for (int _i11 = 0; _i11 < _list10.size; ++_i11) - { - Annotation _elem12; // required - _elem12 = new Annotation(); - _elem12.read(iprot); - struct.annotations.add(_elem12); - } - } - struct.setAnnotationsIsSet(true); - } - if (incoming.get(5)) { - { - org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.binaryAnnotations = new ArrayList(_list13.size); - for (int _i14 = 0; _i14 < _list13.size; ++_i14) - { - BinaryAnnotation _elem15; // required - _elem15 = new BinaryAnnotation(); - _elem15.read(iprot); - struct.binaryAnnotations.add(_elem15); - } - } - struct.setBinaryAnnotationsIsSet(true); - } - if (incoming.get(6)) { - struct.debug = iprot.readBool(); - struct.setDebugIsSet(true); - } - } - } - -} - diff --git a/src/main/java/com/profiler/context/tracer/DefaultTracer.java b/src/main/java/com/profiler/context/tracer/DefaultTracer.java new file mode 100644 index 000000000..1d4327942 --- /dev/null +++ b/src/main/java/com/profiler/context/tracer/DefaultTracer.java @@ -0,0 +1,10 @@ +package com.profiler.context.tracer; + +import com.profiler.context.Record; + +public class DefaultTracer implements Tracer { + @Override + public void record(Record record) { + System.out.println("record=" + record); + } +} diff --git a/src/main/java/com/profiler/context/tracer/Tracer.java b/src/main/java/com/profiler/context/tracer/Tracer.java new file mode 100644 index 000000000..cac988f27 --- /dev/null +++ b/src/main/java/com/profiler/context/tracer/Tracer.java @@ -0,0 +1,8 @@ +package com.profiler.context.tracer; + +import com.profiler.context.Record; + +public interface Tracer { + + public void record(Record record); +} diff --git a/src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java b/src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java index db41c0ddf..6faa2d4be 100644 --- a/src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java @@ -4,11 +4,10 @@ import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; +import com.profiler.context.Annotation; import com.profiler.context.Header; -import com.profiler.context.RequestContext; import com.profiler.context.Trace; import com.profiler.context.TraceID; -import com.profiler.context.gen.Annotation; import com.profiler.interceptor.StaticAroundInterceptor; import com.profiler.trace.RequestTracer; @@ -16,35 +15,35 @@ public class InvokeMethodInterceptor implements StaticAroundInterceptor { @Override public void before(Object target, String className, String methodName, Object[] args) { - System.out.println("\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - System.out.println("\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - System.out.println("\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + try { + HttpServletRequest request = (HttpServletRequest) args[0]; + String requestURL = request.getRequestURI(); + String clientIP = request.getRemoteAddr(); - System.out.println("interceptor=" + InvokeMethodInterceptor.class.getClassLoader()); + String traceID = request.getHeader(Header.HTTP_TRACE_ID.toString()); + String parentSpanID = request.getHeader(Header.HTTP_PARENT_SPAN_ID.toString()); + String spanID = request.getHeader(Header.HTTP_PARENT_SPAN_ID.toString()); + Boolean sampled = Boolean.valueOf(request.getHeader(Header.HTTP_SAMPLED.toString())); + Integer flags = Integer.valueOf(request.getHeader(Header.HTTP_FLAGS.toString())); - try { - HttpServletRequest request = (HttpServletRequest) args[0]; - String requestURL = request.getRequestURI(); - String clientIP = request.getRemoteAddr(); - String traceID = request.getHeader(Header.HTTP_TRACE_ID.toString()); - String parentSpanID = request.getHeader(Header.HTTP_TRACE_PARENT_SPAN_ID.toString()); - Boolean debug = Boolean.valueOf(request.getHeader(Header.HTTP_TRACE_DEBUG.toString())); - String parameters = getParameter(request); + String parameters = getParameter(request); - if (traceID == null) - traceID = TraceID.newTraceID(); + // record + // TODO: traceid 유무 확인. + Trace.setTraceId(new TraceID(traceID, parentSpanID, spanID, sampled, flags)); + Trace.recordRpcName("service_name", requestURL); + Trace.recordServerAddr(request.getLocalName()); + Trace.recordBinary("http.uri", parameters); + Trace.record(new Annotation.ServerRecv()); - Trace trace = RequestContext.getTrace(traceID, parentSpanID, "StandardHostValveInterceptor", debug); - - Annotation a = new Annotation(); - a.setTimestamp(System.currentTimeMillis()); - - RequestTracer.startTransaction(requestURL, clientIP, System.currentTimeMillis(), parameters); - } catch (Exception e) { - e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. - } - System.out.println("end--------------"); - } + RequestTracer.startTransaction(requestURL, clientIP, System.currentTimeMillis(), parameters); + } catch (Exception e) { + e.printStackTrace(); + // To change body of catch statement use File | Settings | File + // Templates. + } + System.out.println("end--------------"); + } @Override public void after(Object target, String className, String methodName, Object[] args, Object result) { diff --git a/src/test/java/com/profiler/context/SpanTest.java b/src/test/java/com/profiler/context/SpanTest.java index 459039ad3..4e4afefc6 100644 --- a/src/test/java/com/profiler/context/SpanTest.java +++ b/src/test/java/com/profiler/context/SpanTest.java @@ -1,24 +1,76 @@ package com.profiler.context; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; + +import junit.framework.Assert; + import org.junit.Test; -import com.profiler.context.gen.Annotation; -import com.profiler.context.gen.BinaryAnnotation; +import com.profiler.context.tracer.Tracer; public class SpanTest { @Test public void span() { - Trace tracer = RequestContext.getTrace(TraceID.EMPTY, SpanID.ROOT_SPAN_ID, "UnitTest", true); + Trace.addTracer(new Tracer() { + @Override + public void record(Record record) { + System.out.printf("[%s] Record=%s\n", Thread.currentThread().getId(), record); + } + }); - Annotation a1 = new Annotation(System.nanoTime(), "step1"); - Annotation a2 = new Annotation(System.nanoTime(), "step2"); - BinaryAnnotation a3 = new BinaryAnnotation(System.nanoTime(), "", null, ""); + int testSize = 3; - tracer.record(a1); - tracer.record(a2); - tracer.recordBinary(a3); + final CountDownLatch startLatch = new CountDownLatch(1); + final CountDownLatch endLatch = new CountDownLatch(testSize); + Executor exec = Executors.newFixedThreadPool(testSize); - System.out.println(tracer); + for (int i = 0; i < testSize; i++) { + exec.execute(new TraceTest(startLatch, endLatch)); + } + + startLatch.countDown(); + + try { + endLatch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + Assert.fail(e.getMessage()); + } + } + + private static final class TraceTest implements Runnable { + private final CountDownLatch startLatch; + private final CountDownLatch endLatch; + + public TraceTest(CountDownLatch startLatch, CountDownLatch endLatch) { + this.startLatch = startLatch; + this.endLatch = endLatch; + } + + @Override + public void run() { + try { + startLatch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + Trace.record("msg:client send"); + Trace.record(new Annotation.ClientSend()); + + Trace.record("msg:server recv"); + Trace.record(new Annotation.ServerRecv()); + + Trace.record("msg:server send"); + Trace.record(new Annotation.ServerSend()); + + Trace.record("msg:client recg"); + Trace.record(new Annotation.ClientRecv()); + + endLatch.countDown(); + } } }