/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.thrift; /** This class keeps track of statistics for TNonblockinMultiFetchClient. */ public class TNonblockingMultiFetchStats { private int numTotalServers; private int numReadCompletedServers; private int numConnectErrorServers; private int totalRecvBufBytes; private int maxResponseBytes; private int numOverflowedRecvBuf; private int numInvalidFrameSize; // time from the beginning of fetch() function to the reading finish // time of the last socket (in milli-second) private long readTime; public TNonblockingMultiFetchStats() { clear(); } public void clear() { numTotalServers = 0; numReadCompletedServers = 0; numConnectErrorServers = 0; totalRecvBufBytes = 0; maxResponseBytes = 0; numOverflowedRecvBuf = 0; numInvalidFrameSize = 0; readTime = 0; } public String toString() { String stats = String.format( "numTotalServers=%d, " + "numReadCompletedServers=%d, numConnectErrorServers=%d, " + "numUnresponsiveServers=%d, totalRecvBufBytes=%fM, " + "maxResponseBytes=%d, numOverflowedRecvBuf=%d, " + "numInvalidFrameSize=%d, readTime=%dms", numTotalServers, numReadCompletedServers, numConnectErrorServers, (numTotalServers - numReadCompletedServers - numConnectErrorServers), totalRecvBufBytes / 1024.0 / 1024, maxResponseBytes, numOverflowedRecvBuf, numInvalidFrameSize, readTime); return stats; } public void setNumTotalServers(int val) { numTotalServers = val; } public void setMaxResponseBytes(int val) { maxResponseBytes = val; } public void setReadTime(long val) { readTime = val; } public void incNumReadCompletedServers() { numReadCompletedServers++; } public void incNumConnectErrorServers() { numConnectErrorServers++; } public void incNumOverflowedRecvBuf() { numOverflowedRecvBuf++; } public void incTotalRecvBufBytes(int val) { totalRecvBufBytes += val; } public void incNumInvalidFrameSize() { numInvalidFrameSize++; } public int getMaxResponseBytes() { return maxResponseBytes; } public int getNumReadCompletedServers() { return numReadCompletedServers; } public int getNumConnectErrorServers() { return numConnectErrorServers; } public int getNumTotalServers() { return numTotalServers; } public int getNumOverflowedRecvBuf() { return numOverflowedRecvBuf; } public int getTotalRecvBufBytes() { return totalRecvBufBytes; } public int getNumInvalidFrameSize() { return numInvalidFrameSize; } public long getReadTime() { return readTime; } }