mirror of
https://github.com/facefusion/facefusion.git
synced 2026-04-26 03:16:12 +02:00
add network metrics
This commit is contained in:
+21
-2
@@ -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
@@ -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']
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user