]> arthur.barton.de Git - netdata.git/blobdiff - README.md
build: fix typo
[netdata.git] / README.md
index d4e5cd02fc5e8d3865902bca3f5066da00d4c22f..a08951cfcb19c1c0fd85d2d3f0faa17c4551ba2d 100755 (executable)
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ Check it live at:
 
 Here is a screenshot:
 
-![image](https://cloud.githubusercontent.com/assets/2662304/2593406/3c797e88-ba80-11e3-8ec7-c10174d59ad6.png)
+![image](https://cloud.githubusercontent.com/assets/2662304/10440038/b40bcb6c-7146-11e5-93ac-db2e177e39f8.png)
 
 
 # Features
@@ -31,7 +31,7 @@ Here is a screenshot:
 
   It only needs a few megabytes of memory to store all its round robin database.
   
-  Internally, it uses a **custom-made 32-bit number** to store all the values, along with a limited number of metadata for each collected value. This customer-made number can store in 29 bits values from -167772150000000.0 to  167772150000000.0 with a precision of 0.00001 (yes, it is a floating point number, meaning that higher integer values have less decimal precision) and 3 bits for flags (2 are currently used and 1 is reserved for future use). This provides an extremely optimized memory footprint.
+  Although `netdata` does all its calculation using `long double` (128 bit) arithmetics, it stores all values using a **custom-made 32-bit number**. This custom-made number can store in 29 bits values from -167772150000000.0 to  167772150000000.0 with a precision of 0.00001 (yes, it is a floating point number, meaning that higher integer values have less decimal precision) and 3 bits for flags (2 are currently used and 1 is reserved for future use). This provides an extremely optimized memory footprint with just 0.0001% max accuracy loss (run: `./netdata --unittest` to see it in action).
 
 - **per second data collection**
 
@@ -41,7 +41,7 @@ Here is a screenshot:
 
   - **absolute**, stores the collected value, as collected (this is used, for example for the number of processes running, the number of connections open, the amount of RAM used, etc)
 
-  - **incremental**, stores the difference of the collected value to the last collected value (this is used, for example, for the bandwidth of interfaces, disk I/O, i.e. for counters that always get incremented) - **netdata** automatically interpolates these values so that small delays at the data collection layer will not affect the quality of the result - also, **netdata** detects arithmetic overflows and presents them properly at the charts.
+  - **incremental**, stores the difference of the collected value to the last collected value (this is used, for example, for the bandwidth of interfaces, disk I/O, i.e. for counters that always get incremented) - **netdata** automatically interpolates these values to second boundary, using nanosecond calculations so that small delays at the data collection layer will not affect the quality of the result - also, **netdata** detects arithmetic overflows and presents them properly at the charts.
 
   - **percentage of absolute row**, stores the percentage of the collected value, over the sum of all dimensions of the chart.
 
@@ -54,7 +54,7 @@ Here is a screenshot:
 - **appealing web site**
 
   The web site uses bootstrap and google charts for a very appealing result.
-  It works even on mobile devices and adapts to screen size changes and rotation.
+  It works even on mobile devices and adapts to screen size changes and rotation (responsive design).
 
 - **web charts do respect your browser resources**
 
@@ -85,19 +85,24 @@ Here is a screenshot:
 
   It ships with 2 plugins: `apps.plugin` and `charts.d.plugin`:
 
- - `apps.plugin` is a plugin that attempts to collect statistics per process.
+ - `apps.plugin` is a plugin that attempts to collect statistics per process. It groups the entire process tree based on your settings (for example, mplayer, kodi, vlc are all considered `media`) and for each group it attempts to find CPU usage, memory usages, physical and logical disk read and writes, number of processes, number of threads, number of open files, number of open sockets, number of open pipes, minor and major page faults (major = swapping), etc. 15 stackable (per group) charts in total.
 
  - `charts.d.plugin` provides a simple way to script data collection in BASH. It includes example plugins that collect values from:
 
-  - `nut` (UPS load, frequency, voltage, etc)
-  - `pi` (raspberry pi CPU clock and temperature)
-  - `postfix` (e-mail queue size)
-  - `squid` (web proxy statistics)
+    - `nut` (UPS load, frequency, voltage, etc)
+    - `sensors` (temperature, voltage, current, power, humidity, fans rotation sensors)
+    - `cpufreq` (current CPU clock frequency)
+    - `postfix` (e-mail queue size)
+    - `squid` (web proxy statistics)
+    - `mysql` (mysql global statistics)
+
+    Of course, you can write your own using BASH scripting.
 
 - netdata is a web server, supporting gzip compression
 
   It serves its own static files and dynamic files for rendering the site.
-  (it does not support authentication or SSL - limit its access using your firewall)
+  It does not support authentication or SSL - limit its access using your firewall.
+  It does not allow ` .. ` or ` / ` in the files requested (so it can only serve files stored in the `web/` directory).
 
 
 # How it works
@@ -107,10 +112,12 @@ Here is a screenshot:
  
  netdata:
 
-  - reads several /proc files
-  - keeps track of the values in memroy (a short history)
-  - generates JSON and JSONP HTTP responses containing all the data needed for the web graphs
-  - is a web server. You can access JSON data by using:
+  - Spawns threads to collect all the data for all sources
+  - Keeps track of the collected values in memory (no disk I/O at all)
+  - Generates JSON and JSONP HTTP responses containing all the data needed for the web graphs
+  - Is a standalone web server.
+
+ For example, you can access JSON data by using:
  
  ```
  http://127.0.0.1:19999/data/net.eth0
@@ -131,8 +138,7 @@ Here is a screenshot:
   - 0/0 they are `before` and `after` timestamps, allowing panning on the data
 
 
-2. On your web page, you add a few javascript lines and a DIV for every graph you need.
- Your browser will hit the web server to fetch the JSON data and refresh the graphs.
+2. If you need to embed a **netdata** chart on your web page, you can add a few javascript lines and a `div` for every graph you need. Check [this example](http://195.97.5.206:19999/datasource.html) (open it in a new tab and view its source to get the idea).
 
 3. Graphs are generated using Google Charts API (so, your client needs to have internet access).
 
@@ -168,3 +174,7 @@ To access the web site for all graphs, go to:
  ```
 
 You can get the running config file at any time, by accessing `http://127.0.0.1:19999/netdata.conf`.
+
+To start it at boot, just run `/path/to/netdata.git/netdata.start` from your `/etc/rc.local` or equivalent.
+
+You can stop and start netdata at any point. Netdata saves on exit its round robbin database to `cache/` so that it will continue from where it stopped the last time.