private void putEvents(final InternalStatisticsService service,
                           final Map<DocRef, List<InternalStatisticEvent>> eventsMap) {
        try {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("Putting events for docRef(s) [{}] to {}",
                        eventsMap.keySet().stream()
                                .map(DocRef::getName)
                                .collect(Collectors.joining(",")),
                        service.getClass().getName());
            }

            service.putEvents(eventsMap);
        } catch (final RuntimeException e) {
            final String baseMsg = "Error sending internal statistics to {}";
            final String serviceClassName = service.getClass().getSimpleName();
            final Throwable cause = e.getCause();
            LOGGER.error(
                    baseMsg + ", due to: [{}] caused by: [{}] (enable DEBUG for full stacktrace)",
                    serviceClassName,
                    e.getMessage(),
                    cause != null
                            ? cause.getMessage()
                            : "unknown");
            LOGGER.debug(baseMsg, serviceClassName, e);
        }
    }
Passes the internal statistic events to zero-many {@link InternalStatisticsService} instances
as defined by the docRefTypeToServiceMap
stroom-statistics/stroom-statistics-impl/src/main/java/stroom/statistics/impl/MultiServiceInternalStatisticsReceiver.java