diff --git a/src/State/EnvironmentHealthProvider.php b/src/State/EnvironmentHealthProvider.php new file mode 100644 index 0000000..7044798 --- /dev/null +++ b/src/State/EnvironmentHealthProvider.php @@ -0,0 +1,45 @@ +environmentRepository->find($id) : null; + + if (null === $environment) { + throw new NotFoundHttpException(sprintf('Environment "%s" not found.', $id)); + } + + $containerName = $environment->getContainerName(); + $status = $this->dockerService->getContainerStatus($containerName); + $stats = $this->dockerService->getContainerStats($containerName); + + $dto = new EnvironmentHealth(); + $dto->status = $status['status']; + $dto->version = $status['version']; + $dto->startedAt = $status['startedAt']; + $dto->cpuPercent = $stats['cpuPercent']; + $dto->memoryUsage = $stats['memoryUsage']; + $dto->memoryLimit = $stats['memoryLimit']; + $dto->memoryPercent = $stats['memoryPercent']; + + return $dto; + } +}