use of com.amazonaws.util.AWSRequestMetrics in project presto by prestodb.
the class PrestoS3FileSystemMetricCollector method collectMetrics.
@Override
public void collectMetrics(Request<?> request, Response<?> response) {
AWSRequestMetrics metrics = request.getAWSRequestMetrics();
TimingInfo timingInfo = metrics.getTimingInfo();
Number requestCounts = timingInfo.getCounter(RequestCount.name());
Number retryCounts = timingInfo.getCounter(HttpClientRetryCount.name());
Number throttleExceptions = timingInfo.getCounter(ThrottleException.name());
TimingInfo requestTime = timingInfo.getSubMeasurement(HttpRequestTime.name());
TimingInfo clientExecuteTime = timingInfo.getSubMeasurement(ClientExecuteTime.name());
if (requestCounts != null) {
stats.updateAwsRequestCount(requestCounts.longValue());
}
if (retryCounts != null) {
stats.updateAwsRetryCount(retryCounts.longValue());
}
if (throttleExceptions != null) {
stats.updateAwsThrottleExceptionsCount(throttleExceptions.longValue());
}
if (requestTime != null && requestTime.getTimeTakenMillisIfKnown() != null) {
stats.addAwsRequestTime(new Duration(requestTime.getTimeTakenMillisIfKnown(), MILLISECONDS));
}
if (clientExecuteTime != null && clientExecuteTime.getTimeTakenMillisIfKnown() != null) {
stats.addAwsClientExecuteTime(new Duration(clientExecuteTime.getTimeTakenMillisIfKnown(), MILLISECONDS));
}
}
Aggregations