NetData Dashboard
Author: costa@tsaousis.gr
Description: Stunning real-time dashboards, blazingly fast and extremely interactive. Zero configuration, zero dependencies, zero maintenance.

# NetData Custom Dashboard

This is a template for building custom dashboards. To build a dashboard you just do this:

    <!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>

- You can host your dashboard anywhere.
- You can add as many charts as you like.
- You can have charts from many different netdata servers (add

      data-host="http://another.netdata.server:19999/"

  to each chart).
- You can use different chart libraries on the same page: peity, sparkline, dygraph, google, morris
- You can customize each chart to your preferences. For each chart library most of their attributes can be given in data- attributes.
- Each chart can have each own duration - it is controlled with the data-after attribute to give that many seconds of data.
- Depending on the width of the chart and data-after 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.

# Sparkline Charts

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.
Sparklines are fantastic. You can inline charts in text. For example this
is my current cpu usage (last 30 seconds), while this
is the bandwidth my netdata server is currently transmitting (last minute) and this
is the requests/sec it serves (last 3 minutes).
rendered in X ms
rendered in X ms
rendered in X ms

# Peity Charts

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.
rendered in X ms
rendered in X ms
rendered in X ms

# Dygraph Charts

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). Netdata magic! Realtime charts on your web page!
Sparklines using dygraphs
are also possible! This
is an area chart, while this
is a stacked area chart!
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms

# EasyPieChart

rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms

# Gauge.js

rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms
rendered in X ms

# Google Charts

NetData was originaly developed with Google Charts. NetData is a complete Google Visualization API provider.
rendered in X ms
rendered in X ms
rendered in X ms

# Morris Charts

Unfortunatelly, Morris Charts are very slow. Here we force them to lower their detail to get acceptable results.
rendered in X ms
rendered in X ms
rendered in X ms

# C3 Charts

C3 charts are not usable in large scale. They suffer from the following issues:

- 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
- rendering is done with `SVG` instead of `canvas`, so they use DOM elements for every point, becomimg useless if more than 500 points are drawn
- lack of a `raw` data format, so every time a chart is updated, data convertion in javascript is required
- lack of `stacked` charts support

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.
rendered in X ms
rendered in X ms
rendered in X ms