提交 6ee99292 编写于 作者: wu-sheng's avatar wu-sheng

add application toolkit to support opentracing

上级 268d5920
......@@ -18,5 +18,6 @@
<module>skywalking-toolkit-log4j-2.x</module>
<module>skywalking-toolkit-logback-1.x</module>
<module>skywalking-toolkit-trace-context</module>
<module>skywalking-toolkit-opentracing</module>
</modules>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>skywalking-application-toolkit</artifactId>
<groupId>com.a.eye</groupId>
<version>2.1-2017</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>skywalking-toolkit-opentracing</artifactId>
<dependencies>
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-api</artifactId>
<version>0.20.4</version>
</dependency>
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-noop</artifactId>
<version>0.20.4</version>
</dependency>
</dependencies>
</project>
package com.a.eye.skywalking.toolkit.opentracing;
import io.opentracing.Span;
import io.opentracing.SpanContext;
import java.util.HashMap;
import java.util.Map;
/**
* Created by wusheng on 2016/12/20.
*/
public class SkyWalkingSpan implements Span, SpanContext {
private final Map<String, String> baggageItems;
SkyWalkingSpan(){
baggageItems = new HashMap<String, String>();
}
@Override
public SpanContext context() {
return this;
}
@Override
public void finish() {
}
@Override
public void finish(long finishMicros) {
}
@Override
public void close() {
}
@Override
public Span setTag(String key, String value) {
return this;
}
@Override
public Span setTag(String key, boolean value) {
return this;
}
@Override
public Span setTag(String key, Number value) {
return this;
}
@Override
public Span log(Map<String, ?> fields) {
return this;
}
@Override
public Span log(long timestampMicroseconds, Map<String, ?> fields) {
return this;
}
@Override
public Span log(String event) {
return this;
}
@Override
public Span log(long timestampMicroseconds, String event) {
return this;
}
@Override
public Span setBaggageItem(String key, String value) {
baggageItems.put(key, value);
return this;
}
@Override
public String getBaggageItem(String key) {
return baggageItems.get(key);
}
@Override
public Span setOperationName(String operationName) {
return this;
}
@Override
public Span log(String eventName, Object payload) {
return this;
}
@Override
public Span log(long timestampMicroseconds, String eventName, Object payload) {
return this;
}
@Override
public Iterable<Map.Entry<String, String>> baggageItems() {
return baggageItems.entrySet();
}
}
package com.a.eye.skywalking.toolkit.opentracing;
import io.opentracing.References;
import io.opentracing.Span;
import io.opentracing.SpanContext;
import io.opentracing.Tracer;
import java.util.Map;
/**
* All source code in SkyWalkingSpanBuilder acts like an NoopSpanBuilder.
* Actually, it is NOT.
* The whole logic will be added after toolkit-activation.
*
* Created by wusheng on 2016/12/20.
*/
public class SkyWalkingSpanBuilder implements Tracer.SpanBuilder {
private String operationName;
SkyWalkingSpanBuilder(String operationName){
this.operationName = operationName;
}
@Override
public Tracer.SpanBuilder asChildOf(SpanContext spanContext) {
return null;
}
@Override
public Tracer.SpanBuilder asChildOf(Span span) {
return null;
}
@Override
public Tracer.SpanBuilder addReference(String referenceType, SpanContext referencedContext) {
if (referenceType.equals(References.CHILD_OF)) {
return asChildOf(referencedContext);
} else {
return this;
}
}
@Override
public Tracer.SpanBuilder withTag(String key, String value) {
return this;
}
@Override
public Tracer.SpanBuilder withTag(String key, boolean value) {
return this;
}
@Override
public Tracer.SpanBuilder withTag(String key, Number value) {
return this;
}
@Override
public Tracer.SpanBuilder withStartTimestamp(long microseconds) {
return this;
}
@Override
public Span start() {
return new SkyWalkingSpan();
}
@Override
public Iterable<Map.Entry<String, String>> baggageItems() {
return null;
}
}
package com.a.eye.skywalking.toolkit.opentracing;
import io.opentracing.SpanContext;
import io.opentracing.Tracer;
import io.opentracing.propagation.Format;
/**
* Created by wusheng on 2016/12/20.
*/
public class SkyWalkingTracer implements Tracer{
public static Tracer INSTANCE = new SkyWalkingTracer();
@Override
public SpanBuilder buildSpan(String operationName) {
return new SkyWalkingSpanBuilder(operationName);
}
@Override
public <C> void inject(SpanContext spanContext, Format<C> format, C c) {
}
@Override
public <C> SpanContext extract(Format<C> format, C c) {
return null;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册