This class is populated by FlowController, which will record throttling events. Currently it
only keeps the last flow control event, but it could be expanded to record more information in
the future. The events can be used to dynamically adjust concurrency in the client. For example:
// Increase flow control limits if there was throttling in the past 5 minutes and throttled time
// was longer than 1 minute.
while(true) {
FlowControlEvent event = flowControlEventStats.getLastFlowControlEvent();
if (event != null
&& event.getTimestampMs() > System.currentMillis() - TimeUnit.MINUTES.toMillis(5)
&& event.getThrottledTimeInMs() > TimeUnit.MINUTES.toMillis(1)) {
flowController.increaseThresholds(elementSteps, byteSteps);
}
Thread.sleep(TimeUnit.MINUTE.toMillis(10));
}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-15 UTC."],[[["\u003cp\u003eThe webpage provides a comprehensive list of versions for \u003ccode\u003eFlowControlEventStats\u003c/code\u003e, ranging from version 2.7.1 up to the latest version 2.63.1.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFlowControlEventStats\u003c/code\u003e is a class used to record statistics of flow control events, populated by \u003ccode\u003eFlowController\u003c/code\u003e to track throttling.\u003c/p\u003e\n"],["\u003cp\u003eThe class primarily keeps track of the last flow control event, but it can be expanded to include more detailed information in the future, which can be used to dynamically adjust concurrency.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eFlowControlEventStats\u003c/code\u003e inherits from \u003ccode\u003ejava.lang.Object\u003c/code\u003e and includes inherited members like \u003ccode\u003eclone()\u003c/code\u003e, \u003ccode\u003eequals()\u003c/code\u003e, \u003ccode\u003egetClass()\u003c/code\u003e, and \u003ccode\u003etoString()\u003c/code\u003e, as well as other standard Java object methods.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egetLastFlowControlEvent()\u003c/code\u003e method is used to retrieve the last recorded flow control event, which allows for examination of the \u003ccode\u003eFlowControlEventStats\u003c/code\u003e class.\u003c/p\u003e\n"]]],[],null,[]]