@Override
    public void visit(ReplicateBlobRequest replicateBlobRequest) {
      metrics.replicateBlobRequestQueueTimeInMs.update(requestQueueTime);
      metrics.replicateBlobRequestRate.mark();
      if (replicateBlobRequest.getVersionId() == ReplicateBlobRequest.VERSION_2) {
        if (replicateBlobRequest.getOperationType() == RequestOrResponseType.TtlUpdateRequest) {
          metrics.replicateBlobRequestOnTtlUpdateRate.mark();
        } else {
          metrics.replicateBlobRequestOnDeleteRate.mark();
        }
      }
      metrics.replicateBlobProcessingTimeInMs.update(requestProcessingTime);
      responseQueueTimeHistogram = metrics.replicateBlobResponseQueueTimeInMs;
      responseSendTimeHistogram = metrics.replicateBlobSendTimeInMs;
      requestTotalTimeHistogram = metrics.replicateBlobTotalTimeInMs;
      if (isRequestDropped) {
        metrics.replicateBlobDroppedRate.mark();
        metrics.totalRequestDroppedRate.mark();
      }
    }
Used to update common metrics for the incoming request.
ambry-server/src/main/java/com/github/ambry/server/AmbryRequests.java