Search in sources :

Example 66 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class ConditionalExpressionEvaluatorTest method testGivenValidParametersThenEvaluatorResultReturned.

@Test
void testGivenValidParametersThenEvaluatorResultReturned() {
    final String statement = UUID.randomUUID().toString();
    final ParseTree parseTree = mock(ParseTree.class);
    final Event event = mock(Event.class);
    final Boolean expected = true;
    doReturn(parseTree).when(parser).parse(eq(statement));
    doReturn(expected).when(evaluator).evaluate(eq(parseTree), eq(event));
    final Boolean actual = statementEvaluator.evaluate(statement, event);
    assertThat(actual, is(expected));
    verify(parser).parse(eq(statement));
    verify(evaluator).evaluate(eq(parseTree), eq(event));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) ParseTree(org.antlr.v4.runtime.tree.ParseTree) Test(org.junit.jupiter.api.Test)

Example 67 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class AggregateProcessor method doExecute.

@Override
public Collection<Record<Event>> doExecute(Collection<Record<Event>> records) {
    final List<Record<Event>> recordsOut = new LinkedList<>();
    final List<Map.Entry<AggregateIdentificationKeysHasher.IdentificationHash, AggregateGroup>> groupsToConclude = aggregateGroupManager.getGroupsToConclude();
    for (final Map.Entry<AggregateIdentificationKeysHasher.IdentificationHash, AggregateGroup> groupEntry : groupsToConclude) {
        final Optional<Event> concludeGroupEvent = aggregateActionSynchronizer.concludeGroup(groupEntry.getKey(), groupEntry.getValue());
        if (concludeGroupEvent.isPresent()) {
            recordsOut.add(new Record(concludeGroupEvent.get()));
            actionConcludeGroupEventsOutCounter.increment();
        } else {
            actionConcludeGroupEventsDroppedCounter.increment();
        }
    }
    int handleEventsOut = 0;
    int handleEventsDropped = 0;
    for (final Record<Event> record : records) {
        final Event event = record.getData();
        final AggregateIdentificationKeysHasher.IdentificationHash identificationKeysHash = aggregateIdentificationKeysHasher.createIdentificationKeyHashFromEvent(event);
        final AggregateGroup aggregateGroupForEvent = aggregateGroupManager.getAggregateGroup(identificationKeysHash);
        final AggregateActionResponse handleEventResponse = aggregateActionSynchronizer.handleEventForGroup(event, identificationKeysHash, aggregateGroupForEvent);
        final Event aggregateActionResponseEvent = handleEventResponse.getEvent();
        if (aggregateActionResponseEvent != null) {
            recordsOut.add(new Record<>(aggregateActionResponseEvent, record.getMetadata()));
            handleEventsOut++;
        } else {
            handleEventsDropped++;
        }
    }
    actionHandleEventsOutCounter.increment(handleEventsOut);
    actionHandleEventsDroppedCounter.increment(handleEventsDropped);
    return recordsOut;
}
Also used : LinkedList(java.util.LinkedList) Event(com.amazon.dataprepper.model.event.Event) Record(com.amazon.dataprepper.model.record.Record) Map(java.util.Map)

Example 68 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class StringPrepper method execute.

@Override
public Collection<Record<Event>> execute(final Collection<Record<Event>> records) {
    final Collection<Record<Event>> modifiedRecords = new ArrayList<>(records.size());
    for (Record<Event> record : records) {
        final Event recordEvent = record.getData();
        final String eventJson = recordEvent.toJsonString();
        try {
            final Map<String, Object> newData = processEventJson(eventJson);
            final Event newRecordEvent = JacksonEvent.builder().withEventMetadata(recordEvent.getMetadata()).withData(newData).build();
            modifiedRecords.add(new Record<>(newRecordEvent));
        } catch (JsonProcessingException e) {
            LOG.error("Unable to process Event data: {}", eventJson, e);
        }
    }
    return modifiedRecords;
}
Also used : ArrayList(java.util.ArrayList) Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Record(com.amazon.dataprepper.model.record.Record) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException)

Example 69 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class TestBuffer method read.

@Override
public Map.Entry<Collection<Record<Event>>, CheckpointState> read(int timeoutInMillis) {
    final List<Record<Event>> records = new ArrayList<>();
    int index = 0;
    Record<Event> record;
    while (index < batchSize && (record = buffer.poll()) != null) {
        records.add(record);
        index++;
    }
    final CheckpointState checkpointState = new CheckpointState(records.size());
    return new AbstractMap.SimpleEntry<>(records, checkpointState);
}
Also used : ArrayList(java.util.ArrayList) Event(com.amazon.dataprepper.model.event.Event) Record(com.amazon.dataprepper.model.record.Record) CheckpointState(com.amazon.dataprepper.model.CheckpointState)

Example 70 with Event

use of com.amazon.dataprepper.model.event.Event in project data-prepper by opensearch-project.

the class StringPrepperTests method testStringPrepperUpperCase.

@Test
public void testStringPrepperUpperCase() {
    configuration.setUpperCase(true);
    final StringPrepper stringPrepper = createObjectUnderTest();
    final List<Record<Event>> modifiedRecords = (List<Record<Event>>) stringPrepper.execute(TEST_RECORDS);
    stringPrepper.shutdown();
    final List<Event> modifiedRecordEvents = modifiedRecords.stream().map(Record::getData).collect(Collectors.toList());
    assertThat(modifiedRecordEvents.size(), equalTo(2));
    final Event firstEvent = modifiedRecordEvents.get(0);
    final Event secondEvent = modifiedRecordEvents.get(1);
    assertTrue(firstEvent.containsKey(TEST_KEY));
    assertThat(firstEvent.getMetadata().getEventType(), equalTo(TEST_EVENT_TYPE));
    assertThat(firstEvent.get(TEST_KEY, String.class), equalTo(UPPERCASE_TEST_STRING.toUpperCase()));
    assertTrue(secondEvent.containsKey(TEST_KEY));
    assertThat(secondEvent.getMetadata().getEventType(), equalTo(TEST_EVENT_TYPE));
    assertThat(secondEvent.get(TEST_KEY, String.class), equalTo(LOWERCASE_TEST_STRING));
}
Also used : Event(com.amazon.dataprepper.model.event.Event) JacksonEvent(com.amazon.dataprepper.model.event.JacksonEvent) Record(com.amazon.dataprepper.model.record.Record) List(java.util.List) Test(org.junit.jupiter.api.Test)

Aggregations

Event (com.amazon.dataprepper.model.event.Event)81 Test (org.junit.jupiter.api.Test)52 JacksonEvent (com.amazon.dataprepper.model.event.JacksonEvent)46 Record (com.amazon.dataprepper.model.record.Record)23 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)22 List (java.util.List)12 TestObject (org.opensearch.dataprepper.expression.util.TestObject)11 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)10 ArrayList (java.util.ArrayList)7 HashMap (java.util.HashMap)7 MethodSource (org.junit.jupiter.params.provider.MethodSource)6 ZonedDateTime (java.time.ZonedDateTime)5 Map (java.util.Map)5 ParseTree (org.antlr.v4.runtime.tree.ParseTree)4 AggregateActionInput (com.amazon.dataprepper.plugins.processor.aggregate.AggregateActionInput)3 InputStream (java.io.InputStream)3 LinkedList (java.util.LinkedList)3 Random (java.util.Random)3 Test (org.junit.Test)3 ValueSource (org.junit.jupiter.params.provider.ValueSource)3