add network metrics

This commit is contained in:
harisreedhar
2026-02-10 18:57:32 +05:30
committed by henryruhs
parent 75858c8636
commit fa82d87302
3 changed files with 49 additions and 3 deletions
+21 -2
View File
@@ -6,7 +6,7 @@ import psutil
from facefusion import state_manager
from facefusion.execution import detect_execution_devices
from facefusion.types import DiskMetrics, MemoryMetrics, Metrics
from facefusion.types import DiskMetrics, MemoryMetrics, Metrics, NetworkMetrics
def get_metrics_set() -> Metrics:
@@ -16,7 +16,8 @@ def get_metrics_set() -> Metrics:
{
'execution_devices': detect_execution_devices(),
'disks': detect_disk_metrics([ drive_path ]),
'memory': detect_memory_metrics()
'memory': detect_memory_metrics(),
'network': detect_network_metrics()
}
@@ -69,3 +70,21 @@ def detect_memory_metrics() -> MemoryMetrics:
'unit': '%'
}
}
def detect_network_metrics() -> NetworkMetrics:
network_io = psutil.net_io_counters()
return\
{
'sent':
{
'value': int(network_io.bytes_sent / (1024 * 1024)),
'unit': 'MB'
},
'received':
{
'value': int(network_io.bytes_recv / (1024 * 1024)),
'unit': 'MB'
}
}
+7 -1
View File
@@ -310,11 +310,17 @@ MemoryMetrics = TypedDict('MemoryMetrics',
'free' : ValueAndUnit,
'utilization' : ValueAndUnit
})
NetworkMetrics = TypedDict('NetworkMetrics',
{
'sent' : ValueAndUnit,
'received' : ValueAndUnit
})
Metrics = TypedDict('Metrics',
{
'execution_devices' : List[ExecutionDevice],
'disks' : List[DiskMetrics],
'memory' : MemoryMetrics
'memory' : MemoryMetrics,
'network' : NetworkMetrics
})
DownloadProvider = Literal['github', 'huggingface']
+21
View File
@@ -60,6 +60,19 @@ def mock_detect_execution_devices(mocker : MockerFixture) -> None:
'unit': '%'
}
})
mocker.patch('facefusion.system.detect_network_metrics', return_value =
{
'sent':
{
'value': 1024,
'unit': 'MB'
},
'received':
{
'value': 2048,
'unit': 'MB'
}
})
mocker.patch('facefusion.system.detect_execution_devices', return_value =
[
{
@@ -148,6 +161,10 @@ def test_get_metrics(test_client : TestClient) -> None:
assert metrics_body.get('memory').get('free').get('unit') == 'GB'
assert metrics_body.get('memory').get('utilization').get('value') == 50
assert metrics_body.get('network').get('sent').get('value') == 1024
assert metrics_body.get('network').get('sent').get('unit') == 'MB'
assert metrics_body.get('network').get('received').get('value') == 2048
def test_websocket_metrics(test_client : TestClient) -> None:
create_session_response = test_client.post('/session', json =
@@ -173,3 +190,7 @@ def test_websocket_metrics(test_client : TestClient) -> None:
assert metrics_set.get('memory').get('total').get('value') == 32
assert metrics_set.get('memory').get('free').get('unit') == 'GB'
assert metrics_set.get('memory').get('utilization').get('value') == 50
assert metrics_set.get('network').get('sent').get('value') == 1024
assert metrics_set.get('network').get('sent').get('unit') == 'MB'
assert metrics_set.get('network').get('received').get('value') == 2048