From fd9196ae3e4d2d23298d358935d48cc4c8cd692a Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Thu, 21 Sep 2023 04:26:22 -0600 Subject: [PATCH] add note about network bandwidth permissions and don't set interfaces by default (#7813) * add note about network bandwidth permissions * Update default net int * Set default network interfaces to empty * Don't read interfaces if none are set * Formatting * Add stderr output --- docs/docs/configuration/index.md | 3 ++- frigate/config.py | 2 +- frigate/util/services.py | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/docs/configuration/index.md b/docs/docs/configuration/index.md index bddced7ac..ad52e7972 100644 --- a/docs/docs/configuration/index.md +++ b/docs/docs/configuration/index.md @@ -625,7 +625,7 @@ ui: # Optional: Telemetry configuration telemetry: - # Optional: Enabled network interfaces for bandwidth stats monitoring (default: shown below) + # Optional: Enabled network interfaces for bandwidth stats monitoring (default: empty list, let nethogs search all) network_interfaces: - eth - enp @@ -640,6 +640,7 @@ telemetry: # Enable Intel GPU stats (default: shown below) intel_gpu_stats: True # Enable network bandwidth stats monitoring for camera ffmpeg processes, go2rtc, and object detectors. (default: shown below) + # NOTE: The container must either be privileged or have cap_net_admin, cap_net_raw capabilities enabled. network_bandwidth: False # Optional: Enable the latest version outbound check (default: shown below) # NOTE: If you use the HomeAssistant integration, disabling this will prevent it from reporting new versions diff --git a/frigate/config.py b/frigate/config.py index 6a8d6ce69..dc9902902 100644 --- a/frigate/config.py +++ b/frigate/config.py @@ -107,7 +107,7 @@ class StatsConfig(FrigateBaseModel): class TelemetryConfig(FrigateBaseModel): network_interfaces: List[str] = Field( - default=["eth", "enp", "eno", "ens", "wl", "lo"], + default=[], title="Enabled network interfaces for bandwidth calculation.", ) stats: StatsConfig = Field( diff --git a/frigate/util/services.py b/frigate/util/services.py index 0d5de327d..2ffddcacf 100644 --- a/frigate/util/services.py +++ b/frigate/util/services.py @@ -143,6 +143,9 @@ def get_cpu_stats() -> dict[str, dict]: def get_physical_interfaces(interfaces) -> list: + if not interfaces: + return [] + with open("/proc/net/dev", "r") as file: lines = file.readlines() @@ -171,6 +174,7 @@ def get_bandwidth_stats(config) -> dict[str, dict]: ) if p.returncode != 0: + logger.error(f"Error getting network stats :: {p.stderr}") return usages else: lines = p.stdout.split("\n")