@SuppressWarnings("deprecation") @Override public void afterResponse(Request<?> request, Response<?> response) { AWSRequestMetrics awsRequestMetrics = request == null ? null : request .getAWSRequestMetrics(); Object awsResponse = response == null ? null : response .getAwsResponse(); TimingInfo timingInfo = awsRequestMetrics == null ? null : awsRequestMetrics.getTimingInfo(); old.afterResponse(request, awsResponse, timingInfo); }
/** * Convenient method to end the client execution without logging the awsRequestMetrics. */ private void endClientExecution(AWSRequestMetrics awsRequestMetrics, RequestConfig requestConfig, Request<?> request, Response<?> response) { if (request != null) { awsRequestMetrics.endEvent(AWSRequestMetrics.Field.ClientExecuteTime); awsRequestMetrics.getTimingInfo().endTiming(); RequestMetricCollector metricCollector = findRequestMetricCollector(requestConfig); metricCollector.collectMetrics(request, response); awsRequestMetrics.log(); } }
/** * Common routine to end a client AWS request/response execution and collect * the request metrics. Caller of this routine is responsible for starting * the event for {@link Field#ClientExecuteTime} and call this method * in a try-finally block. * * @param loggingAwsRequestMetrics deprecated and ignored */ protected final void endClientExecution( AWSRequestMetrics awsRequestMetrics, Request<?> request, Response<?> response, @Deprecated boolean loggingAwsRequestMetrics) { if (request != null) { awsRequestMetrics.endEvent(Field.ClientExecuteTime); awsRequestMetrics.getTimingInfo().endTiming(); RequestMetricCollector c = findRequestMetricCollector( request.getOriginalRequest().getRequestMetricCollector()); c.collectMetrics(request, response); awsRequestMetrics.log(); } }
Field metricType, Request<?> req, Object resp) { AWSRequestMetrics m = req.getAWSRequestMetrics(); TimingInfo ti = m.getTimingInfo();
protected List<MetricDatum> metricOfCount( Field metricType, Request<?> req, Object resp) { AWSRequestMetrics m = req.getAWSRequestMetrics(); TimingInfo ti = m.getTimingInfo(); Number counter = ti.getCounter(metricType.name()); if (counter == null) { return Collections.emptyList(); } final double count = counter.doubleValue(); if (count < 1) { return Collections.emptyList(); } else { return Collections.singletonList(new MetricDatum() .withMetricName(req.getServiceName()) .withDimensions(new Dimension() .withName(Dimensions.MetricType.name()) .withValue(metricType.name())) .withUnit(StandardUnit.Count) .withValue(Double.valueOf(count)) .withTimestamp(endTimestamp(ti))) ; } }
Request<?> req, Object resp, boolean includesRequestType) { AWSRequestMetrics m = req.getAWSRequestMetrics(); TimingInfo ti = m.getTimingInfo(); final String metricName = type.name(); Number counter = ti.getCounter(metricName);
/** * Returns a request type specific metrics for * {@link Field#ClientExecuteTime} which is special in the sense that it * makes a more accurate measurement by taking the {@link TimingInfo} at the * root into account. */ protected List<MetricDatum> latencyOfClientExecuteTime(Request<?> req, Object response) { AWSRequestMetrics m = req.getAWSRequestMetrics(); TimingInfo root = m.getTimingInfo(); final String metricName = Field.ClientExecuteTime.name(); if (root.isEndTimeKnown()) { // being defensive List<Dimension> dims = new ArrayList<Dimension>(); dims.add(new Dimension() .withName(Dimensions.MetricType.name()) .withValue(metricName)); // request type specific dims.add(new Dimension() .withName(Dimensions.RequestType.name()) .withValue(requestType(req))); MetricDatum datum = new MetricDatum() .withMetricName(req.getServiceName()) .withDimensions(dims) .withUnit(StandardUnit.Milliseconds) .withValue(root.getTimeTakenMillisIfKnown()); return Collections.singletonList(datum); } return Collections.emptyList(); }
Request<?> req, Object response, boolean includesRequestType) { AWSRequestMetrics m = req.getAWSRequestMetrics(); TimingInfo root = m.getTimingInfo(); final String metricName = metricType.name(); List<TimingInfo> subMeasures =
TimingInfo timingInfo = metrics.getTimingInfo(); Number requestCounts = timingInfo.getCounter(RequestCount.name()); Number retryCounts = timingInfo.getCounter(HttpClientRetryCount.name());
TimingInfo timingInfo = metrics == null ? null : metrics.getTimingInfo(); Response<?> response = context.getResponse(); Integer statusCode = null;
publishProgress(listener, ProgressEventType.CLIENT_REQUEST_SUCCESS_EVENT); awsRequestMetrics.endEvent(AwsClientSideMonitoringMetrics.ApiCallLatency); awsRequestMetrics.getTimingInfo().endTiming(); afterResponse(response); return response;
@SuppressWarnings("deprecation") @Override public void afterResponse(Request<?> request, Response<?> response) { AWSRequestMetrics awsRequestMetrics = request == null ? null : request .getAWSRequestMetrics(); Object awsResponse = response == null ? null : response .getAwsResponse(); TimingInfo timingInfo = awsRequestMetrics == null ? null : awsRequestMetrics.getTimingInfo(); old.afterResponse(request, awsResponse, timingInfo); }
@SuppressWarnings("deprecation") @Override public void afterResponse(Request<?> request, Response<?> response) { AWSRequestMetrics awsRequestMetrics = request == null ? null : request .getAWSRequestMetrics(); Object awsResponse = response == null ? null : response .getAwsResponse(); TimingInfo timingInfo = awsRequestMetrics == null ? null : awsRequestMetrics.getTimingInfo(); old.afterResponse(request, awsResponse, timingInfo); }
TimingInfo timingInfo = metrics.getTimingInfo(); requestCount = timingInfo.getCounter(AWSRequestMetrics.Field.RequestCount.name()) == null ? 0 : timingInfo.getCounter(AWSRequestMetrics.Field.RequestCount.name()).intValue();
/** * Convenient method to end the client execution without logging the awsRequestMetrics. */ private void endClientExecution(AWSRequestMetrics awsRequestMetrics, RequestConfig requestConfig, Request<?> request, Response<?> response) { if (request != null) { awsRequestMetrics.endEvent(AWSRequestMetrics.Field.ClientExecuteTime); awsRequestMetrics.getTimingInfo().endTiming(); RequestMetricCollector metricCollector = findRequestMetricCollector(requestConfig); metricCollector.collectMetrics(request, response); awsRequestMetrics.log(); } }
/** * Common routine to end a client AWS request/response execution and collect * the request metrics. Caller of this routine is responsible for starting * the event for {@link Field#ClientExecuteTime} and call this method * in a try-finally block. * * @param loggingAwsRequestMetrics deprecated and ignored */ protected final void endClientExecution( AWSRequestMetrics awsRequestMetrics, Request<?> request, Response<?> response, @Deprecated boolean loggingAwsRequestMetrics) { if (request != null) { awsRequestMetrics.endEvent(Field.ClientExecuteTime); awsRequestMetrics.getTimingInfo().endTiming(); RequestMetricCollector c = findRequestMetricCollector( request.getOriginalRequest().getRequestMetricCollector()); c.collectMetrics(request, response); awsRequestMetrics.log(); } }
/** * Common routine to end a client AWS request/response execution and collect * the request metrics. Caller of this routine is responsible for starting * the event for {@link Field#ClientExecuteTime} and call this method in a * try-finally block. * * @param loggingAwsRequestMetrics true to LOG the awsRequestMetrics; false * otherwise. * @deprecated metrics is deprecated */ @Deprecated protected final void endClientExecution( AWSRequestMetrics awsRequestMetrics, Request<?> request, Response<?> response, boolean loggingAwsRequestMetrics) { if (request != null) { awsRequestMetrics.endEvent(Field.ClientExecuteTime); awsRequestMetrics.getTimingInfo().endTiming(); final RequestMetricCollector c = findRequestMetricCollector(request); c.collectMetrics(request, response); } if (loggingAwsRequestMetrics) { awsRequestMetrics.log(); } }
TimingInfo timingInfo = metrics == null ? null : metrics.getTimingInfo();
/** * Verifies the request is actually retried for the expected times. */ private static void testActualRetries(int expectedRetryAttempts) { // The ExecutionContext should collect the expected RequestCount ExecutionContext context = new ExecutionContext(true); try { testedClient.execute(getSampleRequestWithRepeatableContent(originalRequest), null, errorResponseHandler, context); Assert.fail("AmazonServiceException is expected."); } catch (AmazonServiceException ase) { } // Check the RequestCount metric equals the expected value. Assert.assertEquals( expectedRetryAttempts + 1, // request count = retries + 1 context.getAwsRequestMetrics() .getTimingInfo() .getCounter(AWSRequestMetrics.Field.RequestCount.toString()).intValue()); } }
TimingInfo timingInfo = metrics == null ? null : metrics.getTimingInfo(); Response<?> response = context.getResponse(); Integer statusCode = null;