You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by je...@apache.org on 2010/11/04 03:55:46 UTC

svn commit: r1030810 - in /trafficserver/traffic/trunk/proxy/http2: HttpConfig.cc HttpConfig.h HttpTransact.cc

Author: jesus
Date: Thu Nov  4 02:55:46 2010
New Revision: 1030810

URL: http://svn.apache.org/viewvc?rev=1030810&view=rev
Log:
TS-509 simple, brute force (and efficient) status code stats counters

Modified:
    trafficserver/traffic/trunk/proxy/http2/HttpConfig.cc
    trafficserver/traffic/trunk/proxy/http2/HttpConfig.h
    trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc

Modified: trafficserver/traffic/trunk/proxy/http2/HttpConfig.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpConfig.cc?rev=1030810&r1=1030809&r2=1030810&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpConfig.cc (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpConfig.cc Thu Nov  4 02:55:46 2010
@@ -839,6 +839,182 @@ register_stat_callbacks()
   RecRegisterRawStat(http_rsb, RECT_PROCESS,
                      "proxy.process.http.jg_cache_miss_time_stat",
                      RECD_INT, RECP_NULL, (int) http_jg_cache_miss_time_stat, RecRawStatSyncSum);
+  ////////////////////////////////////////////////////////////////////////////////
+  // status code counts
+  ////////////////////////////////////////////////////////////////////////////////
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.100_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_100_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.101_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_101_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.1xx_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_1xx_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.200_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_200_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.201_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_201_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.202_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_202_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.203_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_203_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.204_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_204_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.205_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_205_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.206_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_206_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.2xx_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_2xx_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.300_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_300_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.301_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_301_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.302_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_302_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.303_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_303_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.304_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_304_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.305_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_305_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.307_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_307_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.400_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_400_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.401_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_401_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.402_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_402_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.403_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_403_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.404_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_404_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.405_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_405_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.406_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_406_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.407_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_407_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.408_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_408_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.409_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_409_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.410_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_410_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.411_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_411_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.412_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_412_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.413_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_413_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.414_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_414_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.415_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_415_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.416_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_416_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.4xx_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_4xx_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.500_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_500_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.501_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_501_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.502_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_502_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.503_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_503_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.504_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_504_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.505_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_505_count_stat, RecRawStatSyncCount);
+
+  RecRegisterRawStat(http_rsb, RECT_PROCESS,
+                     "proxy.process.http.5xx_responses",
+                     RECD_COUNTER, RECP_NULL, (int) http_response_status_5xx_count_stat, RecRawStatSyncCount);
+
 
   ////////////////////////////////////////////////////////////////////////////////
   // http - time and count of transactions classified by client's point of view //

Modified: trafficserver/traffic/trunk/proxy/http2/HttpConfig.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpConfig.h?rev=1030810&r1=1030809&r2=1030810&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpConfig.h (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpConfig.h Thu Nov  4 02:55:46 2010
@@ -299,6 +299,51 @@ enum
   http_jg_cache_hit_time_stat,
   http_jg_cache_miss_time_stat,
 
+  // status code stats
+  http_response_status_100_count_stat,
+  http_response_status_101_count_stat,
+  http_response_status_1xx_count_stat,
+  http_response_status_200_count_stat,
+  http_response_status_201_count_stat,
+  http_response_status_202_count_stat,
+  http_response_status_203_count_stat,
+  http_response_status_204_count_stat,
+  http_response_status_205_count_stat,
+  http_response_status_206_count_stat,
+  http_response_status_2xx_count_stat,
+  http_response_status_300_count_stat,
+  http_response_status_301_count_stat,
+  http_response_status_302_count_stat,
+  http_response_status_303_count_stat,
+  http_response_status_304_count_stat,
+  http_response_status_305_count_stat,
+  http_response_status_307_count_stat,
+  http_response_status_3xx_count_stat,
+  http_response_status_400_count_stat,
+  http_response_status_401_count_stat,
+  http_response_status_402_count_stat,
+  http_response_status_403_count_stat,
+  http_response_status_404_count_stat,
+  http_response_status_405_count_stat,
+  http_response_status_406_count_stat,
+  http_response_status_407_count_stat,
+  http_response_status_408_count_stat,
+  http_response_status_409_count_stat,
+  http_response_status_410_count_stat,
+  http_response_status_411_count_stat,
+  http_response_status_412_count_stat,
+  http_response_status_413_count_stat,
+  http_response_status_414_count_stat,
+  http_response_status_415_count_stat,
+  http_response_status_416_count_stat,
+  http_response_status_4xx_count_stat,
+  http_response_status_500_count_stat,
+  http_response_status_501_count_stat,
+  http_response_status_502_count_stat,
+  http_response_status_503_count_stat,
+  http_response_status_504_count_stat,
+  http_response_status_505_count_stat,
+  http_response_status_5xx_count_stat,
 
   http_stat_count
 };

Modified: trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc?rev=1030810&r1=1030809&r2=1030810&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc Thu Nov  4 02:55:46 2010
@@ -8891,6 +8891,59 @@ HttpTransact::client_result_stat(State *
   } else if (s->client_info.abort == MAYBE_ABORTED) {
     client_transaction_result = CLIENT_TRANSACTION_RESULT_ERROR_POSSIBLE_ABORT;
   }
+  // Count the status codes
+  int status_code = s->hdr_info.client_response.status_get();
+  switch(status_code) {
+  case 100: HTTP_SUM_TRANS_STAT(http_response_status_100_count_stat, 1); break;
+  case 101: HTTP_SUM_TRANS_STAT(http_response_status_101_count_stat, 1); break;
+  case 200: HTTP_SUM_TRANS_STAT(http_response_status_200_count_stat, 1); break;
+  case 201: HTTP_SUM_TRANS_STAT(http_response_status_201_count_stat, 1); break;
+  case 202: HTTP_SUM_TRANS_STAT(http_response_status_202_count_stat, 1); break;
+  case 203: HTTP_SUM_TRANS_STAT(http_response_status_203_count_stat, 1); break;
+  case 204: HTTP_SUM_TRANS_STAT(http_response_status_204_count_stat, 1); break;
+  case 205: HTTP_SUM_TRANS_STAT(http_response_status_205_count_stat, 1); break;
+  case 206: HTTP_SUM_TRANS_STAT(http_response_status_206_count_stat, 1); break;
+  case 300: HTTP_SUM_TRANS_STAT(http_response_status_300_count_stat, 1); break;
+  case 301: HTTP_SUM_TRANS_STAT(http_response_status_301_count_stat, 1); break;
+  case 302: HTTP_SUM_TRANS_STAT(http_response_status_302_count_stat, 1); break;
+  case 303: HTTP_SUM_TRANS_STAT(http_response_status_303_count_stat, 1); break;
+  case 304: HTTP_SUM_TRANS_STAT(http_response_status_304_count_stat, 1); break;
+  case 305: HTTP_SUM_TRANS_STAT(http_response_status_305_count_stat, 1); break;
+  case 307: HTTP_SUM_TRANS_STAT(http_response_status_307_count_stat, 1); break;
+  case 400: HTTP_SUM_TRANS_STAT(http_response_status_400_count_stat, 1); break;
+  case 401: HTTP_SUM_TRANS_STAT(http_response_status_401_count_stat, 1); break;
+  case 402: HTTP_SUM_TRANS_STAT(http_response_status_402_count_stat, 1); break;
+  case 403: HTTP_SUM_TRANS_STAT(http_response_status_403_count_stat, 1); break;
+  case 404: HTTP_SUM_TRANS_STAT(http_response_status_404_count_stat, 1); break;
+  case 405: HTTP_SUM_TRANS_STAT(http_response_status_405_count_stat, 1); break;
+  case 406: HTTP_SUM_TRANS_STAT(http_response_status_406_count_stat, 1); break;
+  case 407: HTTP_SUM_TRANS_STAT(http_response_status_407_count_stat, 1); break;
+  case 408: HTTP_SUM_TRANS_STAT(http_response_status_408_count_stat, 1); break;
+  case 409: HTTP_SUM_TRANS_STAT(http_response_status_409_count_stat, 1); break;
+  case 410: HTTP_SUM_TRANS_STAT(http_response_status_410_count_stat, 1); break;
+  case 411: HTTP_SUM_TRANS_STAT(http_response_status_411_count_stat, 1); break;
+  case 412: HTTP_SUM_TRANS_STAT(http_response_status_412_count_stat, 1); break;
+  case 413: HTTP_SUM_TRANS_STAT(http_response_status_413_count_stat, 1); break;
+  case 414: HTTP_SUM_TRANS_STAT(http_response_status_414_count_stat, 1); break;
+  case 415: HTTP_SUM_TRANS_STAT(http_response_status_415_count_stat, 1); break;
+  case 416: HTTP_SUM_TRANS_STAT(http_response_status_416_count_stat, 1); break;
+  case 500: HTTP_SUM_TRANS_STAT(http_response_status_500_count_stat, 1); break;
+  case 501: HTTP_SUM_TRANS_STAT(http_response_status_501_count_stat, 1); break;
+  case 502: HTTP_SUM_TRANS_STAT(http_response_status_502_count_stat, 1); break;
+  case 503: HTTP_SUM_TRANS_STAT(http_response_status_503_count_stat, 1); break;
+  case 504: HTTP_SUM_TRANS_STAT(http_response_status_504_count_stat, 1); break;
+  case 505: HTTP_SUM_TRANS_STAT(http_response_status_505_count_stat, 1); break;
+  default: break;
+  }
+  switch(status_code / 100) {
+  case 1: HTTP_SUM_TRANS_STAT(http_response_status_1xx_count_stat, 1); break;
+  case 2: HTTP_SUM_TRANS_STAT(http_response_status_2xx_count_stat, 1); break;
+  case 3: HTTP_SUM_TRANS_STAT(http_response_status_3xx_count_stat, 1); break;
+  case 4: HTTP_SUM_TRANS_STAT(http_response_status_4xx_count_stat, 1); break;
+  case 5: HTTP_SUM_TRANS_STAT(http_response_status_5xx_count_stat, 1); break;
+  default: break;
+  }
+  
   // Increment the completed connection count
   HTTP_SUM_TRANS_STAT(http_completed_requests_stat, 1);