mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-09-05 17:51:36 +02:00
Added total camera fps, total processed fps, and total skipped fps to stats api (#19469)
Co-authored-by: Mark Francis <markfrancisonly@gmail.com>
This commit is contained in:
parent
175b9bcb71
commit
83f0993d7d
@ -268,10 +268,13 @@ def stats_snapshot(
|
|||||||
camera_metrics = stats_tracking["camera_metrics"]
|
camera_metrics = stats_tracking["camera_metrics"]
|
||||||
stats: dict[str, Any] = {}
|
stats: dict[str, Any] = {}
|
||||||
|
|
||||||
total_detection_fps = 0
|
total_camera_fps = total_process_fps = total_skipped_fps = total_detection_fps = 0
|
||||||
|
|
||||||
stats["cameras"] = {}
|
stats["cameras"] = {}
|
||||||
for name, camera_stats in camera_metrics.items():
|
for name, camera_stats in camera_metrics.items():
|
||||||
|
total_camera_fps += camera_stats.camera_fps.value
|
||||||
|
total_process_fps += camera_stats.process_fps.value
|
||||||
|
total_skipped_fps += camera_stats.skipped_fps.value
|
||||||
total_detection_fps += camera_stats.detection_fps.value
|
total_detection_fps += camera_stats.detection_fps.value
|
||||||
pid = camera_stats.process_pid.value if camera_stats.process_pid.value else None
|
pid = camera_stats.process_pid.value if camera_stats.process_pid.value else None
|
||||||
ffmpeg_pid = camera_stats.ffmpeg_pid.value if camera_stats.ffmpeg_pid else None
|
ffmpeg_pid = camera_stats.ffmpeg_pid.value if camera_stats.ffmpeg_pid else None
|
||||||
@ -305,6 +308,9 @@ def stats_snapshot(
|
|||||||
# from mypy 0.981 onwards
|
# from mypy 0.981 onwards
|
||||||
"pid": pid,
|
"pid": pid,
|
||||||
}
|
}
|
||||||
|
stats["camera_fps"] = round(total_camera_fps, 2)
|
||||||
|
stats["process_fps"] = round(total_process_fps, 2)
|
||||||
|
stats["skipped_fps"] = round(total_skipped_fps, 2)
|
||||||
stats["detection_fps"] = round(total_detection_fps, 2)
|
stats["detection_fps"] = round(total_detection_fps, 2)
|
||||||
|
|
||||||
stats["embeddings"] = {}
|
stats["embeddings"] = {}
|
||||||
|
@ -45,6 +45,9 @@ class BaseTestHttp(unittest.TestCase):
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
self.test_stats = {
|
self.test_stats = {
|
||||||
|
"camera_fps": 5.0,
|
||||||
|
"process_fps": 5.0,
|
||||||
|
"skipped_fps": 0.0,
|
||||||
"detection_fps": 13.7,
|
"detection_fps": 13.7,
|
||||||
"detectors": {
|
"detectors": {
|
||||||
"cpu1": {
|
"cpu1": {
|
||||||
|
@ -49,6 +49,9 @@ class TestHttp(unittest.TestCase):
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
self.test_stats = {
|
self.test_stats = {
|
||||||
|
"camera_fps": 5.0,
|
||||||
|
"process_fps": 5.0,
|
||||||
|
"skipped_fps": 0.0,
|
||||||
"detection_fps": 13.7,
|
"detection_fps": 13.7,
|
||||||
"detectors": {
|
"detectors": {
|
||||||
"cpu1": {
|
"cpu1": {
|
||||||
|
@ -7,6 +7,9 @@ export interface FrigateStats {
|
|||||||
npu_usages?: { [npuKey: string]: NpuStats };
|
npu_usages?: { [npuKey: string]: NpuStats };
|
||||||
processes: { [processKey: string]: ExtraProcessStats };
|
processes: { [processKey: string]: ExtraProcessStats };
|
||||||
service: ServiceStats;
|
service: ServiceStats;
|
||||||
|
camera_fps: number;
|
||||||
|
process_fps: number;
|
||||||
|
skipped_fps: number;
|
||||||
detection_fps: number;
|
detection_fps: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,14 +97,9 @@ export default function CameraMetrics({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let frames = 0;
|
|
||||||
Object.values(stats.cameras).forEach(
|
|
||||||
(camStat) => (frames += camStat.camera_fps),
|
|
||||||
);
|
|
||||||
|
|
||||||
series["overall_fps"].data.push({
|
series["overall_fps"].data.push({
|
||||||
x: statsIdx,
|
x: statsIdx,
|
||||||
y: Math.round(frames),
|
y: stats.camera_fps,
|
||||||
});
|
});
|
||||||
|
|
||||||
series["overall_dps"].data.push({
|
series["overall_dps"].data.push({
|
||||||
@ -112,14 +107,9 @@ export default function CameraMetrics({
|
|||||||
y: stats.detection_fps,
|
y: stats.detection_fps,
|
||||||
});
|
});
|
||||||
|
|
||||||
let skipped = 0;
|
|
||||||
Object.values(stats.cameras).forEach(
|
|
||||||
(camStat) => (skipped += camStat.skipped_fps),
|
|
||||||
);
|
|
||||||
|
|
||||||
series["overall_skipped_dps"].data.push({
|
series["overall_skipped_dps"].data.push({
|
||||||
x: statsIdx,
|
x: statsIdx,
|
||||||
y: skipped,
|
y: stats.skipped_fps,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return Object.values(series);
|
return Object.values(series);
|
||||||
|
Loading…
Reference in New Issue
Block a user