package org.stagemonitor.tracing; import org.stagemonitor.tracing.wrapper.SpanEventListenerFactory; import org.stagemonitor.tracing.wrapper.StatelessSpanEventListener; import java.util.ArrayList; import java.util.List; import java.util.Map; public class TagRecordingSpanEventListener extends StatelessSpanEventListener { private final Map<String, Object> tags; public static List<SpanEventListenerFactory> asList(Map<String, Object> tags) { List<SpanEventListenerFactory> list = new ArrayList<>(); list.add(new TagRecordingSpanEventListener(tags)); return list; } public TagRecordingSpanEventListener(Map<String, Object> tags) { this.tags = tags; } @Override public String onSetTag(String key, String value) { tags.put(key, value); return value; } @Override public boolean onSetTag(String key, boolean value) { tags.put(key, value); return value; } @Override public Number onSetTag(String key, Number value) { tags.put(key, value); return value; } }