Search in sources :

Example 1 with TraceGroupFields

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();
}
Also used : AbstractMap(java.util.AbstractMap) DocumentField(org.opensearch.common.document.DocumentField) Objects(java.util.Objects) DefaultTraceGroupFields(com.amazon.dataprepper.model.trace.DefaultTraceGroupFields) TraceGroupFields(com.amazon.dataprepper.model.trace.TraceGroupFields) TraceGroup(com.amazon.dataprepper.plugins.processor.oteltracegroup.model.TraceGroup)

Example 2 with TraceGroupFields

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;
}
Also used : Objects(java.util.Objects) DefaultTraceGroupFields(com.amazon.dataprepper.model.trace.DefaultTraceGroupFields) TraceGroupFields(com.amazon.dataprepper.model.trace.TraceGroupFields) Span(com.amazon.dataprepper.model.trace.Span) JacksonSpan(com.amazon.dataprepper.model.trace.JacksonSpan)

Aggregations

DefaultTraceGroupFields (com.amazon.dataprepper.model.trace.DefaultTraceGroupFields)2 TraceGroupFields (com.amazon.dataprepper.model.trace.TraceGroupFields)2 Objects (java.util.Objects)2 JacksonSpan (com.amazon.dataprepper.model.trace.JacksonSpan)1 Span (com.amazon.dataprepper.model.trace.Span)1 TraceGroup (com.amazon.dataprepper.plugins.processor.oteltracegroup.model.TraceGroup)1 AbstractMap (java.util.AbstractMap)1 DocumentField (org.opensearch.common.document.DocumentField)1