diff --git a/client/src/Pages/Infrastructure/Details/Components/ChartsNetwork.tsx b/client/src/Pages/Infrastructure/Details/Components/ChartsNetwork.tsx
index 54e3cc1ed..c7ebac5be 100644
--- a/client/src/Pages/Infrastructure/Details/Components/ChartsNetwork.tsx
+++ b/client/src/Pages/Infrastructure/Details/Components/ChartsNetwork.tsx
@@ -1,4 +1,6 @@
import Grid from "@mui/material/Grid";
+import Stack from "@mui/material/Stack";
+import { NoticeBanner } from "@/Components/design-elements";
import { HistogramInfrastructure } from "@/Components/monitors";
import { useTranslation } from "react-i18next";
@@ -6,6 +8,7 @@ import type { HardwareCheckStats } from "@/Types/Monitor";
import { useMemo } from "react";
import { useTheme } from "@mui/material/styles";
import useMediaQuery from "@mui/material/useMediaQuery";
+import { LAYOUT } from "@/Utils/Theme/constants";
const formatBytesToMB = (value: number) => `${(value / (1024 * 1024)).toFixed(2)} MB`;
@@ -60,6 +63,11 @@ const getChartConfigs = (
return configs;
};
+const hasAnyNetworkTraffic = (checks: HardwareCheckStats[]): boolean =>
+ checks.some((c) =>
+ c.net?.some((iface) => iface.bytesSentPerSecond > 0 || iface.deltaBytesRecv > 0)
+ );
+
export const InfraNetworkCharts = ({
checks,
dateRange,
@@ -74,35 +82,43 @@ export const InfraNetworkCharts = ({
() => getChartConfigs(theme, checks, t),
[theme, checks, t]
);
+ const showNoTrafficNotice = chartConfigs.length > 0 && !hasAnyNetworkTraffic(checks);
return (
-
- {chartConfigs.map((config) => {
- return (
-
-
-
- );
- })}
-
+
+ {showNoTrafficNotice && (
+
+ {t("pages.infrastructure.charts.labels.netNoTraffic")}
+
+ )}
+
+ {chartConfigs.map((config) => {
+ return (
+
+
+
+ );
+ })}
+
+
);
};
diff --git a/client/src/locales/ar.json b/client/src/locales/ar.json
index e4782a345..eb8476d87 100644
--- a/client/src/locales/ar.json
+++ b/client/src/locales/ar.json
@@ -769,6 +769,7 @@
"memory": "استخدام الذاكرة",
"netBytesRecv": "{{name}} - البايتات المستلمة",
"netBytesSent": "{{name}} - البايتات المرسلة",
+ "netNoTraffic": "Capture يبلغ عن عدم وجود حركة بيانات على أي واجهة. هذا أمر طبيعي عندما يعمل Capture داخل حاوية لا ترى سوى واجهات الاسترجاع — قم بتشغيل Capture مباشرة على المضيف لرؤية نشاط الشبكة الحقيقي.",
"temp": "الحرارة"
}
},
@@ -1236,7 +1237,7 @@
"description": "إضافة مراقبات نموذجية لأغراض العرض التوضيحي."
},
"removeMonitors": {
- "title": "إعادة تعيين النظام",
+ "title": "إعادة ضبط النظام",
"description": "إزالة جميع المراقبات من نظامك.",
"dialog": {
"title": "إزالة جميع المراقبات؟",
diff --git a/client/src/locales/cs.json b/client/src/locales/cs.json
index 57225bdda..2c99e485a 100644
--- a/client/src/locales/cs.json
+++ b/client/src/locales/cs.json
@@ -769,6 +769,7 @@
"memory": "Využití paměti",
"netBytesRecv": "{{name}} - přijaté bajty",
"netBytesSent": "{{name}} - odeslané bajty",
+ "netNoTraffic": "Capture hlásí nulový provoz na všech rozhraních. To je normální, když Capture běží uvnitř kontejneru, který vidí pouze loopback rozhraní — spusťte Capture přímo na hostiteli, abyste viděli skutečnou síťovou aktivitu.",
"temp": "Teplota"
}
},
@@ -1236,8 +1237,8 @@
"description": "Přidejte ukázkové monitory pro demonstrační účely."
},
"removeMonitors": {
- "title": "Obnovení systému",
- "description": "Odeberte všechny monitory z vašeho systému.",
+ "title": "Reset systému",
+ "description": "Odstranit všechny monitory ze systému.",
"dialog": {
"title": "Odebrat všechny monitory?",
"description": "Tuto akci nelze vrátit zpět."
diff --git a/client/src/locales/de.json b/client/src/locales/de.json
index 2f85d2f38..e01243670 100644
--- a/client/src/locales/de.json
+++ b/client/src/locales/de.json
@@ -769,6 +769,7 @@
"memory": "Arbeitsspeicherauslastung",
"netBytesRecv": "{{name}} - Empfangene Bytes",
"netBytesSent": "{{name}} - Gesendete Bytes",
+ "netNoTraffic": "Capture meldet null Datenverkehr auf allen Schnittstellen. Das ist normal, wenn Capture in einem Container läuft, der nur Loopback-Schnittstellen sieht — führe Capture direkt auf dem Host aus, um echten Netzwerkverkehr zu sehen.",
"temp": "Temp."
}
},
@@ -1237,7 +1238,7 @@
},
"removeMonitors": {
"title": "System zurücksetzen",
- "description": "Alle Monitore aus Ihrem System entfernen.",
+ "description": "Alle Monitore aus dem System entfernen.",
"dialog": {
"title": "Alle Monitore entfernen?",
"description": "Dies kann nicht rückgängig gemacht werden."
diff --git a/client/src/locales/en.json b/client/src/locales/en.json
index dd9b66c1e..5aada5776 100644
--- a/client/src/locales/en.json
+++ b/client/src/locales/en.json
@@ -769,6 +769,7 @@
"memory": "Memory usage",
"netBytesRecv": "{{name}} - Bytes Received",
"netBytesSent": "{{name}} - Bytes Sent",
+ "netNoTraffic": "Capture is reporting zero traffic on every interface. This is normal when Capture runs inside a container that can only see loopback interfaces — run Capture directly on the host to see real network activity.",
"temp": "Temp"
}
},
diff --git a/client/src/locales/es.json b/client/src/locales/es.json
index 77786176a..27a99da8a 100644
--- a/client/src/locales/es.json
+++ b/client/src/locales/es.json
@@ -776,6 +776,7 @@
"memory": "Uso de memoria",
"netBytesRecv": "{{name}} - Bytes recibidos",
"netBytesSent": "{{name}} - Bytes enviados",
+ "netNoTraffic": "Capture no informa tráfico en ninguna interfaz. Esto es normal cuando Capture se ejecuta dentro de un contenedor que solo ve interfaces de loopback — ejecuta Capture directamente en el host para ver actividad de red real.",
"temp": "Temp"
}
},
@@ -1243,8 +1244,8 @@
"description": "Agregue monitores de ejemplo con fines demostrativos."
},
"removeMonitors": {
- "title": "Reinicio del sistema",
- "description": "Elimine todos los monitores de su sistema.",
+ "title": "Reiniciar sistema",
+ "description": "Eliminar todos los monitores del sistema.",
"dialog": {
"title": "¿Eliminar todos los monitores?",
"description": "Esto no se puede deshacer."
diff --git a/client/src/locales/fi.json b/client/src/locales/fi.json
index 77b591eba..a8c5780a6 100644
--- a/client/src/locales/fi.json
+++ b/client/src/locales/fi.json
@@ -769,6 +769,7 @@
"memory": "Muistin käyttö",
"netBytesRecv": "{{name}} - tavua vastaanotettu",
"netBytesSent": "{{name}} - tavua lähetetty",
+ "netNoTraffic": "Capture ilmoittaa nollaliikennettä kaikilla rajapinnoilla. Tämä on normaalia, kun Capture käynnistetään säiliössä, joka näkee vain loopback-rajapinnat — suorita Capture suoraan isännällä nähdäksesi todellisen verkkoaktiviteetin.",
"temp": "Lämpö"
}
},
@@ -1236,7 +1237,7 @@
"description": "Lisää esimerkkimonitoreja esittelytarkoituksiin."
},
"removeMonitors": {
- "title": "Järjestelmän nollaus",
+ "title": "Järjestelmän palautus",
"description": "Poista kaikki monitorit järjestelmästäsi.",
"dialog": {
"title": "Poistetaanko kaikki monitorit?",
diff --git a/client/src/locales/fr.json b/client/src/locales/fr.json
index 9a92cd677..8d1ac57b1 100644
--- a/client/src/locales/fr.json
+++ b/client/src/locales/fr.json
@@ -769,6 +769,7 @@
"memory": "Utilisation mémoire",
"netBytesRecv": "{{name}} - Octets reçus",
"netBytesSent": "{{name}} - Octets envoyés",
+ "netNoTraffic": "Capture ne signale aucun trafic sur toutes les interfaces. C'est normal lorsque Capture s'exécute dans un conteneur qui ne voit que les interfaces de loopback — exécutez Capture directement sur l'hôte pour voir l'activité réseau réelle.",
"temp": "Temp."
}
},
@@ -1236,8 +1237,8 @@
"description": "Ajoutez des moniteurs d'exemple à des fins de démonstration."
},
"removeMonitors": {
- "title": "Réinitialisation du système",
- "description": "Supprimez tous les moniteurs de votre système.",
+ "title": "Réinitialiser le système",
+ "description": "Supprimer tous les moniteurs de votre système.",
"dialog": {
"title": "Supprimer tous les moniteurs ?",
"description": "Cette action est irréversible."
diff --git a/client/src/locales/ja.json b/client/src/locales/ja.json
index 485d896e5..f9766228e 100644
--- a/client/src/locales/ja.json
+++ b/client/src/locales/ja.json
@@ -769,6 +769,7 @@
"memory": "メモリ使用率",
"netBytesRecv": "{{name}} - 受信バイト数",
"netBytesSent": "{{name}} - 送信バイト数",
+ "netNoTraffic": "Capture はすべてのインターフェイスでゼロのトラフィックを報告しています。これは Capture がループバックインターフェイスのみを認識できるコンテナ内で実行されている場合に正常です — 実際のネットワークアクティビティを表示するには、ホスト上で Capture を直接実行してください。",
"temp": "温度"
}
},
diff --git a/client/src/locales/pt-BR.json b/client/src/locales/pt-BR.json
index be0bda185..f2a389db6 100644
--- a/client/src/locales/pt-BR.json
+++ b/client/src/locales/pt-BR.json
@@ -769,6 +769,7 @@
"memory": "Uso de memória",
"netBytesRecv": "{{name}} - Bytes recebidos",
"netBytesSent": "{{name}} - Bytes enviados",
+ "netNoTraffic": "Capture está reportando zero tráfego em todas as interfaces. Isso é normal quando Capture é executado dentro de um container que só consegue ver interfaces de loopback — execute Capture diretamente no host para ver a atividade real da rede.",
"temp": "Temp"
}
},
@@ -1236,8 +1237,8 @@
"description": "Adicione monitores de exemplo para fins de demonstração."
},
"removeMonitors": {
- "title": "Redefinição do sistema",
- "description": "Remova todos os monitores do seu sistema.",
+ "title": "Redefinir sistema",
+ "description": "Remover todos os monitores do seu sistema.",
"dialog": {
"title": "Remover todos os monitores?",
"description": "Isso não pode ser desfeito."
diff --git a/client/src/locales/ru.json b/client/src/locales/ru.json
index c185cce22..44fd8d2a4 100644
--- a/client/src/locales/ru.json
+++ b/client/src/locales/ru.json
@@ -769,6 +769,7 @@
"memory": "Использование памяти",
"netBytesRecv": "{{name}} - байт получено",
"netBytesSent": "{{name}} - байт отправлено",
+ "netNoTraffic": "Capture сообщает о нулевом трафике на всех интерфейсах. Это нормально, когда Capture работает внутри контейнера, который видит только loopback-интерфейсы — запустите Capture непосредственно на хосте, чтобы увидеть реальную сетевую активность.",
"temp": "Температура"
}
},
@@ -1237,7 +1238,7 @@
},
"removeMonitors": {
"title": "Сброс системы",
- "description": "Удалить все мониторы из Вашей системы.",
+ "description": "Удалить все мониторы из вашей системы.",
"dialog": {
"title": "Удалить все мониторы?",
"description": "Это действие нельзя отменить."
diff --git a/client/src/locales/th.json b/client/src/locales/th.json
index 0204702de..e66dbbc86 100644
--- a/client/src/locales/th.json
+++ b/client/src/locales/th.json
@@ -769,6 +769,7 @@
"memory": "การใช้งานหน่วยความจำ",
"netBytesRecv": "{{name}} - ไบต์ที่รับ",
"netBytesSent": "{{name}} - ไบต์ที่ส่ง",
+ "netNoTraffic": "Capture รายงานว่าไม่มีการรับส่งข้อมูลบนอินเทอร์เฟซใดๆ เลย ซึ่งเป็นเรื่องปกติเมื่อ Capture ทำงานอยู่ในคอนเทนเนอร์ที่มองเห็นเพียงอินเทอร์เฟซ loopback เท่านั้น — รัน Capture บนโฮสต์โดยตรงเพื่อดูกิจกรรมเครือข่ายจริง",
"temp": "อุณหภูมิ"
}
},
@@ -1237,7 +1238,7 @@
},
"removeMonitors": {
"title": "รีเซ็ตระบบ",
- "description": "ลบมอนิเตอร์ทั้งหมดออกจากระบบ",
+ "description": "ลบมอนิเตอร์ทั้งหมดจากระบบของคุณ",
"dialog": {
"title": "ลบมอนิเตอร์ทั้งหมด?",
"description": "ไม่สามารถย้อนกลับได้"
diff --git a/client/src/locales/tr.json b/client/src/locales/tr.json
index 1b07562e9..a75572117 100644
--- a/client/src/locales/tr.json
+++ b/client/src/locales/tr.json
@@ -769,6 +769,7 @@
"memory": "Bellek kullanımı",
"netBytesRecv": "{{name}} - Alınan bayt",
"netBytesSent": "{{name}} - Gönderilen bayt",
+ "netNoTraffic": "Capture tüm arabirimlerde sıfır trafik raporluyor. Bu, Capture yalnızca loopback arabirimlerini görebilen bir konteyner içinde çalışırken normaldir — gerçek ağ etkinliğini görmek için Capture'ı doğrudan host üzerinde çalıştırın.",
"temp": "Sıcaklık"
}
},
@@ -1236,8 +1237,8 @@
"description": "Gösterim amaçlı örnek monitörler ekleyin."
},
"removeMonitors": {
- "title": "Sistem sıfırlama",
- "description": "Sisteminizdeki tüm monitörleri kaldırın.",
+ "title": "Sistemi sıfırla",
+ "description": "Sistemdeki tüm monitörleri kaldır.",
"dialog": {
"title": "Tüm monitörler kaldırılsın mı?",
"description": "Bu işlem geri alınamaz."
diff --git a/client/src/locales/uk.json b/client/src/locales/uk.json
index ae66971a7..ca5b33dc4 100644
--- a/client/src/locales/uk.json
+++ b/client/src/locales/uk.json
@@ -769,6 +769,7 @@
"memory": "Використання пам'яті",
"netBytesRecv": "{{name}} - Отримано байтів",
"netBytesSent": "{{name}} - Надіслано байтів",
+ "netNoTraffic": "Capture повідомляє про нульовий трафік на всіх інтерфейсах. Це нормально, коли Capture працює всередині контейнера, який бачить лише loopback-інтерфейси — запустіть Capture безпосередньо на хості, щоб побачити реальну мережеву активність.",
"temp": "Темп."
}
},
@@ -1237,7 +1238,7 @@
},
"removeMonitors": {
"title": "Скидання системи",
- "description": "Видалити всі монітори з Вашої системи.",
+ "description": "Видалити всі монітори з вашої системи.",
"dialog": {
"title": "Видалити всі монітори?",
"description": "Це не можна скасувати."
diff --git a/client/src/locales/vi.json b/client/src/locales/vi.json
index c4d1ed02e..61427389d 100644
--- a/client/src/locales/vi.json
+++ b/client/src/locales/vi.json
@@ -769,6 +769,7 @@
"memory": "Sử dụng bộ nhớ",
"netBytesRecv": "{{name}} - Byte nhận",
"netBytesSent": "{{name}} - Byte gửi",
+ "netNoTraffic": "Capture đang báo cáo lưu lượng bằng không trên mọi giao diện. Điều này là bình thường khi Capture chạy bên trong một container chỉ có thể thấy các giao diện loopback — hãy chạy Capture trực tiếp trên máy chủ để xem hoạt động mạng thực tế.",
"temp": "Nhiệt độ"
}
},
@@ -1237,7 +1238,7 @@
},
"removeMonitors": {
"title": "Đặt lại hệ thống",
- "description": "Xóa tất cả trình giám sát khỏi hệ thống.",
+ "description": "Xóa tất cả các monitor khỏi hệ thống của bạn.",
"dialog": {
"title": "Xóa tất cả trình giám sát?",
"description": "Không thể hoàn tác."
diff --git a/client/src/locales/zh-CN.json b/client/src/locales/zh-CN.json
index 8dee3dcb2..fe66cfcca 100644
--- a/client/src/locales/zh-CN.json
+++ b/client/src/locales/zh-CN.json
@@ -769,6 +769,7 @@
"memory": "内存使用率",
"netBytesRecv": "{{name}} - 接收字节",
"netBytesSent": "{{name}} - 发送字节",
+ "netNoTraffic": "Capture 报告所有接口的流量均为零。当 Capture 在只能看到回环接口的容器内运行时,这属于正常情况——请直接在主机上运行 Capture 才能看到真实的网络活动。",
"temp": "温度"
}
},
@@ -1237,7 +1238,7 @@
},
"removeMonitors": {
"title": "系统重置",
- "description": "从系统中移除所有监控。",
+ "description": "从系统中移除所有监视器。",
"dialog": {
"title": "移除所有监控?",
"description": "此操作无法撤销。"
diff --git a/client/src/locales/zh-TW.json b/client/src/locales/zh-TW.json
index cdcf2d079..388ad4789 100644
--- a/client/src/locales/zh-TW.json
+++ b/client/src/locales/zh-TW.json
@@ -769,6 +769,7 @@
"memory": "記憶體使用率",
"netBytesRecv": "{{name}} - 接收位元組",
"netBytesSent": "{{name}} - 發送位元組",
+ "netNoTraffic": "Capture 回報所有介面的流量皆為零。當 Capture 在只能看到回環介面的容器中執行時,這是正常情況——請直接在主機上執行 Capture 才能看到實際的網路活動。",
"temp": "溫度"
}
},
@@ -1236,8 +1237,8 @@
"description": "新增範例監控以供示範用途。"
},
"removeMonitors": {
- "title": "系統重設",
- "description": "從系統中移除所有監控。",
+ "title": "系統重置",
+ "description": "從系統中移除所有監視器。",
"dialog": {
"title": "移除所有監控?",
"description": "此操作無法復原。"