use of com.amazon.dataprepper.model.metric.Metric in project data-prepper by opensearch-project.
the class MetricsPluginHistogramTest method test.
@Test
public void test() throws JsonProcessingException {
final double bound_0 = 10.0;
final double bound_1 = 100.0;
final double bound_2 = 1000.0;
HistogramDataPoint dp = HistogramDataPoint.newBuilder().addBucketCounts(0).addBucketCounts(5).addBucketCounts(17).addBucketCounts(33).addExplicitBounds(bound_0).addExplicitBounds(bound_1).addExplicitBounds(bound_2).setCount(4).setSum(1d / 3d).build();
Histogram histogram = Histogram.newBuilder().addDataPoints(dp).build();
List<Record<? extends Metric>> processedRecords = (List<Record<? extends Metric>>) rawProcessor.doExecute(Collections.singletonList(new Record<>(fillServiceRequest(histogram))));
Record<? extends Metric> record = processedRecords.get(0);
ObjectMapper objectMapper = new ObjectMapper();
Map<Object, Object> map = objectMapper.readValue(record.getData().toJsonString(), Map.class);
DefaultBucket bucket_0 = new DefaultBucket((double) -Float.MAX_VALUE, bound_0, 0L);
DefaultBucket bucket_1 = new DefaultBucket(bound_0, bound_1, 5L);
DefaultBucket bucket_2 = new DefaultBucket(bound_1, bound_2, 17L);
DefaultBucket bucket_3 = new DefaultBucket(bound_2, (double) Float.MAX_VALUE, 33L);
assertHistogramProcessing(map, Arrays.asList(bucket_0, bucket_1, bucket_2, bucket_3));
}
use of com.amazon.dataprepper.model.metric.Metric 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.metric.Metric 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);
}
Aggregations