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());
}
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());
}
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;
}
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);
}
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);
}
Aggregations