Add statistic tracking

This commit is contained in:
Marcel Pociot
2021-05-31 14:47:48 +02:00
parent 7f6be8cae2
commit 9444d1aacb
15 changed files with 308 additions and 7 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Server\Connections;
use App\Contracts\ConnectionManager as ConnectionManagerContract;
use App\Contracts\StatisticsCollector;
use App\Contracts\SubdomainGenerator;
use App\Http\QueryParameters;
use App\Server\Exceptions\NoFreePortAvailable;
@@ -25,10 +26,14 @@ class ConnectionManager implements ConnectionManagerContract
/** @var LoopInterface */
protected $loop;
public function __construct(SubdomainGenerator $subdomainGenerator, LoopInterface $loop)
/** @var StatisticsCollector */
protected $statisticsCollector;
public function __construct(SubdomainGenerator $subdomainGenerator, StatisticsCollector $statisticsCollector, LoopInterface $loop)
{
$this->subdomainGenerator = $subdomainGenerator;
$this->loop = $loop;
$this->statisticsCollector = $statisticsCollector;
}
public function limitConnectionLength(ControlConnection $connection, int $maximumConnectionLength)
@@ -60,6 +65,8 @@ class ConnectionManager implements ConnectionManagerContract
$this->connections[] = $storedConnection;
$this->statisticsCollector->siteShared($this->getAuthTokenFromConnection($connection));
return $storedConnection;
}
@@ -79,6 +86,8 @@ class ConnectionManager implements ConnectionManagerContract
$this->connections[] = $storedConnection;
$this->statisticsCollector->portShared($this->getAuthTokenFromConnection($connection));
return $storedConnection;
}