This commit introduces a detailed database overview endpoint and service, providing key metrics such as replication status, database sizes, and performance indicators. On the frontend, a new UI section displays these metrics along with improved forms and troubleshooting tips. Enhancements improve user experience by adding informative tooltips and formatting for byte and time values.
30 lines
836 B
Python
30 lines
836 B
Python
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class DiskSpaceProbeResult:
|
|
source: str
|
|
status: str
|
|
free_bytes: int | None = None
|
|
message: str | None = None
|
|
|
|
|
|
class DiskSpaceProvider:
|
|
async def get_free_bytes(self, target_host: str) -> DiskSpaceProbeResult:
|
|
raise NotImplementedError
|
|
|
|
|
|
class NullDiskSpaceProvider(DiskSpaceProvider):
|
|
async def get_free_bytes(self, target_host: str) -> DiskSpaceProbeResult:
|
|
return DiskSpaceProbeResult(
|
|
source="none",
|
|
status="unavailable",
|
|
free_bytes=None,
|
|
message=f"No infra probe configured for host {target_host}. Add SSH/Agent provider later.",
|
|
)
|
|
|
|
|
|
def get_disk_space_provider() -> DiskSpaceProvider:
|
|
# Extension point: replace by SSH/Agent backed implementation.
|
|
return NullDiskSpaceProvider()
|