luci-app-statistics: Add initial support for DSL status.
authorDominik Riebeling <bluebrother@posteo.de>
Sun, 22 May 2022 10:04:22 +0000 (12:04 +0200)
committerFlorian Eckert <fe@dev.tdt.de>
Wed, 28 Jun 2023 08:32:06 +0000 (10:32 +0200)
Handle data for lantiq dsl metrics.

Signed-off-by: Dominik Riebeling <bluebrother@posteo.de>
* merge commits into one commit
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
applications/luci-app-statistics/htdocs/luci-static/resources/statistics/rrdtool/definitions/dsl.js [new file with mode: 0644]

diff --git a/applications/luci-app-statistics/htdocs/luci-static/resources/statistics/rrdtool/definitions/dsl.js b/applications/luci-app-statistics/htdocs/luci-static/resources/statistics/rrdtool/definitions/dsl.js
new file mode 100644 (file)
index 0000000..a579ac8
--- /dev/null
@@ -0,0 +1,193 @@
+/* Licensed to the public under the Apache License 2.0. */
+
+'use strict';
+
+return L.Class.extend({
+       title: _('DSL'),
+
+       rrdargs:  function(graph, host, plugin, plugin_instance, dtype) {
+               var g = [];
+               var dtypes = graph.dataTypes(host, plugin, plugin_instance);
+
+               const d_snr = {
+                       title: "DSL Signal",
+                       vlabel: "dB",
+                       data: {
+                               types: ["snr"],
+                               options: {
+                                       snr_latn_up: {
+                                               title: "Line Attenuation Up (LATN)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       snr_latn_down: {
+                                               title: "Line Attenuation Down (LATN)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       snr_satn_up: {
+                                               title: "Signal Attenuation Up (SATN)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       snr_satn_down: {
+                                               title: "Signal Attenuation Down (SATN)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       snr_snr_up: {
+                                               title: "Noise Margin Up (SNR)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       snr_snr_down: {
+                                               title: "Noise Margin Down (SNR)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                               }
+                       }
+               };
+               const d_uptime = {
+                       title: "DSL Line Uptime",
+                       vlabel: "seconds",
+                       data: {
+                               types: ["uptime"],
+                               options: {
+                                       uptime: {
+                                               title: "Uptime",
+                                               noarea: true
+                                       }
+                               }
+                       }
+               };
+               const d_flags = {
+                       title: "DSL Flags",
+                       data: {
+                               instances: {
+                                       bool: [
+                                               "bitswap_up",
+                                               "bitswap_down",
+                                               "vector_up",
+                                               "vector_down"
+                                       ]
+                               },
+                               options: {
+                                       bool_bitswap_up: {
+                                               title: "Bitswap Up",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       bool_bitswap_down: {
+                                               title: "Bitswap Down",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       bool_vector_up: {
+                                               title: "Vectoring Up",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       bool_vector_down: {
+                                               title: "Vectoring Down",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                               }
+                       }
+               };
+               const d_bitrate = {
+                       title: "Bitrate",
+                       vlabel: "b/s",
+                       data: {
+                               instances: {
+                                       bitrate: [
+                                               "attndr_up",
+                                               "attndr_down",
+                                               "data_rate_up",
+                                               "data_rate_down"
+                                       ]
+                               },
+                               options: {
+                                       bitrate_attndr_up: {
+                                               title: "Attenuation Up (ATTNDR)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       bitrate_attndr_down: {
+                                               title: "Attenuation Down (ATTNDR)",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       bitrate_data_rate_up: {
+                                               title: "Data Rate Up",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       bitrate_data_rate_down: {
+                                               title: "Data Rate Down",
+                                               noarea: true,
+                                               overlay: true
+                                       }
+                               }
+                       }
+               };
+                       const d_count = {
+                       title: "Errors",
+                       vlabel: "count",
+                       data: {
+                               types: ["errors"],
+                               options: {
+                                       errors_rx_corrupted_far: {
+                                               title: "Rx Corrupted Far",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       errors_rx_corrupted_near: {
+                                               title: "Rx Corrupted Near",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       errors_rx_retransmitted_far: {
+                                               title: "Rx Retransmitted Far",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       errors_tx_retransmitted_far: {
+                                               title: "Tx Retransmitted Far",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       errors_rx_retransmitted_near: {
+                                               title: "Rx Retransmitted Near",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                                       errors_tx_retransmitted_near: {
+                                               title: "Tx Retransmitted Near",
+                                               noarea: true,
+                                               overlay: true
+                                       },
+                               }
+                       }
+               };
+
+               if (dtypes.includes("snr")) {
+                       g.push(d_snr);
+               }
+               if (dtypes.includes("uptime")) {
+                       g.push(d_uptime);
+               }
+               if (dtypes.includes("bool")) {
+                       g.push(d_flags);
+               }
+               if (dtypes.includes("bitrate")) {
+                       g.push(d_bitrate);
+               }
+               if (dtypes.includes("count")) {
+                       g.push(d_count);
+               }
+
+               return g;
+       }
+});