Class MetricUtils
- java.lang.Object
-
- software.amazon.awssdk.core.internal.util.MetricUtils
-
public final class MetricUtils extends Object
Utility methods for working with metrics.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static OptionalLongapiCallAttemptResponseBytesRead(RequestExecutionContext context)static OptionalLongapiCallAttemptStartNanoTime(RequestExecutionContext context)static doublebytesPerSec(long totalBytes, long nanoStart, long nanoEnd)static voidcollectHttpMetrics(software.amazon.awssdk.metrics.MetricCollector metricCollector, software.amazon.awssdk.http.SdkHttpFullResponse httpResponse)static voidcollectServiceEndpointMetrics(software.amazon.awssdk.metrics.MetricCollector metricCollector, software.amazon.awssdk.http.SdkHttpFullRequest httpRequest)Collect the SERVICE_ENDPOINT metric for this request.static software.amazon.awssdk.metrics.MetricCollectorcreateAttemptMetricsCollector(RequestExecutionContext context)static software.amazon.awssdk.metrics.MetricCollectorcreateHttpMetricsCollector(RequestExecutionContext context)static <T> software.amazon.awssdk.utils.Pair<T,Duration>measureDuration(Supplier<T> c)Measure the duration of the given callable.static <T> software.amazon.awssdk.utils.Pair<T,Duration>measureDurationUnsafe(Callable<T> c)Measure the duration of the given callable.static <T> software.amazon.awssdk.utils.Pair<T,Duration>measureDurationUnsafe(Callable<T> c, long startTime)Measure the duration of the given callable, using the provided time as the basis.static <T> CompletableFuture<T>reportDuration(Supplier<CompletableFuture<T>> c, software.amazon.awssdk.metrics.MetricCollector metricCollector, software.amazon.awssdk.metrics.SdkMetric<Duration> metric)Report a duration metric of the givenCompletableFuturesupplier.static longresetApiCallAttemptStartNanoTime(RequestExecutionContext context)static OptionalLongresponseHeadersReadEndNanoTime(RequestExecutionContext context)
-
-
-
Method Detail
-
measureDuration
public static <T> software.amazon.awssdk.utils.Pair<T,Duration> measureDuration(Supplier<T> c)
Measure the duration of the given callable.- Parameters:
c- The callable to measure.- Returns:
- A
Paircontaining the result ofcand the duration.
-
reportDuration
public static <T> CompletableFuture<T> reportDuration(Supplier<CompletableFuture<T>> c, software.amazon.awssdk.metrics.MetricCollector metricCollector, software.amazon.awssdk.metrics.SdkMetric<Duration> metric)
Report a duration metric of the givenCompletableFuturesupplier.- Parameters:
c- The callable to measure.metricCollector- The MetricCollector where the metric is to be reported.metric- The metric to be reported.- Returns:
- A
Paircontaining the result ofcand the duration.
-
measureDurationUnsafe
public static <T> software.amazon.awssdk.utils.Pair<T,Duration> measureDurationUnsafe(Callable<T> c) throws Exception
Measure the duration of the given callable.- Parameters:
c- The callable to measure.- Returns:
- A
Paircontaining the result ofcand the duration. - Throws:
Exception
-
measureDurationUnsafe
public static <T> software.amazon.awssdk.utils.Pair<T,Duration> measureDurationUnsafe(Callable<T> c, long startTime) throws Exception
Measure the duration of the given callable, using the provided time as the basis.- Throws:
Exception
-
collectServiceEndpointMetrics
public static void collectServiceEndpointMetrics(software.amazon.awssdk.metrics.MetricCollector metricCollector, software.amazon.awssdk.http.SdkHttpFullRequest httpRequest)Collect the SERVICE_ENDPOINT metric for this request.
-
collectHttpMetrics
public static void collectHttpMetrics(software.amazon.awssdk.metrics.MetricCollector metricCollector, software.amazon.awssdk.http.SdkHttpFullResponse httpResponse)
-
createAttemptMetricsCollector
public static software.amazon.awssdk.metrics.MetricCollector createAttemptMetricsCollector(RequestExecutionContext context)
-
createHttpMetricsCollector
public static software.amazon.awssdk.metrics.MetricCollector createHttpMetricsCollector(RequestExecutionContext context)
-
apiCallAttemptStartNanoTime
public static OptionalLong apiCallAttemptStartNanoTime(RequestExecutionContext context)
-
resetApiCallAttemptStartNanoTime
public static long resetApiCallAttemptStartNanoTime(RequestExecutionContext context)
-
apiCallAttemptResponseBytesRead
public static OptionalLong apiCallAttemptResponseBytesRead(RequestExecutionContext context)
-
responseHeadersReadEndNanoTime
public static OptionalLong responseHeadersReadEndNanoTime(RequestExecutionContext context)
-
bytesPerSec
public static double bytesPerSec(long totalBytes, long nanoStart, long nanoEnd)
-
-