@cryptotaxi247 / netdata-1 / commits / 6f3007537

Expand dashboard auto-scaling and convertible units (#5920)

##### Summary Add a two more units that allow auto-scaling and conversion: nanoseconds and num. As a result, e.g. 1000 nanoseconds -> 1 microseconds, 1000000 nanoseconds -> 1 milliseconds, 1000 num -> 1 num (K) etc. ##### Component Name web/gui/dashboard ##### Additional Information This PR just expands the existing auto-scaling units (e.g. packets/s, milliseconds, etc.) and follow the corresponding coding style.

Qingkun Li committed Sep 6, 2019 at 03:02 UTC 6f3007537f1e4214bd5635d26f17c3d98e78afa6
2 files changed +146
web/gui/dashboard.js
+73
@@ -868,6 +868,13 @@ NETDATA.unitsConversion = {
868 'TiB': 1024,
869 'PiB': 1024 * 1024,
870 'EiB': 1024 * 1024 * 1024
871 + },
872 + 'num': {
873 + 'num': 1,
874 + 'num (K)': 1000,
875 + 'num (M)': 1000000,
876 + 'num (G)': 1000000000,
877 + 'num (T)': 1000000000000
878 }
879 /*
880 'milliseconds': {
@@ -967,6 +974,72 @@ NETDATA.unitsConversion = {
974 + NETDATA.zeropad(milliseconds);
975 }
976 }
977 + },
978 + 'nanoseconds': {
979 + 'nanoseconds': {
980 + check: function (max) {
981 + return NETDATA.options.current.seconds_as_time && max < 1000;
982 + },
983 + convert: function (nanoseconds) {
984 + let tms = Math.round(nanoseconds * 10);
985 + nanoseconds = Math.floor(tms / 10);
986 +
987 + tms -= nanoseconds * 10;
988 +
989 + return (nanoseconds).toString() + '.' + tms.toString();
990 + }
991 + },
992 + 'microseconds': {
993 + check: function (max) {
994 + return NETDATA.options.current.seconds_as_time
995 + && max >= 1000 && max < 1000 * 1000;
996 + },
997 + convert: function (nanoseconds) {
998 + nanoseconds = Math.round(nanoseconds);
999 +
1000 + let microseconds = Math.floor(nanoseconds / 1000);
1001 + nanoseconds -= microseconds * 1000;
1002 +
1003 + nanoseconds = Math.round(nanoseconds / 10 );
1004 +
1005 + return microseconds.toString() + '.'
1006 + + NETDATA.zeropad(nanoseconds);
1007 + }
1008 + },
1009 + 'milliseconds': {
1010 + check: function (max) {
1011 + return NETDATA.options.current.seconds_as_time
1012 + && max >= 1000 * 1000 && max < 1000 * 1000 * 1000;
1013 + },
1014 + convert: function (nanoseconds) {
1015 + nanoseconds = Math.round(nanoseconds);
1016 +
1017 + let milliseconds = Math.floor(nanoseconds / 1000 / 1000);
1018 + nanoseconds -= milliseconds * 1000 * 1000;
1019 +
1020 + nanoseconds = Math.round(nanoseconds / 1000 / 10);
1021 +
1022 + return milliseconds.toString() + '.'
1023 + + NETDATA.zeropad(nanoseconds);
1024 + }
1025 + },
1026 + 'seconds': {
1027 + check: function (max) {
1028 + return NETDATA.options.current.seconds_as_time
1029 + && max >= 1000 * 1000 * 1000;
1030 + },
1031 + convert: function (nanoseconds) {
1032 + nanoseconds = Math.round(nanoseconds);
1033 +
1034 + let seconds = Math.floor(nanoseconds / 1000 / 1000 / 1000);
1035 + nanoseconds -= seconds * 1000 * 1000 * 1000;
1036 +
1037 + nanoseconds = Math.round(nanoseconds / 1000 / 1000 / 10);
1038 +
1039 + return seconds.toString() + '.'
1040 + + NETDATA.zeropad(nanoseconds);
1041 + }
1042 + },
1043 }
1044 },
1045
web/gui/src/dashboard.js/units-conversion.js
+73
@@ -101,6 +101,13 @@ NETDATA.unitsConversion = {
101 'TiB': 1024,
102 'PiB': 1024 * 1024,
103 'EiB': 1024 * 1024 * 1024
104 + },
105 + 'num': {
106 + 'num': 1,
107 + 'num (K)': 1000,
108 + 'num (M)': 1000000,
109 + 'num (G)': 1000000000,
110 + 'num (T)': 1000000000000
111 }
112 /*
113 'milliseconds': {
@@ -200,6 +207,72 @@ NETDATA.unitsConversion = {
207 + NETDATA.zeropad(milliseconds);
208 }
209 }
210 + },
211 + 'nanoseconds': {
212 + 'nanoseconds': {
213 + check: function (max) {
214 + return NETDATA.options.current.seconds_as_time && max < 1000;
215 + },
216 + convert: function (nanoseconds) {
217 + let tms = Math.round(nanoseconds * 10);
218 + nanoseconds = Math.floor(tms / 10);
219 +
220 + tms -= nanoseconds * 10;
221 +
222 + return (nanoseconds).toString() + '.' + tms.toString();
223 + }
224 + },
225 + 'microseconds': {
226 + check: function (max) {
227 + return NETDATA.options.current.seconds_as_time
228 + && max >= 1000 && max < 1000 * 1000;
229 + },
230 + convert: function (nanoseconds) {
231 + nanoseconds = Math.round(nanoseconds);
232 +
233 + let microseconds = Math.floor(nanoseconds / 1000);
234 + nanoseconds -= microseconds * 1000;
235 +
236 + nanoseconds = Math.round(nanoseconds / 10 );
237 +
238 + return microseconds.toString() + '.'
239 + + NETDATA.zeropad(nanoseconds);
240 + }
241 + },
242 + 'milliseconds': {
243 + check: function (max) {
244 + return NETDATA.options.current.seconds_as_time
245 + && max >= 1000 * 1000 && max < 1000 * 1000 * 1000;
246 + },
247 + convert: function (nanoseconds) {
248 + nanoseconds = Math.round(nanoseconds);
249 +
250 + let milliseconds = Math.floor(nanoseconds / 1000 / 1000);
251 + nanoseconds -= milliseconds * 1000 * 1000;
252 +
253 + nanoseconds = Math.round(nanoseconds / 1000 / 10);
254 +
255 + return milliseconds.toString() + '.'
256 + + NETDATA.zeropad(nanoseconds);
257 + }
258 + },
259 + 'seconds': {
260 + check: function (max) {
261 + return NETDATA.options.current.seconds_as_time
262 + && max >= 1000 * 1000 * 1000;
263 + },
264 + convert: function (nanoseconds) {
265 + nanoseconds = Math.round(nanoseconds);
266 +
267 + let seconds = Math.floor(nanoseconds / 1000 / 1000 / 1000);
268 + nanoseconds -= seconds * 1000 * 1000 * 1000;
269 +
270 + nanoseconds = Math.round(nanoseconds / 1000 / 1000 / 10);
271 +
272 + return seconds.toString() + '.'
273 + + NETDATA.zeropad(nanoseconds);
274 + }
275 + },
276 }
277 },
278