getStatistics method

ConnectionPoolStatistics getStatistics()

Get connection pool statistics.

Implementation

ConnectionPoolStatistics getStatistics() {
  int totalConnections = 0;
  int totalAvailableConnections = 0;
  int totalInUseConnections = 0;

  for (final connections in _connectionPools.values) {
    totalConnections += connections.length;
    totalInUseConnections += connections.where((c) => c.isInUse).length;
  }

  for (final connections in _availableConnections.values) {
    totalAvailableConnections += connections.length;
  }

  totalInUseConnections = totalConnections - totalAvailableConnections;

  return ConnectionPoolStatistics(
    totalConnections: totalConnections,
    availableConnections: totalAvailableConnections,
    inUseConnections: totalInUseConnections,
    poolUtilization: totalConnections > 0
        ? (totalInUseConnections / totalConnections) * 100
        : 0,
  );
}