@Override public void postCall(HttpRequest request, HttpResponseStatus status, HandlerInfo handlerInfo) { if (metricsCollectionService != null) { try { MetricsCollector collector = collectorCache.get(createContext(handlerInfo)); String name; int code = status.getCode(); if (code < 100) { name = "unknown"; } else if (code < 200) { name = "information"; } else if (code < 300) { name = "successful"; } else if (code < 400) { name = "redirect"; } else if (code < 500) { name = "client-error"; } else if (code < 600) { name = "server-error"; } else { name = "unknown"; } // todo: report metrics broken down by status collector.increment("response." + name, 1 /*, "status:" + code*/); } catch (Throwable e) { LOG.error("Got exception while getting collector", e); } } }
private void sendHttpResponse(ActorRef sender, HttpResponseStatus status, String response) { // headers Map<String, List<String>> headers = new HashMap<String, List<String>>(); headers.put(HttpHeaders.Names.CONTENT_TYPE, Arrays.asList("text/plain")); // response if (StringUtils.isEmpty(response)) { response = status.getReasonPhrase(); } sender.tell( new HttpResponse(status.getCode(), headers, response.getBytes(Charset.forName("UTF-8"))), getSelf()); }
private String getResponseCounterName(HttpResponseStatus responseStatus) { return responseStatus.getCode() + "-" + responseStatus.getReasonPhrase() + "-count"; }