package org.stagemonitor.tracing.sampling; import org.stagemonitor.configuration.ConfigurationRegistry; import org.stagemonitor.tracing.TracingPlugin; import org.stagemonitor.util.StringUtils; import java.util.Collection; class NameFilteringPostExecutionInterceptor extends PostExecutionSpanInterceptor { private TracingPlugin tracingPlugin; @Override public void init(ConfigurationRegistry configuration) { tracingPlugin = configuration.getConfig(TracingPlugin.class); } @Override public void interceptReport(PostExecutionInterceptorContext context) { final Collection<String> onlyReportRequestsWithName = tracingPlugin .getOnlyReportSpansWithName(); if (StringUtils.isEmpty(context.getSpanContext().getOperationName())) { context.shouldNotReport(getClass()); } else if (!onlyReportRequestsWithName.isEmpty() && !onlyReportRequestsWithName.contains(context.getSpanContext().getOperationName())) { context.shouldNotReport(getClass()); } } }