<small>rendered in <span id="time803">X</span> ms</small>
</div>
-
-
-
-
</div> <!-- 1st container -->
</body>
</html>
- <!-- you can set your netdata server globally, by ucommenting this -->
- <!-- you can also give a different server per chart, with the attribute: data-host="http://netdata.server:19999" -->
- <!-- <script> netdataServer = "http://box:19999"; </script> -->
- <!-- load the dashboard manager - it will do the rest -->
- <script type="text/javascript" src="dashboard.js?v51"></script>
+<!-- you can set your netdata server globally, by ucommenting this -->
+<!-- you can also give a different server per chart, with the attribute: data-host="http://netdata.server:19999" -->
+<!-- <script> netdataServer = "http://box:19999"; </script> -->
+
+<!-- load the dashboard manager - it will do the rest -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
<meta property="og:site_name" content="netdata"/>
<meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
<meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
-
- <script type="text/javascript" src="dashboard.js?v51"></script>
</head>
+<script type="text/javascript" src="dashboard.js?v51"></script>
<body>
<div style="width: 100%; text-align: center;">
<meta property="og:site_name" content="netdata"/>
<meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
<meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
-
- <script>var netdataTheme = 'slate';</script>
- <script type="text/javascript" src="http://my-netdata.io/dashboard.js?v51"></script>
</head>
+<script>var netdataTheme = 'slate';</script>
+<script type="text/javascript" src="http://my-netdata.io/dashboard.js?v51"></script>
<body>
<div class="container" style="width: 90%; padding-top: 10px; text-align: center; color: #AAA">
<meta property="og:site_name" content="netdata"/>
<meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
<meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
+</head>
- <script>
+<script>
// --- OPTIONS FOR THE DASHBOARD --
// this section has to appear before loading dashboard.js
// set this to false, to always update the charts, even if focus is lost
NETDATA.options.current.stop_updates_when_focus_is_lost = true;
- </script>
+</script>
+<style>
+ body {
+ font-size: 1vw;
+ }
+
+ .mysparkline {
+ position: relative;
+ display: inline-block;
+ min-height: 50px;
+ width: 100%;
+ height: 8vmax;
+ text-align: left;
+ }
+
+ .mysparkline-overchart-label {
+ position: absolute;
+ display: block;
+ top: 0;
+ left: 10px;
+ bottom: 0;
+ right: 0;
+ font-size: 1vmax;
+ z-index: 1;
+ }
- <style>
-
-body {
- font-size: 1vw;
-}
-
-.mysparkline {
- position: relative;
- display: inline-block;
- min-height: 50px;
- width: 100%;
- height: 8vmax;
- text-align: left;
-}
-
-.mysparkline-overchart-label {
- position: absolute;
- display: block;
- top: 0;
- left: 10px;
- bottom: 0;
- right: 0;
- font-size: 1vmax;
- z-index: 1;
-}
-
-.mysparkline-overchart-value {
- position: absolute;
- display: block;
- top: 1.1vmax;
- left: 10px;
- bottom: 0;
- right: 0;
- font-size: 5vmax;
- z-index: 2;
- text-shadow: #333 0px 0px 2px;
-}
-
-.myfullchart {
- position: relative;
- display: inline-block;
- width: 100%;
- height: 14vmax;
- min-height: 150px;
- text-align: left;
-}
-
-.mygauge-combo {
- display: inline-block;
-}
-
-.mygauge {
- position: relative;
- display: block;
- width: 18vw;
- height: 11vw;
-}
-
-.mygauge-button {
- display: block;
-}
-
-.mytitle {
- padding-top: 6vw;
- padding-bottom: 1vw;
- text-align: center;
- font-size: 2.4vw;
-}
-
-.mysubtitle {
- padding-top: 2vw;
- padding-bottom: 1vw;
- text-align: center;
- font-size: 1.8vw;
-}
-
-.mycontent {
- text-align: center;
- font-size: 1.5vw;
-}
-
-@media only screen and (min-width : 992px) {
- .container {
- width: 90%;
+ .mysparkline-overchart-value {
+ position: absolute;
+ display: block;
+ top: 1.1vmax;
+ left: 10px;
+ bottom: 0;
+ right: 0;
+ font-size: 5vmax;
+ z-index: 2;
+ text-shadow: #333 0px 0px 2px;
}
-}
-@media only screen and (max-width : 992px) {
- .container {
+
+ .myfullchart {
+ position: relative;
+ display: inline-block;
width: 100%;
+ height: 14vmax;
+ min-height: 150px;
+ text-align: left;
}
-}
- </style>
-</head>
-<body style="text-align: center;">
+ .mygauge-combo {
+ display: inline-block;
+ }
+
+ .mygauge {
+ position: relative;
+ display: block;
+ width: 18vw;
+ height: 11vw;
+ }
+
+ .mygauge-button {
+ display: block;
+ }
+
+ .mytitle {
+ padding-top: 6vw;
+ padding-bottom: 1vw;
+ text-align: center;
+ font-size: 2.4vw;
+ }
+
+ .mysubtitle {
+ padding-top: 2vw;
+ padding-bottom: 1vw;
+ text-align: center;
+ font-size: 1.8vw;
+ }
+
+ .mycontent {
+ text-align: center;
+ font-size: 1.5vw;
+ }
+
+ @media only screen and (min-width : 992px) {
+ .container {
+ width: 80%;
+ }
+ }
+ @media only screen and (max-width : 992px) {
+ .container {
+ width: 100%;
+ }
+ }
+</style>
+
+<body style="text-align: center; background-color: #272b30;">
<div class="container">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
- <script>
- var netdataRegistry = true;
- var netdataRegistryAfterMs = 0;
- var netdataTheme = 'slate';
- var netdataShowHelp = true;
- </script>
- <script type="text/javascript" src="dashboard.js?v51"></script>
-
- <script>
- var urlOptions = {
- host: null,
- chart: null,
- family: null,
- alarm: null,
- alarm_unique_id: 0,
- alarm_id: 0,
- alarm_event_id: 0,
- hasProperty: function(property) {
- return typeof this[property] !== 'undefined';
- }
- };
-
- function netdataQueryParse() {
- var query = document.location.search.split('?');
- var variables = query[1].split('&');
- var len = variables.length;
- while(len--) {
- var p = variables[len].split('=');
- if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
- urlOptions[p[0]] = decodeURIComponent(p[1]);
- }
-
- if(typeof urlOptions.family !== 'string')
- urlOptions.family = '';
-
- if(typeof urlOptions.chart !== 'string')
- urlOptions.chart = '';
+</head>
+<script>
+ var netdataRegistry = true;
+ var netdataRegistryAfterMs = 0;
+ var netdataTheme = 'slate';
+ var netdataShowHelp = true;
+</script>
+<script type="text/javascript" src="dashboard.js?v51"></script>
+
+<script>
+var urlOptions = {
+ host: null,
+ chart: null,
+ family: null,
+ alarm: null,
+ alarm_unique_id: 0,
+ alarm_id: 0,
+ alarm_event_id: 0,
+ hasProperty: function(property) {
+ return typeof this[property] !== 'undefined';
}
-
- function netdataURL(url) {
- return url + '#top'
- + ';nowelcome=1'
- // + ';show_alarms=1'
- + ';chart=' + encodeURIComponent(urlOptions.chart)
- + ';family=' + encodeURIComponent(urlOptions.family)
- + ';alarm=' + encodeURIComponent(urlOptions.alarm)
- + ';alarm_unique_id=' + urlOptions.alarm_unique_id.toString()
- + ';alarm_id=' + urlOptions.alarm_id.toString()
- + ';alarm_event_id=' + urlOptions.alarm_event_id.toString()
- ;
+};
+
+function netdataQueryParse() {
+ var query = document.location.search.split('?');
+ var variables = query[1].split('&');
+ var len = variables.length;
+ while(len--) {
+ var p = variables[len].split('=');
+ if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
+ urlOptions[p[0]] = decodeURIComponent(p[1]);
}
- var gotoServerValidateRemaining = 0;
- var gotoServerMiddleClick = false;
- var gotoServerStop = false;
- var thisIsHttps = false;
- var urlsInHttp = 0;
- function gotoServerValidateUrl(id, guid, url) {
- var penaldy = 0;
- var error = 'failed';
-
- if(thisIsHttps === false && url.toString().startsWith('https://')) {
- // we penalize https only if the current url is http
- // to allow the user walk through all its servers.
- penaldy = 500;
- }
+ if(typeof urlOptions.family !== 'string')
+ urlOptions.family = '';
+
+ if(typeof urlOptions.chart !== 'string')
+ urlOptions.chart = '';
+}
+
+function netdataURL(url) {
+ return url + '#top'
+ + ';nowelcome=1'
+ // + ';show_alarms=1'
+ + ';chart=' + encodeURIComponent(urlOptions.chart)
+ + ';family=' + encodeURIComponent(urlOptions.family)
+ + ';alarm=' + encodeURIComponent(urlOptions.alarm)
+ + ';alarm_unique_id=' + urlOptions.alarm_unique_id.toString()
+ + ';alarm_id=' + urlOptions.alarm_id.toString()
+ + ';alarm_event_id=' + urlOptions.alarm_event_id.toString()
+ ;
+}
+
+var gotoServerValidateRemaining = 0;
+var gotoServerMiddleClick = false;
+var gotoServerStop = false;
+var thisIsHttps = false;
+var urlsInHttp = 0;
+function gotoServerValidateUrl(id, guid, url) {
+ var penaldy = 0;
+ var error = 'failed';
+
+ if(thisIsHttps === false && url.toString().startsWith('https://')) {
+ // we penalize https only if the current url is http
+ // to allow the user walk through all its servers.
+ penaldy = 500;
+ }
- else if(thisIsHttps === true && url.toString().startsWith('http://')) {
- error = 'can\'t check';
- urlsInHttp++;
- }
+ else if(thisIsHttps === true && url.toString().startsWith('http://')) {
+ error = 'can\'t check';
+ urlsInHttp++;
+ }
- var finalURL = netdataURL(url);
+ var finalURL = netdataURL(url);
- setTimeout(function() {
- document.getElementById('gotoServerList').innerHTML += '<tr><td style="padding-left: 20px;"><a href="' + finalURL + '" target="_blank">' + url + '</a></td><td style="padding-left: 30px;"><code id="' + guid + '-' + id + '-status">checking...</code></td></tr>';
+ setTimeout(function() {
+ document.getElementById('gotoServerList').innerHTML += '<tr><td style="padding-left: 20px;"><a href="' + finalURL + '" target="_blank">' + url + '</a></td><td style="padding-left: 30px;"><code id="' + guid + '-' + id + '-status">checking...</code></td></tr>';
- NETDATA.registry.hello(url, function(data) {
- if (data) {
- document.getElementById(guid + '-' + id + '-status').innerHTML = "OK";
+ NETDATA.registry.hello(url, function(data) {
+ if (data) {
+ document.getElementById(guid + '-' + id + '-status').innerHTML = "OK";
- if(!gotoServerStop) {
- gotoServerStop = true;
+ if(!gotoServerStop) {
+ gotoServerStop = true;
- if(gotoServerMiddleClick) {
- window.open(finalURL);
- gotoServerMiddleClick = false;
- document.getElementById('gotoServerResponse').innerHTML = '<b>Opening new window to ' + NETDATA.registry.machines[guid].name + '<br/><a href="' + finalURL + '">' + url + '</a></b><br/>(check your pop-up blocker if it fails)';
- }
- else
- document.location = finalURL;
+ if(gotoServerMiddleClick) {
+ window.open(finalURL);
+ gotoServerMiddleClick = false;
+ document.getElementById('gotoServerResponse').innerHTML = '<b>Opening new window to ' + NETDATA.registry.machines[guid].name + '<br/><a href="' + finalURL + '">' + url + '</a></b><br/>(check your pop-up blocker if it fails)';
}
+ else
+ document.location = finalURL;
}
- else {
- document.getElementById(guid + '-' + id + '-status').innerHTML = error;
- gotoServerValidateRemaining--;
- if(gotoServerValidateRemaining <= 0) {
- gotoServerMiddleClick = false;
- document.getElementById('gotoServerResponse').innerHTML = '<b>Sorry! I cannot find any operational URL for this server</b>';
-
- if(thisIsHttps === true && urlsInHttp > 0) {
- document.getElementById('gotoServerResponse').innerHTML += '<br/>redirecting myself to HTTP to allow checking';
- document.location = document.location.toString().replace('https://', 'http://');
- }
+ }
+ else {
+ document.getElementById(guid + '-' + id + '-status').innerHTML = error;
+ gotoServerValidateRemaining--;
+ if(gotoServerValidateRemaining <= 0) {
+ gotoServerMiddleClick = false;
+ document.getElementById('gotoServerResponse').innerHTML = '<b>Sorry! I cannot find any operational URL for this server</b>';
+
+ if(thisIsHttps === true && urlsInHttp > 0) {
+ document.getElementById('gotoServerResponse').innerHTML += '<br/>redirecting myself to HTTP to allow checking';
+ document.location = document.location.toString().replace('https://', 'http://');
}
}
- });
- }, (id * 50) + penaldy);
+ }
+ });
+ }, (id * 50) + penaldy);
+}
+
+var netdataRegistryCallback = function(machines_array) {
+ if(typeof urlOptions.host !== 'string') {
+ document.getElementById('bodylog').innerHTML = "Sorry... bad request.";
+ return;
}
- var netdataRegistryCallback = function(machines_array) {
- if(typeof urlOptions.host !== 'string') {
- document.getElementById('bodylog').innerHTML = "Sorry... bad request.";
- return;
- }
-
- document.getElementById('message').innerHTML = 'These are the URLs this machine is known:';
+ document.getElementById('message').innerHTML = 'These are the URLs this machine is known:';
- if(document.location.toString().startsWith('https://'))
- thisIsHttps = true;
+ if(document.location.toString().startsWith('https://'))
+ thisIsHttps = true;
- if(machines_array) {
- var len = machines_array.length;
- while(len--) {
- if(machines_array[len].name === urlOptions.host) {
- var ulen = machines_array[len].alternate_urls.length;
- gotoServerValidateRemaining = ulen;
- while(ulen--)
- gotoServerValidateUrl(ulen, machines_array[len].guid, machines_array[len].alternate_urls[ulen]);
- return;
- }
+ if(machines_array) {
+ var len = machines_array.length;
+ while(len--) {
+ if(machines_array[len].name === urlOptions.host) {
+ var ulen = machines_array[len].alternate_urls.length;
+ gotoServerValidateRemaining = ulen;
+ while(ulen--)
+ gotoServerValidateUrl(ulen, machines_array[len].guid, machines_array[len].alternate_urls[ulen]);
+ return;
}
}
+ }
- document.getElementById('bodylog').innerHTML = "Sorry... your account is not linked to a netdata server named: <b>" + urlOptions.host + '</b>';
- };
-
- netdataQueryParse();
- </script>
+ document.getElementById('bodylog').innerHTML = "Sorry... your account is not linked to a netdata server named: <b>" + urlOptions.host + '</b>';
+};
-</head>
+netdataQueryParse();
+</script>
<body>
<div class="container" id="">
<div id="bodylog" style="padding-top: 8vmax; font-size: 2.0vmax;">
<meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
<style>
-
/* prevent body from hiding under the navbar */
body {
padding-top: 50px;
}
</style>
+</head>
- <!-- check which theme to use -->
- <script type="text/javascript">
- // enable alarms checking and notifications
- var netdataShowAlarms = true;
-
- // enable registry updates
- var netdataRegistry = true;
-
- // --------------------------------------------------------------------
- // urlOptions
-
- var urlOptions = {
- hash: '#',
- theme: null,
- help: null,
- pan_and_zoom: false,
- after: 0,
- before: 0,
- nowelcome: false,
- show_alarms: false,
- chart: null,
- family: null,
- alarm: null,
- alarm_unique_id: 0,
- alarm_id: 0,
- alarm_event_id: 0,
- hasProperty: function(property) {
- // console.log('checking property ' + property + ' of type ' + typeof(this[property]));
- return typeof this[property] !== 'undefined';
- }
- };
+<!-- check which theme to use -->
+<script type="text/javascript">
+ // enable alarms checking and notifications
+ var netdataShowAlarms = true;
- function netdataPanAndZoomCallback(status, after, before) {
- urlOptions.pan_and_zoom = status;
- urlOptions.after = after;
- urlOptions.before = before;
- netdataHashUpdate();
+ // enable registry updates
+ var netdataRegistry = true;
+
+ // --------------------------------------------------------------------
+ // urlOptions
+
+ var urlOptions = {
+ hash: '#',
+ theme: null,
+ help: null,
+ pan_and_zoom: false,
+ after: 0,
+ before: 0,
+ nowelcome: false,
+ show_alarms: false,
+ chart: null,
+ family: null,
+ alarm: null,
+ alarm_unique_id: 0,
+ alarm_id: 0,
+ alarm_event_id: 0,
+ hasProperty: function(property) {
+ // console.log('checking property ' + property + ' of type ' + typeof(this[property]));
+ return typeof this[property] !== 'undefined';
}
+ };
- function netdataHashUpdate() {
- history.replaceState(null, '', netdataHash());
- }
+ function netdataPanAndZoomCallback(status, after, before) {
+ urlOptions.pan_and_zoom = status;
+ urlOptions.after = after;
+ urlOptions.before = before;
+ netdataHashUpdate();
+ }
- function netdataHash() {
- var hash = urlOptions.hash;
+ function netdataHashUpdate() {
+ history.replaceState(null, '', netdataHash());
+ }
- if(urlOptions.pan_and_zoom === true) {
- hash += ';after=' + urlOptions.after.toString() +
- ';before=' + urlOptions.before.toString();
- }
+ function netdataHash() {
+ var hash = urlOptions.hash;
- if(urlOptions.theme !== null)
- hash += ';theme=' + urlOptions.theme.toString();
+ if(urlOptions.pan_and_zoom === true) {
+ hash += ';after=' + urlOptions.after.toString() +
+ ';before=' + urlOptions.before.toString();
+ }
- if(urlOptions.help !== null)
- hash += ';help=' + urlOptions.help.toString();
+ if(urlOptions.theme !== null)
+ hash += ';theme=' + urlOptions.theme.toString();
- return hash;
- }
+ if(urlOptions.help !== null)
+ hash += ';help=' + urlOptions.help.toString();
- function netdataHashParse() {
- var variables = document.location.hash.split(';');
- var len = variables.length;
- while(len--) {
- if(len !== 0) {
- var p = variables[len].split('=');
- if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
- urlOptions[p[0]] = decodeURIComponent(p[1]);
- }
- else {
- if(variables[len].length > 0)
- urlOptions.hash = variables[len];
- }
- }
+ return hash;
+ }
- var booleans = [ 'nowelcome', 'show_alarms', 'pan_and_zoom' ];
- len = booleans.length;
- while(len--) {
- if(urlOptions[booleans[len]] === 'true' || urlOptions[booleans[len]] === true || urlOptions[booleans[len]] === '1' || urlOptions[booleans[len]] === 1)
- urlOptions[booleans[len]] = true;
- else
- urlOptions[booleans[len]] = false;
+ function netdataHashParse() {
+ var variables = document.location.hash.split(';');
+ var len = variables.length;
+ while(len--) {
+ if(len !== 0) {
+ var p = variables[len].split('=');
+ if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
+ urlOptions[p[0]] = decodeURIComponent(p[1]);
}
-
- if(urlOptions.before > 0 && urlOptions.after > 0) {
- urlOptions.pan_and_zoom = true;
- urlOptions.nowelcome = true;
+ else {
+ if(variables[len].length > 0)
+ urlOptions.hash = variables[len];
}
- else
- urlOptions.pan_and_zoom = false;
-
- // console.log(urlOptions);
}
- netdataHashParse();
+ var booleans = [ 'nowelcome', 'show_alarms', 'pan_and_zoom' ];
+ len = booleans.length;
+ while(len--) {
+ if(urlOptions[booleans[len]] === 'true' || urlOptions[booleans[len]] === true || urlOptions[booleans[len]] === '1' || urlOptions[booleans[len]] === 1)
+ urlOptions[booleans[len]] = true;
+ else
+ urlOptions[booleans[len]] = false;
+ }
- // --------------------------------------------------------------------
- // check options that should be processed before loading netdata.js
-
- function loadLocalStorage(name) {
- var ret = null;
+ if(urlOptions.before > 0 && urlOptions.after > 0) {
+ urlOptions.pan_and_zoom = true;
+ urlOptions.nowelcome = true;
+ }
+ else
+ urlOptions.pan_and_zoom = false;
- try {
- if(typeof Storage !== "undefined" && typeof localStorage === 'object')
- ret = localStorage.getItem(name);
- }
- catch(error) {
- ;
- }
+ // console.log(urlOptions);
+ }
- if(typeof ret === 'undefined' || ret === null)
- return null;
+ netdataHashParse();
- // console.log('loaded: ' + name.toString() + ' = ' + ret.toString());
+ // --------------------------------------------------------------------
+ // check options that should be processed before loading netdata.js
+
+ function loadLocalStorage(name) {
+ var ret = null;
- return ret;
+ try {
+ if(typeof Storage !== "undefined" && typeof localStorage === 'object')
+ ret = localStorage.getItem(name);
+ }
+ catch(error) {
+ ;
}
- function saveLocalStorage(name, value) {
- // console.log('saving: ' + name.toString() + ' = ' + value.toString());
- try {
- if(typeof Storage !== "undefined" && typeof localStorage === 'object') {
- localStorage.setItem(name, value.toString());
- return true;
- }
- }
- catch(error) {
- ;
- }
+ if(typeof ret === 'undefined' || ret === null)
+ return null;
- return false;
- }
+ // console.log('loaded: ' + name.toString() + ' = ' + ret.toString());
- function getTheme(def) {
- var ret = loadLocalStorage('netdataTheme');
- if(typeof ret === 'undefined' || ret === null || ret === 'undefined')
- return def;
- else
- return ret;
- }
+ return ret;
+ }
- function setTheme(theme) {
- if(theme === netdataTheme) return false;
- return saveLocalStorage('netdataTheme', theme);
+ function saveLocalStorage(name, value) {
+ // console.log('saving: ' + name.toString() + ' = ' + value.toString());
+ try {
+ if(typeof Storage !== "undefined" && typeof localStorage === 'object') {
+ localStorage.setItem(name, value.toString());
+ return true;
+ }
+ }
+ catch(error) {
+ ;
}
- var netdataTheme = getTheme('slate');
- var netdataShowHelp = true;
+ return false;
+ }
- if(urlOptions.theme !== null) {
- setTheme(urlOptions.theme);
- netdataTheme = urlOptions.theme;
- }
+ function getTheme(def) {
+ var ret = loadLocalStorage('netdataTheme');
+ if(typeof ret === 'undefined' || ret === null || ret === 'undefined')
+ return def;
else
- urlOptions.theme = netdataTheme;
+ return ret;
+ }
- if(urlOptions.help !== null) {
- saveLocalStorage('options.show_help', urlOptions.help);
- netdataShowHelp = urlOptions.help;
- }
- else {
- urlOptions.help = loadLocalStorage('options.show_help');
- }
+ function setTheme(theme) {
+ if(theme === netdataTheme) return false;
+ return saveLocalStorage('netdataTheme', theme);
+ }
- // --------------------------------------------------------------------
- // registry call back to render my-netdata menu
+ var netdataTheme = getTheme('slate');
+ var netdataShowHelp = true;
- var netdataRegistryCallback = function(machines_array) {
- var el = '';
- var a1 = '';
- var found = 0;
+ if(urlOptions.theme !== null) {
+ setTheme(urlOptions.theme);
+ netdataTheme = urlOptions.theme;
+ }
+ else
+ urlOptions.theme = netdataTheme;
- if(machines_array === null) {
- var ret = loadLocalStorage("registryCallback");
- if(typeof ret !== 'undefined' && ret !== null) {
- machines_array = JSON.parse(ret);
- console.log("failed to contact the registry - loaded registry data from browser local storage");
- }
- }
+ if(urlOptions.help !== null) {
+ saveLocalStorage('options.show_help', urlOptions.help);
+ netdataShowHelp = urlOptions.help;
+ }
+ else {
+ urlOptions.help = loadLocalStorage('options.show_help');
+ }
- if(machines_array) {
- saveLocalStorage("registryCallback", JSON.stringify(machines_array));
-
- var machines = machines_array.sort(function (a, b) {
- if (a.name > b.name) return -1;
- if (a.name < b.name) return 1;
- return 0;
- });
-
- var len = machines.length;
- while(len--) {
- var u = machines[len];
- found++;
- el += '<li id="registry_server_' + u.guid + '"><a class="registry_link" href="' + u.url + '" onClick="return gotoServerModalHandler(\'' + u.guid + '\');">' + u.name + '</a></li>';
- a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
- }
+ // --------------------------------------------------------------------
+ // registry call back to render my-netdata menu
+
+ var netdataRegistryCallback = function(machines_array) {
+ var el = '';
+ var a1 = '';
+ var found = 0;
+
+ if(machines_array === null) {
+ var ret = loadLocalStorage("registryCallback");
+ if(typeof ret !== 'undefined' && ret !== null) {
+ machines_array = JSON.parse(ret);
+ console.log("failed to contact the registry - loaded registry data from browser local storage");
}
+ }
- if(!found) {
- if(machines)
- el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
- else
- el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
-
- a1 += '<li><a href="#" onClick="return false;"> </a></li>';
-
- el += '<li role="separator" class="divider"></li>' +
- '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
- '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
- '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
- a1 += '<li role="separator" class="divider"></li>' +
- '<li><a href="#"> </a></li>' +
- '<li><a href="#"> </a></li>'+
- '<li><a href="#"> </a></li>';
+ if(machines_array) {
+ saveLocalStorage("registryCallback", JSON.stringify(machines_array));
+
+ var machines = machines_array.sort(function (a, b) {
+ if (a.name > b.name) return -1;
+ if (a.name < b.name) return 1;
+ return 0;
+ });
+
+ var len = machines.length;
+ while(len--) {
+ var u = machines[len];
+ found++;
+ el += '<li id="registry_server_' + u.guid + '"><a class="registry_link" href="' + u.url + '" onClick="return gotoServerModalHandler(\'' + u.guid + '\');">' + u.name + '</a></li>';
+ a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
}
+ }
- el += '<li role="separator" class="divider"></li>';
- a1 += '<li role="separator" class="divider"></li>';
+ if(!found) {
+ if(machines)
+ el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
+ else
+ el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
+
+ a1 += '<li><a href="#" onClick="return false;"> </a></li>';
+
+ el += '<li role="separator" class="divider"></li>' +
+ '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
+ '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
+ '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
+ a1 += '<li role="separator" class="divider"></li>' +
+ '<li><a href="#"> </a></li>' +
+ '<li><a href="#"> </a></li>'+
+ '<li><a href="#"> </a></li>';
+ }
- el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
- a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-sliders" aria-hidden="true" style="color: #999;"></i></a></li>'
+ el += '<li role="separator" class="divider"></li>';
+ a1 += '<li role="separator" class="divider"></li>';
- document.getElementById('mynetdata_servers').innerHTML = el;
- document.getElementById('mynetdata_servers2').innerHTML = el;
- document.getElementById('mynetdata_actions1').innerHTML = a1;
+ el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
+ a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-sliders" aria-hidden="true" style="color: #999;"></i></a></li>'
- gotoServerInit();
- };
+ document.getElementById('mynetdata_servers').innerHTML = el;
+ document.getElementById('mynetdata_servers2').innerHTML = el;
+ document.getElementById('mynetdata_actions1').innerHTML = a1;
- </script>
+ gotoServerInit();
+ };
+
+</script>
- <!-- load the dashboard manager - it will do the rest -->
- <script type="text/javascript" src="dashboard.js?v51"></script>
-</head>
<body data-spy="scroll" data-target="#sidebar">
<div id="loadOverlay" class="loadOverlay" style="background-color: #888; color: #888;">
netdata<br/><div style="font-size: 3vh;">Real-time performance monitoring, done right!</div>
</div>
</div>
+<!-- load the dashboard manager - it will do the rest -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
<script type="text/javascript">
var this_is_demo = null;
function isdemo() {
"description": "Real time data collection and graphs...",
"version": "1.2.1_master"
},
- "host": "netdata.firehol.org",
+ "host": "registry.my-netdata.io",
"schemes": [
"http"
],
title: NetData API
description: 'Real time data collection and graphs...'
version: 1.2.1_master
-host: netdata.firehol.org
+host: registry.my-netdata.io
schemes:
- http
basePath: /api/v1
<meta property="og:site_name" content="netdata"/>
<meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
<meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
-
- <script>
- // this section has to appear before loading dashboard.js
-
- // Select a theme.
- // uncomment on of the two themes:
-
- // var netdataTheme = 'default'; // this is white
- var netdataTheme = 'slate'; // this is dark
-
-
- // Set the default netdata server.
- // on charts without a 'data-host', this one will be used.
- // the default is the server that dashboard.js is downloaded from.
-
- // var netdataServer = 'http://my.server:19999/';
-
- function registryGotoServer(guid) {
- console.log('goto server: ' + guid);
- }
-
- function registryAddServer(u) {
- return '<div id="registry_server_' + u.guid + '" class="registry-server-container" onClick="registryGotoServer(\'' + u.guid + '\'); return false;">'
- + '<div class="registry-server-name">' + u.name + '</div>'
- + '<div data-netdata="system.cpu"'
- + ' data-host="' + u.url + '"'
- + ' data-chart-library="sparkline"'
- + ' data-sparkline-chartrangemin="0"'
- + ' data-sparkline-chartrangemax="100"'
- + ' data-sparkline-chartrangeclip="true"'
- + ' data-sparkline-disabletooltips="true"'
- + ' data-sparkline-disableinteraction="true"'
- + ' data-sparkline-disablehighlight="true"'
- + ' data-sparkline-linecolor="#444"'
- + ' data-sparkline-spotcolor="disable"'
- + ' data-sparkline-minspotcolor="disable"'
- + ' data-sparkline-maxspotcolor="disable"'
- + ' data-width="100%"'
- + ' data-height="20px"'
- + ' data-after="-200"'
- + '></div>'
- + '</div>';
- }
-
- var netdataRegistryCallback = function(machines_array) {
- var el = '';
- var a1 = '';
- var found = 0;
-
- if(machines_array) {
- function name_comparator_desc(a, b) {
- if (a.name > b.name) return -1;
- if (a.name < b.name) return 1;
- return 0;
- }
-
- var machines = machines_array.sort(name_comparator_desc);
- var len = machines.length;
- while(len--) {
- var u = machines[len];
-
- var status = "enabled";
- found++;
-
- if(u.guid === NETDATA.registry.machine_guid)
- status = "disabled"
-
- el += registryAddServer(u);
- a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
- }
- }
-
- if(!found) {
- if(machines)
- el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
- else
- el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
-
- a1 += '<li><a href="#"> </a></li>';
-
- el += '<li role="separator" class="divider"></li>' +
- '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
- '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
- '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
- a1 += '<li role="separator" class="divider"></li>' +
- '<li><a href="#"> </a></li>' +
- '<li><a href="#"> </a></li>'+
- '<li><a href="#"> </a></li>';
- }
-
- el += '<li role="separator" class="divider"></li>';
- a1 += '<li role="separator" class="divider"></li>';
-
- el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
- a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-cog" aria-hidden="true" style="color: #999;"></i></a></li>'
-
- document.getElementById('mynetdata_servers').innerHTML = el;
- //document.getElementById('mynetdata_servers2').innerHTML = el;
- //document.getElementById('mynetdata_actions1').innerHTML = a1;
- NETDATA.updatedDom();
- };
- </script>
-
- <!--
- Load dashboard.js
-
- to host this HTML file on your web server,
- you have to load dashboard.js from the netdata server.
-
- So, pick one the two below
- If you pick the first, set the server name/IP.
-
- The second assumes you host this file on /usr/share/netdata/web
- and that you have chown it to be owned by netdata:netdata
- -->
- <!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
- <script type="text/javascript" src="dashboard.js?v51"></script>
-
- <script>
- // Set options for TV operation
- // This has to be done, after dashboard.js is loaded
-
- // destroy charts not shown (lowers memory on the browser)
- NETDATA.options.current.destroy_on_hide = true;
-
- // set this to false, to always show all dimensions
- NETDATA.options.current.eliminate_zero_dimensions = true;
-
- // lower the pressure on this browser
- NETDATA.options.current.concurrent_refreshes = true;
-
- // if the tv browser is too slow (a pi?)
- // set this to false
- NETDATA.options.current.parallel_refresher = true;
-
- // always update the charts, even if focus is lost
- // NETDATA.options.current.stop_updates_when_focus_is_lost = false;
- </script>
<style>
.registry-container {
}
</style>
</head>
+<script>
+// this section has to appear before loading dashboard.js
+
+// Select a theme.
+// uncomment on of the two themes:
+
+// var netdataTheme = 'default'; // this is white
+var netdataTheme = 'slate'; // this is dark
+
+
+// Set the default netdata server.
+// on charts without a 'data-host', this one will be used.
+// the default is the server that dashboard.js is downloaded from.
+
+// var netdataServer = 'http://my.server:19999/';
+
+function registryGotoServer(guid) {
+ console.log('goto server: ' + guid);
+}
+
+function registryAddServer(u) {
+ return '<div id="registry_server_' + u.guid + '" class="registry-server-container" onClick="registryGotoServer(\'' + u.guid + '\'); return false;">'
+ + '<div class="registry-server-name">' + u.name + '</div>'
+ + '<div data-netdata="system.cpu"'
+ + ' data-host="' + u.url + '"'
+ + ' data-chart-library="sparkline"'
+ + ' data-sparkline-chartrangemin="0"'
+ + ' data-sparkline-chartrangemax="100"'
+ + ' data-sparkline-chartrangeclip="true"'
+ + ' data-sparkline-disabletooltips="true"'
+ + ' data-sparkline-disableinteraction="true"'
+ + ' data-sparkline-disablehighlight="true"'
+ + ' data-sparkline-linecolor="#444"'
+ + ' data-sparkline-spotcolor="disable"'
+ + ' data-sparkline-minspotcolor="disable"'
+ + ' data-sparkline-maxspotcolor="disable"'
+ + ' data-width="100%"'
+ + ' data-height="20px"'
+ + ' data-after="-200"'
+ + '></div>'
+ + '</div>';
+}
+
+var netdataRegistryCallback = function(machines_array) {
+ var el = '';
+ var a1 = '';
+ var found = 0;
+
+ if(machines_array) {
+ function name_comparator_desc(a, b) {
+ if (a.name > b.name) return -1;
+ if (a.name < b.name) return 1;
+ return 0;
+ }
+
+ var machines = machines_array.sort(name_comparator_desc);
+ var len = machines.length;
+ while(len--) {
+ var u = machines[len];
+
+ var status = "enabled";
+ found++;
+
+ if(u.guid === NETDATA.registry.machine_guid)
+ status = "disabled"
+
+ el += registryAddServer(u);
+ a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
+ }
+ }
+
+ if(!found) {
+ if(machines)
+ el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">your netdata server list is empty...</a></li>';
+ else
+ el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #666;" target="_blank">failed to contact the registry...</a></li>';
+
+ a1 += '<li><a href="#"> </a></li>';
+
+ el += '<li role="separator" class="divider"></li>' +
+ '<li><a href="//london.netdata.rocks/default.html">EU - London (DigitalOcean.com)</a></li>' +
+ '<li><a href="//atlanta.netdata.rocks/default.html">US - Atlanta (CDN77.com)</a></li>' +
+ '<li><a href="//athens.netdata.rocks/default.html">EU - Athens</a></li>';
+ a1 += '<li role="separator" class="divider"></li>' +
+ '<li><a href="#"> </a></li>' +
+ '<li><a href="#"> </a></li>'+
+ '<li><a href="#"> </a></li>';
+ }
+
+ el += '<li role="separator" class="divider"></li>';
+ a1 += '<li role="separator" class="divider"></li>';
+
+ el += '<li><a href="https://github.com/firehol/netdata/wiki/mynetdata-menu-item" style="color: #999;" target="_blank">What is this?</a></li>';
+ a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-cog" aria-hidden="true" style="color: #999;"></i></a></li>'
+
+ document.getElementById('mynetdata_servers').innerHTML = el;
+ //document.getElementById('mynetdata_servers2').innerHTML = el;
+ //document.getElementById('mynetdata_actions1').innerHTML = a1;
+ NETDATA.updatedDom();
+};
+</script>
+
+<!--
+ Load dashboard.js
+
+ to host this HTML file on your web server,
+ you have to load dashboard.js from the netdata server.
+
+ So, pick one the two below
+ If you pick the first, set the server name/IP.
+
+ The second assumes you host this file on /usr/share/netdata/web
+ and that you have chown it to be owned by netdata:netdata
+-->
+<!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
+
+<script>
+// Set options for TV operation
+// This has to be done, after dashboard.js is loaded
+
+// destroy charts not shown (lowers memory on the browser)
+NETDATA.options.current.destroy_on_hide = true;
+
+// set this to false, to always show all dimensions
+NETDATA.options.current.eliminate_zero_dimensions = true;
+
+// lower the pressure on this browser
+NETDATA.options.current.concurrent_refreshes = true;
+
+// if the tv browser is too slow (a pi?)
+// set this to false
+NETDATA.options.current.parallel_refresher = true;
+
+// always update the charts, even if focus is lost
+// NETDATA.options.current.stop_updates_when_focus_is_lost = false;
+</script>
<body>
<div id="mynetdata_servers" class="registry-container" onscroll="NETDATA.onscroll();">
<meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
<meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
- <script>
- // this section has to appear before loading dashboard.js
+</head>
+<script>
+// this section has to appear before loading dashboard.js
- // Select a theme.
- // uncomment on of the two themes:
+// Select a theme.
+// uncomment on of the two themes:
- // var netdataTheme = 'default'; // this is white
- var netdataTheme = 'slate'; // this is dark
+// var netdataTheme = 'default'; // this is white
+var netdataTheme = 'slate'; // this is dark
- // Set the default netdata server.
- // on charts without a 'data-host', this one will be used.
- // the default is the server that dashboard.js is downloaded from.
+// Set the default netdata server.
+// on charts without a 'data-host', this one will be used.
+// the default is the server that dashboard.js is downloaded from.
- // var netdataServer = 'http://my.server:19999/';
- </script>
+// var netdataServer = 'http://my.server:19999/';
+</script>
- <!--
- Load dashboard.js
+<!--
+ Load dashboard.js
- to host this HTML file on your web server,
- you have to load dashboard.js from the netdata server.
+ to host this HTML file on your web server,
+ you have to load dashboard.js from the netdata server.
- So, pick one the two below
- If you pick the first, set the server name/IP.
+ So, pick one the two below
+ If you pick the first, set the server name/IP.
- The second assumes you host this file on /usr/share/netdata/web
- and that you have chown it to be owned by netdata:netdata
- -->
- <!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
- <script type="text/javascript" src="dashboard.js?v51"></script>
+ The second assumes you host this file on /usr/share/netdata/web
+ and that you have chown it to be owned by netdata:netdata
+-->
+<!-- <script type="text/javascript" src="http://my.server:19999/dashboard.js"></script> -->
+<script type="text/javascript" src="dashboard.js?v51"></script>
- <script>
- // Set options for TV operation
- // This has to be done, after dashboard.js is loaded
+<script>
+// Set options for TV operation
+// This has to be done, after dashboard.js is loaded
- // destroy charts not shown (lowers memory on the browser)
- NETDATA.options.current.destroy_on_hide = true;
-
- // set this to false, to always show all dimensions
- NETDATA.options.current.eliminate_zero_dimensions = true;
-
- // lower the pressure on this browser
- NETDATA.options.current.concurrent_refreshes = false;
+// destroy charts not shown (lowers memory on the browser)
+NETDATA.options.current.destroy_on_hide = true;
- // if the tv browser is too slow (a pi?)
- // set this to false
- NETDATA.options.current.parallel_refresher = true;
+// set this to false, to always show all dimensions
+NETDATA.options.current.eliminate_zero_dimensions = true;
- // always update the charts, even if focus is lost
- // NETDATA.options.current.stop_updates_when_focus_is_lost = false;
+// lower the pressure on this browser
+NETDATA.options.current.concurrent_refreshes = false;
- // Since you may render charts from many servers and any of them may
- // become offline for some time, the charts will break.
- // This will reload the page every RELOAD_EVERY minutes
+// if the tv browser is too slow (a pi?)
+// set this to false
+NETDATA.options.current.parallel_refresher = true;
- var RELOAD_EVERY = 5;
- setTimeout(function(){
- location.reload();
- }, RELOAD_EVERY * 60 * 1000);
+// always update the charts, even if focus is lost
+// NETDATA.options.current.stop_updates_when_focus_is_lost = false;
- </script>
+// Since you may render charts from many servers and any of them may
+// become offline for some time, the charts will break.
+// This will reload the page every RELOAD_EVERY minutes
-</head>
+var RELOAD_EVERY = 5;
+setTimeout(function(){
+ location.reload();
+}, RELOAD_EVERY * 60 * 1000);
+
+</script>
<body>
<div style="width: 100%; text-align: center; display: inline-block;">
<div style="width: 100%; height: calc(100% - 15px); text-align: center; display: inline-block;">
<br/>
<div data-netdata="system.cpu"
- data-host="http://netdata.firehol.org"
- data-title="CPU usage of netdata.firehol.org"
+ data-host="http://registry.my-netdata.io"
+ data-title="CPU usage of registry.my-netdata.io"
data-chart-library="dygraph"
data-width="49%"
data-height="100%"
</div>
<div style="width: 100%; height: calc(100% - 15px); text-align: center; display: inline-block;">
<div data-netdata="system.io"
- data-host="http://netdata.firehol.org"
- data-title="I/O on netdata.firehol.org"
+ data-host="http://registry.my-netdata.io"
+ data-title="I/O on registry.my-netdata.io"
data-chart-library="dygraph"
data-width="49%"
data-height="100%"
</div>
<div style="width: 100%; height: calc(100% - 15px); text-align: center; display: inline-block;">
<div data-netdata="system.ipv4"
- data-host="http://netdata.firehol.org"
- data-title="IPv4 traffic on netdata.firehol.org"
+ data-host="http://registry.my-netdata.io"
+ data-title="IPv4 traffic on registry.my-netdata.io"
data-chart-library="dygraph"
data-width="49%"
data-height="100%"
</div>
<div style="width: 100%; max-height: calc(100% - 15px); text-align: center; display: inline-block;">
<div style="width: 49%; height:100%; align: center; display: inline-block;">
- netdata.firehol.org
+ registry.my-netdata.io
<br/>
<div data-netdata="netdata.requests"
- data-host="http://netdata.firehol.org"
+ data-host="http://registry.my-netdata.io"
data-title="Chart Refreshes/s"
data-chart-library="gauge"
data-width="20%"
data-points="300"
></div>
<div data-netdata="netdata.clients"
- data-host="http://netdata.firehol.org"
+ data-host="http://registry.my-netdata.io"
data-title="Sockets"
data-chart-library="gauge"
data-width="20%"
></div>
<div data-netdata="netdata.net"
data-dimensions="in"
- data-host="http://netdata.firehol.org"
+ data-host="http://registry.my-netdata.io"
data-title="Requests Traffic"
data-chart-library="easypiechart"
data-width="15%"
></div>
<div data-netdata="netdata.net"
data-dimensions="out"
- data-host="http://netdata.firehol.org"
+ data-host="http://registry.my-netdata.io"
data-title="Chart Data Traffic"
data-chart-library="easypiechart"
data-width="15%"