use of com.amazon.dataprepper.model.trace.TraceGroupFields in project data-prepper by opensearch-project.
the class OTelTraceGroupProcessor method fromSearchHitToMapEntry.
private Optional<Map.Entry<String, TraceGroup>> fromSearchHitToMapEntry(final SearchHit searchHit) {
final DocumentField traceIdDocField = searchHit.field(OTelTraceGroupProcessorConfig.TRACE_ID_FIELD);
final DocumentField traceGroupNameDocField = searchHit.field(TraceGroup.TRACE_GROUP_NAME_FIELD);
final DocumentField traceGroupEndTimeDocField = searchHit.field(TraceGroup.TRACE_GROUP_END_TIME_FIELD);
final DocumentField traceGroupDurationInNanosDocField = searchHit.field(TraceGroup.TRACE_GROUP_DURATION_IN_NANOS_FIELD);
final DocumentField traceGroupStatusCodeDocField = searchHit.field(TraceGroup.TRACE_GROUP_STATUS_CODE_FIELD);
if (Stream.of(traceIdDocField, traceGroupNameDocField, traceGroupEndTimeDocField, traceGroupDurationInNanosDocField, traceGroupStatusCodeDocField).allMatch(Objects::nonNull)) {
final String traceId = traceIdDocField.getValue();
final String traceGroupName = traceGroupNameDocField.getValue();
final String traceGroupEndTime = normalizeDateTime(traceGroupEndTimeDocField.getValue());
final Number traceGroupDurationInNanos = traceGroupDurationInNanosDocField.getValue();
final Number traceGroupStatusCode = traceGroupStatusCodeDocField.getValue();
final TraceGroupFields traceGroupFields = DefaultTraceGroupFields.builder().withEndTime(traceGroupEndTime).withDurationInNanos(traceGroupDurationInNanos.longValue()).withStatusCode(traceGroupStatusCode.intValue()).build();
final TraceGroup traceGroup = new TraceGroup.TraceGroupBuilder().setTraceGroup(traceGroupName).setTraceGroupFields(traceGroupFields).build();
return Optional.of(new AbstractMap.SimpleEntry<>(traceId, traceGroup));
}
return Optional.empty();
}
use of com.amazon.dataprepper.model.trace.TraceGroupFields in project data-prepper by opensearch-project.
the class OTelTraceRawProcessorTest method getMissingTraceGroupFieldsSpanCount.
private int getMissingTraceGroupFieldsSpanCount(List<Record<Span>> records) {
int count = 0;
for (Record<Span> record : records) {
final Span span = record.getData();
final String traceGroup = span.getTraceGroup();
final TraceGroupFields traceGroupFields = span.getTraceGroupFields();
if (Stream.of(traceGroup, traceGroupFields.getEndTime(), traceGroupFields.getDurationInNanos(), traceGroupFields.getStatusCode()).allMatch(Objects::isNull)) {
count += 1;
}
}
return count;
}
Aggregations