public void postHandle()

in sample-apps/springboot/src/main/java/com/amazon/sampleapp/DemoApplicationInterceptor.java [28:58]


  public void postHandle(
      HttpServletRequest request,
      HttpServletResponse response,
      Object handler,
      ModelAndView modelAndView) {
    // only emit metric data for /outgoing-http-call path
    if (request.getServletPath().equals("/outgoing-http-call")) {
      try {
        MetricEmitter metricEmitter = buildMetricEmitter();
        String statusCode = String.valueOf(response.getStatus());

        // calculate return time
        Long requestStartTime = (Long) request.getAttribute(REQUEST_START_TIME);
        metricEmitter.emitReturnTimeMetric(
            System.currentTimeMillis() - requestStartTime, request.getServletPath(), statusCode);

        // emit http request load size
        int loadSize = request.getContentLength() + mimicPayloadSize();
        metricEmitter.emitBytesSentMetric(loadSize, request.getServletPath(), statusCode);
        metricEmitter.updateTotalBytesSentMetric(loadSize, request.getServletPath(), statusCode);
        // mimic a queue size reporter
        int queueSizeChange = mimicQueueSizeChange();
        metricEmitter.emitQueueSizeChangeMetric(
            queueSizeChange, request.getServletPath(), statusCode);
        metricEmitter.updateActualQueueSizeMetric(
            queueSizeChange, request.getServletPath(), statusCode);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }