private Optional<ShallowTrace> findTraceByName(Trace trace, String name) { return trace.getTraceMap().values().stream() .filter(shallowTrace -> shallowTrace.getName().contains(name)) .findAny(); }
protected boolean hasTask(final String name, final Trace trace) { return trace.getTraceMap().values().stream().anyMatch(shallowTrace -> shallowTrace.getName().equals(name)); }
private ShallowTrace findBatchTrace(final Task<?> task) { final ShallowTrace main = task.getShallowTrace(); if (main.getName().startsWith("batch(")) { return main; } else { final Trace trace = task.getTrace(); Optional<ShallowTrace> batchTrace = trace.getTraceMap().entrySet().stream() .filter(entry -> entry.getValue().getName().startsWith("batch(")) .findFirst() .map(Map.Entry::getValue); return batchTrace.orElse(null); } } }
private ShallowTrace findPossiblyFusedTrace(final Task<?> task) { final ShallowTrace main = task.getShallowTrace(); if (main.getName().equals("fused")) { final Trace trace = task.getTrace(); Optional<Long> child = trace.getRelationships().stream() .map(rel -> getChild(rel, main.getId())) .filter(id-> id != null) .findFirst(); if (child.isPresent()) { return trace.getTraceMap().get(child.get()); } } return main; }
public ShallowTraceBuilder(final ShallowTrace shallowTrace) { this(shallowTrace.getId()); setResultType(shallowTrace.getResultType()); setName(shallowTrace.getName()); setValue(shallowTrace.getValue()); setStartNanos(shallowTrace.getStartNanos()); setPendingNanos(shallowTrace.getPendingNanos()); setEndNanos(shallowTrace.getEndNanos()); setHidden(shallowTrace.getHidden()); setSystemHidden(shallowTrace.getSystemHidden()); Map<String, String> attributes = shallowTrace.getAttributes(); if (!attributes.isEmpty()) { _attributes = new HashMap<String, String>(); _attributes.putAll(attributes); } setTaskType(shallowTrace.getTaskType()); }
@Test public void testCustomBuilding() throws IOException { final String json = buildJson( new String[] { traceStr(1, "parent", ResultType.UNFINISHED, false), traceStr(2, "child", ResultType.UNFINISHED, false), traceStr(3, "predecessor", ResultType.UNFINISHED, false) }, new String[] { hierStr(1, 2), orderStr(3, 1) }, "test", 0L); final Trace trace; try { trace = decodeString(json); } catch (IOException e) { fail("JSON parse failed. Document:\n" + json + "\nError: " + e.toString()); return; } assertEquals("parent", trace.getTraceMap().get(1L).getName()); assertEquals(ResultType.UNFINISHED, trace.getTraceMap().get(1L).getResultType()); assertEquals(2, trace.getRelationships().size()); String childName = null; String predecessorName = null; for (TraceRelationship rel : trace.getRelationships()) { if (rel.getRelationhsip() == Relationship.PARENT_OF) { childName = trace.getTraceMap().get(rel.getTo()).getName(); } else if (rel.getRelationhsip() == Relationship.SUCCESSOR_OF) { predecessorName = trace.getTraceMap().get(rel.getTo()).getName(); } } assertEquals("child", childName); assertEquals("predecessor", predecessorName); }
private static void writeTrace(final ShallowTrace trace, final JsonGenerator generator) throws IOException { generator.writeStartObject(); generator.writeNumberField(JsonTraceCodec.TRACE_ID, trace.getId()); generator.writeStringField(JsonTraceCodec.TRACE_NAME, trace.getName()); generator.writeStringField(JsonTraceCodec.TRACE_RESULT_TYPE, trace.getResultType().toString()); generator.writeBooleanField(JsonTraceCodec.TRACE_HIDDEN, trace.getHidden());
private void verifyShallowTrace(final Task<?> task) { final ShallowTrace trace = findPossiblyFusedTrace(task); assertEquals(task.getName(), trace.getName()); assertEquals(ResultType.fromTask(task), trace.getResultType());
public ShallowTraceBuilder(final ShallowTrace shallowTrace) { this(shallowTrace.getId()); setResultType(shallowTrace.getResultType()); setName(shallowTrace.getName()); setValue(shallowTrace.getValue()); setStartNanos(shallowTrace.getStartNanos()); setPendingNanos(shallowTrace.getPendingNanos()); setEndNanos(shallowTrace.getEndNanos()); setHidden(shallowTrace.getHidden()); setSystemHidden(shallowTrace.getSystemHidden()); Map<String, String> attributes = shallowTrace.getAttributes(); if (!attributes.isEmpty()) { _attributes = new HashMap<String, String>(); _attributes.putAll(attributes); } setTaskType(shallowTrace.getTaskType()); }
private static void writeTrace(final ShallowTrace trace, final JsonGenerator generator) throws IOException { generator.writeStartObject(); generator.writeNumberField(JsonTraceCodec.TRACE_ID, trace.getId()); generator.writeStringField(JsonTraceCodec.TRACE_NAME, trace.getName()); generator.writeStringField(JsonTraceCodec.TRACE_RESULT_TYPE, trace.getResultType().toString()); generator.writeBooleanField(JsonTraceCodec.TRACE_HIDDEN, trace.getHidden());