diff options
author | Chris Akritidis <43294513+cakrit@users.noreply.github.com> | 2019-01-07 12:27:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-07 12:27:18 +0100 |
commit | e51b735290b0c54060d4e807f56ee62a592669bb (patch) | |
tree | 42ef0034ac6f81044e6074c72c6fb680efc72291 /backends | |
parent | c651d14bc876b99d71b041d90c70ca53d2997d68 (diff) |
Clarify backend modes of operation (#5116)
* Clarify backend modes of operation
Fixes #5104
* Update README.md
Diffstat (limited to 'backends')
-rw-r--r-- | backends/README.md | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/backends/README.md b/backends/README.md index 39cba873e4..22dc77597f 100644 --- a/backends/README.md +++ b/backends/README.md @@ -36,22 +36,25 @@ X seconds (though, it can send them per second if you need it to). 3. Netdata can filter metrics (at the chart level), to send only a subset of the collected metrics. -4. Three modes of operation (for all backends): - - - `as collected`: the latest collected value is sent to the backend. This means that if netdata - is configured to send data to the backend every 10 seconds, only 1 out of 10 values will appear - at the backend server. The values are sent exactly as collected, before any multipliers or - dividers applied and before any interpolation. This mode emulates other data collectors, - such as `collectd` or `telegraf`. - - - `average`: the average of the interpolated values shown on the netdata graphs is sent to the - backend. So, if netdata is configured to send data to the backend server every 10 seconds, - the average of the 10 values shown on the netdata charts will be used. **If you can't decide - which mode to use, use `average`.** - - - `sum` or `volume`: the sum of the interpolated values shown on the netdata graphs is sent to - the backend. So, if netdata is configured to send data to the backend every 10 seconds, the - sum of the 10 values shown on the netdata charts will be used. +4. Netdata supports three modes of operation for all backends: + + - `as-collected` sends to backends the metrics as they are collected, in the units they are collected. + So, counters are sent as counters and gauges are sent as gauges, much like all data collectors do. + For example, to calculate CPU utilization in this format, you need to know how to convert kernel ticks to percentage. + + - `average` sends to backends normalized metrics from the netdata database. + In this mode, all metrics are sent as gauges, in the units netdata uses. This abstracts data collection + and simplifies visualization, but you will not be able to copy and paste queries from other sources to convert units. + For example, CPU utilization percentage is calculated by netdata, so netdata will convert ticks to percentage and + send the average percentage to the backend. + + - `sum` or `volume`: the sum of the interpolated values shown on the netdata graphs is sent to the backend. + So, if netdata is configured to send data to the backend every 10 seconds, the sum of the 10 values shown on the + netdata charts will be used. + +Time-series databases suggest to collect the raw values (`as-collected`). If you plan to invest on building your monitoring around a time-series database and you already know (or you will invest in learning) how to convert units and normalize the metrics in Grafana or other visualization tools, we suggest to use `as-collected`. + +If, on the other hand, you just need long term archiving of netdata metrics and you plan to mainly work with netdata, we suggest to use `average`. It decouples visualization from data collection, so it will generally be a lot simpler. Furthermore, if you use `average`, the charts shown in the back-end will match exactly what you see in Netdata, which is not necessarily true for the other modes of operation. 5. This code is smart enough, not to slow down netdata, independently of the speed of the backend server. |