4 <title>NetData Dashboard</title>
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9 <meta name="viewport" content="width=device-width, initial-scale=1">
10 <meta name="apple-mobile-web-app-capable" content="yes">
11 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
12 <meta name="author" content="costa@tsaousis.gr">
14 <meta property="og:locale" content="en_US" />
15 <meta property="og:image" content="https://my-netdata.io/images/seo-performance-512.png"/>
16 <meta property="og:url" content="http://my-netdata.io/"/>
17 <meta property="og:type" content="website"/>
18 <meta property="og:site_name" content="netdata"/>
19 <meta property="og:title" content="netdata - real-time performance monitoring, done right!"/>
20 <meta property="og:description" content="Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance." />
24 <div class="container-fluid">
26 <h1>NetData Custom Dashboard <div data-netdata="system.cpu" data-chart-library="sparkline" data-height="30" data-after="-600" data-sparkline-linecolor="#888"></div></h1>
28 This is a template for building custom dashboards. To build a dashboard you just do this:
34 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
35 <meta charset="utf-8">
36 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
37 <meta name="viewport" content="width=device-width, initial-scale=1">
38 <meta name="apple-mobile-web-app-capable" content="yes">
39 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
42 <div data-netdata="system.processes"
43 data-chart-library="dygraph"
49 <script type="text/javascript" src="http://netdata.server:19999/dashboard.js"></script>
54 <li>You can host your dashboard anywhere.</li>
55 <li>You can add as many charts as you like.</li>
56 <li>You can have charts from many different netdata servers (add <pre>data-host="http://another.netdata.server:19999/"</pre> to each chart).</li>
57 <li>You can use different chart libraries on the same page: <b>peity</b>, <b>sparkline</b>, <b>dygraph</b>, <b>google</b>, <b>morris</b></li>
58 <li>You can customize each chart to your preferences. For each chart library most of their attributes can be given in <b>data-</b> attributes.</li>
59 <li>Each chart can have each own duration - it is controlled with the <b>data-after</b> attribute to give that many seconds of data.</li>
60 <li>Depending on the width of the chart and <b>data-after</b> attribute, netdata will automatically refresh the chart when it needs to be updated. For example giving 600 pixels for width for -600 seconds of data, using a chart library that needs 3 pixels per point, will yeld in a chart updated once every 3 seconds.</li>
65 <h1>Sparkline Charts</h1>
66 Sparkline charts support 'NULL' values, so the charts can indicate that values are missing.
67 Sparkline charts stretch the values to show the variations between values in more detail.
68 They also have mouse-hover support.
70 <b>Sparklines are fantastic</b>. You can inline charts in text. For example this
71 <div data-netdata="system.cpu"
72 data-chart-library="sparkline"
76 ></div> is my current cpu usage (last 30 seconds),
78 <div data-netdata="netdata.net"
80 data-chart-library="sparkline"
84 ></div> is the bandwidth my netdata server is currently transmitting (last minute)
86 <div data-netdata="netdata.requests"
87 data-chart-library="sparkline"
91 ></div> is the requests/sec it serves (last 3 minutes).
94 <div style="width: 33%; display: inline-block;">
95 <div data-netdata="system.processes"
96 data-chart-library="sparkline"
100 data-dt-element-name="time101"
103 <small>rendered in <span id="time101">X</span> ms</small>
105 <div style="width: 33%; display: inline-block;">
106 <div data-netdata="system.ipv4"
107 data-chart-library="sparkline"
111 data-dt-element-name="time102"
114 <small>rendered in <span id="time102">X</span> ms</small>
116 <div style="width: 33%; display: inline-block;">
117 <div data-netdata="system.cpu"
118 data-chart-library="sparkline"
122 data-dt-element-name="time103"
125 <small>rendered in <span id="time103">X</span> ms</small>
131 <h1>Peity Charts</h1>
132 Peity charts do not support 'NULL' values, so the charts cannot indicate that values are missing.
133 Peity charts cannot have multiple dimensions on the charts - so netdata will use 'min2max' to show
134 the total of all dimensions.
136 <div style="width: 33%; display: inline-block;">
137 <div data-netdata="system.processes"
138 data-chart-library="peity"
142 data-dt-element-name="time001"
145 <small>rendered in <span id="time001">X</span> ms</small>
147 <div style="width: 33%; display: inline-block;">
148 <div data-netdata="system.ipv4"
149 data-chart-library="peity"
153 data-dt-element-name="time002"
156 <small>rendered in <span id="time002">X</span> ms</small>
158 <div style="width: 33%; display: inline-block;">
159 <div data-netdata="system.cpu"
160 data-chart-library="peity"
164 data-dt-element-name="time003"
167 <small>rendered in <span id="time003">X</span> ms</small>
174 <h1>Dygraph Charts</h1>
175 The fastest charting engine that can chart complete charts (not just sparklines).
176 The charts are zoomable (drag their contents to pan, shift with mouse wheel to zoom-in or zoom-out, double click to reset it).
177 <b>Netdata magic!</b> Realtime charts on your web page!
179 Sparklines using dygraphs
180 <div data-netdata="system.processes"
181 data-chart-library="dygraph"
182 data-dygraph-theme="sparkline"
188 are also possible! This
189 <div data-netdata="system.ipv4"
190 data-chart-library="dygraph"
191 data-dygraph-theme="sparkline"
197 is an area chart, while this
198 <div data-netdata="system.cpu"
199 data-chart-library="dygraph"
200 data-dygraph-theme="sparkline"
205 ></div> is a stacked area chart!
209 <div style="width: 33%; display: inline-block;">
210 <div data-netdata="system.processes"
211 data-chart-library="dygraph"
212 data-dygraph-theme="sparkline"
216 data-dt-element-name="time501"
219 <small>rendered in <span id="time501">X</span> ms</small>
221 <div style="width: 33%; display: inline-block;">
222 <div data-netdata="system.ipv4"
223 data-chart-library="dygraph"
224 data-dygraph-theme="sparkline"
228 data-dt-element-name="time502"
231 <small>rendered in <span id="time502">X</span> ms</small>
233 <div style="width: 33%; display: inline-block;">
234 <div data-netdata="system.cpu"
235 data-chart-library="dygraph"
236 data-dygraph-theme="sparkline"
240 data-dt-element-name="time503"
243 <small>rendered in <span id="time503">X</span> ms</small>
249 <div style="width: 33%; display: inline-block;">
250 <div data-netdata="system.processes"
251 data-chart-library="dygraph"
255 data-dt-element-name="time201"
258 <small>rendered in <span id="time201">X</span> ms</small>
260 <div style="width: 33%; display: inline-block;">
261 <div data-netdata="system.ipv4"
262 data-chart-library="dygraph"
266 data-dt-element-name="time202"
269 <small>rendered in <span id="time202">X</span> ms</small>
271 <div style="width: 33%; display: inline-block;">
272 <div data-netdata="system.cpu"
273 data-chart-library="dygraph"
277 data-dt-element-name="time203"
280 <small>rendered in <span id="time203">X</span> ms</small>
282 <div style="width: 33%; display: inline-block;">
283 <div data-netdata="system.io"
284 data-chart-library="dygraph"
288 data-dt-element-name="time204"
291 <small>rendered in <span id="time204">X</span> ms</small>
293 <div style="width: 33%; display: inline-block;">
294 <div data-netdata="apps.cpu"
295 data-chart-library="dygraph"
299 data-dt-element-name="time205"
302 <small>rendered in <span id="time205">X</span> ms</small>
304 <div style="width: 33%; display: inline-block;">
305 <div data-netdata="netdata.net"
306 data-chart-library="dygraph"
310 data-dt-element-name="time206"
313 <small>rendered in <span id="time206">X</span> ms</small>
315 <div style="width: 33%; display: inline-block;">
316 <div data-netdata="netdata.server_cpu"
317 data-chart-library="dygraph"
321 data-dt-element-name="time207"
324 <small>rendered in <span id="time207">X</span> ms</small>
326 <div style="width: 33%; display: inline-block;">
327 <div data-netdata="netdata.requests"
328 data-chart-library="dygraph"
332 data-dt-element-name="time208"
335 <small>rendered in <span id="time208">X</span> ms</small>
337 <div style="width: 33%; display: inline-block;">
338 <div data-netdata="net.gstag0"
339 data-chart-library="dygraph"
343 data-dt-element-name="time209"
346 <small>rendered in <span id="time209">X</span> ms</small>
352 <h1>EasyPieChart</h1>
354 <div style="width: 33%; display: inline-block;">
355 <div style="display: inline-block; position: relative;">
356 <div data-netdata="system.processes"
357 data-chart-library="easypiechart"
362 data-dt-element-name="time601"
365 <small>rendered in <span id="time601">X</span> ms</small>
367 <div style="display: inline-block; position: relative;">
368 <div data-netdata="system.processes"
369 data-chart-library="easypiechart"
374 data-dt-element-name="time601a"
377 <small>rendered in <span id="time601a">X</span> ms</small>
380 <div style="width: 33%; display: inline-block;">
381 <div style="display: inline-block; position: relative;">
382 <div data-netdata="system.ipv4"
383 data-chart-library="easypiechart"
388 data-dt-element-name="time602"
391 <small>rendered in <span id="time602">X</span> ms</small>
393 <div style="display: inline-block; position: relative;">
394 <div data-netdata="system.ipv4"
395 data-chart-library="easypiechart"
400 data-dt-element-name="time602a"
403 <small>rendered in <span id="time602a">X</span> ms</small>
406 <div style="width: 33%; display: inline-block;">
407 <div style="display: inline-block; position: relative;">
408 <div data-netdata="system.cpu"
409 data-chart-library="easypiechart"
414 data-dt-element-name="time603"
417 <small>rendered in <span id="time603">X</span> ms</small>
419 <div style="display: inline-block; position: relative;">
420 <div data-netdata="system.cpu"
421 data-chart-library="easypiechart"
426 data-dt-element-name="time603a"
429 <small>rendered in <span id="time603a">X</span> ms</small>
437 <div style="width: 33%; display: inline-block;">
438 <div style="display: inline-block; position: relative;">
439 <div data-netdata="system.processes"
440 data-chart-library="gauge"
445 data-dt-element-name="time701"
448 <small>rendered in <span id="time701">X</span> ms</small>
450 <div style="display: inline-block; position: relative;">
451 <div data-netdata="system.processes"
452 data-chart-library="gauge"
457 data-dt-element-name="time701a"
460 <small>rendered in <span id="time701a">X</span> ms</small>
463 <div style="width: 33%; display: inline-block;">
464 <div style="display: inline-block; position: relative;">
465 <div data-netdata="system.ipv4"
466 data-chart-library="gauge"
471 data-dt-element-name="time702"
474 <small>rendered in <span id="time702">X</span> ms</small>
476 <div style="display: inline-block; position: relative;">
477 <div data-netdata="system.ipv4"
478 data-chart-library="gauge"
483 data-dt-element-name="time702a"
486 <small>rendered in <span id="time702a">X</span> ms</small>
489 <div style="width: 33%; display: inline-block;">
490 <div style="display: inline-block; position: relative;">
491 <div data-netdata="system.cpu"
492 data-chart-library="gauge"
497 data-dt-element-name="time703"
500 <small>rendered in <span id="time703">X</span> ms</small>
502 <div style="display: inline-block; position: relative;">
503 <div data-netdata="system.cpu"
504 data-chart-library="gauge"
509 data-dt-element-name="time703a"
512 <small>rendered in <span id="time703a">X</span> ms</small>
518 <h1>Google Charts</h1>
519 NetData was originaly developed with Google Charts.
520 NetData is a complete Google Visualization API provider.
522 <div style="width: 33%; display: inline-block;">
523 <div data-netdata="system.processes"
524 data-chart-library="google"
528 data-dt-element-name="time301"
531 <small>rendered in <span id="time301">X</span> ms</small>
533 <div style="width: 33%; display: inline-block;">
534 <div data-netdata="system.ipv4"
535 data-chart-library="google"
539 data-dt-element-name="time302"
542 <small>rendered in <span id="time302">X</span> ms</small>
544 <div style="width: 33%; display: inline-block;">
545 <div data-netdata="system.cpu"
546 data-chart-library="google"
550 data-dt-element-name="time303"
553 <small>rendered in <span id="time303">X</span> ms</small>
562 <h1>Morris Charts</h1>
563 Unfortunatelly, Morris Charts are very slow. Here we force them to lower their detail to get acceptable results.
565 <div style="width: 33%; display: inline-block;">
566 <div data-netdata="system.processes"
567 data-chart-library="morris"
571 data-dt-element-name="time401"
574 <small>rendered in <span id="time401">X</span> ms</small>
576 <div style="width: 33%; display: inline-block;">
577 <div data-netdata="system.ipv4"
578 data-chart-library="morris"
582 data-dt-element-name="time402"
585 <small>rendered in <span id="time402">X</span> ms</small>
587 <div style="width: 33%; display: inline-block;">
588 <div data-netdata="system.cpu"
589 data-chart-library="morris"
593 data-dt-element-name="time403"
596 <small>rendered in <span id="time403">X</span> ms</small>
602 C3 charts are not usable in large scale. They suffer from the following issues:
604 <li>extreme use of transitions (implemented with D3 instead of CSS, meaning they are javascript rendered) that cannot be disabled - even opacity is hardcoded in the javascript library</li>
605 <li>rendering is done with <code>SVG</code> instead of <code>canvas</code>, so they use DOM elements for every point, becomimg useless if more than 500 points are drawn</li>
606 <li>lack of a <code>raw</code> data format, so every time a chart is updated, data convertion in javascript is required</li>
607 <li>lack of <code>stacked</code> charts support</li>
609 So, to avoid flashing the charts, we destroy and re-create the charts on each update. Also, since they manipulate the data with javascript we were forced to lower the detail they render to get acceptable speeds.
611 <div style="width: 33%; display: inline-block;">
612 <div data-netdata="system.processes"
613 data-chart-library="c3"
617 data-dt-element-name="time801"
620 <small>rendered in <span id="time801">X</span> ms</small>
622 <div style="width: 33%; display: inline-block;">
623 <div data-netdata="system.ipv4"
624 data-chart-library="c3"
628 data-dt-element-name="time802"
631 <small>rendered in <span id="time802">X</span> ms</small>
633 <div style="width: 33%; display: inline-block;">
634 <div data-netdata="system.cpu"
635 data-chart-library="c3"
639 data-dt-element-name="time803"
642 <small>rendered in <span id="time803">X</span> ms</small>
649 </div> <!-- 1st container -->
652 <!-- you can set your netdata server globally, by ucommenting this -->
653 <!-- you can also give a different server per chart, with the attribute: data-host="http://netdata.server:19999" -->
654 <!-- <script> netdataServer = "http://box:19999"; </script> -->
656 <!-- load the dashboard manager - it will do the rest -->
657 <script type="text/javascript" src="dashboard.js?v38"></script>