Skip to content

Commit

Permalink
[sc73297] Unsafe create events
Browse files Browse the repository at this point in the history
  • Loading branch information
musketyr committed May 24, 2022
1 parent 7e8b66d commit 6575847
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,16 @@ public AsyncNewRelicInsightsService(Insights insights, EventPayloadExtractor ext
}

@Override
public <E> void createEvent(@Nonnull @Valid E event) {
public <E> void unsafeCreateEvent(@Nonnull @Valid E event) {
Map<String, Object> map = extractor.extractPayload(event);
Object eventType = map.remove("eventType");
insights.recordCustomEvent(eventType.toString(), map);
}

@Override
public <E> void createEvents(@Nonnull @Valid Collection<E> events) {
public <E> void unsafeCreateEvents(@Nonnull @Valid Collection<E> events) {
for (E event : events) {
createEvent(event);
unsafeCreateEvent(event);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@
import io.micronaut.context.annotation.Primary;
import io.micronaut.context.annotation.Replaces;
import io.micronaut.context.annotation.Requires;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Nonnull;
import javax.inject.Singleton;
Expand All @@ -42,8 +40,6 @@
@Replaces(FallbackNewRelicInsightsService.class)
public class DefaultNewRelicInsightsService implements NewRelicInsightsService {

private static final Logger LOGGER = LoggerFactory.getLogger(NewRelicInsightsService.class);

private final NewRelicInsightsClient client;
private final EventPayloadExtractor extractor;

Expand All @@ -53,11 +49,8 @@ public DefaultNewRelicInsightsService(NewRelicInsightsClient client, EventPayloa
}

@Override
public <E> void createEvents(@Nonnull @Valid Collection<E> events) {
try {
this.client.createEvents(events.stream().map(extractor::extractPayload).collect(Collectors.toList()));
} catch (Exception ex) {
LOGGER.error("Exception creating New Relic events " + ex);
}
public <E> void unsafeCreateEvents(@Nonnull @Valid Collection<E> events) {
this.client.createEvents(events.stream().map(extractor::extractPayload).collect(Collectors.toList()));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
package com.agorapulse.micronaut.newrelic;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.micronaut.context.annotation.Secondary;
import org.slf4j.Logger;
Expand All @@ -41,11 +40,8 @@ public FallbackNewRelicInsightsService(ObjectMapper mapper) {
}

@Override
public <E> void createEvents(@Nonnull @Valid Collection<E> events) {
try {
LOGGER.info("Following events not sent to NewRelic:\n" + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(events));
} catch (JsonProcessingException e) {
LOGGER.info("Cannot log events: " + events);
}
public <E> void unsafeCreateEvents(@Nonnull @Valid Collection<E> events) throws Exception {
LOGGER.info("Following events not sent to NewRelic:\n" + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(events));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,37 @@
*/
package com.agorapulse.micronaut.newrelic;

import io.micronaut.validation.Validated;
import org.slf4j.LoggerFactory;

import javax.annotation.Nonnull;
import javax.validation.ConstraintViolationException;
import javax.validation.Valid;
import java.util.Collection;
import java.util.Collections;

@Validated
public interface NewRelicInsightsService {

default <E> void createEvent(@Valid @Nonnull E event) {
createEvents(Collections.singleton(event));
}

<E> void createEvents(@Valid @Nonnull Collection<E> events);
default <E> void createEvents(@Valid @Nonnull Collection<E> events) {
try {
unsafeCreateEvents(events);
} catch (ConstraintViolationException cve) {
// keep the validation exceptions
throw cve;
} catch (Exception ex) {
LoggerFactory.getLogger(getClass()).error("Exception creating New Relic events " + ex);
}
}

default <E> void unsafeCreateEvent(@Valid @Nonnull E event) throws Exception {
unsafeCreateEvents(Collections.singleton(event));
}

<E> void unsafeCreateEvents(@Valid @Nonnull Collection<E> events) throws Exception;

}

0 comments on commit 6575847

Please sign in to comment.