@ThreadSafe public interface MetricPublisher extends SdkAutoCloseable
Conceptually, a publisher receives a stream of MetricCollection objects
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.
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
publish(MetricCollection metricCollection)
Notify the publisher of new metric data.
|
void publish(MetricCollection metricCollection)
metricCollection instance 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 null metricCollection, all
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.IllegalArgumentException - If metricCollection is null.void close()
Important: Implementations must block the calling thread until all pending metrics are published and any resources acquired have been freed.
close in interface AutoCloseableclose in interface SdkAutoCloseableCopyright © 2023. All rights reserved.