Move SpanTypeDecorator to SpanTypeRule

This commit is contained in:
Tyler Benson 2020-03-19 17:29:58 -07:00
parent 2028b10009
commit 329e79b801
5 changed files with 32 additions and 22 deletions

View File

@ -25,8 +25,7 @@ public class DDDecoratorsFactory {
new ResourceNameDecorator(),
new ServiceNameDecorator(),
new ServiceNameDecorator("service", false),
new ServletContextDecorator(),
new SpanTypeDecorator())) {
new ServletContextDecorator())) {
if (Config.get().isDecoratorEnabled(decorator.getClass().getSimpleName())) {
decorators.add(decorator);

View File

@ -1,18 +0,0 @@
package datadog.opentracing.decorators;
import datadog.opentracing.DDSpanContext;
import datadog.trace.api.DDTags;
public class SpanTypeDecorator extends AbstractDecorator {
public SpanTypeDecorator() {
super();
setMatchingTag(DDTags.SPAN_TYPE);
}
@Override
public boolean shouldSetTag(final DDSpanContext context, final String tag, final Object value) {
context.setSpanType(String.valueOf(value));
return false;
}
}

View File

@ -3,6 +3,7 @@ package datadog.trace.common.processor;
import datadog.opentracing.DDSpan;
import datadog.trace.api.Config;
import datadog.trace.common.processor.rule.ErrorRule;
import datadog.trace.common.processor.rule.SpanTypeRule;
import datadog.trace.common.processor.rule.Status404Rule;
import datadog.trace.common.processor.rule.Status5XXRule;
import datadog.trace.common.processor.rule.URLAsResourceNameRule;
@ -17,7 +18,11 @@ public class TraceProcessor {
final Rule[] DEFAULT_RULES =
new Rule[] {
// Rules are applied in order.
new Status5XXRule(), new ErrorRule(), new URLAsResourceNameRule(), new Status404Rule(),
new SpanTypeRule(),
new Status5XXRule(),
new ErrorRule(),
new URLAsResourceNameRule(),
new Status404Rule(),
};
private final List<Rule> rules;

View File

@ -6,7 +6,7 @@ import io.opentracing.tag.Tags;
import java.util.Collection;
import java.util.Map;
/** Converts error tag to error field */
/** Converts error tag to field */
public class ErrorRule implements TraceProcessor.Rule {
@Override
public String[] aliases() {

View File

@ -0,0 +1,24 @@
package datadog.trace.common.processor.rule;
import datadog.opentracing.DDSpan;
import datadog.trace.api.DDTags;
import datadog.trace.common.processor.TraceProcessor;
import java.util.Collection;
import java.util.Map;
/** Converts span type tag to field */
public class SpanTypeRule implements TraceProcessor.Rule {
@Override
public String[] aliases() {
return new String[] {"SpanTypeDecorator"};
}
@Override
public void processSpan(
final DDSpan span, final Map<String, String> meta, final Collection<DDSpan> trace) {
if (meta.containsKey(DDTags.SPAN_TYPE)) {
span.setSpanType(meta.get(DDTags.SPAN_TYPE));
span.setTag(DDTags.SPAN_TYPE, (String) null); // Remove the tag
}
}
}