Search in sources :

Example 6 with Span

use of com.amazon.dataprepper.model.trace.Span in project data-prepper by opensearch-project.

the class OTelProtoCodecTest method testOTelProtoCodecConsistency.

@Test
public void testOTelProtoCodecConsistency() throws IOException, DecoderException {
    final ExportTraceServiceRequest request = buildExportTraceServiceRequestFromJsonFile(TEST_REQUEST_JSON_FILE);
    final List<Span> spansFirstDec = decoderUnderTest.parseExportTraceServiceRequest(request);
    final List<ResourceSpans> resourceSpansList = new ArrayList<>();
    for (final Span span : spansFirstDec) {
        resourceSpansList.add(encoderUnderTest.convertToResourceSpans(span));
    }
    final List<Span> spansSecondDec = resourceSpansList.stream().flatMap(rs -> decoderUnderTest.parseResourceSpans(rs).stream()).collect(Collectors.toList());
    assertThat(spansFirstDec.size(), equalTo(spansSecondDec.size()));
    for (int i = 0; i < spansFirstDec.size(); i++) {
        assertThat(spansFirstDec.get(i).toJsonString(), equalTo(spansSecondDec.get(i).toJsonString()));
    }
}
Also used : ExportTraceServiceRequest(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest) CoreMatchers.is(org.hamcrest.CoreMatchers.is) KeyValue(io.opentelemetry.proto.common.v1.KeyValue) Arrays(java.util.Arrays) Random(java.util.Random) CoreMatchers.notNullValue(org.hamcrest.CoreMatchers.notNullValue) CoreMatchers.instanceOf(org.hamcrest.CoreMatchers.instanceOf) ResourceSpans(io.opentelemetry.proto.trace.v1.ResourceSpans) Map(java.util.Map) Resource(io.opentelemetry.proto.resource.v1.Resource) DefaultTraceGroupFields(com.amazon.dataprepper.model.trace.DefaultTraceGroupFields) TypeReference(com.fasterxml.jackson.core.type.TypeReference) DefaultLink(com.amazon.dataprepper.model.trace.DefaultLink) Span(com.amazon.dataprepper.model.trace.Span) DecoderException(org.apache.commons.codec.DecoderException) UUID(java.util.UUID) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) ArrayValue(io.opentelemetry.proto.common.v1.ArrayValue) StandardCharsets(java.nio.charset.StandardCharsets) ByteString(com.google.protobuf.ByteString) Test(org.junit.jupiter.api.Test) Objects(java.util.Objects) List(java.util.List) JsonFormat(com.google.protobuf.util.JsonFormat) JacksonSpan(com.amazon.dataprepper.model.trace.JacksonSpan) SpanEvent(com.amazon.dataprepper.model.trace.SpanEvent) ExportTraceServiceRequest(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest) AnyValue(io.opentelemetry.proto.common.v1.AnyValue) DefaultSpanEvent(com.amazon.dataprepper.model.trace.DefaultSpanEvent) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) InstrumentationLibrarySpans(io.opentelemetry.proto.trace.v1.InstrumentationLibrarySpans) Hex(org.apache.commons.codec.binary.Hex) Nested(org.junit.jupiter.api.Nested) ArrayList(java.util.ArrayList) KeyValueList(io.opentelemetry.proto.common.v1.KeyValueList) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) CoreMatchers.nullValue(org.hamcrest.CoreMatchers.nullValue) TraceGroupFields(com.amazon.dataprepper.model.trace.TraceGroupFields) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) IOException(java.io.IOException) InputStreamReader(java.io.InputStreamReader) Link(com.amazon.dataprepper.model.trace.Link) InstrumentationLibrary(io.opentelemetry.proto.common.v1.InstrumentationLibrary) BufferedReader(java.io.BufferedReader) Status(io.opentelemetry.proto.trace.v1.Status) Collections(java.util.Collections) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) ResourceSpans(io.opentelemetry.proto.trace.v1.ResourceSpans) Span(com.amazon.dataprepper.model.trace.Span) JacksonSpan(com.amazon.dataprepper.model.trace.JacksonSpan) Test(org.junit.jupiter.api.Test)

Example 7 with Span

use of com.amazon.dataprepper.model.trace.Span in project data-prepper by opensearch-project.

the class OTelTraceGroupProcessor method doExecute.

@Override
public Collection<Record<Span>> doExecute(final Collection<Record<Span>> rawSpanRecords) {
    final List<Record<Span>> recordsOut = new LinkedList<>();
    final Set<Record<Span>> recordsMissingTraceGroupInfo = new HashSet<>();
    final Set<String> traceIdsToLookUp = new HashSet<>();
    for (Record<Span> record : rawSpanRecords) {
        final Span span = record.getData();
        final String traceGroup = span.getTraceGroup();
        final String traceId = span.getTraceId();
        if (Strings.isNullOrEmpty(traceGroup)) {
            traceIdsToLookUp.add(traceId);
            recordsMissingTraceGroupInfo.add(record);
            recordsInMissingTraceGroupCounter.increment();
        } else {
            recordsOut.add(record);
        }
    }
    final Map<String, TraceGroup> traceIdToTraceGroup = searchTraceGroupByTraceIds(traceIdsToLookUp);
    for (final Record<Span> record : recordsMissingTraceGroupInfo) {
        final Span span = record.getData();
        final String traceId = span.getTraceId();
        final TraceGroup traceGroup = traceIdToTraceGroup.get(traceId);
        if (traceGroup != null) {
            try {
                fillInTraceGroupInfo(span, traceGroup);
                recordsOut.add(record);
                recordsOutFixedTraceGroupCounter.increment();
            } catch (Exception e) {
                recordsOut.add(record);
                recordsOutMissingTraceGroupCounter.increment();
                LOG.error("Failed to process the span: [{}]", record.getData(), e);
            }
        } else {
            recordsOut.add(record);
            recordsOutMissingTraceGroupCounter.increment();
            final String spanId = span.getSpanId();
            LOG.warn("Failed to find traceGroup for spanId: {} due to traceGroup missing for traceId: {}", spanId, traceId);
        }
    }
    return recordsOut;
}
Also used : Record(com.amazon.dataprepper.model.record.Record) Span(com.amazon.dataprepper.model.trace.Span) LinkedList(java.util.LinkedList) TraceGroup(com.amazon.dataprepper.plugins.processor.oteltracegroup.model.TraceGroup) IOException(java.io.IOException) HashSet(java.util.HashSet)

Example 8 with Span

use of com.amazon.dataprepper.model.trace.Span in project data-prepper by opensearch-project.

the class OTelTraceGroupProcessorTests method testTraceGroupFillFailDueToFailedRequest.

@Test
public void testTraceGroupFillFailDueToFailedRequest() throws IOException {
    // Arrange
    Record<Span> testRecord = buildSpanRecordFromJsonFile(TEST_RAW_SPAN_MISSING_TRACE_GROUP_JSON_FILE_1);
    List<Record<Span>> testRecords = Collections.singletonList(testRecord);
    when(restHighLevelClient.search(any(SearchRequest.class), any(RequestOptions.class))).thenThrow(new OpenSearchException("Failure due to search request"));
    // Act
    List<Record<Span>> recordsOut = (List<Record<Span>>) otelTraceGroupProcessor.doExecute(testRecords);
    // Assert
    assertEquals(1, recordsOut.size());
    Record<Span> recordOut = recordsOut.get(0);
    assertEquals(testRecord, recordOut);
    checkMeasurementValue(OTelTraceGroupProcessor.RECORDS_IN_MISSING_TRACE_GROUP, 1.0);
    checkMeasurementValue(OTelTraceGroupProcessor.RECORDS_OUT_FIXED_TRACE_GROUP, 0.0);
    checkMeasurementValue(OTelTraceGroupProcessor.RECORDS_OUT_MISSING_TRACE_GROUP, 1.0);
}
Also used : SearchRequest(org.opensearch.action.search.SearchRequest) RequestOptions(org.opensearch.client.RequestOptions) Record(com.amazon.dataprepper.model.record.Record) OpenSearchException(org.opensearch.OpenSearchException) List(java.util.List) ArrayList(java.util.ArrayList) Span(com.amazon.dataprepper.model.trace.Span) JacksonSpan(com.amazon.dataprepper.model.trace.JacksonSpan) Test(org.junit.Test)

Example 9 with Span

use of com.amazon.dataprepper.model.trace.Span in project data-prepper by opensearch-project.

the class PeerForwarderTest method testSingleRemoteIpForwardedRequestOnlyWithEventRecordData.

@Test
public void testSingleRemoteIpForwardedRequestOnlyWithEventRecordData() throws Exception {
    final List<String> testIps = generateTestIps(2);
    final Channel channel = mock(Channel.class);
    final String peerIp = testIps.get(1);
    final String fullPeerIp = String.format("%s:21890", peerIp);
    when(channel.authority()).thenReturn(fullPeerIp);
    when(peerClientPool.getClient(peerIp)).thenReturn(client);
    when(client.getChannel()).thenReturn(channel);
    final Map<String, List<ExportTraceServiceRequest>> requestsByIp = testIps.stream().collect(Collectors.toMap(ip -> ip, ip -> new ArrayList<>()));
    doAnswer(invocation -> {
        final ExportTraceServiceRequest exportTraceServiceRequest = invocation.getArgument(0);
        requestsByIp.get(peerIp).add(exportTraceServiceRequest);
        return null;
    }).when(client).export(any(ExportTraceServiceRequest.class));
    MetricsTestUtil.initMetrics();
    final PeerForwarder testPeerForwarder = generatePeerForwarder(testIps, 3);
    final List<Record<Object>> exportedRecords = testPeerForwarder.doExecute(TEST_SPANS_B.stream().map(span -> new Record<Object>(span)).collect(Collectors.toList()));
    Assert.assertEquals(1, requestsByIp.get(peerIp).size());
    final ExportTraceServiceRequest forwardedRequest = requestsByIp.get(peerIp).get(0);
    final List<ResourceSpans> forwardedResourceSpans = forwardedRequest.getResourceSpansList();
    assertEquals(3, forwardedResourceSpans.size());
    forwardedResourceSpans.forEach(rs -> {
        assertEquals(TEST_SERVICE_B, extractServiceName(rs));
        assertEquals(1, rs.getInstrumentationLibrarySpansCount());
        final InstrumentationLibrarySpans ils = rs.getInstrumentationLibrarySpans(0);
        assertEquals(1, ils.getSpansCount());
        final io.opentelemetry.proto.trace.v1.Span sp = ils.getSpans(0);
        assertEquals(TEST_TRACE_ID_2, Hex.encodeHexString(sp.getTraceId().toByteArray()));
    });
    Assert.assertEquals(0, exportedRecords.size());
    // Verify metrics
    final List<Measurement> forwardRequestErrorMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(TEST_PIPELINE_NAME).add("peer_forwarder").add(PeerForwarder.ERRORS).toString());
    Assert.assertEquals(1, forwardRequestErrorMeasurements.size());
    Assert.assertEquals(0.0, forwardRequestErrorMeasurements.get(0).getValue(), 0);
    final List<Measurement> forwardRequestSuccessMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(TEST_PIPELINE_NAME).add("peer_forwarder").add(PeerForwarder.REQUESTS).toString());
    Assert.assertEquals(1, forwardRequestSuccessMeasurements.size());
    Assert.assertEquals(1.0, forwardRequestSuccessMeasurements.get(0).getValue(), 0);
    final List<Measurement> forwardRequestLatencyMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(TEST_PIPELINE_NAME).add("peer_forwarder").add(PeerForwarder.LATENCY).toString());
    Assert.assertEquals(3, forwardRequestLatencyMeasurements.size());
    // COUNT
    Assert.assertEquals(1.0, forwardRequestLatencyMeasurements.get(0).getValue(), 0);
    // TOTAL_TIME
    assertTrue(forwardRequestLatencyMeasurements.get(1).getValue() > 0.0);
    // MAX
    assertTrue(forwardRequestLatencyMeasurements.get(2).getValue() > 0.0);
}
Also used : Arrays(java.util.Arrays) ArgumentMatchers(org.mockito.ArgumentMatchers) MetricsTestUtil(com.amazon.dataprepper.metrics.MetricsTestUtil) Channel(io.grpc.Channel) Mockito.verifyNoInteractions(org.mockito.Mockito.verifyNoInteractions) ResourceSpans(io.opentelemetry.proto.trace.v1.ResourceSpans) After(org.junit.After) Map(java.util.Map) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Resource(io.opentelemetry.proto.resource.v1.Resource) Record(com.amazon.dataprepper.model.record.Record) DefaultTraceGroupFields(com.amazon.dataprepper.model.trace.DefaultTraceGroupFields) Span(com.amazon.dataprepper.model.trace.Span) DecoderException(org.apache.commons.codec.DecoderException) UUID(java.util.UUID) TraceServiceGrpc(io.opentelemetry.proto.collector.trace.v1.TraceServiceGrpc) Collectors(java.util.stream.Collectors) ByteString(com.google.protobuf.ByteString) MockedStatic(org.mockito.MockedStatic) List(java.util.List) JacksonSpan(com.amazon.dataprepper.model.trace.JacksonSpan) ExportTraceServiceRequest(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest) OTelProtoCodec(com.amazon.dataprepper.plugins.otel.codec.OTelProtoCodec) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Mock(org.mockito.Mock) Mockito.mockStatic(org.mockito.Mockito.mockStatic) RunWith(org.junit.runner.RunWith) InstrumentationLibrarySpans(io.opentelemetry.proto.trace.v1.InstrumentationLibrarySpans) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) MetricNames(com.amazon.dataprepper.metrics.MetricNames) Hex(org.apache.commons.codec.binary.Hex) Supplier(java.util.function.Supplier) ArrayList(java.util.ArrayList) ExecutorService(java.util.concurrent.ExecutorService) Before(org.junit.Before) PluginSetting(com.amazon.dataprepper.model.configuration.PluginSetting) OTelProtoCodec.convertUnixNanosToISO8601(com.amazon.dataprepper.plugins.otel.codec.OTelProtoCodec.convertUnixNanosToISO8601) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) Mockito.times(org.mockito.Mockito.times) Mockito.when(org.mockito.Mockito.when) Field(java.lang.reflect.Field) Measurement(io.micrometer.core.instrument.Measurement) Mockito.verify(org.mockito.Mockito.verify) ExecutionException(java.util.concurrent.ExecutionException) InstrumentationLibrary(io.opentelemetry.proto.common.v1.InstrumentationLibrary) StringJoiner(java.util.StringJoiner) Assert(org.junit.Assert) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) ExportTraceServiceRequest(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest) Measurement(io.micrometer.core.instrument.Measurement) Channel(io.grpc.Channel) ArrayList(java.util.ArrayList) ByteString(com.google.protobuf.ByteString) ResourceSpans(io.opentelemetry.proto.trace.v1.ResourceSpans) InstrumentationLibrarySpans(io.opentelemetry.proto.trace.v1.InstrumentationLibrarySpans) List(java.util.List) ArrayList(java.util.ArrayList) Record(com.amazon.dataprepper.model.record.Record) StringJoiner(java.util.StringJoiner) Test(org.junit.Test)

Example 10 with Span

use of com.amazon.dataprepper.model.trace.Span in project data-prepper by opensearch-project.

the class PeerForwarderTest method testSingleRemoteIpForwardRequestClientErrorWithEventRecordData.

@Test
public void testSingleRemoteIpForwardRequestClientErrorWithEventRecordData() {
    final List<String> testIps = generateTestIps(2);
    final Channel channel = mock(Channel.class);
    final String peerIp = testIps.get(1);
    final String fullPeerIp = String.format("%s:21890", peerIp);
    when(channel.authority()).thenReturn(fullPeerIp);
    when(peerClientPool.getClient(peerIp)).thenReturn(client);
    when(client.export(any(ExportTraceServiceRequest.class))).thenThrow(new RuntimeException());
    when(client.getChannel()).thenReturn(channel);
    MetricsTestUtil.initMetrics();
    final PeerForwarder testPeerForwarder = generatePeerForwarder(testIps, 3);
    final List<Record<Object>> exportedRecords = testPeerForwarder.doExecute(TEST_SPANS_B.stream().map(span -> new Record<Object>(span)).collect(Collectors.toList()));
    Assert.assertEquals(3, exportedRecords.size());
    final List<Span> exportedSpans = exportedRecords.stream().map(record -> (Span) record.getData()).collect(Collectors.toList());
    assertTrue(exportedSpans.containsAll(TEST_SPANS_B));
    assertTrue(TEST_SPANS_B.containsAll(exportedSpans));
    // Verify metrics
    final List<Measurement> forwardRequestErrorMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(TEST_PIPELINE_NAME).add("peer_forwarder").add(PeerForwarder.ERRORS).toString());
    Assert.assertEquals(1, forwardRequestErrorMeasurements.size());
    Assert.assertEquals(1.0, forwardRequestErrorMeasurements.get(0).getValue(), 0);
    final List<Measurement> forwardRequestSuccessMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(TEST_PIPELINE_NAME).add("peer_forwarder").add(PeerForwarder.REQUESTS).toString());
    Assert.assertEquals(1, forwardRequestSuccessMeasurements.size());
    Assert.assertEquals(1.0, forwardRequestSuccessMeasurements.get(0).getValue(), 0);
    final List<Measurement> forwardRequestLatencyMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(TEST_PIPELINE_NAME).add("peer_forwarder").add(PeerForwarder.LATENCY).toString());
    Assert.assertEquals(3, forwardRequestLatencyMeasurements.size());
    // COUNT
    Assert.assertEquals(1.0, forwardRequestLatencyMeasurements.get(0).getValue(), 0);
    // TOTAL_TIME
    assertTrue(forwardRequestLatencyMeasurements.get(1).getValue() > 0.0);
    // MAX
    assertTrue(forwardRequestLatencyMeasurements.get(2).getValue() > 0.0);
}
Also used : ExportTraceServiceRequest(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest) Arrays(java.util.Arrays) ArgumentMatchers(org.mockito.ArgumentMatchers) MetricsTestUtil(com.amazon.dataprepper.metrics.MetricsTestUtil) Channel(io.grpc.Channel) Mockito.verifyNoInteractions(org.mockito.Mockito.verifyNoInteractions) ResourceSpans(io.opentelemetry.proto.trace.v1.ResourceSpans) After(org.junit.After) Map(java.util.Map) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Resource(io.opentelemetry.proto.resource.v1.Resource) Record(com.amazon.dataprepper.model.record.Record) DefaultTraceGroupFields(com.amazon.dataprepper.model.trace.DefaultTraceGroupFields) Span(com.amazon.dataprepper.model.trace.Span) DecoderException(org.apache.commons.codec.DecoderException) UUID(java.util.UUID) TraceServiceGrpc(io.opentelemetry.proto.collector.trace.v1.TraceServiceGrpc) Collectors(java.util.stream.Collectors) ByteString(com.google.protobuf.ByteString) MockedStatic(org.mockito.MockedStatic) List(java.util.List) JacksonSpan(com.amazon.dataprepper.model.trace.JacksonSpan) ExportTraceServiceRequest(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest) OTelProtoCodec(com.amazon.dataprepper.plugins.otel.codec.OTelProtoCodec) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Mock(org.mockito.Mock) Mockito.mockStatic(org.mockito.Mockito.mockStatic) RunWith(org.junit.runner.RunWith) InstrumentationLibrarySpans(io.opentelemetry.proto.trace.v1.InstrumentationLibrarySpans) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) MetricNames(com.amazon.dataprepper.metrics.MetricNames) Hex(org.apache.commons.codec.binary.Hex) Supplier(java.util.function.Supplier) ArrayList(java.util.ArrayList) ExecutorService(java.util.concurrent.ExecutorService) Before(org.junit.Before) PluginSetting(com.amazon.dataprepper.model.configuration.PluginSetting) OTelProtoCodec.convertUnixNanosToISO8601(com.amazon.dataprepper.plugins.otel.codec.OTelProtoCodec.convertUnixNanosToISO8601) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) Mockito.times(org.mockito.Mockito.times) Mockito.when(org.mockito.Mockito.when) Field(java.lang.reflect.Field) Measurement(io.micrometer.core.instrument.Measurement) Mockito.verify(org.mockito.Mockito.verify) ExecutionException(java.util.concurrent.ExecutionException) InstrumentationLibrary(io.opentelemetry.proto.common.v1.InstrumentationLibrary) StringJoiner(java.util.StringJoiner) Assert(org.junit.Assert) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) Measurement(io.micrometer.core.instrument.Measurement) Channel(io.grpc.Channel) ByteString(com.google.protobuf.ByteString) Span(com.amazon.dataprepper.model.trace.Span) JacksonSpan(com.amazon.dataprepper.model.trace.JacksonSpan) Record(com.amazon.dataprepper.model.record.Record) StringJoiner(java.util.StringJoiner) Test(org.junit.Test)

Aggregations

Span (com.amazon.dataprepper.model.trace.Span)15 Record (com.amazon.dataprepper.model.record.Record)10 JacksonSpan (com.amazon.dataprepper.model.trace.JacksonSpan)8 ArrayList (java.util.ArrayList)8 List (java.util.List)8 Map (java.util.Map)8 Test (org.junit.Test)8 DefaultTraceGroupFields (com.amazon.dataprepper.model.trace.DefaultTraceGroupFields)7 ExportTraceServiceRequest (io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest)7 ResourceSpans (io.opentelemetry.proto.trace.v1.ResourceSpans)7 UnsupportedEncodingException (java.io.UnsupportedEncodingException)7 ExecutorService (java.util.concurrent.ExecutorService)7 Collectors (java.util.stream.Collectors)7 DecoderException (org.apache.commons.codec.DecoderException)7 PluginSetting (com.amazon.dataprepper.model.configuration.PluginSetting)6 OTelProtoCodec (com.amazon.dataprepper.plugins.otel.codec.OTelProtoCodec)6 ByteString (com.google.protobuf.ByteString)6 Measurement (io.micrometer.core.instrument.Measurement)6 TraceServiceGrpc (io.opentelemetry.proto.collector.trace.v1.TraceServiceGrpc)6 InstrumentationLibrary (io.opentelemetry.proto.common.v1.InstrumentationLibrary)6