Interface MetricPublisher
- All Superinterfaces:
AutoCloseable,SdkAutoCloseable
- All Known Implementing Classes:
CloudWatchMetricPublisher,LoggingMetricPublisher
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.
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidpublish(MetricCollection metricCollection) Notify the publisher of new metric data.
-
Method Details
-
publish
Notify the publisher of new metric data. After this call returns, the caller can safely discard the givenmetricCollectioninstance 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
nullmetricCollection, 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.- Parameters:
metricCollection- The collection of metrics.- Throws:
IllegalArgumentException- IfmetricCollectionisnull.
-
close
void close()Important: Implementations must block the calling thread until all pending metrics are published and any resources acquired have been freed.
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSdkAutoCloseable
-