Search in sources :

Example 76 with Record

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

the class AbstractBufferTest method testWriteAllMetrics.

@Test
public void testWriteAllMetrics() throws Exception {
    // Given
    final AbstractBuffer<Record<String>> abstractBuffer = new AbstractBufferImpl(testPluginSetting);
    final Collection<Record<String>> testRecords = new ArrayList<>();
    for (int i = 0; i < 5; i++) {
        testRecords.add(new Record<>(UUID.randomUUID().toString()));
    }
    // When
    abstractBuffer.writeAll(testRecords, 1000);
    // Then
    final List<Measurement> recordsWrittenMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(PIPELINE_NAME).add(BUFFER_NAME).add(MetricNames.RECORDS_WRITTEN).toString());
    final List<Measurement> writeTimeMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(PIPELINE_NAME).add(BUFFER_NAME).add(MetricNames.WRITE_TIME_ELAPSED).toString());
    Assert.assertEquals(1, recordsWrittenMeasurements.size());
    Assert.assertEquals(5.0, recordsWrittenMeasurements.get(0).getValue(), 0);
    Assert.assertEquals(1.0, MetricsTestUtil.getMeasurementFromList(writeTimeMeasurements, Statistic.COUNT).getValue(), 0);
    Assert.assertTrue(MetricsTestUtil.isBetween(MetricsTestUtil.getMeasurementFromList(writeTimeMeasurements, Statistic.TOTAL_TIME).getValue(), 0.05, 0.25));
}
Also used : Measurement(io.micrometer.core.instrument.Measurement) ArrayList(java.util.ArrayList) Record(com.amazon.dataprepper.model.record.Record) StringJoiner(java.util.StringJoiner) Test(org.junit.jupiter.api.Test)

Example 77 with Record

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

the class AbstractBufferTest method testWriteMetrics.

@Test
public void testWriteMetrics() throws TimeoutException {
    // Given
    final AbstractBuffer<Record<String>> abstractBuffer = new AbstractBufferImpl(testPluginSetting);
    // When
    for (int i = 0; i < 5; i++) {
        abstractBuffer.write(new Record<>(UUID.randomUUID().toString()), 1000);
    }
    // Then
    final List<Measurement> recordsWrittenMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(PIPELINE_NAME).add(BUFFER_NAME).add(MetricNames.RECORDS_WRITTEN).toString());
    final List<Measurement> writeTimeMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(PIPELINE_NAME).add(BUFFER_NAME).add(MetricNames.WRITE_TIME_ELAPSED).toString());
    Assert.assertEquals(1, recordsWrittenMeasurements.size());
    Assert.assertEquals(5.0, recordsWrittenMeasurements.get(0).getValue(), 0);
    Assert.assertEquals(5.0, MetricsTestUtil.getMeasurementFromList(writeTimeMeasurements, Statistic.COUNT).getValue(), 0);
    Assert.assertTrue(MetricsTestUtil.isBetween(MetricsTestUtil.getMeasurementFromList(writeTimeMeasurements, Statistic.TOTAL_TIME).getValue(), 0.45, 0.65));
}
Also used : Measurement(io.micrometer.core.instrument.Measurement) Record(com.amazon.dataprepper.model.record.Record) StringJoiner(java.util.StringJoiner) Test(org.junit.jupiter.api.Test)

Example 78 with Record

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

the class AbstractBufferTest method testWriteTimeoutMetric.

@Test
public void testWriteTimeoutMetric() throws TimeoutException {
    // Given
    final AbstractBuffer<Record<String>> abstractBuffer = new AbstractBufferTimeoutImpl(testPluginSetting);
    // When/Then
    Assert.assertThrows(TimeoutException.class, () -> abstractBuffer.write(new Record<>(UUID.randomUUID().toString()), 1000));
    final List<Measurement> timeoutMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(PIPELINE_NAME).add(BUFFER_NAME).add(MetricNames.WRITE_TIMEOUTS).toString());
    Assert.assertEquals(1, timeoutMeasurements.size());
    Assert.assertEquals(1.0, timeoutMeasurements.get(0).getValue(), 0);
}
Also used : Measurement(io.micrometer.core.instrument.Measurement) Record(com.amazon.dataprepper.model.record.Record) StringJoiner(java.util.StringJoiner) Test(org.junit.jupiter.api.Test)

Example 79 with Record

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

the class AbstractPrepperTest method testMetrics.

@Test
public void testMetrics() {
    final String prepperName = "testPrepper";
    final String pipelineName = "pipelineName";
    MetricsTestUtil.initMetrics();
    PluginSetting pluginSetting = new PluginSetting(prepperName, Collections.emptyMap());
    pluginSetting.setPipelineName(pipelineName);
    AbstractPrepper<Record<String>, Record<String>> prepper = new PrepperImpl(pluginSetting);
    prepper.execute(Arrays.asList(new Record<>("Value1"), new Record<>("Value2"), new Record<>("Value3")));
    final List<Measurement> recordsInMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(pipelineName).add(prepperName).add(MetricNames.RECORDS_IN).toString());
    final List<Measurement> recordsOutMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(pipelineName).add(prepperName).add(MetricNames.RECORDS_OUT).toString());
    final List<Measurement> elapsedTimeMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(pipelineName).add(prepperName).add(MetricNames.TIME_ELAPSED).toString());
    Assert.assertEquals(1, recordsInMeasurements.size());
    Assert.assertEquals(3.0, recordsInMeasurements.get(0).getValue(), 0);
    Assert.assertEquals(1, recordsOutMeasurements.size());
    Assert.assertEquals(6.0, recordsOutMeasurements.get(0).getValue(), 0);
    Assert.assertEquals(3, elapsedTimeMeasurements.size());
    Assert.assertEquals(1.0, MetricsTestUtil.getMeasurementFromList(elapsedTimeMeasurements, Statistic.COUNT).getValue(), 0);
    Assert.assertTrue(MetricsTestUtil.isBetween(MetricsTestUtil.getMeasurementFromList(elapsedTimeMeasurements, Statistic.TOTAL_TIME).getValue(), 0.1, 0.2));
}
Also used : Measurement(io.micrometer.core.instrument.Measurement) Record(com.amazon.dataprepper.model.record.Record) PluginSetting(com.amazon.dataprepper.model.configuration.PluginSetting) StringJoiner(java.util.StringJoiner) Test(org.junit.Test)

Example 80 with Record

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

the class AbstractProcessorTest method testMetricsWithPluginMetricsConstructor.

@Test
public void testMetricsWithPluginMetricsConstructor() {
    final String processorName = "testProcessor";
    final String pipelineName = "testPipeline";
    MetricsTestUtil.initMetrics();
    PluginMetrics pluginMetrics = PluginMetrics.fromNames(processorName, pipelineName);
    AbstractProcessor<Record<String>, Record<String>> processor = new ProcessorImpl(pluginMetrics);
    processor.execute(Arrays.asList(new Record<>("Value1"), new Record<>("Value2"), new Record<>("Value3")));
    final List<Measurement> recordsInMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(pipelineName).add(processorName).add(MetricNames.RECORDS_IN).toString());
    final List<Measurement> recordsOutMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(pipelineName).add(processorName).add(MetricNames.RECORDS_OUT).toString());
    final List<Measurement> elapsedTimeMeasurements = MetricsTestUtil.getMeasurementList(new StringJoiner(MetricNames.DELIMITER).add(pipelineName).add(processorName).add(MetricNames.TIME_ELAPSED).toString());
    Assertions.assertEquals(1, recordsInMeasurements.size());
    Assertions.assertEquals(3.0, recordsInMeasurements.get(0).getValue(), 0);
    Assertions.assertEquals(1, recordsOutMeasurements.size());
    Assertions.assertEquals(6.0, recordsOutMeasurements.get(0).getValue(), 0);
    Assertions.assertEquals(3, elapsedTimeMeasurements.size());
    Assertions.assertEquals(1.0, MetricsTestUtil.getMeasurementFromList(elapsedTimeMeasurements, Statistic.COUNT).getValue(), 0);
    Assertions.assertTrue(MetricsTestUtil.isBetween(MetricsTestUtil.getMeasurementFromList(elapsedTimeMeasurements, Statistic.TOTAL_TIME).getValue(), 0.1, 0.2));
}
Also used : Measurement(io.micrometer.core.instrument.Measurement) PluginMetrics(com.amazon.dataprepper.metrics.PluginMetrics) Record(com.amazon.dataprepper.model.record.Record) StringJoiner(java.util.StringJoiner) Test(org.junit.jupiter.api.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