diff --git a/plist b/plist
index 56988cebd..3f8d85da1 100644
--- a/plist
+++ b/plist
@@ -1929,8 +1929,10 @@
/usr/local/opnsense/www/js/widgets/BaseTableWidget.js
/usr/local/opnsense/www/js/widgets/BaseWidget.js
/usr/local/opnsense/www/js/widgets/Cpu.js
+/usr/local/opnsense/www/js/widgets/InterfaceStatistics.js
/usr/local/opnsense/www/js/widgets/Interfaces.js
/usr/local/opnsense/www/js/widgets/SystemInformation.js
+/usr/local/opnsense/www/js/widgets/Traffic.js
/usr/local/opnsense/www/themes/opnsense/LICENSE
/usr/local/opnsense/www/themes/opnsense/assets/fonts/SourceSansPro-Bold/SourceSansPro-Bold.eot
/usr/local/opnsense/www/themes/opnsense/assets/fonts/SourceSansPro-Bold/SourceSansPro-Bold.otf
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/DashboardController.php b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/DashboardController.php
index 7f8daba3b..f418633d7 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/DashboardController.php
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/DashboardController.php
@@ -66,6 +66,11 @@ class DashboardController extends ApiControllerBase
'errorsout' => gettext('Errors Out'),
'collisions' => gettext('Collisions'),
],
+ 'traffic' => [
+ 'title' => gettext('Traffic Graph'),
+ 'trafficin' => gettext('Traffic In'),
+ 'trafficout' => gettext('Traffic Out'),
+ ],
];
}
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php
index 3a2cbdd61..97909830c 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/TrafficController.php
@@ -49,6 +49,19 @@ class TrafficController extends ApiControllerBase
return json_decode($response, true);
}
+ public function streamAction($poll_interval = 1)
+ {
+ return $this->configdStream(
+ 'interface stream traffic',
+ [$poll_interval],
+ [
+ 'Content-Type: text/event-stream',
+ 'Cache-Control: no-cache',
+ ],
+ $poll_interval + 1
+ );
+ }
+
/**
* retrieve interface top traffic hosts
* @param $interfaces string comma separated list of interfaces
diff --git a/src/opnsense/mvc/app/views/OPNsense/Core/dashboard.volt b/src/opnsense/mvc/app/views/OPNsense/Core/dashboard.volt
index b5f24f772..8e8c2e9e1 100644
--- a/src/opnsense/mvc/app/views/OPNsense/Core/dashboard.volt
+++ b/src/opnsense/mvc/app/views/OPNsense/Core/dashboard.volt
@@ -31,15 +31,14 @@
-
-
-
-
-
+
+
+
+