com.nepxion.discovery.plugin.strategy.opentracing.monitor.StrategyOpentracingTracer Maven / Gradle / Ivy
package com.nepxion.discovery.plugin.strategy.opentracing.monitor;
/**
* Title: Nepxion Discovery
* Description: Nepxion Discovery
* Copyright: Copyright (c) 2017-2050
* Company: Nepxion
* @author Haojun Ren
* @version 1.0
*/
import io.opentracing.Span;
import io.opentracing.Tracer;
import io.opentracing.tag.Tags;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import com.nepxion.discovery.common.constant.DiscoveryConstant;
import com.nepxion.discovery.plugin.strategy.constant.StrategyConstant;
import com.nepxion.discovery.plugin.strategy.monitor.AbstractStrategyTracer;
public class StrategyOpentracingTracer extends AbstractStrategyTracer {
@Value("${" + StrategyConstant.SPRING_APPLICATION_STRATEGY_TRACER_EXCEPTION_DETAIL_OUTPUT_ENABLED + ":false}")
protected Boolean tracerExceptionDetailOutputEnabled;
@Autowired
private Tracer tracer;
@Override
protected Span buildSpan() {
return tracer.buildSpan(tracerSpanValue).start();
}
@Override
protected void outputSpan(Span span, String key, String value) {
span.setTag(key, value);
}
@Override
protected void errorSpan(Span span, Throwable e) {
Map map = new HashMap();
map.put(DiscoveryConstant.EVENT, Tags.ERROR.getKey());
if (tracerExceptionDetailOutputEnabled) {
map.put(DiscoveryConstant.ERROR_OBJECT, ExceptionUtils.getStackTrace(e));
} else {
map.put(DiscoveryConstant.ERROR_OBJECT, e);
}
span.log(map);
}
@Override
protected void finishSpan(Span span) {
span.finish();
}
@Override
protected Span getActiveSpan() {
return tracer.activeSpan();
}
@Override
protected String toTraceId(Span span) {
return span.context().toTraceId();
}
@Override
protected String toSpanId(Span span) {
return span.context().toSpanId();
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy