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);