Move ResourceNameDecorator to ResourceNameRule

This commit is contained in:
Tyler Benson 2020-03-19 17:49:17 -07:00
parent f0eb73ef12
commit c288f69e64
4 changed files with 26 additions and 19 deletions

View File

@ -22,7 +22,6 @@ public class DDDecoratorsFactory {
new ForceManualKeepDecorator(),
new OperationDecorator(),
new PeerServiceDecorator(),
new ResourceNameDecorator(),
new ServiceNameDecorator(),
new ServiceNameDecorator("service", false),
new ServletContextDecorator())) {

View File

@ -1,18 +0,0 @@
package datadog.opentracing.decorators;
import datadog.opentracing.DDSpanContext;
import datadog.trace.api.DDTags;
public class ResourceNameDecorator extends AbstractDecorator {
public ResourceNameDecorator() {
super();
this.setMatchingTag(DDTags.RESOURCE_NAME);
}
@Override
public boolean shouldSetTag(final DDSpanContext context, final String tag, final Object value) {
context.setResourceName(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.ResourceNameRule;
import datadog.trace.common.processor.rule.SpanTypeRule;
import datadog.trace.common.processor.rule.Status404Rule;
import datadog.trace.common.processor.rule.Status5XXRule;
@ -18,6 +19,7 @@ public class TraceProcessor {
final Rule[] DEFAULT_RULES =
new Rule[] {
// Rules are applied in order.
new ResourceNameRule(),
new SpanTypeRule(),
new Status5XXRule(),
new ErrorRule(),

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 resource name tag to field */
public class ResourceNameRule implements TraceProcessor.Rule {
@Override
public String[] aliases() {
return new String[] {"ResourceNameDecorator"};
}
@Override
public void processSpan(
final DDSpan span, final Map<String, Object> tags, final Collection<DDSpan> trace) {
if (tags.containsKey(DDTags.RESOURCE_NAME)) {
span.setResourceName(tags.get(DDTags.RESOURCE_NAME).toString());
span.setTag(DDTags.RESOURCE_NAME, (String) null); // Remove the tag
}
}
}