@ThreadSafe public interface MetricPublisher extends SdkAutoCloseable
Conceptually, a publisher receives a stream of
overs its lifetime through its
publish(MetricCollection) )} method.
Implementations are then free further aggregate these events into sets of
metrics that are then published to some external system for further use.
As long as a publisher is not closed, then it can receive
MetricCollection objects at any time. In addition, as the SDK makes use of
multithreading, it's possible that the publisher is shared concurrently by
multiple threads, and necessitates that all implementations are threadsafe.
The SDK may invoke methods on the interface from multiple threads concurrently so implementations must be threadsafe.
void publish(MetricCollection metricCollection)
metricCollectioninstance if it no longer needs it. Implementations are strongly encouraged to complete any further aggregation and publishing of metrics in an asynchronous manner to avoid blocking the calling thread.
With the exception of a
invocations of this method must return normally. This
is to ensure that callers of the publisher can safely assume that even
in situations where an error happens during publishing that it will not
interrupt the calling thread.
metricCollection- The collection of metrics.