All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nepxion.discovery.plugin.strategy.opentracing.monitor.OpenTracingStrategyTracer 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 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 OpenTracingStrategyTracer 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, DiscoveryConstant.ERROR); 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