Search in sources :

Example 91 with Record

use of com.amazon.dataprepper.model.record.Record in project data-prepper by opensearch-project.

the class OTelTraceGrpcServiceTest method export_Success_responseObserverOnCompleted_withOTLPRecordType.

@Test
public void export_Success_responseObserverOnCompleted_withOTLPRecordType() throws Exception {
    objectUnderTest = generateOTelTraceGrpcService(new OTelProtoCodec.OTelProtoDecoder(), RecordType.OTLP);
    objectUnderTest.export(SUCCESS_REQUEST, responseObserver);
    verify(buffer, times(1)).write(recordCaptor.capture(), anyInt());
    verify(responseObserver, times(1)).onNext(ExportTraceServiceResponse.newBuilder().build());
    verify(responseObserver, times(1)).onCompleted();
    verify(requestsReceivedCounter, times(1)).increment();
    verifyNoInteractions(timeoutCounter);
    Record capturedRecord = recordCaptor.getValue();
    assertEquals(SUCCESS_REQUEST, capturedRecord.getData());
}
Also used : Record(com.amazon.dataprepper.model.record.Record) Test(org.junit.jupiter.api.Test)

Example 92 with Record

use of com.amazon.dataprepper.model.record.Record in project data-prepper by opensearch-project.

the class OTelTraceGroupPrepperTests method buildRawSpanRecord.

private Record<String> buildRawSpanRecord(String rawSpanJsonFileName) throws IOException {
    final StringBuilder jsonBuilder = new StringBuilder();
    try (final InputStream inputStream = Objects.requireNonNull(getClass().getClassLoader().getResourceAsStream(rawSpanJsonFileName))) {
        final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        bufferedReader.lines().forEach(jsonBuilder::append);
    }
    return new Record<>(jsonBuilder.toString());
}
Also used : InputStreamReader(java.io.InputStreamReader) InputStream(java.io.InputStream) BufferedReader(java.io.BufferedReader) Record(com.amazon.dataprepper.model.record.Record)

Example 93 with Record

use of com.amazon.dataprepper.model.record.Record in project data-prepper by opensearch-project.

the class OTelMetricsRawProcessor method doExecute.

@Override
public Collection<Record<? extends Metric>> doExecute(Collection<Record<ExportMetricsServiceRequest>> records) {
    Collection<Record<? extends Metric>> recordsOut = new ArrayList<>();
    for (Record<ExportMetricsServiceRequest> ets : records) {
        for (ResourceMetrics rs : ets.getData().getResourceMetricsList()) {
            final Map<String, Object> resourceAttributes = OTelMetricsProtoHelper.getResourceAttributes(rs.getResource());
            final String serviceName = OTelMetricsProtoHelper.getServiceName(rs.getResource()).orElse(null);
            for (InstrumentationLibraryMetrics is : rs.getInstrumentationLibraryMetricsList()) {
                final Map<String, Object> ils = OTelMetricsProtoHelper.getInstrumentationLibraryAttributes(is.getInstrumentationLibrary());
                for (io.opentelemetry.proto.metrics.v1.Metric metric : is.getMetricsList()) {
                    if (metric.hasGauge()) {
                        recordsOut.addAll(mapGauge(metric, serviceName, ils, resourceAttributes));
                    } else if (metric.hasSum()) {
                        recordsOut.addAll(mapSum(metric, serviceName, ils, resourceAttributes));
                    } else if (metric.hasSummary()) {
                        recordsOut.addAll(mapSummary(metric, serviceName, ils, resourceAttributes));
                    } else if (metric.hasHistogram()) {
                        recordsOut.addAll(mapHistogram(metric, serviceName, ils, resourceAttributes));
                    }
                }
            }
        }
    }
    return recordsOut;
}
Also used : ArrayList(java.util.ArrayList) InstrumentationLibraryMetrics(io.opentelemetry.proto.metrics.v1.InstrumentationLibraryMetrics) ResourceMetrics(io.opentelemetry.proto.metrics.v1.ResourceMetrics) Record(com.amazon.dataprepper.model.record.Record) Metric(com.amazon.dataprepper.model.metric.Metric) ExportMetricsServiceRequest(io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest)

Example 94 with Record

use of com.amazon.dataprepper.model.record.Record in project data-prepper by opensearch-project.

the class MetricsPluginGaugeTest method test.

@Test
public void test() throws JsonProcessingException {
    NumberDataPoint.Builder p1 = NumberDataPoint.newBuilder().setAsInt(4);
    Gauge gauge = Gauge.newBuilder().addDataPoints(p1).build();
    io.opentelemetry.proto.metrics.v1.Metric.Builder metric = io.opentelemetry.proto.metrics.v1.Metric.newBuilder().setGauge(gauge).setUnit("seconds").setName("name").setDescription("description");
    InstrumentationLibraryMetrics isntLib = InstrumentationLibraryMetrics.newBuilder().addMetrics(metric).build();
    Resource resource = Resource.newBuilder().addAttributes(KeyValue.newBuilder().setKey("service.name").setValue(AnyValue.newBuilder().setStringValue("service").build())).build();
    ResourceMetrics resourceMetrics = ResourceMetrics.newBuilder().addInstrumentationLibraryMetrics(isntLib).setResource(resource).build();
    ExportMetricsServiceRequest exportMetricRequest = ExportMetricsServiceRequest.newBuilder().addResourceMetrics(resourceMetrics).build();
    Record<ExportMetricsServiceRequest> record = new Record<>(exportMetricRequest);
    Collection<Record<? extends Metric>> records = rawProcessor.doExecute(Collections.singletonList(record));
    List<Record<? extends Metric>> list = new ArrayList<>(records);
    Record<? extends Metric> dataPrepperResult = list.get(0);
    ObjectMapper objectMapper = new ObjectMapper();
    Map map = objectMapper.readValue(dataPrepperResult.getData().toJsonString(), Map.class);
    assertSumProcessing(map);
}
Also used : Resource(io.opentelemetry.proto.resource.v1.Resource) ArrayList(java.util.ArrayList) InstrumentationLibraryMetrics(io.opentelemetry.proto.metrics.v1.InstrumentationLibraryMetrics) Gauge(io.opentelemetry.proto.metrics.v1.Gauge) ResourceMetrics(io.opentelemetry.proto.metrics.v1.ResourceMetrics) NumberDataPoint(io.opentelemetry.proto.metrics.v1.NumberDataPoint) Metric(com.amazon.dataprepper.model.metric.Metric) Record(com.amazon.dataprepper.model.record.Record) Map(java.util.Map) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ExportMetricsServiceRequest(io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest) Test(org.junit.Test)

Example 95 with Record

use of com.amazon.dataprepper.model.record.Record in project data-prepper by opensearch-project.

the class MetricsPluginSumTest method test.

@Test
public void test() throws JsonProcessingException {
    final KeyValue childAttr1 = KeyValue.newBuilder().setKey("statement").setValue(AnyValue.newBuilder().setIntValue(1_000).build()).build();
    final KeyValue childAttr2 = KeyValue.newBuilder().setKey("statement.params").setValue(AnyValue.newBuilder().setStringValue("us-east-1").build()).build();
    final KeyValue attribute1 = KeyValue.newBuilder().setKey("db.details").setValue(AnyValue.newBuilder().setKvlistValue(KeyValueList.newBuilder().addAllValues(Arrays.asList(childAttr1, childAttr2)).build()).build()).build();
    final KeyValue attribute2 = KeyValue.newBuilder().setKey("http.status").setValue(AnyValue.newBuilder().setStringValue("4xx").build()).build();
    final AnyValue anyValue1 = AnyValue.newBuilder().setStringValue("asdf").build();
    final AnyValue anyValue2 = AnyValue.newBuilder().setDoubleValue(2000.123).build();
    final AnyValue anyValue3 = AnyValue.newBuilder().setKvlistValue(KeyValueList.newBuilder().addAllValues(Arrays.asList(childAttr1, childAttr2))).build();
    final ArrayValue arrayValue = ArrayValue.newBuilder().addAllValues(Arrays.asList(anyValue1, anyValue2, anyValue3)).build();
    final KeyValue attribute3 = KeyValue.newBuilder().setKey("aws.details").setValue(AnyValue.newBuilder().setArrayValue(arrayValue)).build();
    NumberDataPoint dataPoint = NumberDataPoint.newBuilder().setAsInt(3).addAllAttributes(Arrays.asList(attribute1, attribute2, attribute3)).build();
    Sum sum = Sum.newBuilder().addAllDataPoints(Collections.singletonList(dataPoint)).build();
    Metric metric = Metric.newBuilder().setSum(sum).setUnit("seconds").setName("name").setDescription("description").build();
    InstrumentationLibraryMetrics instLib = InstrumentationLibraryMetrics.newBuilder().setInstrumentationLibrary(InstrumentationLibrary.newBuilder().setVersion("v1").setName("name").build()).addMetrics(metric).build();
    Resource resource = Resource.newBuilder().addAttributes(KeyValue.newBuilder().setKey("service.name").setValue(AnyValue.newBuilder().setStringValue("service").build())).build();
    ResourceMetrics resourceMetrics = ResourceMetrics.newBuilder().setResource(resource).addInstrumentationLibraryMetrics(instLib).build();
    ExportMetricsServiceRequest exportMetricRequest = ExportMetricsServiceRequest.newBuilder().addResourceMetrics(resourceMetrics).build();
    Record record = new Record<>(exportMetricRequest);
    List<Record<Event>> rec = (List<Record<Event>>) rawProcessor.doExecute(Arrays.asList(record));
    Record<Event> firstRecord = rec.get(0);
    ObjectMapper objectMapper = new ObjectMapper();
    Map map = objectMapper.readValue(firstRecord.getData().toJsonString(), Map.class);
    assertSumProcessing(map);
}
Also used : KeyValue(io.opentelemetry.proto.common.v1.KeyValue) Resource(io.opentelemetry.proto.resource.v1.Resource) Sum(io.opentelemetry.proto.metrics.v1.Sum) InstrumentationLibraryMetrics(io.opentelemetry.proto.metrics.v1.InstrumentationLibraryMetrics) ResourceMetrics(io.opentelemetry.proto.metrics.v1.ResourceMetrics) AnyValue(io.opentelemetry.proto.common.v1.AnyValue) NumberDataPoint(io.opentelemetry.proto.metrics.v1.NumberDataPoint) Event(com.amazon.dataprepper.model.event.Event) Metric(io.opentelemetry.proto.metrics.v1.Metric) Record(com.amazon.dataprepper.model.record.Record) KeyValueList(io.opentelemetry.proto.common.v1.KeyValueList) List(java.util.List) ArrayValue(io.opentelemetry.proto.common.v1.ArrayValue) Map(java.util.Map) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ExportMetricsServiceRequest(io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest) Test(org.junit.Test)

Aggregations

Record (com.amazon.dataprepper.model.record.Record)103 Test (org.junit.Test)43 Measurement (io.micrometer.core.instrument.Measurement)35 StringJoiner (java.util.StringJoiner)35 PluginSetting (com.amazon.dataprepper.model.configuration.PluginSetting)33 ArrayList (java.util.ArrayList)31 Map (java.util.Map)30 Test (org.junit.jupiter.api.Test)30 HashMap (java.util.HashMap)29 List (java.util.List)28 Event (com.amazon.dataprepper.model.event.Event)23 ExportTraceServiceRequest (io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest)20 ResourceSpans (io.opentelemetry.proto.trace.v1.ResourceSpans)19 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)16 JacksonEvent (com.amazon.dataprepper.model.event.JacksonEvent)14 ByteString (com.google.protobuf.ByteString)13 ExecutorService (java.util.concurrent.ExecutorService)13 Resource (io.opentelemetry.proto.resource.v1.Resource)12 Channel (io.grpc.Channel)11 MetricNames (com.amazon.dataprepper.metrics.MetricNames)10