123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699 |
- <!DOCTYPE html>
- <!-- SPDX-License-Identifier: GPL-3.0-or-later -->
- <html lang="en">
- <head>
- <title>Netdata Dashboard</title>
- <meta name="application-name" content="netdata">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
- <meta name="author" content="costa@tsaousis.gr">
- <meta property="og:locale" content="en_US" />
- <meta property="og:image" content="https://cloud.githubusercontent.com/assets/2662304/22945737/e98cd0c6-f2fd-11e6-96f1-5501934b0955.png"/>
- <meta property="og:url" content="http://my-netdata.io/"/>
- <meta property="og:type" content="website"/>
- <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>
- <body>
- <div class="container-fluid">
- <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>
- This is a template for building custom dashboards. To build a dashboard you just do this:
- <pre>
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
- </head>
- <body>
- <div data-netdata="system.processes"
- data-chart-library="dygraph"
- data-width="600"
- data-height="200"
- data-after="-600"
- ></div>
- </body>
- <script type="text/javascript" src="http://netdata.server:19999/dashboard.js"></script>
- </html>
- </pre>
- <ul>
- <li>You can host your dashboard anywhere.</li>
- <li>You can add as many charts as you like.</li>
- <li>You can have charts from many different netdata servers (add <pre>data-host="http://another.netdata.server:19999/"</pre> to each chart).</li>
- <li>You can use different chart libraries on the same page: <b>peity</b>, <b>sparkline</b>, <b>dygraph</b>, <b>google</b></li>
- <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>
- <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>
- <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 yield in a chart updated once every 3 seconds.</li>
- </ul>
- <hr>
- <h1>Sparkline Charts</h1>
- Sparkline charts support 'NULL' values, so the charts can indicate that values are missing.
- Sparkline charts stretch the values to show the variations between values in more detail.
- They also have mouse-hover support.
- <br/>
- <b>Sparklines are fantastic</b>. You can inline charts in text. For example this
- <div data-netdata="system.cpu"
- data-chart-library="sparkline"
- data-width="5%"
- data-height="20"
- data-after="-30"
- ></div> is my current cpu usage (last 30 seconds),
- while this
- <div data-netdata="netdata.net"
- data-dimensions="out"
- data-chart-library="sparkline"
- data-width="10%"
- data-height="20"
- data-after="-60"
- ></div> is the bandwidth my netdata server is currently transmitting (last minute)
- and this
- <div data-netdata="netdata.requests"
- data-chart-library="sparkline"
- data-width="20%"
- data-height="20"
- data-after="-180"
- ></div> is the requests/sec it serves (last 3 minutes).
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.processes"
- data-chart-library="sparkline"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time101"
- ></div>
- <br/>
- <small>rendered in <span id="time101">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.net"
- data-chart-library="sparkline"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time102"
- ></div>
- <br/>
- <small>rendered in <span id="time102">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="sparkline"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time103"
- ></div>
- <br/>
- <small>rendered in <span id="time103">X</span> ms</small>
- </div>
- <hr>
- <h1>Peity Charts</h1>
- Peity charts do not support 'NULL' values, so the charts cannot indicate that values are missing.
- Peity charts cannot have multiple dimensions on the charts - so netdata will use 'min2max' to show
- the total of all dimensions.
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.processes"
- data-chart-library="peity"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time001"
- ></div>
- <br/>
- <small>rendered in <span id="time001">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.net"
- data-chart-library="peity"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time002"
- ></div>
- <br/>
- <small>rendered in <span id="time002">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="peity"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time003"
- ></div>
- <br/>
- <small>rendered in <span id="time003">X</span> ms</small>
- </div>
- <hr>
- <h1>Dygraph Charts</h1>
- The fastest charting engine that can chart complete charts (not just sparklines).
- The charts are zoomable (drag their contents to pan, shift with mouse wheel to zoom-in or zoom-out, double click to reset it).
- <b>Netdata magic!</b> Realtime charts on your web page!
- <br/>
- Sparklines using dygraphs
- <div data-netdata="system.processes"
- data-chart-library="dygraph"
- data-dygraph-theme="sparkline"
- data-legend="no"
- data-width="15%"
- data-height="20"
- data-after="-300"
- ></div>
- are also possible! This
- <div data-netdata="system.net"
- data-chart-library="dygraph"
- data-dygraph-theme="sparkline"
- data-legend="no"
- data-width="15%"
- data-height="20"
- data-after="-300"
- ></div>
- is an area chart, while this
- <div data-netdata="system.cpu"
- data-chart-library="dygraph"
- data-dygraph-theme="sparkline"
- data-legend="no"
- data-width="15%"
- data-height="20"
- data-after="-300"
- ></div> is a stacked area chart!
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.processes"
- data-chart-library="dygraph"
- data-dygraph-theme="sparkline"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time501"
- ></div>
- <br/>
- <small>rendered in <span id="time501">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.net"
- data-chart-library="dygraph"
- data-dygraph-theme="sparkline"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time502"
- ></div>
- <br/>
- <small>rendered in <span id="time502">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="dygraph"
- data-dygraph-theme="sparkline"
- data-width="100%"
- data-height="30"
- data-after="-300"
- data-dt-element-name="time503"
- ></div>
- <br/>
- <small>rendered in <span id="time503">X</span> ms</small>
- </div>
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.processes"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time201"
- ></div>
- <br/>
- <small>rendered in <span id="time201">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.net"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time202"
- ></div>
- <br/>
- <small>rendered in <span id="time202">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time203"
- ></div>
- <br/>
- <small>rendered in <span id="time203">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.io"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time204"
- ></div>
- <br/>
- <small>rendered in <span id="time204">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="apps.cpu"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time205"
- ></div>
- <br/>
- <small>rendered in <span id="time205">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="netdata.net"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time206"
- ></div>
- <br/>
- <small>rendered in <span id="time206">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="netdata.server_cpu"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time207"
- ></div>
- <br/>
- <small>rendered in <span id="time207">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="netdata.requests"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time208"
- ></div>
- <br/>
- <small>rendered in <span id="time208">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="net.gstag0"
- data-chart-library="dygraph"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time209"
- ></div>
- <br/>
- <small>rendered in <span id="time209">X</span> ms</small>
- </div>
- <hr>
- <h1>EasyPieChart</h1>
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.processes"
- data-chart-library="easypiechart"
- data-width="200"
- data-height="200"
- data-after="-300"
- data-points="300"
- data-dt-element-name="time601"
- ></div>
- <br/>
- <small>rendered in <span id="time601">X</span> ms</small>
- </div>
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.processes"
- data-chart-library="easypiechart"
- data-width="150"
- data-height="150"
- data-after="-300"
- data-points="150"
- data-dt-element-name="time601a"
- ></div>
- <br/>
- <small>rendered in <span id="time601a">X</span> ms</small>
- </div>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.net"
- data-chart-library="easypiechart"
- data-width="200"
- data-height="200"
- data-after="-300"
- data-points="300"
- data-dt-element-name="time602"
- ></div>
- <br/>
- <small>rendered in <span id="time602">X</span> ms</small>
- </div>
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.net"
- data-chart-library="easypiechart"
- data-width="100"
- data-height="100"
- data-after="-300"
- data-points="150"
- data-dt-element-name="time602a"
- ></div>
- <br/>
- <small>rendered in <span id="time602a">X</span> ms</small>
- </div>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.cpu"
- data-chart-library="easypiechart"
- data-width="200"
- data-height="200"
- data-after="-300"
- data-points="300"
- data-dt-element-name="time603"
- ></div>
- <br/>
- <small>rendered in <span id="time603">X</span> ms</small>
- </div>
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.cpu"
- data-chart-library="easypiechart"
- data-width="75"
- data-height="75"
- data-after="-300"
- data-points="150"
- data-dt-element-name="time603a"
- ></div>
- <br/>
- <small>rendered in <span id="time603a">X</span> ms</small>
- </div>
- </div>
- <hr>
- <h1>Gauge.js</h1>
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.processes"
- data-chart-library="gauge"
- data-width="250"
- data-height="200"
- data-after="-300"
- data-points="300"
- data-dt-element-name="time701"
- ></div>
- <br/>
- <small>rendered in <span id="time701">X</span> ms</small>
- </div>
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.processes"
- data-chart-library="gauge"
- data-width="125"
- data-height="100"
- data-after="-300"
- data-points="150"
- data-dt-element-name="time701a"
- ></div>
- <br/>
- <small>rendered in <span id="time701a">X</span> ms</small>
- </div>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.net"
- data-chart-library="gauge"
- data-width="250"
- data-height="200"
- data-after="-300"
- data-points="300"
- data-dt-element-name="time702"
- ></div>
- <br/>
- <small>rendered in <span id="time702">X</span> ms</small>
- </div>
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.net"
- data-chart-library="gauge"
- data-width="125"
- data-height="100"
- data-after="-300"
- data-points="150"
- data-dt-element-name="time702a"
- ></div>
- <br/>
- <small>rendered in <span id="time702a">X</span> ms</small>
- </div>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.cpu"
- data-chart-library="gauge"
- data-width="250"
- data-height="200"
- data-after="-300"
- data-points="300"
- data-dt-element-name="time703"
- ></div>
- <br/>
- <small>rendered in <span id="time703">X</span> ms</small>
- </div>
- <div style="display: inline-block; position: relative;">
- <div data-netdata="system.cpu"
- data-chart-library="gauge"
- data-width="125"
- data-height="100"
- data-after="-300"
- data-points="150"
- data-dt-element-name="time703a"
- ></div>
- <br/>
- <small>rendered in <span id="time703a">X</span> ms</small>
- </div>
- </div>
- <hr>
- <h1>Google Charts</h1>
- Netdata was originally developed with Google Charts.
- Netdata is a complete Google Visualization API provider.
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.processes"
- data-chart-library="google"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time301"
- ></div>
- <br/>
- <small>rendered in <span id="time301">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.net"
- data-chart-library="google"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time302"
- ></div>
- <br/>
- <small>rendered in <span id="time302">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="google"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time303"
- ></div>
- <br/>
- <small>rendered in <span id="time303">X</span> ms</small>
- </div>
- <!--
-
- <hr>
- <h1>Morris Charts</h1>
- Unfortunately, Morris Charts are very slow. Here we force them to lower their detail to get acceptable results.
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.processes"
- data-chart-library="morris"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time401"
- ></div>
- <br/>
- <small>rendered in <span id="time401">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.net"
- data-chart-library="morris"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time402"
- ></div>
- <br/>
- <small>rendered in <span id="time402">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="morris"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time403"
- ></div>
- <br/>
- <small>rendered in <span id="time403">X</span> ms</small>
- </div>
- <hr>
- <h1>C3 Charts</h1>
- C3 charts are not usable in large scale. They suffer from the following issues:
- <ul>
- <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>
- <li>rendering is done with <code>SVG</code> instead of <code>canvas</code>, so they use DOM elements for every point, becoming useless if more than 500 points are drawn</li>
- <li>lack of a <code>raw</code> data format, so every time a chart is updated, data conversion in javascript is required</li>
- <li>lack of <code>stacked</code> charts support</li>
- </ul>
- 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.
- <br/>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.processes"
- data-chart-library="c3"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time801"
- ></div>
- <br/>
- <small>rendered in <span id="time801">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.net"
- data-chart-library="c3"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time802"
- ></div>
- <br/>
- <small>rendered in <span id="time802">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="c3"
- data-width="100%"
- data-height="200"
- data-after="-300"
- data-dt-element-name="time803"
- ></div>
- <br/>
- <small>rendered in <span id="time803">X</span> ms</small>
- </div>
- -->
- <hr>
- <h1>d3pie Charts</h1>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="apps.cpu"
- data-chart-library="d3pie"
- data-d3pie-pieinnerradius="70%"
- data-d3pie-pieouterradius="90%"
- data-width="100%"
- data-height="300px"
- data-after="-60"
- data-points="60"
- data-dt-element-name="time901"
- ></div>
- <br/>
- <small>rendered in <span id="time901">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="system.cpu"
- data-chart-library="d3pie"
- data-width="100%"
- data-height="300px"
- data-after="-60"
- data-points="60"
- data-dt-element-name="time902"
- ></div>
- <br/>
- <small>rendered in <span id="time902">X</span> ms</small>
- </div>
- <div style="width: 33%; display: inline-block;">
- <div data-netdata="apps.cpu"
- data-width="100%"
- data-height="300px"
- data-after="-60"
- data-points="60"
- data-debug="false"
- data-decimal-digits="0"
- data-dt-element-name="time903"
- ></div>
- <br/>
- <small>rendered in <span id="time903">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>var netdataTheme = 'slate';</script> -->
- <script type="text/javascript" src="dashboard.js?v20190902-0"></script>
|