4949import org .apache .zookeeper .data .ACL ;
5050import org .apache .zookeeper .data .Id ;
5151import org .apache .zookeeper .data .Stat ;
52+ import org .apache .zookeeper .metrics .Counter ;
5253import org .apache .zookeeper .proto .AddWatchRequest ;
5354import org .apache .zookeeper .proto .CheckWatchesRequest ;
5455import org .apache .zookeeper .proto .Create2Response ;
@@ -213,20 +214,23 @@ public void processRequest(Request request) {
213214 switch (request .type ) {
214215 case OpCode .ping : {
215216 lastOp = "PING" ;
217+ incrementOpCount (ServerMetrics .getMetrics ().PING_OP_COUNT );
216218 updateStats (request , lastOp , lastZxid );
217219
218220 responseSize = cnxn .sendResponse (new ReplyHeader (ClientCnxn .PING_XID , lastZxid , 0 ), null , "response" );
219221 return ;
220222 }
221223 case OpCode .createSession : {
222224 lastOp = "SESS" ;
225+ incrementOpCount (ServerMetrics .getMetrics ().CREATE_SESSION_OP_COUNT );
223226 updateStats (request , lastOp , lastZxid );
224227
225228 zks .finishSessionInit (request .cnxn , true );
226229 return ;
227230 }
228231 case OpCode .multi : {
229232 lastOp = "MULT" ;
233+ incrementOpCount (ServerMetrics .getMetrics ().MULTI_OP_COUNT );
230234 rsp = new MultiResponse ();
231235
232236 for (ProcessTxnResult subTxnResult : rc .multiResult ) {
@@ -269,6 +273,7 @@ public void processRequest(Request request) {
269273 }
270274 case OpCode .multiRead : {
271275 lastOp = "MLTR" ;
276+ incrementOpCount (ServerMetrics .getMetrics ().MULTI_READ_OP_COUNT );
272277 MultiOperationRecord multiReadRecord = request .readRequestRecord (MultiOperationRecord ::new );
273278 rsp = new MultiResponse ();
274279 OpResult subResult ;
@@ -297,6 +302,7 @@ public void processRequest(Request request) {
297302 }
298303 case OpCode .create : {
299304 lastOp = "CREA" ;
305+ incrementOpCount (ServerMetrics .getMetrics ().CREATE_OP_COUNT );
300306 rsp = new CreateResponse (rc .path );
301307 err = Code .get (rc .err );
302308 requestPathMetricsCollector .registerRequest (request .type , rc .path );
@@ -306,6 +312,7 @@ public void processRequest(Request request) {
306312 case OpCode .createTTL :
307313 case OpCode .createContainer : {
308314 lastOp = "CREA" ;
315+ incrementOpCount (ServerMetrics .getMetrics ().CREATE_OP_COUNT );
309316 rsp = new Create2Response (rc .path , rc .stat );
310317 err = Code .get (rc .err );
311318 requestPathMetricsCollector .registerRequest (request .type , rc .path );
@@ -314,19 +321,22 @@ public void processRequest(Request request) {
314321 case OpCode .delete :
315322 case OpCode .deleteContainer : {
316323 lastOp = "DELE" ;
324+ incrementOpCount (ServerMetrics .getMetrics ().DELETE_OP_COUNT );
317325 err = Code .get (rc .err );
318326 requestPathMetricsCollector .registerRequest (request .type , rc .path );
319327 break ;
320328 }
321329 case OpCode .setData : {
322330 lastOp = "SETD" ;
331+ incrementOpCount (ServerMetrics .getMetrics ().SET_DATA_OP_COUNT );
323332 rsp = new SetDataResponse (rc .stat );
324333 err = Code .get (rc .err );
325334 requestPathMetricsCollector .registerRequest (request .type , rc .path );
326335 break ;
327336 }
328337 case OpCode .reconfig : {
329338 lastOp = "RECO" ;
339+ incrementOpCount (ServerMetrics .getMetrics ().RECONFIG_OP_COUNT );
330340 rsp = new GetDataResponse (
331341 ((QuorumZooKeeperServer ) zks ).self .getQuorumVerifier ().toString ().getBytes (UTF_8 ),
332342 rc .stat );
@@ -335,31 +345,36 @@ public void processRequest(Request request) {
335345 }
336346 case OpCode .setACL : {
337347 lastOp = "SETA" ;
348+ incrementOpCount (ServerMetrics .getMetrics ().SET_ACL_OP_COUNT );
338349 rsp = new SetACLResponse (rc .stat );
339350 err = Code .get (rc .err );
340351 requestPathMetricsCollector .registerRequest (request .type , rc .path );
341352 break ;
342353 }
343354 case OpCode .closeSession : {
344355 lastOp = "CLOS" ;
356+ incrementOpCount (ServerMetrics .getMetrics ().CLOSE_SESSION_OP_COUNT );
345357 err = Code .get (rc .err );
346358 break ;
347359 }
348360 case OpCode .sync : {
349361 lastOp = "SYNC" ;
362+ incrementOpCount (ServerMetrics .getMetrics ().SYNC_OP_COUNT );
350363 SyncRequest syncRequest = request .readRequestRecord (SyncRequest ::new );
351364 rsp = new SyncResponse (syncRequest .getPath ());
352365 requestPathMetricsCollector .registerRequest (request .type , syncRequest .getPath ());
353366 break ;
354367 }
355368 case OpCode .check : {
356369 lastOp = "CHEC" ;
370+ incrementOpCount (ServerMetrics .getMetrics ().CHECK_OP_COUNT );
357371 rsp = new SetDataResponse (rc .stat );
358372 err = Code .get (rc .err );
359373 break ;
360374 }
361375 case OpCode .exists : {
362376 lastOp = "EXIS" ;
377+ incrementOpCount (ServerMetrics .getMetrics ().EXISTS_OP_COUNT );
363378 ExistsRequest existsRequest = request .readRequestRecord (ExistsRequest ::new );
364379 path = existsRequest .getPath ();
365380 if (path .indexOf ('\0' ) != -1 ) {
@@ -382,6 +397,7 @@ public void processRequest(Request request) {
382397 }
383398 case OpCode .getData : {
384399 lastOp = "GETD" ;
400+ incrementOpCount (ServerMetrics .getMetrics ().GET_DATA_OP_COUNT );
385401 GetDataRequest getDataRequest = request .readRequestRecord (GetDataRequest ::new );
386402 path = getDataRequest .getPath ();
387403 rsp = handleGetDataRequest (getDataRequest , cnxn , request .authInfo );
@@ -390,6 +406,7 @@ public void processRequest(Request request) {
390406 }
391407 case OpCode .setWatches : {
392408 lastOp = "SETW" ;
409+ incrementOpCount (ServerMetrics .getMetrics ().SET_WATCHES_OP_COUNT );
393410 SetWatches setWatches = request .readRequestRecord (SetWatches ::new );
394411 long relativeZxid = setWatches .getRelativeZxid ();
395412 zks .getZKDatabase ()
@@ -405,6 +422,7 @@ public void processRequest(Request request) {
405422 }
406423 case OpCode .setWatches2 : {
407424 lastOp = "STW2" ;
425+ incrementOpCount (ServerMetrics .getMetrics ().SET_WATCHES_OP_COUNT );
408426 SetWatches2 setWatches = request .readRequestRecord (SetWatches2 ::new );
409427 long relativeZxid = setWatches .getRelativeZxid ();
410428 zks .getZKDatabase ().setWatches (relativeZxid ,
@@ -418,13 +436,15 @@ public void processRequest(Request request) {
418436 }
419437 case OpCode .addWatch : {
420438 lastOp = "ADDW" ;
439+ incrementOpCount (ServerMetrics .getMetrics ().ADD_WATCH_OP_COUNT );
421440 AddWatchRequest addWatcherRequest = request .readRequestRecord (AddWatchRequest ::new );
422441 zks .getZKDatabase ().addWatch (addWatcherRequest .getPath (), cnxn , addWatcherRequest .getMode ());
423442 rsp = new ErrorResponse (0 );
424443 break ;
425444 }
426445 case OpCode .getACL : {
427446 lastOp = "GETA" ;
447+ incrementOpCount (ServerMetrics .getMetrics ().GET_ACL_OP_COUNT );
428448 GetACLRequest getACLRequest = request .readRequestRecord (GetACLRequest ::new );
429449 path = getACLRequest .getPath ();
430450 DataNode n = zks .getZKDatabase ().getNode (path );
@@ -467,6 +487,7 @@ public void processRequest(Request request) {
467487 }
468488 case OpCode .getChildren : {
469489 lastOp = "GETC" ;
490+ incrementOpCount (ServerMetrics .getMetrics ().GET_CHILDREN_OP_COUNT );
470491 GetChildrenRequest getChildrenRequest = request .readRequestRecord (GetChildrenRequest ::new );
471492 path = getChildrenRequest .getPath ();
472493 rsp = handleGetChildrenRequest (getChildrenRequest , cnxn , request .authInfo );
@@ -475,6 +496,7 @@ public void processRequest(Request request) {
475496 }
476497 case OpCode .getAllChildrenNumber : {
477498 lastOp = "GETACN" ;
499+ incrementOpCount (ServerMetrics .getMetrics ().GET_ALL_CHILDREN_NUMBER_OP_COUNT );
478500 GetAllChildrenNumberRequest getAllChildrenNumberRequest = request .readRequestRecord (GetAllChildrenNumberRequest ::new );
479501 path = getAllChildrenNumberRequest .getPath ();
480502 DataNode n = zks .getZKDatabase ().getNode (path );
@@ -494,6 +516,7 @@ public void processRequest(Request request) {
494516 }
495517 case OpCode .getChildren2 : {
496518 lastOp = "GETC" ;
519+ incrementOpCount (ServerMetrics .getMetrics ().GET_CHILDREN_OP_COUNT );
497520 GetChildren2Request getChildren2Request = request .readRequestRecord (GetChildren2Request ::new );
498521 Stat stat = new Stat ();
499522 path = getChildren2Request .getPath ();
@@ -515,6 +538,7 @@ public void processRequest(Request request) {
515538 }
516539 case OpCode .checkWatches : {
517540 lastOp = "CHKW" ;
541+ incrementOpCount (ServerMetrics .getMetrics ().CHECK_WATCHES_OP_COUNT );
518542 CheckWatchesRequest checkWatches = request .readRequestRecord (CheckWatchesRequest ::new );
519543 WatcherType type = WatcherType .fromInt (checkWatches .getType ());
520544 path = checkWatches .getPath ();
@@ -528,6 +552,7 @@ public void processRequest(Request request) {
528552 }
529553 case OpCode .removeWatches : {
530554 lastOp = "REMW" ;
555+ incrementOpCount (ServerMetrics .getMetrics ().REMOVE_WATCHES_OP_COUNT );
531556 RemoveWatchesRequest removeWatches = request .readRequestRecord (RemoveWatchesRequest ::new );
532557 WatcherType type = WatcherType .fromInt (removeWatches .getType ());
533558 path = removeWatches .getPath ();
@@ -541,11 +566,13 @@ public void processRequest(Request request) {
541566 }
542567 case OpCode .whoAmI : {
543568 lastOp = "HOMI" ;
569+ incrementOpCount (ServerMetrics .getMetrics ().WHO_AM_I_OP_COUNT );
544570 rsp = new WhoAmIResponse (AuthUtil .getClientInfos (request .authInfo ));
545571 break ;
546572 }
547573 case OpCode .getEphemerals : {
548574 lastOp = "GETE" ;
575+ incrementOpCount (ServerMetrics .getMetrics ().GET_EPHEMERALS_OP_COUNT );
549576 GetEphemeralsRequest getEphemerals = request .readRequestRecord (GetEphemeralsRequest ::new );
550577 String prefixPath = getEphemerals .getPrefixPath ();
551578 Set <String > allEphems = zks .getZKDatabase ().getDataTree ().getEphemerals (request .sessionId );
@@ -677,4 +704,9 @@ private void updateStats(Request request, String lastOp, long lastZxid) {
677704 request .cnxn .updateStatsForResponse (request .cxid , lastZxid , lastOp , request .createTime , currentTime );
678705 }
679706
707+ private void incrementOpCount (final Counter specificCounter ) {
708+ final ServerMetrics metrics = ServerMetrics .getMetrics ();
709+ specificCounter .add (1 );
710+ metrics .TOTAL_OP_COUNT .add (1 );
711+ }
680712}
0 commit comments