@cryptotaxi247 / netdata-1 / commits / f5006d51e

Fix Markdown Lint warnings (#6664)

* make remark access all directories * detailed fix after autofix by remark lint * cross check autofix for this set of files * crosscheck more files * crosschecking and small fixes * crosscheck autofixed md files

Promise Akpan committed Aug 15, 2019 at 12:06 UTC f5006d51e8caf9148d393eb68d53dc9fcd28b7b6
245 files changed +6870 -6404
CODE_OF_CONDUCT.md
+15 -16
@@ -14,22 +14,22 @@ appearance, race, religion, or sexual identity and orientation.
14 Examples of behavior that contributes to creating a positive environment
15 include:
16
17 -* Using welcoming and inclusive language
18 -* Being respectful of differing viewpoints and experiences
19 -* Gracefully accepting constructive criticism
20 -* Focusing on what is best for the community
21 -* Showing empathy towards other community members
17 +- Using welcoming and inclusive language
18 +- Being respectful of differing viewpoints and experiences
19 +- Gracefully accepting constructive criticism
20 +- Focusing on what is best for the community
21 +- Showing empathy towards other community members
22
23 Examples of unacceptable behavior by participants include:
24
25 -* The use of sexualized language or imagery and unwelcome sexual attention or
26 - advances
27 -* Trolling, insulting/derogatory comments, and personal or political attacks
28 -* Public or private harassment
29 -* Publishing others' private information, such as a physical or electronic
30 - address, without explicit permission
31 -* Other conduct which could reasonably be considered inappropriate in a
32 - professional setting
25 +- The use of sexualized language or imagery and unwelcome sexual attention or
26 + advances
27 +- Trolling, insulting/derogatory comments, and personal or political attacks
28 +- Public or private harassment
29 +- Publishing others' private information, such as a physical or electronic
30 + address, without explicit permission
31 +- Other conduct which could reasonably be considered inappropriate in a
32 + professional setting
33
34 ## Our Responsibilities
35
@@ -68,9 +68,8 @@ members of the project's leadership.
68 ## Attribution
69
70 This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
71 +available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>
72
73 [homepage]: https://www.contributor-covenant.org
74
75 -
76 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCODE_OF_CONDUCT&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
75 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCODE_OF_CONDUCT&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
CONTRIBUTING.md
+24 -21
@@ -32,26 +32,29 @@ Netdata is a complex system, with many integrations for the various collectors,
32 #### Sponsor a collector
33
34 Netdata is all about simplicity and meaningful presentation. A "sponsor" for a collector does the following:
35 - - Assists the devs with feedback on the charts.
36 - - Specifies the alarms that would make sense for each metric.
37 - - When the implementation passes QA, tests the implementation in production.
38 - - Uses the charts and alarms in his/her day to day work and provides additional feedback.
39 - - Requests additional improvements as things change (e.g. new versions of an API are available).
35 +
36 +- Assists the devs with feedback on the charts.
37 +- Specifies the alarms that would make sense for each metric.
38 +- When the implementation passes QA, tests the implementation in production.
39 +- Uses the charts and alarms in his/her day to day work and provides additional feedback.
40 +- Requests additional improvements as things change (e.g. new versions of an API are available).
41
42 #### Sponsor a backend
43
44 We already support various [backends](backends) and we intend to support more. A "sponsor" for a backend:
44 -- Suggests ways in which the information in Netdata could best be exposed to the particular backend, to facilitate meaningful presentation.
45 - - When the implementation passes QA, tests the implementation in production.
46 -- Uses the backend in his/her day to day work and provides additional feedback, after the backend is delivered.
47 - - Requests additional improvements as things change (e.g. new versions of the backend API are available).
45 +
46 +- Suggests ways in which the information in Netdata could best be exposed to the particular backend, to facilitate meaningful presentation.
47 +- When the implementation passes QA, tests the implementation in production.
48 +- Uses the backend in his/her day to day work and provides additional feedback, after the backend is delivered.
49 +- Requests additional improvements as things change (e.g. new versions of the backend API are available).
50
51 #### Sponsor a notification method
52
53 Netdata delivers alarms via various [notification methods](health/notifications). A "sponsor" for a notification method:
52 -- Points the devs to the documentation for the API and identifies any unusual features of interest (e.g. the ability in Slack to send a notification either to a channel or to a user).
53 -- Uses the notification method in production and provides feedback.
54 -- Requests additional improvements as things change (e.g. new versions of the API are available).
54 +
55 +- Points the devs to the documentation for the API and identifies any unusual features of interest (e.g. the ability in Slack to send a notification either to a channel or to a user).
56 +- Uses the notification method in production and provides feedback.
57 +- Requests additional improvements as things change (e.g. new versions of the API are available).
58
59 ## Experienced Users
60
@@ -75,7 +78,6 @@ We expect most contributions to be for new data collection plugins. You can read
78
79 Of course we appreciate contributions for any other part of the NetData agent, including the [daemon](daemon), [backends for long term archiving](backends/), innovative ways of using the [REST API](web/api) to create cool [Custom Dashboards](web/gui/custom/) or to include NetData charts in other applications, similarly to what can be done with [Confluence](web/gui/confluence/).
80
78 -
81 ### Contributions Ground Rules
82
83 #### Code of Conduct and CLA
@@ -131,16 +133,18 @@ The single most important rule when writing code is this: *check the surrounding
133 We use several different languages and have had contributions from several people with different styles. When in doubt, you can check similar existing code.
134
135 For C contributions in particular, we try to respect the [Linux kernel style](https://www.kernel.org/doc/html/v4.10/process/coding-style.html), with the following exceptions:
134 - - Use 4 space indentation instead of 8
135 - - We occassionally have multiple statements on a single line (e.g. `if (a) b;`)
136 - - Allow max line length of 120 chars
137 - - Allow opening brace at the end of a function declaration: `function() {`.
136 +
137 +- Use 4 space indentation instead of 8
138 +- We occassionally have multiple statements on a single line (e.g. `if (a) b;`)
139 +- Allow max line length of 120 chars
140 +- Allow opening brace at the end of a function declaration: `function() {`.
141
142 ### Your first pull request
143
144 There are several guides for pull requests, such as the following:
142 -- https://thenewstack.io/getting-legit-with-git-and-github-your-first-pull-request/
143 -- https://github.com/firstcontributions/first-contributions#first-contributions
145 +
146 +- <https://thenewstack.io/getting-legit-with-git-and-github-your-first-pull-request/>
147 +- <https://github.com/firstcontributions/first-contributions#first-contributions>
148
149 However, it's not always that simple. Our [PR approval process](#pr-approval-process) and the several merges we do every day may cause your fork to get behind the Netdata master. If you worked on something that has changed in the meantime, you will be required to do a git rebase, to bring your fork to the correct state. A very easy to follow guide on how to do it without learning all the intricacies of GitHub can be found [here](https://medium.com/@ruthmpardee/git-fork-workflow-using-rebase-587a144be470)
150
@@ -154,5 +158,4 @@ We also have a series of automated checks running, such as linters to check code
158
159 One special type of automated check is the "WIP" check. You may add "[WIP]" to the title of the PR, to tell us that the particular request is "Work In Progress" and should not be merged. You're still not done with it, you created it to get some feedback. When you're ready to get the final approvals and get it merged, just remove the "[WIP]" string from the title of your PR and the "WIP" check will pass.
160
157 -
158 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTING&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
161 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTING&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
CONTRIBUTORS.md
+75 -73
@@ -17,115 +17,117 @@ contributions for any other purpose.
17
18 ## copyright license
19
20 -The Contributor (*you*) grants Netdata Inc. a perpetual, worldwide, non-exclusive,
20 +The Contributor (_you_) grants Netdata Inc. a perpetual, worldwide, non-exclusive,
21 no-charge, royalty-free, irrevocable copyright license to reproduce,
22 prepare derivative works of, publicly display, publicly perform, sublicense,
23 and distribute his contributions and such derivative works.
24
25 ## copyright transfer
26
27 -The Contributor (*you*) hereby assigns Netdata Inc. copyright in his
27 +The Contributor (_you_) hereby assigns Netdata Inc. copyright in his
28 contributions, to be licensed under the same terms as the rest of the code.
29
30 -> *Note: this means we may re-license Netdata (your contributions included)
30 +> _Note: this means we may re-license Netdata (your contributions included)
31 > any way we see fit, without asking your permission.
32 > We intend to keep the Netdata agent forever FOSS.
33 > But open-source licenses have significant differences and in our attempt to
34 > help Netdata grow we may have to distribute it under a different license.
35 > For example, CNCF, the Cloud Native Computing Foundation, requires Netdata
36 > to be licensed under Apache-2.0 for it to be accepted as a member of the
37 -> Foundation. We want to be free to do it.*
37 +> Foundation. We want to be free to do it._
38
39 ## original work
40
41 -The Contributor (*you*) represent that each of his contributions is his
41 +The Contributor (_you_) represent that each of his contributions is his
42 original creation and that he is legally entitled to grant the above license.
43
44 -> *Note: if you are committing third party code, please make sure the third party
44 +> _Note: if you are committing third party code, please make sure the third party
45 > license or any other restrictions are also included with your commits.
46 > Netdata includes many third party libraries and tools and this is not a
47 > problem, provided that the license of the third party code is compatible with
48 -> the one we use for Netdata.*
48 +> the one we use for Netdata._
49
50 ## signature
51
52 -Since Sep 17th 2018, we use https://cla-assistant.io/netdata/netdata for signing the CLA, on all pull requests.
52 +Since Sep 17th 2018, we use <https://cla-assistant.io/netdata/netdata> for signing the CLA, on all pull requests.
53 Old contributors can sign the CLA at any time using this link.
54
55 ## HISTORICAL SIGNATURES
56 -(they have been imported to https://cla-assistant.io/netdata/netdata already)
56
58 -The Contributor (*you*) signs this agreement by adding his personal data in
57 +(they have been imported to <https://cla-assistant.io/netdata/netdata> already)
58 +
59 +The Contributor (_you_) signs this agreement by adding his personal data in
60 this document and committing it to the project repo
61 (the same way contributions are submitted to the project).
62
62 -By signing once, all contributions (past and future) of The Contributor (*you*),
63 +By signing once, all contributions (past and future) of The Contributor (_you_),
64 are subject to this agreement.
65
65 -> *Note: so you have to:*
66 -> 1. add your github username and name in this file
67 -> 2. commit it to the repo with a PR, using the same github username, or include this change in your first PR.
66 +> _Note: so you have to:_
67 +>
68 +> 1. add your github username and name in this file
69 +> 2. commit it to the repo with a PR, using the same github username, or include this change in your first PR.
70
71 # Netdata contributors
72
73 This is the list of contributors that have signed this agreement:
74
73 -username|name|email (optional)
74 -:--------:|:----:|:----------------
75 -@lets00|Luís Eduardo|leduardo@lsd.ufcg.edu.br
76 -@ktsaou|Costa Tsaousis|costa@tsaousis.gr
77 -@tycho|Steven Noonan|steven@uplinklabs.net
78 -@philwhineray|Phil Whineray|
79 -@paulfantom|Paweł Krupa|pawel@krupa.net.pl
80 -@Ferroin|Austin S. Hemmelgarn|ahferroin7@gmail.com
81 -@glensc|Elan Ruusamäe|
82 -@l2isbad|Ilya Mashchenko|ilyamaschenko@gmail.com
83 -@rlefevre|Rémi Lefèvre|
84 -@vlvkobal|Vladimir Kobal|vlad@prokk.net
85 -@simonnagl|Simon Nagl|
86 -@manosf|Emmanouil Fokas|manosf@protonmail.com
87 -@user501254|Ashesh Singh|user501254@gmail.com
88 -@t-h-e|Stefan Forstenlechner|
89 -@facetoe|Facetoe|
90 -@ntlug|Christopher Cox|ccox@endlessnow.com
91 -@alonbl|Alon Bar-Lev|alon.barlev@gmail.com
92 -@Wing924|Wei He|weihe924stephen@gmail.com
93 -@NeonSludge|Kirill Buev|kirill.buev@gmx.com
94 -@kmlucy|Kyle Lucy|kmlucy@gmail.com
95 -@RicardoSette|Ricardo Sette|ricardosette@freebsdbrasil.com.br
96 -@383c57|Shinichi Tagashira|
97 -@davidak|David Kleuker|netdata-contributors+vyff@davidak.de
98 -@ccremer|Christian Cremer|
99 -@jimcooley|Jim Cooley|jim.cooley@healthvana.com
100 -@Chocobo1|Mike Tzou|
101 -@vinyasmusic|Vinyas Malagaudanavar|vinyasmusic@gmail.com
102 -@cosmix|Dimosthenis Kaponis|
103 -@shadycuz|Levi Blaney|shadycuz+spam@gmail.com
104 -@Flums|Philip Gabrielsen|philip@digno.no
105 -@domschl|Dominik Schlösser|dominik.schloesser@gmail.com
106 -@tioumen|Guillaume Hospital|
107 -@arch273|Jacob Ayres
108 -@x4FF3|David Fuellgraf|
109 -@jasonwbarnett|Jason Barnett|
110 -@ecowed|Ed Wade|
111 -@wungad|Rob Man|
112 -@rda0|Sven Mäder|maeder@phys.ethz.ch
113 -@alibo|Ali Borhani|aliborhani1@gmail.com
114 -@Nani-o|Sofiane Medjkoune|sofiane@medjkoune.fr
115 -@n0guest|Evgeniy K.|ask@osshelp.ru
116 -@amichelic|Adalbert Michelic|
117 -@abalabahaha|abalabahaha|hi@abal.moe
118 -@illes|Illes S.|
119 -@plasticrake|Patrick Seal
120 -@jonfairbanks|Jon Fairbanks
121 -@pjz|Paul Jimenez|pj@place.org
122 -@jgrossiord|Julien Grossiord|julien@grossiord.net
123 -@pohzipohzi|Poh Zi How
124 -@vladmovchan|Vladyslav Movchan|vladislav.movchan@gmail.com
125 -@gmosx|George Moschovitis
126 -@adherzog|Adam Herzog|adam@adamherzog.com
127 -@skrzyp1|Jerzy S.|
128 -@akwan|Alan Kwan|
129 -@underhood|Timotej Šiškovič|
130 -
131 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTORS&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
75 +|username|name|email (optional)|
76 +|:------:|:--:|:---------------|
77 +|@lets00|Luís Eduardo|leduardo@lsd.ufcg.edu.br|
78 +|@ktsaou|Costa Tsaousis|costa@tsaousis.gr|
79 +|@tycho|Steven Noonan|steven@uplinklabs.net|
80 +|@philwhineray|Phil Whineray||
81 +|@paulfantom|Paweł Krupa|pawel@krupa.net.pl|
82 +|@Ferroin|Austin S. Hemmelgarn|ahferroin7@gmail.com|
83 +|@glensc|Elan Ruusamäe||
84 +|@l2isbad|Ilya Mashchenko|ilyamaschenko@gmail.com|
85 +|@rlefevre|Rémi Lefèvre||
86 +|@vlvkobal|Vladimir Kobal|vlad@prokk.net|
87 +|@simonnagl|Simon Nagl||
88 +|@manosf|Emmanouil Fokas|manosf@protonmail.com|
89 +|@user501254|Ashesh Singh|user501254@gmail.com|
90 +|@t-h-e|Stefan Forstenlechner||
91 +|@facetoe|Facetoe||
92 +|@ntlug|Christopher Cox|ccox@endlessnow.com|
93 +|@alonbl|Alon Bar-Lev|alon.barlev@gmail.com|
94 +|@Wing924|Wei He|weihe924stephen@gmail.com|
95 +|@NeonSludge|Kirill Buev|kirill.buev@gmx.com|
96 +|@kmlucy|Kyle Lucy|kmlucy@gmail.com|
97 +|@RicardoSette|Ricardo Sette|ricardosette@freebsdbrasil.com.br|
98 +|@383c57|Shinichi Tagashira||
99 +|@davidak|David Kleuker|netdata-contributors+vyff@davidak.de|
100 +|@ccremer|Christian Cremer||
101 +|@jimcooley|Jim Cooley|jim.cooley@healthvana.com|
102 +|@Chocobo1|Mike Tzou||
103 +|@vinyasmusic|Vinyas Malagaudanavar|vinyasmusic@gmail.com|
104 +|@cosmix|Dimosthenis Kaponis||
105 +|@shadycuz|Levi Blaney|shadycuz+spam@gmail.com|
106 +|@Flums|Philip Gabrielsen|philip@digno.no|
107 +|@domschl|Dominik Schlösser|dominik.schloesser@gmail.com|
108 +|@tioumen|Guillaume Hospital||
109 +|@arch273|Jacob Ayres||
110 +|@x4FF3|David Fuellgraf||
111 +|@jasonwbarnett|Jason Barnett||
112 +|@ecowed|Ed Wade||
113 +|@wungad|Rob Man||
114 +|@rda0|Sven Mäder|maeder@phys.ethz.ch|
115 +|@alibo|Ali Borhani|aliborhani1@gmail.com|
116 +|@Nani-o|Sofiane Medjkoune|sofiane@medjkoune.fr|
117 +|@n0guest|Evgeniy K.|ask@osshelp.ru|
118 +|@amichelic|Adalbert Michelic||
119 +|@abalabahaha|abalabahaha|hi@abal.moe|
120 +|@illes|Illes S.||
121 +|@plasticrake|Patrick Seal||
122 +|@jonfairbanks|Jon Fairbanks||
123 +|@pjz|Paul Jimenez|pj@place.org|
124 +|@jgrossiord|Julien Grossiord|julien@grossiord.net|
125 +|@pohzipohzi|Poh Zi How||
126 +|@vladmovchan|Vladyslav Movchan|vladislav.movchan@gmail.com|
127 +|@gmosx|George Moschovitis||
128 +|@adherzog|Adam Herzog|adam@adamherzog.com|
129 +|@skrzyp1|Jerzy S.||
130 +|@akwan|Alan Kwan||
131 +|@underhood|Timotej Šiškovič||
132 +
133 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTORS&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
DOCUMENTATION.md
+7 -9
@@ -2,7 +2,6 @@
2
3 **Netdata is real-time health monitoring and performance troubleshooting for systems and applications.** It helps you instantly diagnose slowdowns and anomalies in your infrastructure with thousands of metrics, interactive visualizations, and insightful health alarms.
4
5 -
5 ## Navigating the Netdata documentation
6
7 Welcome! You've arrived at the documentation for Netdata. Use the links below to find answers to the most common questions about Netdata, such as how to install it, getting started guides, basic configuration, and adding more charts. Or, explore all of Netdata's documentation using the table of contents to your left.
@@ -30,19 +29,18 @@ Welcome! You've arrived at the documentation for Netdata. Use the links below to
29
30 **Advanced users**: For those who already understand how to access a Netdata dashboard and perform basic configuration, feel free to see what's behind any of these other doors.
31
33 - - [Netdata Behind Nginx](docs/Running-behind-nginx.md): Use an Nginx web server instead of Netdata's built-in server to enable TLS, HTTPS, and basic authentication.
34 - - [Add More Charts](docs/Add-more-charts-to-netdata.md): Enable new internal or external plugins and understand when auto-detection works.
35 - - [Performance](docs/Performance.md): Tips on running Netdata on devices with limited CPU and RAM resources, such as embedded devices, IoT, and edge devices.
36 - - [Streaming](streaming/): Information for those who want to centralize Netdata metrics from any number of distributed agents.
37 - - [Backends](backends/): Learn how to archive Netdata's real-time metrics to a time series database (like Prometheus) for long-term archiving.
38 -
32 +- [Netdata Behind Nginx](docs/Running-behind-nginx.md): Use an Nginx web server instead of Netdata's built-in server to enable TLS, HTTPS, and basic authentication.
33 +- [Add More Charts](docs/Add-more-charts-to-netdata.md): Enable new internal or external plugins and understand when auto-detection works.
34 +- [Performance](docs/Performance.md): Tips on running Netdata on devices with limited CPU and RAM resources, such as embedded devices, IoT, and edge devices.
35 +- [Streaming](streaming/): Information for those who want to centralize Netdata metrics from any number of distributed agents.
36 +- [Backends](backends/): Learn how to archive Netdata's real-time metrics to a time series database (like Prometheus) for long-term archiving.
37
38 Visit the [contributing guide](CONTRIBUTING.md), [contributing to documentation guide](docs/contributing/contributing-documentation.md), and [documentation style guide](docs/contributing/style-guide.md) to learn more about our community and how you can get started contributing to Netdata.
39
42 -
40 ## Subscribe for news and tips from monitoring pros
41
42 <script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/shell.js"></script>
43 +
44 <script>
45 hbspt.forms.create({
46 portalId: "4567453",
@@ -52,4 +50,4 @@ Visit the [contributing guide](CONTRIBUTING.md), [contributing to documentation
50
51 ---
52
55 -![A GIF of the standard Netdata dashboard](https://user-images.githubusercontent.com/2662304/48346998-96cf3180-e685-11e8-9f4e-059d23aa3aa5.gif)
\ No newline at end of file
53 +![A GIF of the standard Netdata dashboard](https://user-images.githubusercontent.com/2662304/48346998-96cf3180-e685-11e8-9f4e-059d23aa3aa5.gif)
HISTORICAL_CHANGELOG.md
+459 -464
@@ -1,655 +1,650 @@
1 netdata (1.10.0) - 2018-03-27
2
3 Please check full changelog at github.
4 - https://github.com/netdata/netdata/releases
5 -
4 + <https://github.com/netdata/netdata/releases>
5
6 netdata (1.9.0) - 2017-12-17
7
8 Please check full changelog at github.
10 - https://github.com/netdata/netdata/releases
11 -
9 + <https://github.com/netdata/netdata/releases>
10
11 netdata (1.8.0) - 2017-09-17
12
13 This is mainly a bugfix release.
14 Please check full changelog at github.
17 -
15
16 netdata (1.7.0) - 2017-07-16
17
21 - * netdata is still spreading fast
18 +- netdata is still spreading fast
19
23 - we are at 320.000 users and 132.000 servers
20 + we are at 320.000 users and 132.000 servers
21
25 - Almost 100k new users, 52k new installations and 800k docker pulls
26 - since the previous release, 4 and a half months ago.
22 + Almost 100k new users, 52k new installations and 800k docker pulls
23 + since the previous release, 4 and a half months ago.
24
28 - netdata user base grows at about 1000 new users and 600 new servers
29 - per day. Thank you. You are awesome.
25 + netdata user base grows at about 1000 new users and 600 new servers
26 + per day. Thank you. You are awesome.
27
31 - * The next release (v1.8) will be focused on providing a global health
32 - monitoring service, for all netdata users, for free.
28 +- The next release (v1.8) will be focused on providing a global health
29 + monitoring service, for all netdata users, for free.
30
34 - * netdata is now a (very fast) fully featured statsd server and the
35 - only one with automatic visualization: push a statsd metric and hit
36 - F5 on the netdata dashboard: your metric visualized. It also supports
37 - synthetic charts, defined by you, so that you can correlate and
38 - visualize your application the way you like it.
31 +- netdata is now a (very fast) fully featured statsd server and the
32 + only one with automatic visualization: push a statsd metric and hit
33 + F5 on the netdata dashboard: your metric visualized. It also supports
34 + synthetic charts, defined by you, so that you can correlate and
35 + visualize your application the way you like it.
36
40 - * netdata got new installation options
41 - It is now easier than ever to install netdata - we also distribute a
42 - statically linked netdata x86_64 binary, including key dependencies
43 - (like bash, curl, etc) that can run everywhere a Linux kernel runs
44 - (CoreOS, CirrOS, etc).
37 +- netdata got new installation options
38 + It is now easier than ever to install netdata - we also distribute a
39 + statically linked netdata x86_64 binary, including key dependencies
40 + (like bash, curl, etc) that can run everywhere a Linux kernel runs
41 + (CoreOS, CirrOS, etc).
42
46 - * metrics streaming and replication has been improved significantly.
47 - All known issues have been solved and key enhancements have been added.
48 - Headless collectors and proxies can now send metrics to backends when
49 - data source = as collected.
43 +- metrics streaming and replication has been improved significantly.
44 + All known issues have been solved and key enhancements have been added.
45 + Headless collectors and proxies can now send metrics to backends when
46 + data source = as collected.
47
51 - * backends have got quite a few enhancements, including host tags and
52 - metrics filtering at the netdata side;
53 - prometheus support has been re-written to utilize more prometheus
54 - features and provide more flexibility and integration options.
48 +- backends have got quite a few enhancements, including host tags and
49 + metrics filtering at the netdata side;
50 + prometheus support has been re-written to utilize more prometheus
51 + features and provide more flexibility and integration options.
52
56 - * netdata now monitors ZFS (on Linux and FreeBSD), ElasticSearch,
57 - RabbitMQ, Go applications (via expvar), ipfw (on FreeBSD 11), samba,
58 - squid logs (with web_log plugin).
53 +- netdata now monitors ZFS (on Linux and FreeBSD), ElasticSearch,
54 + RabbitMQ, Go applications (via expvar), ipfw (on FreeBSD 11), samba,
55 + squid logs (with web_log plugin).
56
60 - * netdata dashboard loading times have been improved significantly
61 - (hit F5 a few times on a netdata dashboard - it is now amazingly fast),
62 - to support dashboards with thousands of charts.
57 +- netdata dashboard loading times have been improved significantly
58 + (hit F5 a few times on a netdata dashboard - it is now amazingly fast),
59 + to support dashboards with thousands of charts.
60
64 - * netdata alarms now support custom hooks, so you can run whatever you
65 - like in parallel with netdata alarms.
66 -
67 - * As usual, this release brings dozens of more improvements, enhancements
68 - and compatibility fixes.
61 +- netdata alarms now support custom hooks, so you can run whatever you
62 + like in parallel with netdata alarms.
63
64 +- As usual, this release brings dozens of more improvements, enhancements
65 + and compatibility fixes.
66
67 netdata (1.6.0) - 2017-03-20
68
73 - * birthday release: 1 year netdata
69 +- birthday release: 1 year netdata
70
75 - netdata was first published on March 30th, 2016.
76 - It has been a crazy year since then:
71 + netdata was first published on March 30th, 2016.
72 + It has been a crazy year since then:
73
78 - 225.000 unique netdata users
79 - currently, at 1.000 new unique users per day
74 + 225.000 unique netdata users
75 + currently, at 1.000 new unique users per day
76
81 - 80.000 unique netdata installations
82 - currently, at 500 new installation per day
77 + 80.000 unique netdata installations
78 + currently, at 500 new installation per day
79
84 - 610.000 docker pulls on docker hub
80 + 610.000 docker pulls on docker hub
81
86 - 4.000.000 netdata sessions served
87 - currently, at 15.000 sessions served per day
82 + 4.000.000 netdata sessions served
83 + currently, at 15.000 sessions served per day
84
89 - 20.000 github stars
85 + 20.000 github stars
86
91 - Thank you!
92 - You are awesome!
87 + ```
88 + Thank you!
89 + You are awesome!
90 + ```
91
94 - * central netdata is here
92 +- central netdata is here
93
96 - This is the first release that supports real-time streaming of
97 - metrics between netdata servers.
94 + This is the first release that supports real-time streaming of
95 + metrics between netdata servers.
96
99 - netdata can now be:
97 + netdata can now be:
98
101 - - autonomous host monitoring
102 - (like it always has been)
99 + - autonomous host monitoring
100 + (like it always has been)
101
104 - - headless data collector
105 - (collect and stream metrics in real-time to another netdata)
102 + - headless data collector
103 + (collect and stream metrics in real-time to another netdata)
104
107 - - headless proxy
108 - (collect metrics from multiple netdata and stream them to another netdata)
105 + - headless proxy
106 + (collect metrics from multiple netdata and stream them to another netdata)
107
110 - - store and forward proxy
111 - (like headless proxy, but with a local database)
108 + - store and forward proxy
109 + (like headless proxy, but with a local database)
110
113 - - central database
114 - (metrics from multiple hosts are aggregated)
111 + - central database
112 + (metrics from multiple hosts are aggregated)
113
116 - metrics databases can be configured on all nodes and each node maintaining
117 - a database may have a different retention policy and possibly run
118 - (even different) alarms on them.
114 + metrics databases can be configured on all nodes and each node maintaining
115 + a database may have a different retention policy and possibly run
116 + (even different) alarms on them.
117
120 - * monitoring ephemeral nodes
118 +- monitoring ephemeral nodes
119
122 - netdata now supports monitoring autoscaled ephemeral nodes,
123 - that are started and stopped on demand (their IP is not known).
120 + netdata now supports monitoring autoscaled ephemeral nodes,
121 + that are started and stopped on demand (their IP is not known).
122
125 - When the ephemeral nodes start streaming metrics to the central
126 - netdata, the central netdata will show register them at "my-netdata"
127 - menu on the dashboard.
123 + When the ephemeral nodes start streaming metrics to the central
124 + netdata, the central netdata will show register them at "my-netdata"
125 + menu on the dashboard.
126
129 - For more information check:
130 - https://github.com/netdata/netdata/tree/master/streaming#monitoring-ephemeral-nodes
127 + For more information check:
128 + <https://github.com/netdata/netdata/tree/master/streaming#monitoring-ephemeral-nodes>
129
132 - * monitoring ephemeral containers and VM guests
130 +- monitoring ephemeral containers and VM guests
131
134 - netdata now cleans up container, guest VM, network interfaces and mounted
135 - disk metrics, disabling automatically their alarms too.
132 + netdata now cleans up container, guest VM, network interfaces and mounted
133 + disk metrics, disabling automatically their alarms too.
134
137 - For more information check:
138 - https://github.com/netdata/netdata/tree/master/collectors/cgroups.plugin#monitoring-ephemeral-containers
135 + For more information check:
136 + <https://github.com/netdata/netdata/tree/master/collectors/cgroups.plugin#monitoring-ephemeral-containers>
137
140 - * apps.plugin ported for FreeBSD
138 +- apps.plugin ported for FreeBSD
139
142 - @vlvkobal has ported "apps.plugin" to FreeBSD. netdata can now provide
143 - "Applications", "Users" and "User Groups" on FreeBSD.
140 + @vlvkobal has ported "apps.plugin" to FreeBSD. netdata can now provide
141 + "Applications", "Users" and "User Groups" on FreeBSD.
142
145 - * web_log plugin
143 +- web_log plugin
144
147 - @l2isbad has done a wonderful job creating a unified web log parsing plugin
148 - for all kinds of web server logs. With it, netdata provides real-time
149 - performance information and health monitoring alarms for web applications
150 - and web sites!
145 + @l2isbad has done a wonderful job creating a unified web log parsing plugin
146 + for all kinds of web server logs. With it, netdata provides real-time
147 + performance information and health monitoring alarms for web applications
148 + and web sites!
149
152 - For more information check:
153 - https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/web_log#web_log
150 + For more information check:
151 + <https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/web_log#web_log>
152
155 - * backends
153 +- backends
154
157 - netdata can now archive metrics to `JSON` backends
158 - (both push, by @lfdominguez, and pull modes).
155 + netdata can now archive metrics to `JSON` backends
156 + (both push, by @lfdominguez, and pull modes).
157
160 - * IPMI monitoring
158 +- IPMI monitoring
159
162 - netdata now has an IPMI plugin (based on freeipmi)
163 - for monitoring server hardware.
160 + netdata now has an IPMI plugin (based on freeipmi)
161 + for monitoring server hardware.
162
165 - The plugin creates (up to) 8 charts:
163 + The plugin creates (up to) 8 charts:
164
167 - 1. number of sensors by state
168 - 2. number of events in SEL
169 - 3. Temperatures CELCIUS
170 - 4. Temperatures FAHRENHEIT
171 - 5. Voltages
172 - 6. Currents
173 - 7. Power
174 - 8. Fans
165 + 1. number of sensors by state
166 + 2. number of events in SEL
167 + 3. Temperatures CELCIUS
168 + 4. Temperatures FAHRENHEIT
169 + 5. Voltages
170 + 6. Currents
171 + 7. Power
172 + 8. Fans
173
176 - It also supports alarms (including the number of sensors in critical state).
174 + It also supports alarms (including the number of sensors in critical state).
175
178 - For more information, check:
179 - https://github.com/netdata/netdata/tree/master/collectors/freeipmi.plugin
176 + For more information, check:
177 + <https://github.com/netdata/netdata/tree/master/collectors/freeipmi.plugin>
178
181 - * new plugins
179 +- new plugins
180
183 - @l2isbad builds python data collection plugins for netdata at an wonderfull
184 - rate! He rocks!
181 + @l2isbad builds python data collection plugins for netdata at an wonderfull
182 + rate! He rocks!
183
186 - - **web_log** for monitoring in real-time all kinds of web server log files @l2isbad
187 - - **freeipmi** for monitoring IPMI (server hardware)
188 - - **nsd** (the [name server daemon](https://www.nlnetlabs.nl/projects/nsd/)) @383c57
189 - - **mongodb** @l2isbad
190 - - **smartd_log** (monitoring disk S.M.A.R.T. values) @l2isbad
184 + - **web_log** for monitoring in real-time all kinds of web server log files @l2isbad
185 + - **freeipmi** for monitoring IPMI (server hardware)
186 + - **nsd** (the [name server daemon](https://www.nlnetlabs.nl/projects/nsd/)) @383c57
187 + - **mongodb** @l2isbad
188 + - **smartd_log** (monitoring disk S.M.A.R.T. values) @l2isbad
189
192 - * improved plugins
190 +- improved plugins
191
194 - - **nfacct** reworked and now collects connection tracker information using netlink.
195 - - **ElasticSearch** re-worked @l2isbad
196 - - **mysql** re-worked to allow faster development of custom mysql based plugins (MySQLService) @l2isbad
197 - - **SNMP**
198 - - **tomcat** @NMcCloud
199 - - **ap** (monitoring hostapd access points)
200 - - **php_fpm** @l2isbad
201 - - **postgres** @l2isbad
202 - - **isc_dhcpd** @l2isbad
203 - - **bind_rndc** @l2isbad
204 - - **numa**
205 - - **apps.plugin** improvements and freebsd support @vlvkobal
206 - - **fail2ban** @l2isbad
207 - - **freeradius** @l2isbad
208 - - **nut** (monitoring UPSes)
209 - - **tc** (Linux QoS) now works on qdiscs instead of classes for the same result (a lot faster) @t-h-e
210 - - **varnish** @l2isbad
192 + - **nfacct** reworked and now collects connection tracker information using netlink.
193 + - **ElasticSearch** re-worked @l2isbad
194 + - **mysql** re-worked to allow faster development of custom mysql based plugins (MySQLService) @l2isbad
195 + - **SNMP**
196 + - **tomcat** @NMcCloud
197 + - **ap** (monitoring hostapd access points)
198 + - **php_fpm** @l2isbad
199 + - **postgres** @l2isbad
200 + - **isc_dhcpd** @l2isbad
201 + - **bind_rndc** @l2isbad
202 + - **numa**
203 + - **apps.plugin** improvements and freebsd support @vlvkobal
204 + - **fail2ban** @l2isbad
205 + - **freeradius** @l2isbad
206 + - **nut** (monitoring UPSes)
207 + - **tc** (Linux QoS) now works on qdiscs instead of classes for the same result (a lot faster) @t-h-e
208 + - **varnish** @l2isbad
209
212 - * new and improved alarms
213 - - **web_log**, many alarms to detect common web site/API issues
214 - - **fping**, alarms to detect packet loss, disconnects and unusually high latency
215 - - **cpu**, cpu utilization alarm now ignores `nice`
210 +- new and improved alarms
211 + - **web_log**, many alarms to detect common web site/API issues
212 + - **fping**, alarms to detect packet loss, disconnects and unusually high latency
213 + - **cpu**, cpu utilization alarm now ignores `nice`
214
217 - * new and improved alarm notification methods
218 - - **HipChat** to allow hosted HipChat @frei-style
219 - - **discordapp** @lowfive
215 +- new and improved alarm notification methods
216 + - **HipChat** to allow hosted HipChat @frei-style
217 + - **discordapp** @lowfive
218
221 - * dashboard improvements
222 - - dashboard now works on HiDPi screens
223 - - dashboard now shows version of netdata
224 - - dashboard now resets charts properly
225 - - dashboard updated to use latest gauge.js release
219 +- dashboard improvements
220 + - dashboard now works on HiDPi screens
221 + - dashboard now shows version of netdata
222 + - dashboard now resets charts properly
223 + - dashboard updated to use latest gauge.js release
224
227 - * other improvements
228 - - thanks to @rlefevre netdata now uses a lot of different high resolution system clocks.
225 +- other improvements
226 + - thanks to @rlefevre netdata now uses a lot of different high resolution system clocks.
227
228 netdata has received a lot more improvements from many more contributors!
229
230 Thank you all!
231
234 -
232 netdata (1.5.0) - 2017-01-22
233
237 - * yet another release that makes netdata the fastest
238 - netdata ever!
239 -
240 - * netdata runs on FreeBSD, FreeNAS and MacOS !
241 -
242 - Vladimir Kobal (@vlvkobal) has done a magnificent work
243 - porting netdata to FreeBSD and MacOS.
244 -
245 - Everyhing works: cpu, memory, disks performance, disks space,
246 - network interfaces, interrupts, IPv4 metrics, IPv6 metrics
247 - processes, context switches, softnet, IPC queues,
248 - IPC semaphores, IPC shared memory, uptime, etc. Wow!
249 -
250 - * netdata supports data archiving to backend databases:
251 -
252 - - Graphite
253 - - OpenTSDB
254 - - Prometheus
255 -
256 - and of course all the compatible ones
257 - (KairosDB, InfluxDB, Blueflood, etc)
258 -
259 - * new plugins:
260 -
261 - Ilya Mashchenko (@l2isbad) has created most of the python
262 - data collection plugins in this release !
263 -
264 - - systemd Services (using cgroups!)
265 - - FPing (yes, network latency in netdata!)
266 - - postgres databases @facetoe, @moumoul
267 - - Vanish disk cache (v3 and v4) @l2isbad
268 - - ElasticSearch @l2isbad
269 - - HAproxy @l2isbad
270 - - FreeRadius @l2isbad, @lgz
271 - - mdstat (RAID) @l2isbad
272 - - ISC bind (via rndc) @l2isbad
273 - - ISC dhcpd @l2isbad, @lgz
274 - - Fail2Ban @l2isbad
275 - - OpenVPN status log @l2isbad, @lgz
276 - - NUMA memory @tycho
277 - - CPU Idle @tycho
278 - - gunicorn log @deltaskelta
279 - - ECC memory hardware errors
280 - - IPC semaphores
281 - - uptime plugin (with a nice badge too)
282 -
283 - * improved plugins:
284 -
285 - - netfilter conntrack
286 - - mysql (replication) @l2isbad
287 - - ipfs @pjz
288 - - cpufreq @tycho
289 - - hddtemp @l2isbad
290 - - sensors @l2isbad
291 - - nginx @leolovenet
292 - - nginx_log @paulfantom
293 - - phpfpm @leolovenet
294 - - redis @leolovenet
295 - - dovecot @justohall
296 - - cgroups
297 - - disk space
298 - - apps.plugin
299 - - /proc/interrupts @rlefevre
300 - - /proc/softirqs @rlefevre
301 - - /proc/vmstat (system memory charts)
302 - - /proc/net/snmp6 (IPv6 charts)
303 - - /proc/self/meminfo (system memory charts)
304 - - /proc/net/dev (network interfaces)
305 - - tc (linux QoS)
306 -
307 - * new/improved alarms:
308 -
309 - - MySQL / MariaDB alarms (incl. replication)
310 - - IPFS alarms
311 - - HAproxy alarms
312 - - UDP buffer alarms
313 - - TCP AttemptFails
314 - - ECC memory alarms
315 - - netfilter connections alarms
316 - - SNMP
317 -
318 - * new alarm notifications:
319 -
320 - - messagebird.com @tech-no-logical
321 - - pagerduty.com @jimcooley
322 - - pushbullet.com @tperalta82
323 - - twilio.com @shadycuz
324 - - HipChat
325 - - kafka
326 -
327 - * shell integration
328 -
329 - - shell scripts can now query netdata easily!
330 -
331 - * dashboard improvements:
332 - - dashboard is now faster on firefox, safari, opera, edge
333 - (edge is still the slowest)
334 - - dashboard now has a little bigger fonts
335 - - SHIFT + mouse wheel to zoom charts, works on all browsers
336 - - perfect-scrollbar on the dashboard
337 - - dashboard 4K resolution fixes
338 - - dashboard compatibility fixes for embedding charts in
339 - third party web sites
340 - - charts on custom dashboards can have common min/max
341 - even if they come from different netdata servers
342 - - alarm log is now saved and loaded back so that
343 - the alarm history is available at the dashboard
344 -
345 - * other improvements:
346 - - python.d.plugin has received way to many improvements
347 - from many contributors!
348 - - charts.d.plugin can now be forked to support
349 - multiple independent instances
350 - - registry has been re-factored to lower its memory
351 - requirements (required for the public registry)
352 - - simple patterns in cgroups, disks and alarms
353 - - netdata-installer.sh can now correctly install
354 - netdata in containers
355 - - supplied logrotate script compatibility fixes
356 - - spec cleanup @breed808
357 - - clocks and timers reworked @rlefevre
234 +- yet another release that makes netdata the fastest
235 + netdata ever!
236 +
237 +- netdata runs on FreeBSD, FreeNAS and MacOS !
238 +
239 + Vladimir Kobal (@vlvkobal) has done a magnificent work
240 + porting netdata to FreeBSD and MacOS.
241 +
242 + Everyhing works: cpu, memory, disks performance, disks space,
243 + network interfaces, interrupts, IPv4 metrics, IPv6 metrics
244 + processes, context switches, softnet, IPC queues,
245 + IPC semaphores, IPC shared memory, uptime, etc. Wow!
246 +
247 +- netdata supports data archiving to backend databases:
248 +
249 + - Graphite
250 + - OpenTSDB
251 + - Prometheus
252 +
253 + and of course all the compatible ones
254 + (KairosDB, InfluxDB, Blueflood, etc)
255 +
256 +- new plugins:
257 +
258 + Ilya Mashchenko (@l2isbad) has created most of the python
259 + data collection plugins in this release !
260 +
261 + - systemd Services (using cgroups!)
262 + - FPing (yes, network latency in netdata!)
263 + - postgres databases @facetoe, @moumoul
264 + - Vanish disk cache (v3 and v4) @l2isbad
265 + - ElasticSearch @l2isbad
266 + - HAproxy @l2isbad
267 + - FreeRadius @l2isbad, @lgz
268 + - mdstat (RAID) @l2isbad
269 + - ISC bind (via rndc) @l2isbad
270 + - ISC dhcpd @l2isbad, @lgz
271 + - Fail2Ban @l2isbad
272 + - OpenVPN status log @l2isbad, @lgz
273 + - NUMA memory @tycho
274 + - CPU Idle @tycho
275 + - gunicorn log @deltaskelta
276 + - ECC memory hardware errors
277 + - IPC semaphores
278 + - uptime plugin (with a nice badge too)
279 +
280 +- improved plugins:
281 +
282 + - netfilter conntrack
283 + - mysql (replication) @l2isbad
284 + - ipfs @pjz
285 + - cpufreq @tycho
286 + - hddtemp @l2isbad
287 + - sensors @l2isbad
288 + - nginx @leolovenet
289 + - nginx_log @paulfantom
290 + - phpfpm @leolovenet
291 + - redis @leolovenet
292 + - dovecot @justohall
293 + - cgroups
294 + - disk space
295 + - apps.plugin
296 + - /proc/interrupts @rlefevre
297 + - /proc/softirqs @rlefevre
298 + - /proc/vmstat (system memory charts)
299 + - /proc/net/snmp6 (IPv6 charts)
300 + - /proc/self/meminfo (system memory charts)
301 + - /proc/net/dev (network interfaces)
302 + - tc (linux QoS)
303 +
304 +- new/improved alarms:
305 +
306 + - MySQL / MariaDB alarms (incl. replication)
307 + - IPFS alarms
308 + - HAproxy alarms
309 + - UDP buffer alarms
310 + - TCP AttemptFails
311 + - ECC memory alarms
312 + - netfilter connections alarms
313 + - SNMP
314 +
315 +- new alarm notifications:
316 +
317 + - messagebird.com @tech-no-logical
318 + - pagerduty.com @jimcooley
319 + - pushbullet.com @tperalta82
320 + - twilio.com @shadycuz
321 + - HipChat
322 + - kafka
323 +
324 +- shell integration
325 +
326 + - shell scripts can now query netdata easily!
327 +
328 +- dashboard improvements:
329 + - dashboard is now faster on firefox, safari, opera, edge
330 + (edge is still the slowest)
331 + - dashboard now has a little bigger fonts
332 + - SHIFT + mouse wheel to zoom charts, works on all browsers
333 + - perfect-scrollbar on the dashboard
334 + - dashboard 4K resolution fixes
335 + - dashboard compatibility fixes for embedding charts in
336 + third party web sites
337 + - charts on custom dashboards can have common min/max
338 + even if they come from different netdata servers
339 + - alarm log is now saved and loaded back so that
340 + the alarm history is available at the dashboard
341 +
342 +- other improvements:
343 + - python.d.plugin has received way to many improvements
344 + from many contributors!
345 + - charts.d.plugin can now be forked to support
346 + multiple independent instances
347 + - registry has been re-factored to lower its memory
348 + requirements (required for the public registry)
349 + - simple patterns in cgroups, disks and alarms
350 + - netdata-installer.sh can now correctly install
351 + netdata in containers
352 + - supplied logrotate script compatibility fixes
353 + - spec cleanup @breed808
354 + - clocks and timers reworked @rlefevre
355
356 netdata has received a lot more improvements from many more
357 contributors!
358
359 Thank you all guys!
363 -
364 -
360 +
361 netdata (1.4.0) - 2016-10-04
362
363 At a glance:
364
369 - - the fastest netdata ever (with a better look too)!
370 - - improved IoT and containers support!
371 - - alarms improved in almost every way!
372 -
373 - - new plugins:
374 - softnet netdev,
375 - extended TCP metrics,
376 - UDPLite
377 - NFS v2, v3 client (server was there already),
378 - NFS v4 server & client,
379 - APCUPSd,
380 - RetroShare
381 -
382 - - improved plugins:
383 - mysql,
384 - cgroups,
385 - hddtemp,
386 - sensors,
387 - phpfm,
388 - tc (QoS)
365 +- the fastest netdata ever (with a better look too)!
366 +
367 +- improved IoT and containers support!
368 +
369 +- alarms improved in almost every way!
370 +
371 +- new plugins:
372 + softnet netdev,
373 + extended TCP metrics,
374 + UDPLite
375 + NFS v2, v3 client (server was there already),
376 + NFS v4 server & client,
377 + APCUPSd,
378 + RetroShare
379 +
380 +- improved plugins:
381 + mysql,
382 + cgroups,
383 + hddtemp,
384 + sensors,
385 + phpfm,
386 + tc (QoS)
387
388 In detail:
389
392 - * improved alarms
390 +- improved alarms
391 +
392 + Many new alarms have been added to detect common kernel
393 + configuration errors and old alarms have been re-worked
394 + to avoid notification floods.
395
394 - Many new alarms have been added to detect common kernel
395 - configuration errors and old alarms have been re-worked
396 - to avoid notification floods.
396 + Alarms now support notification hysteresis (both static
397 + and dynamic), notification self-cancellation, dynamic
398 + thresholds based on current alarm status
399
398 - Alarms now support notification hysteresis (both static
399 - and dynamic), notification self-cancellation, dynamic
400 - thresholds based on current alarm status
400 +- improved alarm notifications
401
402 - * improved alarm notifications
402 + netdata now supports:
403
404 - netdata now supports:
404 + - email notifications
405 + - slack.com notifications on slack channels
406 + - pushover.net notifications (mobile push notifications)
407 + - telegram.org notifications
408
406 - - email notifications
407 - - slack.com notifications on slack channels
408 - - pushover.net notifications (mobile push notifications)
409 - - telegram.org notifications
409 + For all the above methods, netdata supports role-based
410 + notifications, with multiple recipients for each role
411 + and severity filtering per recipient!
412
411 - For all the above methods, netdata supports role-based
412 - notifications, with multiple recipients for each role
413 - and severity filtering per recipient!
413 + Also, netdata support HTML5 notifications, while the
414 + dashboard is open in a browser window (no need to be
415 + the active one).
416
415 - Also, netdata support HTML5 notifications, while the
416 - dashboard is open in a browser window (no need to be
417 - the active one).
417 + All notifications are now clickable to get to the chart
418 + that raised the alarm.
419
419 - All notifications are now clickable to get to the chart
420 - that raised the alarm.
420 +- improved IoT support!
421
422 - * improved IoT support!
422 + netdata builds and runs with musl libc and runs on systems
423 + based on busybox.
424
424 - netdata builds and runs with musl libc and runs on systems
425 - based on busybox.
425 +- improved containers support!
426
427 - * improved containers support!
427 + netdata runs on alpine linux (a low profile linux distribution
428 + used in containers).
429
429 - netdata runs on alpine linux (a low profile linux distribution
430 - used in containers).
430 +- Dozens of other improvements and bugfixes
431
432 - * Dozens of other improvements and bugfixes
433 -
434 -
432 netdata (1.3.0) - 2016-08-28
433
434 At a glance:
435
439 - - netdata has health monitoring / alarms!
440 - - netdata has badges that can be embeded anywhere!
441 - - netdata plugins are now written in Python!
442 - - new plugins: redis, memcached, nginx_log, ipfs, apache_cache
436 +- netdata has health monitoring / alarms!
437 +- netdata has badges that can be embeded anywhere!
438 +- netdata plugins are now written in Python!
439 +- new plugins: redis, memcached, nginx_log, ipfs, apache_cache
440
441 IMPORTANT:
442 Since netdata now uses Python plugins, new packages are
443 required to be installed on a system to allow it work.
444 For more information, please check the installation page:
445
449 - https://github.com/netdata/netdata/tree/master/installer#installation
446 + <https://github.com/netdata/netdata/tree/master/installer#installation>
447
448 In detail:
449
453 - * netdata has alarms!
450 +- netdata has alarms!
451 +
452 + Based on the POLL we made on github
453 + (<https://github.com/netdata/netdata/issues/436>),
454 + health monitoring was the winner. So here it is!
455
455 - Based on the POLL we made on github
456 - (https://github.com/netdata/netdata/issues/436),
457 - health monitoring was the winner. So here it is!
456 + netdata now has a poweful health monitoring system embedded.
457 + Please check the wiki page:
458
459 - netdata now has a poweful health monitoring system embedded.
460 - Please check the wiki page:
459 + <https://github.com/netdata/netdata/tree/master/health>
460
462 - https://github.com/netdata/netdata/tree/master/health
461 +- netdata has badges!
462
464 - * netdata has badges!
463 + netdata can generate badges with live information from the
464 + collected metrics.
465 + Please check the wiki page:
466
466 - netdata can generate badges with live information from the
467 - collected metrics.
468 - Please check the wiki page:
467 + <https://github.com/netdata/netdata/tree/master/web/api/badges>
468
470 - https://github.com/netdata/netdata/tree/master/web/api/badges
469 +- netdata plugins are now written in Python!
470
472 - * netdata plugins are now written in Python!
471 + Thanks to the great work of Paweł Krupa (@paulfantom), most BASH
472 + plugins have been ported to Python.
473
474 - Thanks to the great work of Paweł Krupa (@paulfantom), most BASH
475 - plugins have been ported to Python.
474 + The new python.d.plugin supports both python2 and python3 and
475 + data collection from multiple sources for all modules.
476
477 - The new python.d.plugin supports both python2 and python3 and
478 - data collection from multiple sources for all modules.
477 + The following pre-existing modules have been ported to Python:
478
480 - The following pre-existing modules have been ported to Python:
479 + - apache
480 + - cpufreq
481 + - example
482 + - exim
483 + - hddtemp
484 + - mysql
485 + - nginx
486 + - phpfm
487 + - postfix
488 + - sensors
489 + - squid
490 + - tomcat
491
482 - - apache
483 - - cpufreq
484 - - example
485 - - exim
486 - - hddtemp
487 - - mysql
488 - - nginx
489 - - phpfm
490 - - postfix
491 - - sensors
492 - - squid
493 - - tomcat
492 + The following new modules have been added:
493
495 - The following new modules have been added:
494 + - apache_cache
495 + - dovecot
496 + - ipfs
497 + - memcached
498 + - nginx_log
499 + - redis
500
497 - - apache_cache
498 - - dovecot
499 - - ipfs
500 - - memcached
501 - - nginx_log
502 - - redis
501 +- other data collectors:
502
504 - * other data collectors:
503 + - Thanks to @simonnagl netdata now reports disk space usage.
504
506 - - Thanks to @simonnagl netdata now reports disk space usage.
505 +- dashboards now transfer a certain settings from server to server
506 + when changing servers via the my-netdata menu.
507
508 - * dashboards now transfer a certain settings from server to server
509 - when changing servers via the my-netdata menu.
508 + The settings transferred are the dashboard theme, the online
509 + help status and current pan and zoom timeframe of the dashboard.
510
511 - The settings transferred are the dashboard theme, the online
512 - help status and current pan and zoom timeframe of the dashboard.
511 +- API improvements:
512
514 - * API improvements:
513 + - reduction functions now support 'min', 'sum' and 'incremental-sum'.
514
516 - - reduction functions now support 'min', 'sum' and 'incremental-sum'.
515 + - netdata now offers a multi-threaded and a single threaded
516 + web server (single threaded is better for IoT).
517
518 - - netdata now offers a multi-threaded and a single threaded
519 - web server (single threaded is better for IoT).
518 +- apps.plugin improvements:
519
521 - * apps.plugin improvements:
520 + - can now run with command line argument 'without-files'
521 + to prevent it from enumating all the open files/sockets/pipes
522 + of all running processes.
523
523 - - can now run with command line argument 'without-files'
524 - to prevent it from enumating all the open files/sockets/pipes
525 - of all running processes.
524 + - apps.plugin now scales the collected values to match the
525 + the total system usage.
526
527 - - apps.plugin now scales the collected values to match the
528 - the total system usage.
527 + - apps.plugin can now report guest CPU usage per process.
528
530 - - apps.plugin can now report guest CPU usage per process.
529 + - repeating errors are now logged once per process.
530
532 - - repeating errors are now logged once per process.
531 +- netdata now runs with IDLE process priority (lower than nice 19)
532
534 - * netdata now runs with IDLE process priority (lower than nice 19)
533 +- netdata now instructs the kernel to kill it first when it starves
534 + for memory.
535
536 - * netdata now instructs the kernel to kill it first when it starves
537 - for memory.
536 +- netdata listens for signals:
537
539 - * netdata listens for signals:
538 + - SIGHUP to netdata instructs it to re-open its log files
539 + (new logrotate files added too).
540
541 - - SIGHUP to netdata instructs it to re-open its log files
542 - (new logrotate files added too).
541 + - SIGUSR1 to netdata saves the database
542
544 - - SIGUSR1 to netdata saves the database
543 + - SIGUSR2 to netdata reloads health / alarms configuration
544
546 - - SIGUSR2 to netdata reloads health / alarms configuration
545 +- netdata can now bind to multiple IPs and ports.
546
548 - * netdata can now bind to multiple IPs and ports.
547 +- netdata now has new systemd service file (it starts as user
548 + netdata and does not fork).
549
550 - * netdata now has new systemd service file (it starts as user
551 - netdata and does not fork).
550 +- Dozens of other improvements and bugfixes
551
553 - * Dozens of other improvements and bugfixes
554 -
555 -
552 netdata (1.2.0) - 2016-05-16
553
554 At a glance:
555
560 - - netdata is now 30% faster
561 - - netdata now has a registry (my-netdata dashboard menu)
562 - - netdata now monitors Linux Containers (docker, lxc, etc)
556 +- netdata is now 30% faster
557 +- netdata now has a registry (my-netdata dashboard menu)
558 +- netdata now monitors Linux Containers (docker, lxc, etc)
559
560 IMPORTANT:
561 This version requires libuuid. The package you need is:
562
567 - - uuid-dev (debian/ubuntu), or
568 - - libuuid-devel (centos/fedora/redhat)
563 +- uuid-dev (debian/ubuntu), or
564 +- libuuid-devel (centos/fedora/redhat)
565
566 In detail:
567
572 - * netdata is now 30% faster !
568 +- netdata is now 30% faster !
569 +
570 + - Patches submitted by @fredericopissarra improved overall
571 + netdata performance by 10%.
572 +
573 + - A new improved search function in the internal indexes
574 + made all searches faster by 50%, resulting in about
575 + 20% better performance for the core of netdata.
576
574 - - Patches submitted by @fredericopissarra improved overall
575 - netdata performance by 10%.
577 + - More efficient threads locking in key components
578 + contributed to the overal efficiency.
579
577 - - A new improved search function in the internal indexes
578 - made all searches faster by 50%, resulting in about
579 - 20% better performance for the core of netdata.
580 +- netdata now has a CENTRAL REGISTRY !
581
581 - - More efficient threads locking in key components
582 - contributed to the overal efficiency.
582 + The central registry tracks all your netdata servers
583 + and bookmarks them for you at the 'my-netdata' menu
584 + on all dashboards.
585
584 - * netdata now has a CENTRAL REGISTRY !
586 + Every netdata can act as a registry, but there is also
587 + a global registry provided for free for all netdata users!
588
586 - The central registry tracks all your netdata servers
587 - and bookmarks them for you at the 'my-netdata' menu
588 - on all dashboards.
589 +- netdata now monitors CONTAINERS !
590
590 - Every netdata can act as a registry, but there is also
591 - a global registry provided for free for all netdata users!
591 + docker, lxc, or anything else. For each container it monitors
592 + CPU, RAM, DISK I/O (network interfaces were already monitored)
593
593 - * netdata now monitors CONTAINERS !
594 -
595 - docker, lxc, or anything else. For each container it monitors
596 - CPU, RAM, DISK I/O (network interfaces were already monitored)
594 +- apps.plugin: now uses linux capabilities by default
595 + without setuid to root
596
598 - * apps.plugin: now uses linux capabilities by default
599 - without setuid to root
597 +- netdata has now an improved signal handler
598 + thanks to @simonnagl
599
601 - * netdata has now an improved signal handler
602 - thanks to @simonnagl
600 +- API: new improved CORS support
601
604 - * API: new improved CORS support
602 +- SNMP: counter64 support fixed
603
606 - * SNMP: counter64 support fixed
604 +- MYSQL: more charts, about QCache, MyISAM key cache,
605 + InnoDB buffer pools, open files
606
608 - * MYSQL: more charts, about QCache, MyISAM key cache,
609 - InnoDB buffer pools, open files
607 +- DISK charts now show mount point when available
608
611 - * DISK charts now show mount point when available
609 +- Dashboard: improved support for older web browsers
610 + and mobile web browsers (thanks to @simonnagl)
611
613 - * Dashboard: improved support for older web browsers
614 - and mobile web browsers (thanks to @simonnagl)
612 +- Multi-server dashboards now allow de-coupled refreshes for
613 + each chart, so that if one netdata has a network latency
614 + the other charts are not affected
615
616 - * Multi-server dashboards now allow de-coupled refreshes for
617 - each chart, so that if one netdata has a network latency
618 - the other charts are not affected
616 +- Several other minor improvements and bugfixes
617
620 - * Several other minor improvements and bugfixes
621 -
622 -
618 netdata (1.1.0) - 2016-04-20
619
620 Dozens of commits that improve netdata in several ways:
621
627 - - Data collection: added IPv6 monitoring
628 - - Data collection: added SYNPROXY DDoS protection monitoring
629 - - Data collection: apps.plugin: added charts for users and user groups
630 - - Data collection: apps.plugin: grouping of processes now support patterns
631 - - Data collection: apps.plugin: now it is faster, after the new features added
632 - - Data collection: better auto-detection of partitions for disk monitoring
633 - - Data collection: better fireqos intergation for QoS monitoring
634 - - Data collection: squid monitoring now uses squidclient
635 - - Data collection: SNMP monitoring now supports 64bit counters
636 - - API: fixed issues in CSV output generation
637 - - API: netdata can now be restricted to listen on a specific IP
638 - - Core and apps.plugin: error log flood protection
639 - - Dashboard: better error handling when the netdata server is unreachable
640 - - Dashboard: each chart now has a toolbox
641 - - Dashboard: on-line help support
642 - - Dashboard: check for netdata updates button
643 - - Dashboard: added example /tv.html dashboard
644 - - Packaging: now compiles with musl libc (alpine linux)
645 - - Packaging: added debian packaging
646 - - Packaging: support non-root installations
647 - - Packaging: the installer generates uninstall script
622 +- Data collection: added IPv6 monitoring
623 +- Data collection: added SYNPROXY DDoS protection monitoring
624 +- Data collection: apps.plugin: added charts for users and user groups
625 +- Data collection: apps.plugin: grouping of processes now support patterns
626 +- Data collection: apps.plugin: now it is faster, after the new features added
627 +- Data collection: better auto-detection of partitions for disk monitoring
628 +- Data collection: better fireqos intergation for QoS monitoring
629 +- Data collection: squid monitoring now uses squidclient
630 +- Data collection: SNMP monitoring now supports 64bit counters
631 +- API: fixed issues in CSV output generation
632 +- API: netdata can now be restricted to listen on a specific IP
633 +- Core and apps.plugin: error log flood protection
634 +- Dashboard: better error handling when the netdata server is unreachable
635 +- Dashboard: each chart now has a toolbox
636 +- Dashboard: on-line help support
637 +- Dashboard: check for netdata updates button
638 +- Dashboard: added example /tv.html dashboard
639 +- Packaging: now compiles with musl libc (alpine linux)
640 +- Packaging: added debian packaging
641 +- Packaging: support non-root installations
642 +- Packaging: the installer generates uninstall script
643
644 netdata (1.0.0) - 2016-03-22
645
651 - - first public release
646 +- first public release
647
648 netdata (1.0.0-rc.1) - 2015-11-28
649
655 - - initial packaging
650 +- initial packaging
README.md
+258 -225
@@ -1,6 +1,6 @@
1 -# Netdata [![Build Status](https://travis-ci.com/netdata/netdata.svg?branch=master)](https://travis-ci.com/netdata/netdata) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2231/badge)](https://bestpractices.coreinfrastructure.org/projects/2231) [![License: GPL v3+](https://img.shields.io/badge/License-GPL%20v3%2B-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Freadme&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +# Netdata [![Build Status](https://travis-ci.com/netdata/netdata.svg?branch=master)](https://travis-ci.com/netdata/netdata) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2231/badge)](https://bestpractices.coreinfrastructure.org/projects/2231) [![License: GPL v3+](https://img.shields.io/badge/License-GPL%20v3%2B-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Freadme&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
2
3 -[![Code Climate](https://codeclimate.com/github/netdata/netdata/badges/gpa.svg)](https://codeclimate.com/github/netdata/netdata) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a994873f30d045b9b4b83606c3eb3498)](https://www.codacy.com/app/netdata/netdata?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=netdata/netdata&amp;utm_campaign=Badge_Grade) [![LGTM C](https://img.shields.io/lgtm/grade/cpp/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:cpp) [![LGTM JS](https://img.shields.io/lgtm/grade/javascript/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:javascript) [![LGTM PYTHON](https://img.shields.io/lgtm/grade/python/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:python)
3 +[![Code Climate](https://codeclimate.com/github/netdata/netdata/badges/gpa.svg)](https://codeclimate.com/github/netdata/netdata) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a994873f30d045b9b4b83606c3eb3498)](https://www.codacy.com/app/netdata/netdata?utm_source=github.com&utm_medium=referral&utm_content=netdata/netdata&utm_campaign=Badge_Grade) [![LGTM C](https://img.shields.io/lgtm/grade/cpp/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:cpp) [![LGTM JS](https://img.shields.io/lgtm/grade/javascript/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:javascript) [![LGTM PYTHON](https://img.shields.io/lgtm/grade/python/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:python)
4
5 ---
6
@@ -8,7 +8,7 @@
8
9 Netdata provides **unparalleled insights**, **in real-time**, of everything happening on the systems it runs (including web servers, databases, applications), using **highly interactive web dashboards**. It can run autonomously, without any third party components, or it can be integrated to existing monitoring tool chains (Prometheus, Graphite, OpenTSDB, Kafka, Grafana, etc).
10
11 -_Netdata is **fast** and **efficient**, designed to permanently run on all systems (**physical** & **virtual** servers, **containers**, **IoT** devices), without disrupting their core function._
11 +*Netdata is **fast** and **efficient**, designed to permanently run on all systems (**physical** & **virtual** servers, **containers**, **IoT** devices), without disrupting their core function.*
12
13 Netdata is **free, open-source software** and it currently runs on **Linux**, **FreeBSD**, and **MacOS**.
14
@@ -23,18 +23,17 @@ Once you use it on your systems, **there is no going back**! *You have been warn
23
24 [![Tweet about Netdata!](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Tweet%20about%20netdata)](https://twitter.com/intent/tweet?text=Netdata,%20real-time%20performance%20and%20health%20monitoring,%20done%20right!&url=https://my-netdata.io/&via=linuxnetdata&hashtags=netdata,monitoring)
25
26 -
26 ## Contents
27
29 -1. [How it looks](#how-it-looks) - have a quick look at it
30 -2. [User base](#user-base) - who uses Netdata?
31 -3. [Quick Start](#quick-start) - try it now on your systems
32 -4. [Why Netdata](#why-netdata) - why people love Netdata, how it compares with other solutions
33 -5. [News](#news) - latest news about Netdata
34 -6. [How it works](#how-it-works) - high level diagram of how Netdata works
35 -7. [infographic](#infographic) - everything about Netdata, in a page
36 -8. [Features](#features) - what features does it have
37 -9. [Visualization](#visualization) - unique visualization features
28 +1. [How it looks](#how-it-looks) - have a quick look at it
29 +2. [User base](#user-base) - who uses Netdata?
30 +3. [Quick Start](#quick-start) - try it now on your systems
31 +4. [Why Netdata](#why-netdata) - why people love Netdata, how it compares with other solutions
32 +5. [News](#news) - latest news about Netdata
33 +6. [How it works](#how-it-works) - high level diagram of how Netdata works
34 +7. [infographic](#infographic) - everything about Netdata, in a page
35 +8. [Features](#features) - what features does it have
36 +9. [Visualization](#visualization) - unique visualization features
37 10. [What does it monitor](#what-does-it-monitor) - which metrics it collects
38 11. [Documentation](#documentation) - read the docs
39 12. [Community](#community) - discuss with others and get support
@@ -62,11 +61,13 @@ You will find people working for **Amazon**, **Atos**, **Baidu**, **Cisco System
61 **Vimeo**, and many more!
62
63 ### Docker pulls
64 +
65 We provide docker images for the most common architectures. These are statistics reported by docker hub:
66
67 [![netdata/netdata (official)](https://img.shields.io/docker/pulls/netdata/netdata.svg?label=netdata/netdata+%28official%29)](https://hub.docker.com/r/netdata/netdata/) [![firehol/netdata (deprecated)](https://img.shields.io/docker/pulls/firehol/netdata.svg?label=firehol/netdata+%28deprecated%29)](https://hub.docker.com/r/firehol/netdata/) [![titpetric/netdata (donated)](https://img.shields.io/docker/pulls/titpetric/netdata.svg?label=titpetric/netdata+%28third+party%29)](https://hub.docker.com/r/titpetric/netdata/)
68
69 ### Registry
70 +
71 When you install multiple Netdata, they are integrated into **one distributed application**, via a [Netdata registry](registry/#registry). This is a web browser feature and it allows us to count the number of unique users and unique Netdata servers installed. The following information comes from the global public Netdata registry we run:
72
73 [![User Base](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&label=user%20base&units=M&value_color=blue&precision=2&divide=1000000&v43)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![Monitored Servers](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&label=servers%20monitored&units=k&divide=1000&value_color=orange&precision=2&v43)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![Sessions Served](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&label=sessions%20served&units=M&value_color=yellowgreen&precision=2&divide=1000000&v43)](https://registry.my-netdata.io/#menu_netdata_submenu_registry)
@@ -74,6 +75,7 @@ When you install multiple Netdata, they are integrated into **one distributed ap
75 *in the last 24 hours:*<br/> [![New Users Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&after=-86400&options=unaligned&group=incremental-sum&label=new%20users%20today&units=null&value_color=blue&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![New Machines Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&group=incremental-sum&after=-86400&options=unaligned&label=servers%20added%20today&units=null&value_color=orange&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![Sessions Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&after=-86400&group=incremental-sum&options=unaligned&label=sessions%20served%20today&units=null&value_color=yellowgreen&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry)
76
77 ## Quick Start
78 +
79 ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-3600&label=last+hour&units=installations&value_color=orange&precision=0) ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-86400&label=today&units=installations&precision=0)
80
81 To install Netdata from source on any Linux system (physical, virtual, container, IoT, edge) and keep it up to date with our **nightly releases** automatically, run the following:
@@ -90,14 +92,14 @@ To learn more about the pros and cons of using *nightly* vs. *stable* releases,
92
93 The above command will:
94
93 -- Install any required packages on your system (it will ask you to confirm before doing so)
94 -- Compile it, install it, and start it.
95 +- Install any required packages on your system (it will ask you to confirm before doing so)
96 +- Compile it, install it, and start it.
97
98 More installation methods and additional options can be found at the [installation page](packaging/installer/#installation).
99
100 To try Netdata in a docker container, run this:
101
100 -```
102 +```sh
103 docker run -d --name=netdata \
104 -p 19999:19999 \
105 -v /etc/passwd:/host/etc/passwd:ro \
@@ -122,25 +124,25 @@ Netdata has a quite different approach to monitoring.
124
125 Netdata is a monitoring agent you install on all your systems. It is:
126
125 -- a **metrics collector** - for system and application metrics (including web servers, databases, containers, etc)
126 -- a **time-series database** - all stored in memory (does not touch the disks while it runs)
127 -- a **metrics visualizer** - super fast, interactive, modern, optimized for anomaly detection
128 -- an **alarms notification engine** - an advanced watchdog for detecting performance and availability issues
127 +- a **metrics collector** - for system and application metrics (including web servers, databases, containers, etc)
128 +- a **time-series database** - all stored in memory (does not touch the disks while it runs)
129 +- a **metrics visualizer** - super fast, interactive, modern, optimized for anomaly detection
130 +- an **alarms notification engine** - an advanced watchdog for detecting performance and availability issues
131
132 All the above, are packaged together in a very flexible, extremely modular, distributed application.
133
134 This is how Netdata compares to other monitoring solutions:
135
134 -Netdata|others (open-source and commercial)
135 -:---:|:---:
136 -**High resolution metrics** (1s granularity)|Low resolution metrics (10s granularity at best)
137 -Monitors everything, **thousands of metrics per node**|Monitor just a few metrics
138 -UI is super fast, optimized for **anomaly detection**|UI is good for just an abstract view
139 -**Meaningful presentation**, to help you understand the metrics|You have to know the metrics before you start
140 -Install and get results **immediately**|Long preparation is required to get any useful results
141 -Use it for **troubleshooting** performance problems|Use them to get *statistics of past performance*
142 -**Kills the console** for tracing performance issues|The console is always required for troubleshooting
143 -Requires **zero dedicated resources**|Require large dedicated resources
136 +|Netdata|others (open-source and commercial)|
137 +|:-----:|:---------------------------------:|
138 +|**High resolution metrics** (1s granularity)|Low resolution metrics (10s granularity at best)|
139 +|Monitors everything, **thousands of metrics per node**|Monitor just a few metrics|
140 +|UI is super fast, optimized for **anomaly detection**|UI is good for just an abstract view|
141 +|**Meaningful presentation**, to help you understand the metrics|You have to know the metrics before you start|
142 +|Install and get results **immediately**|Long preparation is required to get any useful results|
143 +|Use it for **troubleshooting** performance problems|Use them to get *statistics of past performance*|
144 +|**Kills the console** for tracing performance issues|The console is always required for troubleshooting|
145 +|Requires **zero dedicated resources**|Require large dedicated resources|
146
147 Netdata is **open-source**, **free**, super **fast**, very **easy**, completely **open**, extremely **efficient**,
148 **flexible** and integrate-able.
@@ -156,21 +158,21 @@ Release v1.16.0 contains 40 bug fixes, 31 improvements and 20 documentation upda
158
159 **Binary distributions.** To improve the security, speed and reliability of new Netdata installations, we are delivering our own, industry standard installation method, with binary package distributions. The RPM binaries for the most common OSs are already available on packagecloud and we’ll have the DEB ones available very soon. All distributions are considered in Beta and, as always, we depend on our amazing community for feedback on improvements.
160
159 - - Our stable distributions are at [netdata/netdata @ packagecloud.io](https://packagecloud.io/netdata/netdata)
160 - - The nightly builds are at [netdata/netdata-edge @ packagecloud.io](https://packagecloud.io/netdata/netdata-edge)
161 +- Our stable distributions are at [netdata/netdata @ packagecloud.io](https://packagecloud.io/netdata/netdata)
162 +- The nightly builds are at [netdata/netdata-edge @ packagecloud.io](https://packagecloud.io/netdata/netdata-edge)
163
164 **Netdata now supports TLS encryption!** You can secure the communication to the [web server](https://docs.netdata.cloud/web/server/#enabling-tls-support), the [streaming connections from slaves to the master](https://docs.netdata.cloud/streaming/#securing-the-communication) and the connection to an [openTSDB backend](https://docs.netdata.cloud/backends/opentsdb/#https).
165
166 **This version also brings two long-awaited features to Netdata’s health monitoring:**
167
166 - - The [health management API](https://docs.netdata.cloud/web/api/health/#health-management-api) introduced in v1.12 allowed you to easily disable alarms and/or notifications while Netdata was running. However, those changes were not persisted across Netdata restarts. Since part of routine maintenance activities may involve completely restarting a monitoring node, Netdata now saves these configurations to disk, every time you issue a command to change the silencer settings. The new [LIST command](https://docs.netdata.cloud/web/api/health/#list-silencers) of the API allows you to view at any time which alarms are currently disabled or silenced.
167 - - A way for Netdata to [repeatedly send alarm notifications](https://docs.netdata.cloud/health/#alarm-line-repeat) for some, or all active alarms, at a frequency of your choosing. As a result, you will no longer have to worry about missing a notification, forgetting about a raised alarm. The default is still to only send a single notification, so that existing users are not surprised by a different behavior.
168 +- The [health management API](https://docs.netdata.cloud/web/api/health/#health-management-api) introduced in v1.12 allowed you to easily disable alarms and/or notifications while Netdata was running. However, those changes were not persisted across Netdata restarts. Since part of routine maintenance activities may involve completely restarting a monitoring node, Netdata now saves these configurations to disk, every time you issue a command to change the silencer settings. The new [LIST command](https://docs.netdata.cloud/web/api/health/#list-silencers) of the API allows you to view at any time which alarms are currently disabled or silenced.
169 +- A way for Netdata to [repeatedly send alarm notifications](https://docs.netdata.cloud/health/#alarm-line-repeat) for some, or all active alarms, at a frequency of your choosing. As a result, you will no longer have to worry about missing a notification, forgetting about a raised alarm. The default is still to only send a single notification, so that existing users are not surprised by a different behavior.
170
171 As always, we’ve introduced new collectors, 5 of them this time:
172
171 - - Of special interest to people with Windows servers in their infrastructure is the [WMI collector](https://docs.netdata.cloud/collectors/go.d.plugin/modules/wmi/), though we are fully aware that we need to continue our efforts to do a proper port to Windows.
172 - - The new `perf` plugin collects system-wide CPU performance statistics from Performance Monitoring Units (PMU) using the `perf_event_open()` system call. You can read a wonderful article on why this is useful [here](http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html).
173 - - The other three are collectors to monitor [Dnsmasq DHCP leases](https://docs.netdata.cloud/collectors/go.d.plugin/modules/dnsmasq_dhcp/), [Riak KV servers](https://docs.netdata.cloud/collectors/python.d.plugin/riakkv/) and [Pihole instances](https://docs.netdata.cloud/collectors/go.d.plugin/modules/pihole/).
173 +- Of special interest to people with Windows servers in their infrastructure is the [WMI collector](https://docs.netdata.cloud/collectors/go.d.plugin/modules/wmi/), though we are fully aware that we need to continue our efforts to do a proper port to Windows.
174 +- The new `perf` plugin collects system-wide CPU performance statistics from Performance Monitoring Units (PMU) using the `perf_event_open()` system call. You can read a wonderful article on why this is useful [here](http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html).
175 +- The other three are collectors to monitor [Dnsmasq DHCP leases](https://docs.netdata.cloud/collectors/go.d.plugin/modules/dnsmasq_dhcp/), [Riak KV servers](https://docs.netdata.cloud/collectors/python.d.plugin/riakkv/) and [Pihole instances](https://docs.netdata.cloud/collectors/go.d.plugin/modules/pihole/).
176
177 Finally, the DB Engine introduced in v1.15.0 now uses much less memory and is more robust than before.
178
@@ -182,15 +184,15 @@ Release v1.15.0 contains 11 bug fixes and 30 improvements.
184
185 We are very happy and proud to be able to include two major improvements in this release: The aggregated node view and the [new database engine](https://docs.netdata.cloud/database/engine/).
186
185 -*Aggregated node view*
187 +_Aggregated node view_
188
189 The No. 1 request from our community has been a better way to view and manage their Netdata installations, via an aggregated view. The node menu with the simple list of hosts on the agent UI just didn't do it for people with hundreds, or thousands of instances. This release introduces the node view, which uses the power of [Netdata Cloud](https://blog.netdata.cloud/posts/netdata-cloud-announcement/) to deliver powerful views of a Netdata-based monitoring infrastructure. You can read more about Netdata Cloud and the future of Netdata [here](https://blog.netdata.cloud/posts/netdata-cloud-announcement/).
190
189 -*New database engine*
191 +_New database engine_
192
193 Historically, Netdata has required a lot of memory for long-term metrics storage. To mitigate this we've been building a new DB engine for several months and will continue improving until it can become the default `memory mode` for new Netdata installations. The version included in release v1.15.0 already permits longer-term storage of compressed data and we'll continue reducing the required memory in following releases.
194
193 -*Other major additions*
195 +_Other major additions_
196
197 We have added support for the [AWS Kinesis backend](https://docs.netdata.cloud/backends/aws_kinesis/) and new collectors for [OpenVPN](https://docs.netdata.cloud/collectors/go.d.plugin/modules/openvpn/), the [Tengine web server](https://docs.netdata.cloud/collectors/go.d.plugin/modules/tengine/), [ScaleIO (VxFlex OS)](https://docs.netdata.cloud/collectors/go.d.plugin/modules/scaleio/), [ioping-like latency metrics](https://docs.netdata.cloud/collectors/ioping.plugin/) and [Energi Core node instances](https://docs.netdata.cloud/collectors/python.d.plugin/energid/).
198
@@ -207,7 +209,7 @@ Finally, we built a process to quickly replace any problematic nightly builds an
209 Release 1.14 contains 14 bug fixes and 24 improvements.
210
211 The release introduces major additions to Kubernetes monitoring, with tens of new charts for [Kubelet](https://docs.netdata.cloud/collectors/go.d.plugin/modules/k8s_kubelet/), [kube-proxy](https://docs.netdata.cloud/collectors/go.d.plugin/modules/k8s_kubeproxy/) and [coredns](https://github.com/netdata/go.d.plugin/tree/master/modules/coredns) metrics, as well as significant improvements to the Netdata [helm chart](https://github.com/netdata/helmchart/).
210 -
212 +
213 Two new collectors were added, to monitor [Docker hub](https://docs.netdata.cloud/collectors/go.d.plugin/modules/dockerhub/) and [Docker engine](https://docs.netdata.cloud/collectors/go.d.plugin/modules/docker_engine/) metrics.
214
215 Finally, v1.14 adds support for [version 2 cgroups](https://github.com/netdata/netdata/pull/5407), [OpenLDAP over TLS](https://github.com/netdata/netdata/pull/5859), [NVIDIA SMI free and per process memory](https://github.com/netdata/netdata/pull/5796/files) and [configurable syslog facilities](https://github.com/netdata/netdata/pull/5792).
@@ -248,23 +250,23 @@ Patch release 1.12.1 contains 22 bug fixes and 8 improvements.
250 Release 1.12 is made out of 211 pull requests and 22 bug fixes.
251 The key improvements are:
252
251 -- Introducing `netdata.cloud`, the free Netdata service for all Netdata users
252 -- High performance plugins with go.d.plugin (data collection orchestrator written in Go)
253 -- 7 new data collectors and 11 rewrites of existing data collectors for improved performance
254 -- A new management API for all Netdata servers
255 -- Bind different functions of the Netdata APIs to different ports
256 -- Improved installation and updates
253 +- Introducing `netdata.cloud`, the free Netdata service for all Netdata users
254 +- High performance plugins with go.d.plugin (data collection orchestrator written in Go)
255 +- 7 new data collectors and 11 rewrites of existing data collectors for improved performance
256 +- A new management API for all Netdata servers
257 +- Bind different functions of the Netdata APIs to different ports
258 +- Improved installation and updates
259
260 ---
261
262 `Nov 22nd, 2018` - **[Netdata v1.11.1 released!](https://github.com/netdata/netdata/releases)**
263
262 -- Improved internal database to support values above 64bit.
263 -- New data collection plugins: [`openldap`](collectors/python.d.plugin/openldap/), [`tor`](collectors/python.d.plugin/tor/), [`nvidia_smi`](collectors/python.d.plugin/nvidia_smi/).
264 -- Improved data collection plugins: Netdata now supports monitoring network interface aliases, [`smartd_log`](collectors/python.d.plugin/smartd_log/), [`cpufreq`](collectors/proc.plugin/README.md#cpu-frequency), [`sensors`](collectors/python.d.plugin/sensors/).
265 -- Health monitoring improvements: network interface congestion alarm restored, [`alerta.io`](health/notifications/alerta/), `conntrack_max`.
266 -- `my-netdata`menu has been refactored.
267 -- Packaging: `openrc` service definition got a few improvements.
264 +- Improved internal database to support values above 64bit.
265 +- New data collection plugins: [`openldap`](collectors/python.d.plugin/openldap/), [`tor`](collectors/python.d.plugin/tor/), [`nvidia_smi`](collectors/python.d.plugin/nvidia_smi/).
266 +- Improved data collection plugins: Netdata now supports monitoring network interface aliases, [`smartd_log`](collectors/python.d.plugin/smartd_log/), [`cpufreq`](collectors/proc.plugin/README.md#cpu-frequency), [`sensors`](collectors/python.d.plugin/sensors/).
267 +- Health monitoring improvements: network interface congestion alarm restored, [`alerta.io`](health/notifications/alerta/), `conntrack_max`.
268 +- `my-netdata`menu has been refactored.
269 +- Packaging: `openrc` service definition got a few improvements.
270
271 ---
272
@@ -282,14 +284,14 @@ Netdata is a highly efficient, highly modular, metrics management engine. Its lo
284
285 This is how it works:
286
285 -Function|Description|Documentation
286 -:---:|:---|:---:
287 -**Collect**|Multiple independent data collection workers are collecting metrics from their sources using the optimal protocol for each application and push the metrics to the database. Each data collection worker has lockless write access to the metrics it collects.|[`collectors`](collectors/#data-collection-plugins)
288 -**Store**|Metrics are stored in RAM in a round robin database (ring buffer), using a custom made floating point number for minimal footprint.|[`database`](database/#database)
289 -**Check**|A lockless independent watchdog is evaluating **health checks** on the collected metrics, triggers alarms, maintains a health transaction log and dispatches alarm notifications.|[`health`](health/#health-monitoring)
290 -**Stream**|An lockless independent worker is streaming metrics, in full detail and in real-time, to remote Netdata servers, as soon as they are collected.|[`streaming`](streaming/#streaming-and-replication)
291 -**Archive**|A lockless independent worker is down-sampling the metrics and pushes them to **backend** time-series databases.|[`backends`](backends/)
292 -**Query**|Multiple independent workers are attached to the [internal web server](web/server/#web-server), servicing API requests, including [data queries](web/api/queries/#database-queries).|[`web/api`](web/api/#api)
287 +|Function|Description|Documentation|
288 +|:------:|:----------|:-----------:|
289 +|**Collect**|Multiple independent data collection workers are collecting metrics from their sources using the optimal protocol for each application and push the metrics to the database. Each data collection worker has lockless write access to the metrics it collects.|[`collectors`](collectors/#data-collection-plugins)|
290 +|**Store**|Metrics are stored in RAM in a round robin database (ring buffer), using a custom made floating point number for minimal footprint.|[`database`](database/#database)|
291 +|**Check**|A lockless independent watchdog is evaluating **health checks** on the collected metrics, triggers alarms, maintains a health transaction log and dispatches alarm notifications.|[`health`](health/#health-monitoring)|
292 +|**Stream**|An lockless independent worker is streaming metrics, in full detail and in real-time, to remote Netdata servers, as soon as they are collected.|[`streaming`](streaming/#streaming-and-replication)|
293 +|**Archive**|A lockless independent worker is down-sampling the metrics and pushes them to **backend** time-series databases.|[`backends`](backends/)|
294 +|**Query**|Multiple independent workers are attached to the [internal web server](web/server/#web-server), servicing API requests, including [data queries](web/api/queries/#database-queries).|[`web/api`](web/api/#api)|
295
296 The result is a highly efficient, low latency system, supporting multiple readers and one writer on each metric.
297
@@ -300,7 +302,6 @@ Click it to to interact with it (it has direct links to documentation).
302
303 [![image](https://user-images.githubusercontent.com/43294513/60951037-8ba5d180-a2f8-11e9-906e-e27356f168bc.png)](https://my-netdata.io/infographic.html)
304
303 -
305 ## Features
306
307 ![finger-video](https://user-images.githubusercontent.com/2662304/48346998-96cf3180-e685-11e8-9f4e-059d23aa3aa5.gif)
@@ -308,31 +309,34 @@ Click it to to interact with it (it has direct links to documentation).
309 This is what you should expect from Netdata:
310
311 ### General
311 -- **1s granularity** - the highest possible resolution for all metrics.
312 -- **Unlimited metrics** - collects all the available metrics, the more the better.
313 -- **1% CPU utilization of a single core** - it is super fast, unbelievably optimized.
314 -- **A few MB of RAM** - by default it uses 25MB RAM. [You size it](database).
315 -- **Zero disk I/O** - while it runs, it does not load or save anything (except `error` and `access` logs).
316 -- **Zero configuration** - auto-detects everything, it can collect up to 10000 metrics per server out of the box.
317 -- **Zero maintenance** - You just run it, it does the rest.
318 -- **Zero dependencies** - it is even its own web server, for its static web files and its web API (though its plugins may require additional libraries, depending on the applications monitored).
319 -- **Scales to infinity** - you can install it on all your servers, containers, VMs and IoTs. Metrics are not centralized by default, so there is no limit.
320 -- **Several operating modes** - Autonomous host monitoring (the default), headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations. Each node may have different metrics retention policy and run with or without health monitoring.
312 +
313 +- **1s granularity** - the highest possible resolution for all metrics.
314 +- **Unlimited metrics** - collects all the available metrics, the more the better.
315 +- **1% CPU utilization of a single core** - it is super fast, unbelievably optimized.
316 +- **A few MB of RAM** - by default it uses 25MB RAM. [You size it](database).
317 +- **Zero disk I/O** - while it runs, it does not load or save anything (except `error` and `access` logs).
318 +- **Zero configuration** - auto-detects everything, it can collect up to 10000 metrics per server out of the box.
319 +- **Zero maintenance** - You just run it, it does the rest.
320 +- **Zero dependencies** - it is even its own web server, for its static web files and its web API (though its plugins may require additional libraries, depending on the applications monitored).
321 +- **Scales to infinity** - you can install it on all your servers, containers, VMs and IoTs. Metrics are not centralized by default, so there is no limit.
322 +- **Several operating modes** - Autonomous host monitoring (the default), headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations. Each node may have different metrics retention policy and run with or without health monitoring.
323
324 ### Health Monitoring & Alarms
323 -- **Sophisticated alerting** - comes with hundreds of alarms, **out of the box**! Supports dynamic thresholds, hysteresis, alarm templates, multiple role-based notification methods.
324 -- **Notifications**: [alerta.io](health/notifications/alerta/), [amazon sns](health/notifications/awssns/), [discordapp.com](health/notifications/discord/), [email](health/notifications/email/), [flock.com](health/notifications/flock/), [irc](health/notifications/irc/), [kavenegar.com](health/notifications/kavenegar/), [messagebird.com](health/notifications/messagebird/), [pagerduty.com](health/notifications/pagerduty/), [prowl](health/notifications/prowl/), [pushbullet.com](health/notifications/pushbullet/), [pushover.net](health/notifications/pushover/), [rocket.chat](health/notifications/rocketchat/), [slack.com](health/notifications/slack/), [smstools3](health/notifications/smstools3/), [syslog](health/notifications/syslog/), [telegram.org](health/notifications/telegram/), [twilio.com](health/notifications/twilio/), [web](health/notifications/web/) and [custom notifications](health/notifications/custom/).
325 +
326 +- **Sophisticated alerting** - comes with hundreds of alarms, **out of the box**! Supports dynamic thresholds, hysteresis, alarm templates, multiple role-based notification methods.
327 +- **Notifications**: [alerta.io](health/notifications/alerta/), [amazon sns](health/notifications/awssns/), [discordapp.com](health/notifications/discord/), [email](health/notifications/email/), [flock.com](health/notifications/flock/), [irc](health/notifications/irc/), [kavenegar.com](health/notifications/kavenegar/), [messagebird.com](health/notifications/messagebird/), [pagerduty.com](health/notifications/pagerduty/), [prowl](health/notifications/prowl/), [pushbullet.com](health/notifications/pushbullet/), [pushover.net](health/notifications/pushover/), [rocket.chat](health/notifications/rocketchat/), [slack.com](health/notifications/slack/), [smstools3](health/notifications/smstools3/), [syslog](health/notifications/syslog/), [telegram.org](health/notifications/telegram/), [twilio.com](health/notifications/twilio/), [web](health/notifications/web/) and [custom notifications](health/notifications/custom/).
328
329 ### Integrations
327 -- **time-series dbs** - can archive its metrics to **Graphite**, **OpenTSDB**, **Prometheus**, **AWS Kinesis**, **MongoDB**, **JSON document DBs**, in the same or lower resolution (lower: to prevent it from congesting these servers due to the amount of data collected). Netdata also supports **Prometheus remote write API** which allows storing metrics to **Elasticsearch**, **Gnocchi**, **InfluxDB**, **Kafka**, **PostgreSQL/TimescaleDB**, **Splunk**, **VictoriaMetrics** and a lot of other [storage providers](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage).
330 +
331 +- **time-series dbs** - can archive its metrics to **Graphite**, **OpenTSDB**, **Prometheus**, **AWS Kinesis**, **MongoDB**, **JSON document DBs**, in the same or lower resolution (lower: to prevent it from congesting these servers due to the amount of data collected). Netdata also supports **Prometheus remote write API** which allows storing metrics to **Elasticsearch**, **Gnocchi**, **InfluxDB**, **Kafka**, **PostgreSQL/TimescaleDB**, **Splunk**, **VictoriaMetrics** and a lot of other [storage providers](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage).
332
333 ## Visualization
334
331 -- **Stunning interactive dashboards** - mouse, touchpad and touch-screen friendly in 2 themes: `slate` (dark) and `white`.
332 -- **Amazingly fast visualization** - responds to all queries in less than 1 ms per metric, even on low-end hardware.
333 -- **Visual anomaly detection** - the dashboards are optimized for detecting anomalies visually.
334 -- **Embeddable** - its charts can be embedded on your web pages, wikis and blogs. You can even use [Atlassian's Confluence as a monitoring dashboard](web/gui/confluence/).
335 -- **Customizable** - custom dashboards can be built using simple HTML (no javascript necessary).
335 +- **Stunning interactive dashboards** - mouse, touchpad and touch-screen friendly in 2 themes: `slate` (dark) and `white`.
336 +- **Amazingly fast visualization** - responds to all queries in less than 1 ms per metric, even on low-end hardware.
337 +- **Visual anomaly detection** - the dashboards are optimized for detecting anomalies visually.
338 +- **Embeddable** - its charts can be embedded on your web pages, wikis and blogs. You can even use [Atlassian's Confluence as a monitoring dashboard](web/gui/confluence/).
339 +- **Customizable** - custom dashboards can be built using simple HTML (no javascript necessary).
340
341 ### Positive and negative values
342
@@ -340,7 +344,7 @@ To improve clarity on charts, Netdata dashboards present **positive** values for
344
345 ![positive-and-negative-values](https://user-images.githubusercontent.com/2662304/48309090-7c5c6180-e57a-11e8-8e03-3a7538c14223.gif)
346
343 -*Netdata charts showing the bandwidth and packets of a network interface. `received` is positive and `sent` is negative.*
347 +_Netdata charts showing the bandwidth and packets of a network interface. `received` is positive and `sent` is negative._
348
349 ### Autoscaled y-axis
350
@@ -348,7 +352,7 @@ Netdata charts automatically zoom vertically, to visualize the variation of each
352
353 ![non-zero-based](https://user-images.githubusercontent.com/2662304/48309139-3d2f1000-e57c-11e8-9a44-b91758134b00.gif)
354
351 -*A zero based `stacked` chart, automatically switches to an auto-scaled `area` chart when a single dimension is selected.*
355 +_A zero based `stacked` chart, automatically switches to an auto-scaled `area` chart when a single dimension is selected._
356
357 ### Charts are synchronized
358
@@ -356,7 +360,7 @@ Charts on Netdata dashboards are synchronized to each other. There is no master
360
361 ![charts-are-synchronized](https://user-images.githubusercontent.com/2662304/48309003-b4fb3b80-e578-11e8-86f6-f505c7059c15.gif)
362
359 -*Charts are panned by dragging them with the mouse. Charts can be zoomed in/out with`SHIFT` + `mouse wheel` while the mouse pointer is over a chart.*
363 +_Charts are panned by dragging them with the mouse. Charts can be zoomed in/out with`SHIFT` + `mouse wheel` while the mouse pointer is over a chart._
364
365 > The visible time-frame (pan and zoom) is propagated from Netdata server to Netdata server, when navigating via the [node menu](registry#registry).
366
@@ -366,196 +370,225 @@ To improve visual anomaly detection across charts, the user can highlight a time
370
371 ![highlighted-timeframe](https://user-images.githubusercontent.com/2662304/48311876-f9093300-e5ae-11e8-9c74-e3e291741990.gif)
372
369 -*A highlighted time-frame can be given by pressing `ALT` + `mouse selection` on any chart. Netdata will highlight the same range on all charts.*
373 +_A highlighted time-frame can be given by pressing `ALT` + `mouse selection` on any chart. Netdata will highlight the same range on all charts._
374
375 > Highlighted ranges are propagated from Netdata server to Netdata server, when navigating via the [node menu](registry#registry).
376
373 -
377 ## What does it monitor
378
379 Netdata data collection is **extensible** - you can monitor anything you can get a metric for.
380 Its [Plugin API](collectors/plugins.d/) supports all programing languages (anything can be a Netdata plugin, BASH, python, perl, node.js, java, Go, ruby, etc).
381
379 -- For better performance, most system related plugins (cpu, memory, disks, filesystems, networking, etc) have been written in `C`.
380 -- For faster development and easier contributions, most application related plugins (databases, web servers, etc) have been written in `python`.
382 +- For better performance, most system related plugins (cpu, memory, disks, filesystems, networking, etc) have been written in `C`.
383 +- For faster development and easier contributions, most application related plugins (databases, web servers, etc) have been written in `python`.
384
385 #### APM (Application Performance Monitoring)
383 -- **[statsd](collectors/statsd.plugin/)** - Netdata is a fully featured statsd server.
384 -- **[Go expvar](collectors/python.d.plugin/go_expvar/)** - collects metrics exposed by applications written in the Go programming language using the expvar package.
385 -- **[Spring Boot](collectors/python.d.plugin/springboot/)** - monitors running Java Spring Boot applications that expose their metrics with the use of the Spring Boot Actuator included in Spring Boot library.
386 -- **[uWSGI](collectors/python.d.plugin/uwsgi/)** - collects performance metrics from uWSGI applications.
386 +
387 +- **[statsd](collectors/statsd.plugin/)** - Netdata is a fully featured statsd server.
388 +- **[Go expvar](collectors/python.d.plugin/go_expvar/)** - collects metrics exposed by applications written in the Go programming language using the expvar package.
389 +- **[Spring Boot](collectors/python.d.plugin/springboot/)** - monitors running Java Spring Boot applications that expose their metrics with the use of the Spring Boot Actuator included in Spring Boot library.
390 +- **[uWSGI](collectors/python.d.plugin/uwsgi/)** - collects performance metrics from uWSGI applications.
391
392 #### System Resources
389 -- **[CPU Utilization](collectors/proc.plugin/)** - total and per core CPU usage.
390 -- **[Interrupts](collectors/proc.plugin/)** - total and per core CPU interrupts.
391 -- **[SoftIRQs](collectors/proc.plugin/)** - total and per core SoftIRQs.
392 -- **[SoftNet](collectors/proc.plugin/)** - total and per core SoftIRQs related to network activity.
393 -- **[CPU Throttling](collectors/proc.plugin/)** - collects per core CPU throttling.
394 -- **[CPU Frequency](collectors/proc.plugin/)** - collects the current CPU frequency.
395 -- **[CPU Idle](collectors/proc.plugin/)** - collects the time spent per processor state.
396 -- **[IdleJitter](collectors/idlejitter.plugin/)** - measures CPU latency.
397 -- **[Entropy](collectors/proc.plugin/)** - random numbers pool, using in cryptography.
398 -- **[Interprocess Communication - IPC](collectors/proc.plugin/)** - such as semaphores and semaphores arrays.
393 +
394 +- **[CPU Utilization](collectors/proc.plugin/)** - total and per core CPU usage.
395 +- **[Interrupts](collectors/proc.plugin/)** - total and per core CPU interrupts.
396 +- **[SoftIRQs](collectors/proc.plugin/)** - total and per core SoftIRQs.
397 +- **[SoftNet](collectors/proc.plugin/)** - total and per core SoftIRQs related to network activity.
398 +- **[CPU Throttling](collectors/proc.plugin/)** - collects per core CPU throttling.
399 +- **[CPU Frequency](collectors/proc.plugin/)** - collects the current CPU frequency.
400 +- **[CPU Idle](collectors/proc.plugin/)** - collects the time spent per processor state.
401 +- **[IdleJitter](collectors/idlejitter.plugin/)** - measures CPU latency.
402 +- **[Entropy](collectors/proc.plugin/)** - random numbers pool, using in cryptography.
403 +- **[Interprocess Communication - IPC](collectors/proc.plugin/)** - such as semaphores and semaphores arrays.
404
405 #### Memory
401 -- **[ram](collectors/proc.plugin/)** - collects info about RAM usage.
402 -- **[swap](collectors/proc.plugin/)** - collects info about swap memory usage.
403 -- **[available memory](collectors/proc.plugin/)** - collects the amount of RAM available for userspace processes.
404 -- **[committed memory](collectors/proc.plugin/)** - collects the amount of RAM committed to userspace processes.
405 -- **[Page Faults](collectors/proc.plugin/)** - collects the system page faults (major and minor).
406 -- **[writeback memory](collectors/proc.plugin/)** - collects the system dirty memory and writeback activity.
407 -- **[huge pages](collectors/proc.plugin/)** - collects the amount of RAM used for huge pages.
408 -- **[KSM](collectors/proc.plugin/)** - collects info about Kernel Same Merging (memory dedupper).
409 -- **[Numa](collectors/proc.plugin/)** - collects Numa info on systems that support it.
410 -- **[slab](collectors/proc.plugin/)** - collects info about the Linux kernel memory usage.
406 +
407 +- **[ram](collectors/proc.plugin/)** - collects info about RAM usage.
408 +- **[swap](collectors/proc.plugin/)** - collects info about swap memory usage.
409 +- **[available memory](collectors/proc.plugin/)** - collects the amount of RAM available for userspace processes.
410 +- **[committed memory](collectors/proc.plugin/)** - collects the amount of RAM committed to userspace processes.
411 +- **[Page Faults](collectors/proc.plugin/)** - collects the system page faults (major and minor).
412 +- **[writeback memory](collectors/proc.plugin/)** - collects the system dirty memory and writeback activity.
413 +- **[huge pages](collectors/proc.plugin/)** - collects the amount of RAM used for huge pages.
414 +- **[KSM](collectors/proc.plugin/)** - collects info about Kernel Same Merging (memory dedupper).
415 +- **[Numa](collectors/proc.plugin/)** - collects Numa info on systems that support it.
416 +- **[slab](collectors/proc.plugin/)** - collects info about the Linux kernel memory usage.
417
418 #### Disks
413 -- **[block devices](collectors/proc.plugin/)** - per disk: I/O, operations, backlog, utilization, space, etc.
414 -- **[BCACHE](collectors/proc.plugin/)** - detailed performance of SSD caching devices.
415 -- **[DiskSpace](collectors/proc.plugin/)** - monitors disk space usage.
416 -- **[mdstat](collectors/proc.plugin/)** - software RAID.
417 -- **[hddtemp](collectors/python.d.plugin/hddtemp/)** - disk temperatures.
418 -- **[smartd](collectors/python.d.plugin/smartd_log/)** - disk S.M.A.R.T. values.
419 -- **[device mapper](collectors/proc.plugin/)** - naming disks.
420 -- **[Veritas Volume Manager](collectors/proc.plugin/)** - naming disks.
421 -- **[megacli](collectors/python.d.plugin/megacli/)** - adapter, physical drives and battery stats.
422 -- **[adaptec_raid](collectors/python.d.plugin/adaptec_raid/)** - logical and physical devices health metrics.
423 -- **[ioping](collectors/ioping.plugin/)** - to measure disk read/write latency.
419 +
420 +- **[block devices](collectors/proc.plugin/)** - per disk: I/O, operations, backlog, utilization, space, etc.
421 +- **[BCACHE](collectors/proc.plugin/)** - detailed performance of SSD caching devices.
422 +- **[DiskSpace](collectors/proc.plugin/)** - monitors disk space usage.
423 +- **[mdstat](collectors/proc.plugin/)** - software RAID.
424 +- **[hddtemp](collectors/python.d.plugin/hddtemp/)** - disk temperatures.
425 +- **[smartd](collectors/python.d.plugin/smartd_log/)** - disk S.M.A.R.T. values.
426 +- **[device mapper](collectors/proc.plugin/)** - naming disks.
427 +- **[Veritas Volume Manager](collectors/proc.plugin/)** - naming disks.
428 +- **[megacli](collectors/python.d.plugin/megacli/)** - adapter, physical drives and battery stats.
429 +- **[adaptec_raid](collectors/python.d.plugin/adaptec_raid/)** - logical and physical devices health metrics.
430 +- **[ioping](collectors/ioping.plugin/)** - to measure disk read/write latency.
431
432 #### Filesystems
426 -- **[BTRFS](collectors/proc.plugin/)** - detailed disk space allocation and usage.
427 -- **[Ceph](collectors/python.d.plugin/ceph/)** - OSD usage, Pool usage, number of objects, etc.
428 -- **[NFS file servers and clients](collectors/proc.plugin/)** - NFS v2, v3, v4: I/O, cache, read ahead, RPC calls
429 -- **[Samba](collectors/python.d.plugin/samba/)** - performance metrics of Samba SMB2 file sharing.
430 -- **[ZFS](collectors/proc.plugin/)** - detailed performance and resource usage.
433 +
434 +- **[BTRFS](collectors/proc.plugin/)** - detailed disk space allocation and usage.
435 +- **[Ceph](collectors/python.d.plugin/ceph/)** - OSD usage, Pool usage, number of objects, etc.
436 +- **[NFS file servers and clients](collectors/proc.plugin/)** - NFS v2, v3, v4: I/O, cache, read ahead, RPC calls
437 +- **[Samba](collectors/python.d.plugin/samba/)** - performance metrics of Samba SMB2 file sharing.
438 +- **[ZFS](collectors/proc.plugin/)** - detailed performance and resource usage.
439
440 #### Networking
433 -- **[Network Stack](collectors/proc.plugin/)** - everything about the networking stack (both IPv4 and IPv6 for all protocols: TCP, UDP, SCTP, UDPLite, ICMP, Multicast, Broadcast, etc), and all network interfaces (per interface: bandwidth, packets, errors, drops).
434 -- **[Netfilter](collectors/proc.plugin/)** - everything about the netfilter connection tracker.
435 -- **[SynProxy](collectors/proc.plugin/)** - collects performance data about the linux SYNPROXY (DDoS).
436 -- **[NFacct](collectors/nfacct.plugin/)** - collects accounting data from iptables.
437 -- **[Network QoS](collectors/tc.plugin/)** - the only tool that visualizes network `tc` classes in real-time.
438 -- **[FPing](collectors/fping.plugin/)** - to measure latency and packet loss between any number of hosts.
439 -- **[ISC dhcpd](collectors/python.d.plugin/isc_dhcpd/)** - pools utilization, leases, etc.
440 -- **[AP](collectors/charts.d.plugin/ap/)** - collects Linux access point performance data (`hostapd`).
441 -- **[SNMP](collectors/node.d.plugin/snmp/)** - SNMP devices can be monitored too (although you will need to configure these).
442 -- **[port_check](collectors/python.d.plugin/portcheck/)** - checks TCP ports for availability and response time.
441 +
442 +- **[Network Stack](collectors/proc.plugin/)** - everything about the networking stack (both IPv4 and IPv6 for all protocols: TCP, UDP, SCTP, UDPLite, ICMP, Multicast, Broadcast, etc), and all network interfaces (per interface: bandwidth, packets, errors, drops).
443 +- **[Netfilter](collectors/proc.plugin/)** - everything about the netfilter connection tracker.
444 +- **[SynProxy](collectors/proc.plugin/)** - collects performance data about the linux SYNPROXY (DDoS).
445 +- **[NFacct](collectors/nfacct.plugin/)** - collects accounting data from iptables.
446 +- **[Network QoS](collectors/tc.plugin/)** - the only tool that visualizes network `tc` classes in real-time.
447 +- **[FPing](collectors/fping.plugin/)** - to measure latency and packet loss between any number of hosts.
448 +- **[ISC dhcpd](collectors/python.d.plugin/isc_dhcpd/)** - pools utilization, leases, etc.
449 +- **[AP](collectors/charts.d.plugin/ap/)** - collects Linux access point performance data (`hostapd`).
450 +- **[SNMP](collectors/node.d.plugin/snmp/)** - SNMP devices can be monitored too (although you will need to configure these).
451 +- **[port_check](collectors/python.d.plugin/portcheck/)** - checks TCP ports for availability and response time.
452
453 #### Virtual Private Networks
445 -- **[OpenVPN](collectors/python.d.plugin/ovpn_status_log/)** - collects status per tunnel.
446 -- **[LibreSwan](collectors/charts.d.plugin/libreswan/)** - collects metrics per IPSEC tunnel.
447 -- **[Tor](collectors/python.d.plugin/tor/)** - collects Tor traffic statistics.
454 +
455 +- **[OpenVPN](collectors/python.d.plugin/ovpn_status_log/)** - collects status per tunnel.
456 +- **[LibreSwan](collectors/charts.d.plugin/libreswan/)** - collects metrics per IPSEC tunnel.
457 +- **[Tor](collectors/python.d.plugin/tor/)** - collects Tor traffic statistics.
458
459 #### Processes
450 -- **[System Processes](collectors/proc.plugin/)** - running, blocked, forks, active.
451 -- **[Applications](collectors/apps.plugin/)** - by grouping the process tree and reporting CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets - per process group.
452 -- **[systemd](collectors/cgroups.plugin/)** - monitors systemd services using CGROUPS.
460 +
461 +- **[System Processes](collectors/proc.plugin/)** - running, blocked, forks, active.
462 +- **[Applications](collectors/apps.plugin/)** - by grouping the process tree and reporting CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets - per process group.
463 +- **[systemd](collectors/cgroups.plugin/)** - monitors systemd services using CGROUPS.
464
465 #### Users
455 -- **[Users and User Groups resource usage](collectors/apps.plugin/)** - by summarizing the process tree per user and group, reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets.
456 -- **[logind](collectors/python.d.plugin/logind/)** - collects sessions, users and seats connected.
466 +
467 +- **[Users and User Groups resource usage](collectors/apps.plugin/)** - by summarizing the process tree per user and group, reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets.
468 +- **[logind](collectors/python.d.plugin/logind/)** - collects sessions, users and seats connected.
469
470 #### Containers and VMs
459 -- **[Containers](collectors/cgroups.plugin/)** - collects resource usage for all kinds of containers, using CGROUPS (systemd-nspawn, lxc, lxd, docker, kubernetes, etc).
460 -- **[libvirt VMs](collectors/cgroups.plugin/)** - collects resource usage for all kinds of VMs, using CGROUPS.
461 -- **[dockerd](collectors/python.d.plugin/dockerd/)** - collects docker health metrics.
471 +
472 +- **[Containers](collectors/cgroups.plugin/)** - collects resource usage for all kinds of containers, using CGROUPS (systemd-nspawn, lxc, lxd, docker, kubernetes, etc).
473 +- **[libvirt VMs](collectors/cgroups.plugin/)** - collects resource usage for all kinds of VMs, using CGROUPS.
474 +- **[dockerd](collectors/python.d.plugin/dockerd/)** - collects docker health metrics.
475
476 #### Web Servers
464 -- **[Apache and lighttpd](collectors/python.d.plugin/apache/)** - `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers.
465 -- **[IPFS](collectors/python.d.plugin/ipfs/)** - bandwidth, peers.
466 -- **[LiteSpeed](collectors/python.d.plugin/litespeed/)** - reads the litespeed rtreport files to collect metrics.
467 -- **[Nginx](collectors/python.d.plugin/nginx/)** - `stub-status`, for multiple servers.
468 -- **[Nginx+](collectors/python.d.plugin/nginx_plus/)** - connects to multiple nginx_plus servers (local or remote) to collect real-time performance metrics.
469 -- **[PHP-FPM](collectors/python.d.plugin/phpfpm/)** - multiple instances, each reporting connections, requests, performance, etc.
470 -- **[Tomcat](collectors/python.d.plugin/tomcat/)** - accesses, threads, free memory, volume, etc.
471 -- **[web server `access.log` files](collectors/python.d.plugin/web_log/)** - extracting in real-time, web server and proxy performance metrics and applying several health checks, etc.
472 -- **[HTTP check](collectors/python.d.plugin/httpcheck/)** - checks one or more web servers for HTTP status code and returned content.
477 +
478 +- **[Apache and lighttpd](collectors/python.d.plugin/apache/)** - `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers.
479 +- **[IPFS](collectors/python.d.plugin/ipfs/)** - bandwidth, peers.
480 +- **[LiteSpeed](collectors/python.d.plugin/litespeed/)** - reads the litespeed rtreport files to collect metrics.
481 +- **[Nginx](collectors/python.d.plugin/nginx/)** - `stub-status`, for multiple servers.
482 +- **[Nginx+](collectors/python.d.plugin/nginx_plus/)** - connects to multiple nginx_plus servers (local or remote) to collect real-time performance metrics.
483 +- **[PHP-FPM](collectors/python.d.plugin/phpfpm/)** - multiple instances, each reporting connections, requests, performance, etc.
484 +- **[Tomcat](collectors/python.d.plugin/tomcat/)** - accesses, threads, free memory, volume, etc.
485 +- **[web server `access.log` files](collectors/python.d.plugin/web_log/)** - extracting in real-time, web server and proxy performance metrics and applying several health checks, etc.
486 +- **[HTTP check](collectors/python.d.plugin/httpcheck/)** - checks one or more web servers for HTTP status code and returned content.
487
488 #### Proxies, Balancers, Accelerators
475 -- **[HAproxy](collectors/python.d.plugin/haproxy/)** - bandwidth, sessions, backends, etc.
476 -- **[Squid](collectors/python.d.plugin/squid/)** - multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests.
477 -- **[Traefik](collectors/python.d.plugin/traefik/)** - connects to multiple traefik instances (local or remote) to collect API metrics (response status code, response time, average response time and server uptime).
478 -- **[Varnish](collectors/python.d.plugin/varnish/)** - threads, sessions, hits, objects, backends, etc.
479 -- **[IPVS](collectors/proc.plugin/)** - collects metrics from the Linux IPVS load balancer.
489 +
490 +- **[HAproxy](collectors/python.d.plugin/haproxy/)** - bandwidth, sessions, backends, etc.
491 +- **[Squid](collectors/python.d.plugin/squid/)** - multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests.
492 +- **[Traefik](collectors/python.d.plugin/traefik/)** - connects to multiple traefik instances (local or remote) to collect API metrics (response status code, response time, average response time and server uptime).
493 +- **[Varnish](collectors/python.d.plugin/varnish/)** - threads, sessions, hits, objects, backends, etc.
494 +- **[IPVS](collectors/proc.plugin/)** - collects metrics from the Linux IPVS load balancer.
495
496 #### Database Servers
482 -- **[CouchDB](collectors/python.d.plugin/couchdb/)** - reads/writes, request methods, status codes, tasks, replication, per-db, etc.
483 -- **[MemCached](collectors/python.d.plugin/memcached/)** - multiple servers, each showing: bandwidth, connections, items, etc.
484 -- **[MongoDB](collectors/python.d.plugin/mongodb/)** - operations, clients, transactions, cursors, connections, asserts, locks, etc.
485 -- **[MySQL and mariadb](collectors/python.d.plugin/mysql/)** - multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues, tmp operations, connections, binlog metrics, threads, innodb metrics, and more.
486 -- **[PostgreSQL](collectors/python.d.plugin/postgres/)** - multiple servers, each showing: per database statistics (connections, tuples read - written - returned, transactions, locks), backend processes, indexes, tables, write ahead, background writer and more.
487 -- **[Proxy SQL](collectors/python.d.plugin/proxysql/)** - collects Proxy SQL backend and frontend performance metrics.
488 -- **[Redis](collectors/python.d.plugin/redis/)** - multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves.
489 -- **[RethinkDB](collectors/python.d.plugin/rethinkdbs/)** - connects to multiple rethinkdb servers (local or remote) to collect real-time metrics.
497 +
498 +- **[CouchDB](collectors/python.d.plugin/couchdb/)** - reads/writes, request methods, status codes, tasks, replication, per-db, etc.
499 +- **[MemCached](collectors/python.d.plugin/memcached/)** - multiple servers, each showing: bandwidth, connections, items, etc.
500 +- **[MongoDB](collectors/python.d.plugin/mongodb/)** - operations, clients, transactions, cursors, connections, asserts, locks, etc.
501 +- **[MySQL and mariadb](collectors/python.d.plugin/mysql/)** - multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues, tmp operations, connections, binlog metrics, threads, innodb metrics, and more.
502 +- **[PostgreSQL](collectors/python.d.plugin/postgres/)** - multiple servers, each showing: per database statistics (connections, tuples read - written - returned, transactions, locks), backend processes, indexes, tables, write ahead, background writer and more.
503 +- **[Proxy SQL](collectors/python.d.plugin/proxysql/)** - collects Proxy SQL backend and frontend performance metrics.
504 +- **[Redis](collectors/python.d.plugin/redis/)** - multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves.
505 +- **[RethinkDB](collectors/python.d.plugin/rethinkdbs/)** - connects to multiple rethinkdb servers (local or remote) to collect real-time metrics.
506
507 #### Message Brokers
492 -- **[beanstalkd](collectors/python.d.plugin/beanstalk/)** - global and per tube monitoring.
493 -- **[RabbitMQ](collectors/python.d.plugin/rabbitmq/)** - performance and health metrics.
508 +
509 +- **[beanstalkd](collectors/python.d.plugin/beanstalk/)** - global and per tube monitoring.
510 +- **[RabbitMQ](collectors/python.d.plugin/rabbitmq/)** - performance and health metrics.
511
512 #### Search and Indexing
496 -- **[ElasticSearch](collectors/python.d.plugin/elasticsearch/)** - search and index performance, latency, timings, cluster statistics, threads statistics, etc.
513 +
514 +- **[ElasticSearch](collectors/python.d.plugin/elasticsearch/)** - search and index performance, latency, timings, cluster statistics, threads statistics, etc.
515
516 #### DNS Servers
499 -- **[bind_rndc](collectors/python.d.plugin/bind_rndc/)** - parses `named.stats` dump file to collect real-time performance metrics. All versions of bind after 9.6 are supported.
500 -- **[dnsdist](collectors/python.d.plugin/dnsdist/)** - performance and health metrics.
501 -- **[ISC Bind (named)](collectors/node.d.plugin/named/)** - multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics. All versions of bind after 9.9.10 are supported.
502 -- **[NSD](collectors/python.d.plugin/nsd/)** - queries, zones, protocols, query types, transfers, etc.
503 -- **[PowerDNS](collectors/python.d.plugin/powerdns/)** - queries, answers, cache, latency, etc.
504 -- **[unbound](collectors/python.d.plugin/unbound/)** - performance and resource usage metrics.
505 -- **[dns_query_time](collectors/python.d.plugin/dns_query_time/)** - DNS query time statistics.
517 +
518 +- **[bind_rndc](collectors/python.d.plugin/bind_rndc/)** - parses `named.stats` dump file to collect real-time performance metrics. All versions of bind after 9.6 are supported.
519 +- **[dnsdist](collectors/python.d.plugin/dnsdist/)** - performance and health metrics.
520 +- **[ISC Bind (named)](collectors/node.d.plugin/named/)** - multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics. All versions of bind after 9.9.10 are supported.
521 +- **[NSD](collectors/python.d.plugin/nsd/)** - queries, zones, protocols, query types, transfers, etc.
522 +- **[PowerDNS](collectors/python.d.plugin/powerdns/)** - queries, answers, cache, latency, etc.
523 +- **[unbound](collectors/python.d.plugin/unbound/)** - performance and resource usage metrics.
524 +- **[dns_query_time](collectors/python.d.plugin/dns_query_time/)** - DNS query time statistics.
525
526 #### Time Servers
508 -- **[chrony](collectors/python.d.plugin/chrony/)** - uses the `chronyc` command to collect chrony statistics (Frequency, Last offset, RMS offset, Residual freq, Root delay, Root dispersion, Skew, System time).
509 -- **[ntpd](collectors/python.d.plugin/ntpd/)** - connects to multiple ntpd servers (local or remote) to provide statistics of system variables and optional also peer variables.
527 +
528 +- **[chrony](collectors/python.d.plugin/chrony/)** - uses the `chronyc` command to collect chrony statistics (Frequency, Last offset, RMS offset, Residual freq, Root delay, Root dispersion, Skew, System time).
529 +- **[ntpd](collectors/python.d.plugin/ntpd/)** - connects to multiple ntpd servers (local or remote) to provide statistics of system variables and optional also peer variables.
530
531 #### Mail Servers
512 -- **[Dovecot](collectors/python.d.plugin/dovecot/)** - POP3/IMAP servers.
513 -- **[Exim](collectors/python.d.plugin/exim/)** - message queue (emails queued).
514 -- **[Postfix](collectors/python.d.plugin/postfix/)** - message queue (entries, size).
532 +
533 +- **[Dovecot](collectors/python.d.plugin/dovecot/)** - POP3/IMAP servers.
534 +- **[Exim](collectors/python.d.plugin/exim/)** - message queue (emails queued).
535 +- **[Postfix](collectors/python.d.plugin/postfix/)** - message queue (entries, size).
536
537 #### Hardware Sensors
517 -- **[IPMI](collectors/freeipmi.plugin/)** - enterprise hardware sensors and events.
518 -- **[lm-sensors](collectors/python.d.plugin/sensors/)** - temperature, voltage, fans, power, humidity, etc.
519 -- **[Nvidia](collectors/python.d.plugin/nvidia_smi/)** - collects information for Nvidia GPUs.
520 -- **[RPi](collectors/charts.d.plugin/sensors/)** - Raspberry Pi temperature sensors.
521 -- **[w1sensor](collectors/python.d.plugin/w1sensor/)** - collects data from connected 1-Wire sensors.
538 +
539 +- **[IPMI](collectors/freeipmi.plugin/)** - enterprise hardware sensors and events.
540 +- **[lm-sensors](collectors/python.d.plugin/sensors/)** - temperature, voltage, fans, power, humidity, etc.
541 +- **[Nvidia](collectors/python.d.plugin/nvidia_smi/)** - collects information for Nvidia GPUs.
542 +- **[RPi](collectors/charts.d.plugin/sensors/)** - Raspberry Pi temperature sensors.
543 +- **[w1sensor](collectors/python.d.plugin/w1sensor/)** - collects data from connected 1-Wire sensors.
544
545 #### UPSes
524 -- **[apcupsd](collectors/charts.d.plugin/apcupsd/)** - load, charge, battery voltage, temperature, utility metrics, output metrics.
525 -- **[NUT](collectors/charts.d.plugin/nut/)** - load, charge, battery voltage, temperature, utility metrics, output metrics.
526 -- **[Linux Power Supply](collectors/proc.plugin/)** - collects metrics reported by power supply drivers on Linux.
546 +
547 +- **[apcupsd](collectors/charts.d.plugin/apcupsd/)** - load, charge, battery voltage, temperature, utility metrics, output metrics.
548 +- **[NUT](collectors/charts.d.plugin/nut/)** - load, charge, battery voltage, temperature, utility metrics, output metrics.
549 +- **[Linux Power Supply](collectors/proc.plugin/)** - collects metrics reported by power supply drivers on Linux.
550
551 #### Social Sharing Servers
529 -- **[RetroShare](collectors/python.d.plugin/retroshare/)** - connects to multiple retroshare servers (local or remote) to collect real-time performance metrics.
552 +
553 +- **[RetroShare](collectors/python.d.plugin/retroshare/)** - connects to multiple retroshare servers (local or remote) to collect real-time performance metrics.
554
555 #### Security
532 -- **[Fail2Ban](collectors/python.d.plugin/fail2ban/)** - monitors the fail2ban log file to check all bans for all active jails.
556 +
557 +- **[Fail2Ban](collectors/python.d.plugin/fail2ban/)** - monitors the fail2ban log file to check all bans for all active jails.
558
559 #### Authentication, Authorization, Accounting (AAA, RADIUS, LDAP) Servers
535 -- **[FreeRadius](collectors/python.d.plugin/freeradius/)** - uses the `radclient` command to provide freeradius statistics (authentication, accounting, proxy-authentication, proxy-accounting).
560 +
561 +- **[FreeRadius](collectors/python.d.plugin/freeradius/)** - uses the `radclient` command to provide freeradius statistics (authentication, accounting, proxy-authentication, proxy-accounting).
562
563 #### Telephony Servers
538 -- **[opensips](collectors/charts.d.plugin/opensips/)** - connects to an opensips server (localhost only) to collect real-time performance metrics.
564 +
565 +- **[opensips](collectors/charts.d.plugin/opensips/)** - connects to an opensips server (localhost only) to collect real-time performance metrics.
566
567 #### Household Appliances
541 -- **[SMA webbox](collectors/node.d.plugin/sma_webbox/)** - connects to multiple remote SMA webboxes to collect real-time performance metrics of the photovoltaic (solar) power generation.
542 -- **[Fronius](collectors/node.d.plugin/fronius/)** - connects to multiple remote Fronius Symo servers to collect real-time performance metrics of the photovoltaic (solar) power generation.
543 -- **[StiebelEltron](collectors/node.d.plugin/stiebeleltron/)** - collects the temperatures and other metrics from your Stiebel Eltron heating system using their Internet Service Gateway (ISG web).
568 +
569 +- **[SMA webbox](collectors/node.d.plugin/sma_webbox/)** - connects to multiple remote SMA webboxes to collect real-time performance metrics of the photovoltaic (solar) power generation.
570 +- **[Fronius](collectors/node.d.plugin/fronius/)** - connects to multiple remote Fronius Symo servers to collect real-time performance metrics of the photovoltaic (solar) power generation.
571 +- **[StiebelEltron](collectors/node.d.plugin/stiebeleltron/)** - collects the temperatures and other metrics from your Stiebel Eltron heating system using their Internet Service Gateway (ISG web).
572
573 #### Game Servers
546 -- **[SpigotMC](collectors/python.d.plugin/spigotmc/)** - monitors Spigot Minecraft server ticks per second and number of online players using the Minecraft remote console.
574 +
575 +- **[SpigotMC](collectors/python.d.plugin/spigotmc/)** - monitors Spigot Minecraft server ticks per second and number of online players using the Minecraft remote console.
576
577 #### Distributed Computing
549 -- **[BOINC](collectors/python.d.plugin/boinc/)** - monitors task states for local and remote BOINC client software using the remote GUI RPC interface. Also provides alarms for a handful of error conditions.
578 +
579 +- **[BOINC](collectors/python.d.plugin/boinc/)** - monitors task states for local and remote BOINC client software using the remote GUI RPC interface. Also provides alarms for a handful of error conditions.
580
581 #### Media Streaming Servers
552 -- **[IceCast](collectors/python.d.plugin/icecast/)** - collects the number of listeners for active sources.
582 +
583 +- **[IceCast](collectors/python.d.plugin/icecast/)** - collects the number of listeners for active sources.
584
585 ### Monitoring Systems
555 -- **[Monit](collectors/python.d.plugin/monit/)** - collects metrics about monit targets (filesystems, applications, networks).
586 +
587 +- **[Monit](collectors/python.d.plugin/monit/)** - collects metrics about monit targets (filesystems, applications, networks).
588
589 #### Provisioning Systems
558 -- **[Puppet](collectors/python.d.plugin/puppet/)** - connects to multiple Puppet Server and Puppet DB instances (local or remote) to collect real-time status metrics.
590 +
591 +- **[Puppet](collectors/python.d.plugin/puppet/)** - connects to multiple Puppet Server and Puppet DB instances (local or remote) to collect real-time status metrics.
592
593 You can easily extend Netdata, by writing plugins that collect data from any source, using any computer language.
594
@@ -563,23 +596,23 @@ You can easily extend Netdata, by writing plugins that collect data from any sou
596
597 ## Documentation
598
566 -The Netdata documentation is at [https://docs.netdata.cloud](https://docs.netdata.cloud). But you can also find it inside the repo, so by just navigating the repo on github you can find all the documentation.
599 +The Netdata documentation is at <https://docs.netdata.cloud>. But you can also find it inside the repo, so by just navigating the repo on github you can find all the documentation.
600
601 Here is a quick list:
602
570 -Directory|Description
571 -:---|:---
572 -[`installer`](packaging/installer/)|Instructions to install Netdata on your systems.
573 -[`docker`](packaging/docker/)|Instructions to install Netdata using docker.
574 -[`daemon`](daemon/)|Information about the Netdata daemon and its configuration.
575 -[`collectors`](collectors/)|Information about data collection plugins.
576 -[`health`](health/)|How Netdata's health monitoring works, how to create your own alarms and how to configure alarm notification methods.
577 -[`streaming`](streaming/)|How to build hierarchies of Netdata servers, by streaming metrics between them.
578 -[`backends`](backends/)|Long term archiving of metrics to industry standard time-series databases, like `prometheus`, `graphite`, `opentsdb`.
579 -[`web/api`](web/api/)|Learn how to query the Netdata API and the queries it supports.
580 -[`web/api/badges`](web/api/badges/)|Learn how to generate badges (SVG images) from live data.
581 -[`web/gui/custom`](web/gui/custom/)|Learn how to create custom Netdata dashboards.
582 -[`web/gui/confluence`](web/gui/confluence/)|Learn how to create Netdata dashboards on Atlassian's Confluence.
603 +|Directory|Description|
604 +|:--------|:----------|
605 +|[`installer`](packaging/installer/)|Instructions to install Netdata on your systems.|
606 +|[`docker`](packaging/docker/)|Instructions to install Netdata using docker.|
607 +|[`daemon`](daemon/)|Information about the Netdata daemon and its configuration.|
608 +|[`collectors`](collectors/)|Information about data collection plugins.|
609 +|[`health`](health/)|How Netdata's health monitoring works, how to create your own alarms and how to configure alarm notification methods.|
610 +|[`streaming`](streaming/)|How to build hierarchies of Netdata servers, by streaming metrics between them.|
611 +|[`backends`](backends/)|Long term archiving of metrics to industry standard time-series databases, like `prometheus`, `graphite`, `opentsdb`.|
612 +|[`web/api`](web/api/)|Learn how to query the Netdata API and the queries it supports.|
613 +|[`web/api/badges`](web/api/badges/)|Learn how to generate badges (SVG images) from live data.|
614 +|[`web/gui/custom`](web/gui/custom/)|Learn how to create custom Netdata dashboards.|
615 +|[`web/gui/confluence`](web/gui/confluence/)|Learn how to create Netdata dashboards on Atlassian's Confluence.|
616
617 You can also check all the other directories. Most of them have plenty of documentation.
618
@@ -591,11 +624,11 @@ To report bugs, or get help, use [GitHub Issues](https://github.com/netdata/netd
624
625 You can also find Netdata on:
626
594 -- [Facebook](https://www.facebook.com/linuxnetdata/)
595 -- [Twitter](https://twitter.com/linuxnetdata)
596 -- [OpenHub](https://www.openhub.net/p/netdata)
597 -- [Repology](https://repology.org/metapackage/netdata/versions)
598 -- [StackShare](https://stackshare.io/netdata)
627 +- [Facebook](https://www.facebook.com/linuxnetdata/)
628 +- [Twitter](https://twitter.com/linuxnetdata)
629 +- [OpenHub](https://www.openhub.net/p/netdata)
630 +- [Repology](https://repology.org/metapackage/netdata/versions)
631 +- [StackShare](https://stackshare.io/netdata)
632
633 ## License
634
@@ -607,7 +640,7 @@ Netdata re-distributes other open-source tools and libraries. Please check the [
640
641 Yes.
642
610 -*When people first hear about a new product, they frequently ask if it is any good. A Hacker News user [remarked](https://news.ycombinator.com/item?id=3067434):*
643 +_When people first hear about a new product, they frequently ask if it is any good. A Hacker News user [remarked](https://news.ycombinator.com/item?id=3067434):_
644
645 > Note to self: Starting immediately, all raganwald projects will have a “Is it any good?” section in the readme, and the answer shall be “yes.".
646
REDISTRIBUTED.md
+97 -126
@@ -13,191 +13,162 @@ We have decided to redistribute all these, instead of using them
13 through a CDN, to allow Netdata to work in cases where Internet
14 connectivity is not available.
15
16 -- [Dygraphs](http://dygraphs.com/)
16 +- [Dygraphs](http://dygraphs.com/)
17
18 - Copyright 2009, Dan Vanderkam
19 - [MIT License](http://dygraphs.com/legal.html)
18 + Copyright 2009, Dan Vanderkam
19 + [MIT License](http://dygraphs.com/legal.html)
20
21 +- [Easy Pie Chart](https://rendro.github.io/easy-pie-chart/)
22
22 -- [Easy Pie Chart](https://rendro.github.io/easy-pie-chart/)
23 + Copyright 2013, Robert Fleischmann
24 + [MIT License](https://github.com/rendro/easy-pie-chart/blob/master/LICENSE)
25
24 - Copyright 2013, Robert Fleischmann
25 - [MIT License](https://github.com/rendro/easy-pie-chart/blob/master/LICENSE)
26 +- [Gauge.js](http://bernii.github.io/gauge.js/)
27
28 + Copyright, Bernard Kobos
29 + [MIT License](https://github.com/getgauge/gauge-js/blob/master/LICENSE)
30
28 -- [Gauge.js](http://bernii.github.io/gauge.js/)
31 +- [d3pie](https://github.com/benkeen/d3pie)
32
30 - Copyright, Bernard Kobos
31 - [MIT License](https://github.com/getgauge/gauge-js/blob/master/LICENSE)
33 + Copyright (c) 2014-2015 Benjamin Keen
34 + [MIT License](https://github.com/benkeen/d3pie/blob/master/LICENSE)
35
36 +- [jQuery Sparklines](http://omnipotent.net/jquery.sparkline/)
37
34 -- [d3pie](https://github.com/benkeen/d3pie)
38 + Copyright 2009-2012, Splunk Inc.
39 + [New BSD License](http://opensource.org/licenses/BSD-3-Clause)
40
36 - Copyright (c) 2014-2015 Benjamin Keen
37 - [MIT License](https://github.com/benkeen/d3pie/blob/master/LICENSE)
41 +- [Peity](http://benpickles.github.io/peity/)
42
43 + Copyright 2009-2015, Ben Pickles
44 + [MIT License](https://github.com/benpickles/peity/blob/master/LICENCE)
45
40 -- [jQuery Sparklines](http://omnipotent.net/jquery.sparkline/)
46 +- [morris.js](http://morrisjs.github.io/morris.js/)
47
42 - Copyright 2009-2012, Splunk Inc.
43 - [New BSD License](http://opensource.org/licenses/BSD-3-Clause)
48 + Copyright 2013, Olly Smith
49 + [Simplified BSD License](http://morrisjs.github.io/morris.js/)
50
51 +- [Raphaël](http://dmitrybaranovskiy.github.io/raphael/)
52
46 -- [Peity](http://benpickles.github.io/peity/)
53 + Copyright 2008, Dmitry Baranovskiy
54 + [MIT License](http://dmitrybaranovskiy.github.io/raphael/license.html)
55
48 - Copyright 2009-2015, Ben Pickles
49 - [MIT License](https://github.com/benpickles/peity/blob/master/LICENCE)
56 +- [C3](http://c3js.org/)
57
58 + Copyright 2013, Masayuki Tanaka
59 + [MIT License](https://github.com/masayuki0812/c3/blob/master/LICENSE)
60
52 -- [morris.js](http://morrisjs.github.io/morris.js/)
61 +- [D3](http://d3js.org/)
62
54 - Copyright 2013, Olly Smith
55 - [Simplified BSD License](http://morrisjs.github.io/morris.js/)
63 + Copyright 2015, Mike Bostock
64 + [BSD License](http://opensource.org/licenses/BSD-3-Clause)
65
66 +- [jQuery](https://jquery.org/)
67
58 -- [Raphaël](http://dmitrybaranovskiy.github.io/raphael/)
68 + Copyright 2015, jQuery Foundation
69 + [MIT License](https://jquery.org/license/)
70
60 - Copyright 2008, Dmitry Baranovskiy
61 - [MIT License](http://dmitrybaranovskiy.github.io/raphael/license.html)
71 +- [Bootstrap](http://getbootstrap.com/getting-started/)
72
73 + Copyright 2015, Twitter
74 + [MIT License](https://github.com/twbs/bootstrap/blob/v4-dev/LICENSE)
75
64 -- [C3](http://c3js.org/)
76 +- [Bootstrap Toggle](http://www.bootstraptoggle.com/)
77
66 - Copyright 2013, Masayuki Tanaka
67 - [MIT License](https://github.com/masayuki0812/c3/blob/master/LICENSE)
78 + Copyright (c) 2011-2014 Min Hur, The New York Times Company
79 + [MIT License](https://github.com/minhur/bootstrap-toggle/blob/master/LICENSE)
80
81 +- [Bootstrap-slider](http://seiyria.com/bootstrap-slider/)
82
70 -- [D3](http://d3js.org/)
83 + Copyright 2017 Kyle Kemp, Rohit Kalkur, and contributors
84 + [MIT License](https://github.com/seiyria/bootstrap-slider/blob/master/LICENSE.md)
85
72 - Copyright 2015, Mike Bostock
73 - [BSD License](http://opensource.org/licenses/BSD-3-Clause)
86 +- [bootstrap-table](http://bootstrap-table.wenzhixin.net.cn/)
87
88 + Copyright (c) 2012-2016 Zhixin Wen [wenzhixin2010@gmail.com](mailto:wenzhixin2010@gmail.com)
89 + [MIT License](https://github.com/wenzhixin/bootstrap-table/blob/master/LICENSE)
90
76 -- [jQuery](https://jquery.org/)
91 +- [tableExport.jquery.plugin](https://github.com/hhurz/tableExport.jquery.plugin)
92
78 - Copyright 2015, jQuery Foundation
79 - [MIT License](https://jquery.org/license/)
93 + Copyright (c) 2015,2016 hhurz
94 + [MIT License](https://github.com/hhurz/tableExport.jquery.plugin/blob/master/LICENSE)
95
96 +- [perfect-scrollbar](https://jamesflorentino.github.io/nanoScrollerJS/)
97
82 -- [Bootstrap](http://getbootstrap.com/getting-started/)
98 + Copyright 2016, Hyunje Alex Jun and other contributors
99 + [MIT License](https://github.com/noraesae/perfect-scrollbar/blob/master/LICENSE)
100
84 - Copyright 2015, Twitter
85 - [MIT License](https://github.com/twbs/bootstrap/blob/v4-dev/LICENSE)
101 +- [FontAwesome](https://fortawesome.github.io/Font-Awesome/)
102
103 + Created by Dave Gandy
104 + Font license: [SIL OFL 1.1](http://scripts.sil.org/OFL)
105 + Icon license [Creative Commons Attribution 4.0 (CC-BY 4.0)](https://creativecommons.org/licenses/by/4.0/)
106 + Code license: [MIT License](http://opensource.org/licenses/mit-license.html)
107
88 -- [Bootstrap Toggle](http://www.bootstraptoggle.com/)
108 +- [node-extend](https://github.com/justmoon/node-extend)
109
90 - Copyright (c) 2011-2014 Min Hur, The New York Times Company
91 - [MIT License](https://github.com/minhur/bootstrap-toggle/blob/master/LICENSE)
110 + Copyright 2014, Stefan Thomas
111 + [MIT License](https://github.com/justmoon/node-extend/blob/master/LICENSE)
112
113 +- [node-net-snmp](https://github.com/stephenwvickers/node-net-snmp)
114
94 -- [Bootstrap-slider](http://seiyria.com/bootstrap-slider/)
115 + Copyright 2013, Stephen Vickers
116 + [MIT License](https://github.com/nospaceships/node-net-snmp#license)
117
96 - Copyright 2017 Kyle Kemp, Rohit Kalkur, and contributors
97 - [MIT License](https://github.com/seiyria/bootstrap-slider/blob/master/LICENSE.md)
118 +- [node-asn1-ber](https://github.com/stephenwvickers/node-asn1-ber)
119
120 + Copyright 2017, Stephen Vickers
121 + Copyright 2011, Mark Cavage
122 + [MIT License](https://github.com/nospaceships/node-asn1-ber#license)
123
100 -- [bootstrap-table](http://bootstrap-table.wenzhixin.net.cn/)
124 +- [pixl-xml](https://github.com/jhuckaby/pixl-xml)
125
102 - Copyright (c) 2012-2016 Zhixin Wen <wenzhixin2010@gmail.com>
103 - [MIT License](https://github.com/wenzhixin/bootstrap-table/blob/master/LICENSE)
126 + Copyright 2015, Joseph Huckaby
127 + [MIT License](https://github.com/jhuckaby/pixl-xml#license)
128
129 +- [sensors](https://github.com/paroj/sensors.py)
130
106 -- [tableExport.jquery.plugin](https://github.com/hhurz/tableExport.jquery.plugin)
131 + Copyright 2014, Pavel Rojtberg
132 + [LGPL 2.1 License](http://opensource.org/licenses/LGPL-2.1)
133
108 - Copyright (c) 2015,2016 hhurz
109 - [MIT License](https://github.com/hhurz/tableExport.jquery.plugin/blob/master/LICENSE)
134 +- [PyYAML](https://bitbucket.org/blackjack/pysensors)
135
136 + Copyright 2006, Kirill Simonov
137 + [MIT License](https://github.com/yaml/pyyaml/blob/master/LICENSE)
138
112 -- [perfect-scrollbar](https://jamesflorentino.github.io/nanoScrollerJS/)
139 +- [urllib3](https://github.com/shazow/urllib3)
140
114 - Copyright 2016, Hyunje Alex Jun and other contributors
115 - [MIT License](https://github.com/noraesae/perfect-scrollbar/blob/master/LICENSE)
141 + Copyright 2008-2016 Andrey Petrov and [contributors](https://github.com/shazow/urllib3/blob/master/CONTRIBUTORS.txt)
142 + [MIT License](https://github.com/shazow/urllib3/blob/master/LICENSE.txt)
143
144 +- [lz-string](http://pieroxy.net/blog/pages/lz-string/index.html)
145
118 -- [FontAwesome](https://fortawesome.github.io/Font-Awesome/)
146 + Copyright 2013 Pieroxy
147 + [WTFPL License](http://pieroxy.net/blog/pages/lz-string/index.html#inline_menu_10)
148
120 - Created by Dave Gandy
121 - Font license: [SIL OFL 1.1](http://scripts.sil.org/OFL)
122 - Icon license [Creative Commons Attribution 4.0 (CC-BY 4.0)](https://creativecommons.org/licenses/by/4.0/)
123 - Code license: [MIT License](http://opensource.org/licenses/mit-license.html)
149 +- [pako](http://nodeca.github.io/pako/)
150
151 + Copyright 2014-2017 Vitaly Puzrin and Andrei Tuputcyn
152 + [MIT License](https://github.com/nodeca/pako/blob/master/LICENSE)
153
126 -- [node-extend](https://github.com/justmoon/node-extend)
154 +- [clipboard-polyfill](https://github.com/lgarron/clipboard-polyfill)
155
128 - Copyright 2014, Stefan Thomas
129 - [MIT License](https://github.com/justmoon/node-extend/blob/master/LICENSE)
156 + Copyright (c) 2014 Lucas Garron
157 + [MIT License](https://github.com/lgarron/clipboard-polyfill/blob/master/LICENSE.md)
158
159 +- [Utilities for writing code that runs on Python 2 and 3](collectors/python.d.plugin/python_modules/urllib3/packages/six.py)
160
132 -- [node-net-snmp](https://github.com/stephenwvickers/node-net-snmp)
161 + Copyright (c) 2010-2015 Benjamin Peterson
162 + [MIT License](https://github.com/benjaminp/six/blob/master/LICENSE)
163
134 - Copyright 2013, Stephen Vickers
135 - [MIT License](https://github.com/nospaceships/node-net-snmp#license)
164 +- [mcrcon](https://github.com/barneygale/MCRcon)
165
166 + Copyright (C) 2015 Barnaby Gale
167 + [MIT License](https://raw.githubusercontent.com/barneygale/MCRcon/master/COPYING.txt)
168
138 -- [node-asn1-ber](https://github.com/stephenwvickers/node-asn1-ber)
169 +- [monotonic](https://github.com/atdt/monotonic)
170
140 - Copyright 2017, Stephen Vickers
141 - Copyright 2011, Mark Cavage
142 - [MIT License](https://github.com/nospaceships/node-asn1-ber#license)
171 + Copyright 2014, 2015, 2016 Ori Livneh [ori@wikimedia.org](mailto:ori@wikimedia.org)
172 + [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
173
144 -
145 -- [pixl-xml](https://github.com/jhuckaby/pixl-xml)
146 -
147 - Copyright 2015, Joseph Huckaby
148 - [MIT License](https://github.com/jhuckaby/pixl-xml#license)
149 -
150 -
151 -- [sensors](https://github.com/paroj/sensors.py)
152 -
153 - Copyright 2014, Pavel Rojtberg
154 - [LGPL 2.1 License](http://opensource.org/licenses/LGPL-2.1)
155 -
156 -
157 -- [PyYAML](https://bitbucket.org/blackjack/pysensors)
158 -
159 - Copyright 2006, Kirill Simonov
160 - [MIT License](https://github.com/yaml/pyyaml/blob/master/LICENSE)
161 -
162 -
163 -- [urllib3](https://github.com/shazow/urllib3)
164 -
165 - Copyright 2008-2016 Andrey Petrov and [contributors](https://github.com/shazow/urllib3/blob/master/CONTRIBUTORS.txt)
166 - [MIT License](https://github.com/shazow/urllib3/blob/master/LICENSE.txt)
167 -
168 -
169 -- [lz-string](http://pieroxy.net/blog/pages/lz-string/index.html)
170 -
171 - Copyright 2013 Pieroxy
172 - [WTFPL License](http://pieroxy.net/blog/pages/lz-string/index.html#inline_menu_10)
173 -
174 -
175 -- [pako](http://nodeca.github.io/pako/)
176 -
177 - Copyright 2014-2017 Vitaly Puzrin and Andrei Tuputcyn
178 - [MIT License](https://github.com/nodeca/pako/blob/master/LICENSE)
179 -
180 -
181 -- [clipboard-polyfill](https://github.com/lgarron/clipboard-polyfill)
182 -
183 - Copyright (c) 2014 Lucas Garron
184 - [MIT License](https://github.com/lgarron/clipboard-polyfill/blob/master/LICENSE.md)
185 -
186 -
187 -- [Utilities for writing code that runs on Python 2 and 3](collectors/python.d.plugin/python_modules/urllib3/packages/six.py)
188 -
189 - Copyright (c) 2010-2015 Benjamin Peterson
190 - [MIT License](https://github.com/benjaminp/six/blob/master/LICENSE)
191 -
192 -
193 -- [mcrcon](https://github.com/barneygale/MCRcon)
194 -
195 - Copyright (C) 2015 Barnaby Gale
196 - [MIT License](https://raw.githubusercontent.com/barneygale/MCRcon/master/COPYING.txt)
197 -
198 -- [monotonic](https://github.com/atdt/monotonic)
199 -
200 - Copyright 2014, 2015, 2016 Ori Livneh <ori@wikimedia.org>
201 - [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
202 -
203 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FREDISTRIBUTED&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
174 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FREDISTRIBUTED&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
SECURITY.md
+10 -10
@@ -2,9 +2,9 @@
2
3 ## Supported Versions
4
5 -| Version | Supported |
6 -| ------- | ------------------ |
7 -| Latest | Yes |
5 +| Version | Supported |
6 +|------- | --------- |
7 +| Latest | Yes |
8
9 ## Reporting a Vulnerability
10
@@ -14,15 +14,15 @@ To make a report, please create a post [here](https://groups.google.com/a/netdat
14
15 ### When Should I Report a Vulnerability?
16
17 -- You think you discovered a potential security vulnerability in Netdata
18 -- You are unsure how a vulnerability affects Netdata
19 -- You think you discovered a vulnerability in another project that Netdata depends on (e.g. python, node, etc)
17 +- You think you discovered a potential security vulnerability in Netdata
18 +- You are unsure how a vulnerability affects Netdata
19 +- You think you discovered a vulnerability in another project that Netdata depends on (e.g. python, node, etc)
20
21 ### When Should I NOT Report a Vulnerability?
22
23 -- You need help tuning Netdata for security
24 -- You need help applying security related updates
25 -- Your issue is not security related
23 +- You need help tuning Netdata for security
24 +- You need help applying security related updates
25 +- Your issue is not security related
26
27 ### Security Vulnerability Response
28
@@ -40,4 +40,4 @@ A public disclosure date is negotiated by the Netdata team and the bug submitter
40
41 Every time a security issue is fixed in Netdata, we immediately release a new version of it. So, to get notified of all security incidents, please subscribe to our releases on github.
42
43 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FSECURITY&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
43 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FSECURITY&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
backends/README.md
+99 -100
@@ -14,65 +14,65 @@ X seconds (though, it can send them per second if you need it to).
14
15 ## features
16
17 -1. Supported backends
17 +1. Supported backends
18
19 - - **graphite** (`plaintext interface`, used by **Graphite**, **InfluxDB**, **KairosDB**,
20 - **Blueflood**, **ElasticSearch** via logstash tcp input and the graphite codec, etc)
19 + - **graphite** (`plaintext interface`, used by **Graphite**, **InfluxDB**, **KairosDB**,
20 + **Blueflood**, **ElasticSearch** via logstash tcp input and the graphite codec, etc)
21
22 - metrics are sent to the backend server as `prefix.hostname.chart.dimension`. `prefix` is
23 - configured below, `hostname` is the hostname of the machine (can also be configured).
22 + metrics are sent to the backend server as `prefix.hostname.chart.dimension`. `prefix` is
23 + configured below, `hostname` is the hostname of the machine (can also be configured).
24
25 - - **opentsdb** (`telnet or HTTP interfaces`, used by **OpenTSDB**, **InfluxDB**, **KairosDB**, etc)
25 + - **opentsdb** (`telnet or HTTP interfaces`, used by **OpenTSDB**, **InfluxDB**, **KairosDB**, etc)
26
27 - metrics are sent to opentsdb as `prefix.chart.dimension` with tag `host=hostname`.
27 + metrics are sent to opentsdb as `prefix.chart.dimension` with tag `host=hostname`.
28
29 - - **json** document DBs
29 + - **json** document DBs
30
31 - metrics are sent to a document db, `JSON` formatted.
31 + metrics are sent to a document db, `JSON` formatted.
32
33 - - **prometheus** is described at [prometheus page](prometheus/) since it pulls data from Netdata.
33 + - **prometheus** is described at [prometheus page](prometheus/) since it pulls data from Netdata.
34
35 - - **prometheus remote write** (a binary snappy-compressed protocol buffer encoding over HTTP used by
36 - **Elasticsearch**, **Gnocchi**, **Graphite**, **InfluxDB**, **Kafka**, **OpenTSDB**,
37 - **PostgreSQL/TimescaleDB**, **Splunk**, **VictoriaMetrics**,
38 - and a lot of other [storage providers](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage))
35 + - **prometheus remote write** (a binary snappy-compressed protocol buffer encoding over HTTP used by
36 + **Elasticsearch**, **Gnocchi**, **Graphite**, **InfluxDB**, **Kafka**, **OpenTSDB**,
37 + **PostgreSQL/TimescaleDB**, **Splunk**, **VictoriaMetrics**,
38 + and a lot of other [storage providers](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage))
39
40 - metrics are labeled in the format, which is used by Netdata for the [plaintext prometheus protocol](prometheus/).
41 - Notes on using the remote write backend are [here](prometheus/remote_write/).
40 + metrics are labeled in the format, which is used by Netdata for the [plaintext prometheus protocol](prometheus/).
41 + Notes on using the remote write backend are [here](prometheus/remote_write/).
42
43 - - **AWS Kinesis Data Streams**
43 + - **AWS Kinesis Data Streams**
44
45 - metrics are sent to the service in `JSON` format.
45 + metrics are sent to the service in `JSON` format.
46
47 - - **MongoDB**
47 + - **MongoDB**
48
49 - metrics are sent to the database in `JSON` format.
49 + metrics are sent to the database in `JSON` format.
50
51 -2. Only one backend may be active at a time.
51 +2. Only one backend may be active at a time.
52
53 -3. Netdata can filter metrics (at the chart level), to send only a subset of the collected metrics.
53 +3. Netdata can filter metrics (at the chart level), to send only a subset of the collected metrics.
54
55 -4. Netdata supports three modes of operation for all backends:
55 +4. Netdata supports three modes of operation for all backends:
56
57 - - `as-collected` sends to backends the metrics as they are collected, in the units they are collected.
58 - So, counters are sent as counters and gauges are sent as gauges, much like all data collectors do.
59 - For example, to calculate CPU utilization in this format, you need to know how to convert kernel ticks to percentage.
57 + - `as-collected` sends to backends the metrics as they are collected, in the units they are collected.
58 + So, counters are sent as counters and gauges are sent as gauges, much like all data collectors do.
59 + For example, to calculate CPU utilization in this format, you need to know how to convert kernel ticks to percentage.
60
61 - - `average` sends to backends normalized metrics from the Netdata database.
62 - In this mode, all metrics are sent as gauges, in the units Netdata uses. This abstracts data collection
63 - and simplifies visualization, but you will not be able to copy and paste queries from other sources to convert units.
64 - For example, CPU utilization percentage is calculated by Netdata, so Netdata will convert ticks to percentage and
65 - send the average percentage to the backend.
61 + - `average` sends to backends normalized metrics from the Netdata database.
62 + In this mode, all metrics are sent as gauges, in the units Netdata uses. This abstracts data collection
63 + and simplifies visualization, but you will not be able to copy and paste queries from other sources to convert units.
64 + For example, CPU utilization percentage is calculated by Netdata, so Netdata will convert ticks to percentage and
65 + send the average percentage to the backend.
66
67 - - `sum` or `volume`: the sum of the interpolated values shown on the Netdata graphs is sent to the backend.
68 - So, if Netdata is configured to send data to the backend every 10 seconds, the sum of the 10 values shown on the
69 - Netdata charts will be used.
67 + - `sum` or `volume`: the sum of the interpolated values shown on the Netdata graphs is sent to the backend.
68 + So, if Netdata is configured to send data to the backend every 10 seconds, the sum of the 10 values shown on the
69 + Netdata charts will be used.
70
71 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`.
72
73 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.
74
75 -5. This code is smart enough, not to slow down Netdata, independently of the speed of the backend server.
75 +5. This code is smart enough, not to slow down Netdata, independently of the speed of the backend server.
76
77 ## configuration
78
@@ -96,25 +96,25 @@ of `netdata.conf` from your Netdata):
96 send names instead of ids = yes
97 ```
98
99 -- `enabled = yes | no`, enables or disables sending data to a backend
99 +- `enabled = yes | no`, enables or disables sending data to a backend
100
101 -- `type = graphite | opentsdb:telnet | opentsdb:http | opentsdb:https | json | kinesis | mongodb`, selects the backend type
101 +- `type = graphite | opentsdb:telnet | opentsdb:http | opentsdb:https | json | kinesis | mongodb`, selects the backend type
102
103 -- `destination = host1 host2 host3 ...`, accepts **a space separated list** of hostnames,
104 - IPs (IPv4 and IPv6) and ports to connect to.
105 - Netdata will use the **first available** to send the metrics.
103 +- `destination = host1 host2 host3 ...`, accepts **a space separated list** of hostnames,
104 + IPs (IPv4 and IPv6) and ports to connect to.
105 + Netdata will use the **first available** to send the metrics.
106
107 - The format of each item in this list, is: `[PROTOCOL:]IP[:PORT]`.
107 + The format of each item in this list, is: `[PROTOCOL:]IP[:PORT]`.
108
109 - `PROTOCOL` can be `udp` or `tcp`. `tcp` is the default and only supported by the current backends.
109 + `PROTOCOL` can be `udp` or `tcp`. `tcp` is the default and only supported by the current backends.
110
111 - `IP` can be `XX.XX.XX.XX` (IPv4), or `[XX:XX...XX:XX]` (IPv6).
112 - For IPv6 you can to enclose the IP in `[]` to separate it from the port.
111 + `IP` can be `XX.XX.XX.XX` (IPv4), or `[XX:XX...XX:XX]` (IPv6).
112 + For IPv6 you can to enclose the IP in `[]` to separate it from the port.
113
114 - `PORT` can be a number of a service name. If omitted, the default port for the backend will be used
115 - (graphite = 2003, opentsdb = 4242).
114 + `PORT` can be a number of a service name. If omitted, the default port for the backend will be used
115 + (graphite = 2003, opentsdb = 4242).
116
117 - Example IPv4:
117 + Example IPv4:
118
119 ```
120 destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242
@@ -139,71 +139,71 @@ of `netdata.conf` from your Netdata):
139 The MongoDB backend doesn't use the `destination` option for its configuration. It uses the `mongodb.conf`
140 [configuration file](mongodb/README.md) instead.
141
142 -- `data source = as collected`, or `data source = average`, or `data source = sum`, selects the kind of
143 - data that will be sent to the backend.
142 +- `data source = as collected`, or `data source = average`, or `data source = sum`, selects the kind of
143 + data that will be sent to the backend.
144
145 -- `hostname = my-name`, is the hostname to be used for sending data to the backend server. By default
146 - this is `[global].hostname`.
145 +- `hostname = my-name`, is the hostname to be used for sending data to the backend server. By default
146 + this is `[global].hostname`.
147
148 -- `prefix = Netdata`, is the prefix to add to all metrics.
148 +- `prefix = Netdata`, is the prefix to add to all metrics.
149
150 -- `update every = 10`, is the number of seconds between sending data to the backend. Netdata will add
151 - some randomness to this number, to prevent stressing the backend server when many Netdata servers send
152 - data to the same backend. This randomness does not affect the quality of the data, only the time they
153 - are sent.
150 +- `update every = 10`, is the number of seconds between sending data to the backend. Netdata will add
151 + some randomness to this number, to prevent stressing the backend server when many Netdata servers send
152 + data to the same backend. This randomness does not affect the quality of the data, only the time they
153 + are sent.
154
155 -- `buffer on failures = 10`, is the number of iterations (each iteration is `[backend].update every` seconds)
156 - to buffer data, when the backend is not available. If the backend fails to receive the data after that
157 - many failures, data loss on the backend is expected (Netdata will also log it).
155 +- `buffer on failures = 10`, is the number of iterations (each iteration is `[backend].update every` seconds)
156 + to buffer data, when the backend is not available. If the backend fails to receive the data after that
157 + many failures, data loss on the backend is expected (Netdata will also log it).
158
159 -- `timeout ms = 20000`, is the timeout in milliseconds to wait for the backend server to process the data.
160 - By default this is `2 * update_every * 1000`.
159 +- `timeout ms = 20000`, is the timeout in milliseconds to wait for the backend server to process the data.
160 + By default this is `2 * update_every * 1000`.
161
162 -- `send hosts matching = localhost *` includes one or more space separated patterns, using ` * ` as wildcard
163 - (any number of times within each pattern). The patterns are checked against the hostname (the localhost
164 - is always checked as `localhost`), allowing us to filter which hosts will be sent to the backend when
165 - this Netdata is a central Netdata aggregating multiple hosts. A pattern starting with ` ! ` gives a
166 - negative match. So to match all hosts named `*db*` except hosts containing `*slave*`, use
167 - `!*slave* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive
168 - or negative).
162 +- `send hosts matching = localhost *` includes one or more space separated patterns, using `*` as wildcard
163 + (any number of times within each pattern). The patterns are checked against the hostname (the localhost
164 + is always checked as `localhost`), allowing us to filter which hosts will be sent to the backend when
165 + this Netdata is a central Netdata aggregating multiple hosts. A pattern starting with `!` gives a
166 + negative match. So to match all hosts named `*db*` except hosts containing `*slave*`, use
167 + `!*slave* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive
168 + or negative).
169
170 -- `send charts matching = *` includes one or more space separated patterns, using ` * ` as wildcard (any
171 - number of times within each pattern). The patterns are checked against both chart id and chart name.
172 - A pattern starting with ` ! ` gives a negative match. So to match all charts named `apps.*`
173 - except charts ending in `*reads`, use `!*reads apps.*` (so, the order is important: the first pattern
174 - matching the chart id or the chart name will be used - positive or negative).
170 +- `send charts matching = *` includes one or more space separated patterns, using `*` as wildcard (any
171 + number of times within each pattern). The patterns are checked against both chart id and chart name.
172 + A pattern starting with `!` gives a negative match. So to match all charts named `apps.*`
173 + except charts ending in `*reads`, use `!*reads apps.*` (so, the order is important: the first pattern
174 + matching the chart id or the chart name will be used - positive or negative).
175
176 -- `send names instead of ids = yes | no` controls the metric names Netdata should send to backend.
177 - Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read
178 - by the system and names are human friendly labels (also unique). Most charts and metrics have the same
179 - ID and name, but in several cases they are different: disks with device-mapper, interrupts, QoS classes,
180 - statsd synthetic charts, etc.
176 +- `send names instead of ids = yes | no` controls the metric names Netdata should send to backend.
177 + Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read
178 + by the system and names are human friendly labels (also unique). Most charts and metrics have the same
179 + ID and name, but in several cases they are different: disks with device-mapper, interrupts, QoS classes,
180 + statsd synthetic charts, etc.
181
182 -- `host tags = list of TAG=VALUE` defines tags that should be appended on all metrics for the given host.
183 - These are currently only sent to opentsdb and prometheus. Please use the appropriate format for each
184 - time-series db. For example opentsdb likes them like `TAG1=VALUE1 TAG2=VALUE2`, but prometheus like
185 - `tag1="value1",tag2="value2"`. Host tags are mirrored with database replication (streaming of metrics
186 - between Netdata servers).
182 +- `host tags = list of TAG=VALUE` defines tags that should be appended on all metrics for the given host.
183 + These are currently only sent to opentsdb and prometheus. Please use the appropriate format for each
184 + time-series db. For example opentsdb likes them like `TAG1=VALUE1 TAG2=VALUE2`, but prometheus like
185 + `tag1="value1",tag2="value2"`. Host tags are mirrored with database replication (streaming of metrics
186 + between Netdata servers).
187
188 ## monitoring operation
189
190 Netdata provides 5 charts:
191
192 -1. **Buffered metrics**, the number of metrics Netdata added to the buffer for dispatching them to the
193 - backend server.
192 +1. **Buffered metrics**, the number of metrics Netdata added to the buffer for dispatching them to the
193 + backend server.
194
195 -2. **Buffered data size**, the amount of data (in KB) Netdata added the buffer.
195 +2. **Buffered data size**, the amount of data (in KB) Netdata added the buffer.
196
197 -3. ~~**Backend latency**, the time the backend server needed to process the data Netdata sent.
198 - If there was a re-connection involved, this includes the connection time.~~
199 - (this chart has been removed, because it only measures the time Netdata needs to give the data
200 - to the O/S - since the backend servers do not ack the reception, Netdata does not have any means
201 - to measure this properly).
197 +3. ~~**Backend latency**, the time the backend server needed to process the data Netdata sent.
198 + If there was a re-connection involved, this includes the connection time.~~
199 + (this chart has been removed, because it only measures the time Netdata needs to give the data
200 + to the O/S - since the backend servers do not ack the reception, Netdata does not have any means
201 + to measure this properly).
202
203 -4. **Backend operations**, the number of operations performed by Netdata.
203 +4. **Backend operations**, the number of operations performed by Netdata.
204
205 -5. **Backend thread CPU usage**, the CPU resources consumed by the Netdata thread, that is responsible
206 - for sending the metrics to the backend server.
205 +5. **Backend thread CPU usage**, the CPU resources consumed by the Netdata thread, that is responsible
206 + for sending the metrics to the backend server.
207
208 ![image](https://cloud.githubusercontent.com/assets/2662304/20463536/eb196084-af3d-11e6-8ee5-ddbd3b4d8449.png)
209
@@ -213,12 +213,11 @@ The latest version of the alarms configuration for monitoring the backend is [he
213
214 Netdata adds 4 alarms:
215
216 -1. `backend_last_buffering`, number of seconds since the last successful buffering of backend data
217 -2. `backend_metrics_sent`, percentage of metrics sent to the backend server
218 -3. `backend_metrics_lost`, number of metrics lost due to repeating failures to contact the backend server
219 -4. ~~`backend_slow`, the percentage of time between iterations needed by the backend time to process the data sent by Netdata~~ (this was misleading and has been removed).
216 +1. `backend_last_buffering`, number of seconds since the last successful buffering of backend data
217 +2. `backend_metrics_sent`, percentage of metrics sent to the backend server
218 +3. `backend_metrics_lost`, number of metrics lost due to repeating failures to contact the backend server
219 +4. ~~`backend_slow`, the percentage of time between iterations needed by the backend time to process the data sent by Netdata~~ (this was misleading and has been removed).
220
221 ![image](https://cloud.githubusercontent.com/assets/2662304/20463779/a46ed1c2-af43-11e6-91a5-07ca4533cac3.png)
222
223 -
224 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
223 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
backends/WALKTHROUGH.md
+13 -5
@@ -1,6 +1,7 @@
1 # Netdata, Prometheus, Grafana stack
2
3 ## Intro
4 +
5 In this article I will walk you through the basics of getting Netdata,
6 Prometheus and Grafana all working together and monitoring your application
7 servers. This article will be using docker on your local workstation. We will be
@@ -11,6 +12,7 @@ without cloud accounts or access to VMs can try this out and for it’s speed of
12 deployment.
13
14 ## Why Netdata, Prometheus, and Grafana
15 +
16 Some time ago I was introduced to Netdata by a coworker. We were attempting to
17 troubleshoot python code which seemed to be bottlenecked. I was instantly
18 impressed by the amount of metrics Netdata exposes to you. I quickly added
@@ -40,6 +42,7 @@ together to create a modern monitoring stack. This stack will offer you
42 visibility into your application and systems performance.
43
44 ## Getting Started - Netdata
45 +
46 To begin let’s create our container which we will install Netdata on. We need
47 to run a container, forward the necessary port that Netdata listens on, and
48 attach a tty so we can interact with the bash shell on the container. But
@@ -101,6 +104,7 @@ observing is “system”. You can begin to draw links between the charts in Net
104 to the prometheus metrics format in this manner.
105
106 ## Prometheus
107 +
108 We will be installing prometheus in a container for purpose of demonstration.
109 While prometheus does have an official container I would like to walk through
110 the install process and setup on a fresh container. This will allow anyone
@@ -189,9 +193,11 @@ scrape_configs:
193 ```
194
195 Let’s start prometheus once again by running `/opt/prometheus/prometheus`. If we
192 -now navigate to prometheus at ‘<http://localhost:9090/targets>’ we should see our
196 +
197 +now navigate to prometheus at ‘<http://localhost:9090/targets’> we should see our
198 +
199 target being successfully scraped. If we now go back to the Prometheus’s
194 -homepage and begin to type ‘netdata_’ Prometheus should auto complete metrics
200 +homepage and begin to type ‘netdata\_’ Prometheus should auto complete metrics
201 it is now scraping.
202
203 ![](https://github.com/ldelossa/NetdataTutorial/raw/master/Screen%20Shot%202017-07-28%20at%205.13.43%20PM.png)
@@ -247,7 +253,7 @@ this point to read [this page](../backends/prometheus/#using-netdata-with-promet
253 The key point here is that NetData can export metrics from its internal DB or
254 can send metrics “as-collected” by specifying the ‘source=as-collected’ url
255 parameter like so.
250 -http://localhost:19999/api/v1/allmetrics?format=prometheus&help=yes&types=yes&source=as-collected
256 +<http://localhost:19999/api/v1/allmetrics?format=prometheus&help=yes&types=yes&source=as-collected>
257 If you choose to use this method you will need to use Prometheus's set of
258 functions here: <https://prometheus.io/docs/querying/functions/> to obtain useful
259 metrics as you are now dealing with raw counters from the system. For example
@@ -258,6 +264,7 @@ that. If you find limitations then consider re-writing your queries using the
264 raw data and using Prometheus functions to get the desired chart.
265
266 ## Grafana
267 +
268 Finally we make it to grafana. This is the easiest part in my opinion. This time
269 we will actually run the official grafana docker container as all configuration
270 we need to do is done via the GUI. Let’s run the following command:
@@ -266,7 +273,8 @@ we need to do is done via the GUI. Let’s run the following command:
273 docker run -i -p 3000:3000 --network=netdata-tutorial grafana/grafana
274 ```
275
269 -This will get grafana running at ‘<http://localhost:3000/>’ Let’s go there and
276 +This will get grafana running at ‘<http://localhost:3000/’> Let’s go there and
277 +
278 login using the credentials Admin:Admin.
279
280 The first thing we want to do is click ‘Add data source’. Let’s make it look
@@ -291,4 +299,4 @@ about the monitoring system until Prometheus cannot keep up with your scale.
299 Once this happens there are options presented in the Prometheus documentation
300 for solving this. Hope this was helpful, happy monitoring.
301
294 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2FWALKTHROUGH&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
302 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2FWALKTHROUGH&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
backends/aws_kinesis/README.md
+5 -2
@@ -13,15 +13,18 @@ cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib -DCMAKE_INSTALL_INCLUDEDIR=/usr/include -D
13 ## Configuration
14
15 To enable data sending to the kinesis backend set the following options in `netdata.conf`:
16 +
17 ```
18 [backend]
19 enabled = yes
20 type = kinesis
21 destination = us-east-1
22 ```
23 +
24 set the `destination` option to an AWS region.
25
26 In the Netdata configuration directory run `./edit-config aws_kinesis.conf` and set AWS credentials and stream name:
27 +
28 ```
29 # AWS credentials
30 aws_access_key_id = your_access_key_id
@@ -30,9 +33,9 @@ aws_secret_access_key = your_secret_access_key
33 # destination stream
34 stream name = your_stream_name
35 ```
36 +
37 Alternatively, AWS credentials can be set for the *netdata* user using AWS SDK for C++ [standard methods](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credentials.html).
38
39 A partition key for every record is computed automatically by Netdata with the purpose to distribute records across available shards evenly.
40
37 -
38 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Faws_kinesis%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
41 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Faws_kinesis%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
backends/mongodb/README.md
+3 -2
@@ -7,6 +7,7 @@ To use MongoDB as a backend, `libmongoc` 1.7.0 or higher should be [installed](h
7 ## Configuration
8
9 To enable data sending to the MongoDB backend set the following options in `netdata.conf`:
10 +
11 ```
12 [backend]
13 enabled = yes
@@ -14,6 +15,7 @@ To enable data sending to the MongoDB backend set the following options in `netd
15 ```
16
17 In the Netdata configuration directory run `./edit-config mongodb.conf` and set [MongoDB URI](https://docs.mongodb.com/manual/reference/connection-string/), database name, and collection name:
18 +
19 ```
20 # URI
21 uri = mongodb://<hostname>
@@ -27,5 +29,4 @@ collection = your_collection_name
29
30 The default socket timeout depends on the backend update interval. The timeout is 500 ms shorter than the interval (but not less than 1000 ms). You can alter the timeout using the `sockettimeoutms` MongoDB URI option.
31
30 -
31 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Fmongodb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
32 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Fmongodb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
backends/prometheus/README.md
+12 -11
@@ -8,7 +8,7 @@ Prometheus is a distributed monitoring system which offers a very simple setup a
8
9 ### Installing Netdata
10
11 -There are number of ways to install Netdata according to [Installation](../../packaging/installer/#installation)
11 +There are number of ways to install Netdata according to [Installation](../../packaging/installer/#installation)\
12 The suggested way of installing the latest Netdata and keep it upgrade automatically. Using one line installation:
13
14 ```sh
@@ -173,6 +173,7 @@ ExecStop=/bin/kill -SIGINT $MAINPID
173 [Install]
174 WantedBy=multi-user.target
175 ```
176 +
177 ##### Start Prometheus
178
179 ```sh
@@ -184,7 +185,7 @@ Prometheus should now start and listen on port 9090. Attempt to head there with
185
186 If everything is working correctly when you fetch `http://your.prometheus.ip:9090` you will see a 'Status' tab. Click this and click on 'targets' We should see the Netdata host as a scraped target.
187
187 ----
188 +- - -
189
190 ## Netdata support for prometheus
191
@@ -218,22 +219,22 @@ Netdata can send metrics to prometheus from 3 data sources:
219
220 - `as collected` or `raw` - this data source sends the metrics to prometheus as they are collected. No conversion is done by Netdata. The latest value for each metric is just given to prometheus. This is the most preferred method by prometheus, but it is also the harder to work with. To work with this data source, you will need to understand how to get meaningful values out of them.
221
221 - The format of the metrics is: `CONTEXT{chart="CHART",family="FAMILY",dimension="DIMENSION"}`.
222 + The format of the metrics is: `CONTEXT{chart="CHART",family="FAMILY",dimension="DIMENSION"}`.
223
223 - If the metric is a counter (`incremental` in Netdata lingo), `_total` is appended the context.
224 + If the metric is a counter (`incremental` in Netdata lingo), `_total` is appended the context.
225
225 - Unlike prometheus, Netdata allows each dimension of a chart to have a different algorithm and conversion constants (`multiplier` and `divisor`). In this case, that the dimensions of a charts are heterogeneous, Netdata will use this format: `CONTEXT_DIMENSION{chart="CHART",family="FAMILY"}`
226 + Unlike prometheus, Netdata allows each dimension of a chart to have a different algorithm and conversion constants (`multiplier` and `divisor`). In this case, that the dimensions of a charts are heterogeneous, Netdata will use this format: `CONTEXT_DIMENSION{chart="CHART",family="FAMILY"}`
227
228 - `average` - this data source uses the Netdata database to send the metrics to prometheus as they are presented on the Netdata dashboard. So, all the metrics are sent as gauges, at the units they are presented in the Netdata dashboard charts. This is the easiest to work with.
229
229 - The format of the metrics is: `CONTEXT_UNITS_average{chart="CHART",family="FAMILY",dimension="DIMENSION"}`.
230 + The format of the metrics is: `CONTEXT_UNITS_average{chart="CHART",family="FAMILY",dimension="DIMENSION"}`.
231
231 - When this source is used, Netdata keeps track of the last access time for each prometheus server fetching the metrics. This last access time is used at the subsequent queries of the same prometheus server to identify the time-frame the `average` will be calculated. So, no matter how frequently prometheus scrapes Netdata, it will get all the database data. To identify each prometheus server, Netdata uses by default the IP of the client fetching the metrics. If there are multiple prometheus servers fetching data from the same Netdata, using the same IP, each prometheus server can append `server=NAME` to the URL. Netdata will use this `NAME` to uniquely identify the prometheus server.
232 + When this source is used, Netdata keeps track of the last access time for each prometheus server fetching the metrics. This last access time is used at the subsequent queries of the same prometheus server to identify the time-frame the `average` will be calculated. So, no matter how frequently prometheus scrapes Netdata, it will get all the database data. To identify each prometheus server, Netdata uses by default the IP of the client fetching the metrics. If there are multiple prometheus servers fetching data from the same Netdata, using the same IP, each prometheus server can append `server=NAME` to the URL. Netdata will use this `NAME` to uniquely identify the prometheus server.
233
234 - `sum` or `volume`, is like `average` but instead of averaging the values, it sums them.
235
235 - The format of the metrics is: `CONTEXT_UNITS_sum{chart="CHART",family="FAMILY",dimension="DIMENSION"}`.
236 - All the other operations are the same with `average`.
236 + The format of the metrics is: `CONTEXT_UNITS_sum{chart="CHART",family="FAMILY",dimension="DIMENSION"}`.
237 + All the other operations are the same with `average`.
238
239 Keep in mind that early versions of Netdata were sending the metrics as: `CHART_DIMENSION{}`.
240
@@ -363,7 +364,7 @@ Netdata can filter the metrics it sends to prometheus with this setting:
364 send charts matching = *
365 ```
366
366 -This settings accepts a space separated list of patterns to match the **charts** to be sent to prometheus. Each pattern can use ` * ` as wildcard, any number of times (e.g `*a*b*c*` is valid). Patterns starting with ` ! ` give a negative match (e.g `!*.bad users.* groups.*` will send all the users and groups except `bad` user and `bad` group). The order is important: the first match (positive or negative) left to right, is used.
367 +This settings accepts a space separated list of patterns to match the **charts** to be sent to prometheus. Each pattern can use `*` as wildcard, any number of times (e.g `*a*b*c*` is valid). Patterns starting with `!` give a negative match (e.g `!*.bad users.* groups.*` will send all the users and groups except `bad` user and `bad` group). The order is important: the first match (positive or negative) left to right, is used.
368
369 ### Changing the prefix of Netdata metrics
370
@@ -390,4 +391,4 @@ When the data source is set to `average` or `sum`, Netdata remembers the last ac
391
392 To uniquely identify each prometheus server, Netdata uses the IP of the client accessing the metrics. If however the IP is not good enough for identifying a single prometheus server (e.g. when prometheus servers are accessing Netdata through a web proxy, or when multiple prometheus servers are NATed to a single IP), each prometheus may append `&server=NAME` to the URL. This `NAME` is used by Netdata to uniquely identify each prometheus server and keep track of its last access time.
393
393 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Fprometheus%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
394 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Fprometheus%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
backends/prometheus/remote_write/README.md
+1 -1
@@ -27,4 +27,4 @@ The default value is `/receive`. `remote write URL path` is used to set an endpo
27
28 The remote write backend does not support `buffer on failures`
29
30 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Fprometheus%2Fremote_write%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
30 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fbackends%2Fprometheus%2Fremote_write%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/README.md
+35 -37
@@ -2,48 +2,48 @@
2
3 Netdata supports **internal** and **external** data collection plugins:
4
5 -- **internal** plugins are written in `C` and run as threads inside the `netdat`a` daemon.
5 +- **internal** plugins are written in `C` and run as threads inside the `netdat`a\` daemon.
6
7 -- **external** plugins may be written in any computer language and are spawn as independent long-running processes by the `netdata` daemon.
8 - They communicate with the `netdata` daemon via `pipes` (`stdout` communication).
7 +- **external** plugins may be written in any computer language and are spawn as independent long-running processes by the `netdata` daemon.
8 + They communicate with the `netdata` daemon via `pipes` (`stdout` communication).
9
10 To minimize the number of processes spawn for data collection, Netdata also supports **plugin orchestrators**.
11
12 -- **plugin orchestrators** are external plugins that do not collect any data by themeselves.
13 - Instead they support data collection **modules** written in the language of the orchestrator.
14 - Usually the orchestrator provides a higher level abstraction, making it ideal for writing new
15 - data collection modules with the minimum of code.
12 +- **plugin orchestrators** are external plugins that do not collect any data by themeselves.
13 + Instead they support data collection **modules** written in the language of the orchestrator.
14 + Usually the orchestrator provides a higher level abstraction, making it ideal for writing new
15 + data collection modules with the minimum of code.
16
17 - Currently Netdata provides plugin orchestrators
18 - BASH v4+ [charts.d.plugin](charts.d.plugin/),
19 - node.js [node.d.plugin](node.d.plugin/) and
20 - python v2+ (including v3) [python.d.plugin](python.d.plugin/).
17 + Currently Netdata provides plugin orchestrators
18 + BASH v4+ [charts.d.plugin](charts.d.plugin/),
19 + node.js [node.d.plugin](node.d.plugin/) and
20 + python v2+ (including v3) [python.d.plugin](python.d.plugin/).
21
22 ## Netdata Plugins
23
24 -plugin|lang|O/S|runs as|modular|description
25 -:---:|:---:|:---:|:---:|:---:|:---
26 -[apps.plugin](apps.plugin/)|`C`|linux, freebsd|external|-|monitors the whole process tree on Linux and FreeBSD and breaks down system resource usage by **process**, **user** and **user group**.
27 -[cgroups.plugin](cgroups.plugin/)|`C`|linux|internal|-|collects resource usage of **Containers**, libvirt **VMs** and **systemd services**, on Linux systems
28 -[charts.d.plugin](charts.d.plugin/)|`BASH` v4+|any|external|yes|a **plugin orchestrator** for data collection modules written in `BASH` v4+.
29 -[checks.plugin](checks.plugin/)|`C`|any|internal|-|a debugging plugin (by default it is disabled)
30 -[cups.plugin](cups.plugin/)|`C`|any|external|-|monitors **CUPS**
31 -[diskspace.plugin](diskspace.plugin/)|`C`|linux|internal|-|collects disk space usage metrics on Linux mount points
32 -[fping.plugin](fping.plugin/)|`C`|any|external|-|measures network latency, jitter and packet loss between the monitored node and any number of remote network end points.
33 -[ioping.plugin](ioping.plugin/)|`C`|any|external|-|measures disk read/write latency.
34 -[freebsd.plugin](freebsd.plugin/)|`C`|freebsd|internal|yes|collects resource usage and performance data on FreeBSD systems
35 -[freeipmi.plugin](freeipmi.plugin/)|`C`|linux, freebsd|external|-|collects metrics from enterprise hardware sensors, on Linux and FreeBSD servers.
36 -[idlejitter.plugin](idlejitter.plugin/)|`C`|any|internal|-|measures CPU latency and jitter on all operating systems
37 -[macos.plugin](macos.plugin/)|`C`|macos|internal|yes|collects resource usage and performance data on MacOS systems
38 -[nfacct.plugin](nfacct.plugin/)|`C`|linux|external|-|collects netfilter firewall, connection tracker and accounting metrics using `libmnl` and `libnetfilter_acct`
39 -[xenstat.plugin](xenstat.plugin/)|`C`|linux|external|-|collects XenServer and XCP-ng metrics using `libxenstat`
40 -[perf.plugin](perf.plugin/)|`C`|linux|external|-|collects CPU performance metrics using performance monitoring units (PMU).
41 -[node.d.plugin](node.d.plugin/)|`node.js`|any|external|yes|a **plugin orchestrator** for data collection modules written in `node.js`.
42 -[plugins.d](plugins.d/)|`C`|any|internal|-|implements the **external plugins** API and serves external plugins
43 -[proc.plugin](proc.plugin/)|`C`|linux|internal|yes|collects resource usage and performance data on Linux systems
44 -[python.d.plugin](python.d.plugin/)|`python` v2+|any|external|yes|a **plugin orchestrator** for data collection modules written in `python` v2 or v3 (both are supported).
45 -[statsd.plugin](statsd.plugin/)|`C`|any|internal|-|implements a high performance **statsd** server for Netdata
46 -[tc.plugin](tc.plugin/)|`C`|linux|internal|-|collects traffic QoS metrics (`tc`) of Linux network interfaces
24 +|plugin|lang|O/S|runs as|modular|description|
25 +|:----:|:--:|:-:|:-----:|:-----:|:----------|
26 +|[apps.plugin](apps.plugin/)|`C`|linux, freebsd|external|-|monitors the whole process tree on Linux and FreeBSD and breaks down system resource usage by **process**, **user** and **user group**.|
27 +|[cgroups.plugin](cgroups.plugin/)|`C`|linux|internal|-|collects resource usage of **Containers**, libvirt **VMs** and **systemd services**, on Linux systems|
28 +|[charts.d.plugin](charts.d.plugin/)|`BASH` v4+|any|external|yes|a **plugin orchestrator** for data collection modules written in `BASH` v4+.|
29 +|[checks.plugin](checks.plugin/)|`C`|any|internal|-|a debugging plugin (by default it is disabled)|
30 +|[cups.plugin](cups.plugin/)|`C`|any|external|-|monitors **CUPS**|
31 +|[diskspace.plugin](diskspace.plugin/)|`C`|linux|internal|-|collects disk space usage metrics on Linux mount points|
32 +|[fping.plugin](fping.plugin/)|`C`|any|external|-|measures network latency, jitter and packet loss between the monitored node and any number of remote network end points.|
33 +|[ioping.plugin](ioping.plugin/)|`C`|any|external|-|measures disk read/write latency.|
34 +|[freebsd.plugin](freebsd.plugin/)|`C`|freebsd|internal|yes|collects resource usage and performance data on FreeBSD systems|
35 +|[freeipmi.plugin](freeipmi.plugin/)|`C`|linux, freebsd|external|-|collects metrics from enterprise hardware sensors, on Linux and FreeBSD servers.|
36 +|[idlejitter.plugin](idlejitter.plugin/)|`C`|any|internal|-|measures CPU latency and jitter on all operating systems|
37 +|[macos.plugin](macos.plugin/)|`C`|macos|internal|yes|collects resource usage and performance data on MacOS systems|
38 +|[nfacct.plugin](nfacct.plugin/)|`C`|linux|external|-|collects netfilter firewall, connection tracker and accounting metrics using `libmnl` and `libnetfilter_acct`|
39 +|[xenstat.plugin](xenstat.plugin/)|`C`|linux|external|-|collects XenServer and XCP-ng metrics using `libxenstat`|
40 +|[perf.plugin](perf.plugin/)|`C`|linux|external|-|collects CPU performance metrics using performance monitoring units (PMU).|
41 +|[node.d.plugin](node.d.plugin/)|`node.js`|any|external|yes|a **plugin orchestrator** for data collection modules written in `node.js`.|
42 +|[plugins.d](plugins.d/)|`C`|any|internal|-|implements the **external plugins** API and serves external plugins|
43 +|[proc.plugin](proc.plugin/)|`C`|linux|internal|yes|collects resource usage and performance data on Linux systems|
44 +|[python.d.plugin](python.d.plugin/)|`python` v2+|any|external|yes|a **plugin orchestrator** for data collection modules written in `python` v2 or v3 (both are supported).|
45 +|[statsd.plugin](statsd.plugin/)|`C`|any|internal|-|implements a high performance **statsd** server for Netdata|
46 +|[tc.plugin](tc.plugin/)|`C`|linux|internal|-|collects traffic QoS metrics (`tc`) of Linux network interfaces|
47
48 ## Enabling and Disabling plugins
49
@@ -114,10 +114,8 @@ collect_data() {
114
115 Of course, Netdata has a lot of libraries to help you also in collecting the metrics. The best way to find your way through this, is to examine what other similar plugins do.
116
117 -
117 ### External Plugins
118
119 **External plugins** use the API and are managed by [plugins.d](plugins.d/).
120
122 -
123 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
121 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/apps.plugin/README.md
+64 -66
@@ -26,38 +26,38 @@ that fork/spawn other short lived processes hundreds of times per second.
26
27 `apps.plugin` provides charts for 3 sections:
28
29 -1. Per application charts as **Applications** at Netdata dashboards
30 -2. Per user charts as **Users** at Netdata dashboards
31 -3. Per user group charts as **User Groups** at Netdata dashboards
29 +1. Per application charts as **Applications** at Netdata dashboards
30 +2. Per user charts as **Users** at Netdata dashboards
31 +3. Per user group charts as **User Groups** at Netdata dashboards
32
33 Each of these sections provides the same number of charts:
34
35 -- CPU Utilization
36 - - Total CPU usage
37 - - User / System CPU usage
38 -- Disk I/O
39 - - Physical Reads / Writes
40 - - Logical Reads / Writes
41 - - Open Unique Files (if a file is found open multiple times, it is counted just once)
42 -- Memory
43 - - Real Memory Used (non shared)
44 - - Virtual Memory Allocated
45 - - Minor Page Faults (i.e. memory activity)
46 -- Processes
47 - - Threads Running
48 - - Processes Running
49 - - Pipes Open
50 -- Swap Memory
51 - - Swap Memory Used
52 - - Major Page Faults (i.e. swap activity)
53 -- Network
54 - - Sockets Open
35 +- CPU Utilization
36 + - Total CPU usage
37 + - User / System CPU usage
38 +- Disk I/O
39 + - Physical Reads / Writes
40 + - Logical Reads / Writes
41 + - Open Unique Files (if a file is found open multiple times, it is counted just once)
42 +- Memory
43 + - Real Memory Used (non shared)
44 + - Virtual Memory Allocated
45 + - Minor Page Faults (i.e. memory activity)
46 +- Processes
47 + - Threads Running
48 + - Processes Running
49 + - Pipes Open
50 +- Swap Memory
51 + - Swap Memory Used
52 + - Major Page Faults (i.e. swap activity)
53 +- Network
54 + - Sockets Open
55
56 The above are reported:
57
58 -- For **Applications** per [target configured](apps_groups.conf).
59 -- For **Users** per username or UID (when the username is not available).
60 -- For **User Groups** per groupname or GID (when groupname is not available).
58 +- For **Applications** per [target configured](apps_groups.conf).
59 +- For **Users** per username or UID (when the username is not available).
60 +- For **User Groups** per groupname or GID (when groupname is not available).
61
62 ## Performance
63
@@ -80,7 +80,7 @@ To do this, edit `/etc/netdata/netdata.conf` and find this section:
80 # command options =
81 ```
82
83 -Uncomment the line `update every` and set it to a higher number. If you just set it to ` 2 `,
83 +Uncomment the line `update every` and set it to a higher number. If you just set it to `2`,
84 its CPU resources will be cut in half, and data collection will be once every 2 seconds.
85
86 ## Configuration
@@ -105,28 +105,28 @@ undesirable, the line `other: *` should be appended to the `apps_groups.conf`.
105
106 The process names are the ones returned by:
107
108 - - `ps -e` or `cat /proc/PID/stat`
109 - - in case of substring mode (see below): `/proc/PID/cmdline`
108 +- `ps -e` or `cat /proc/PID/stat`
109 +- in case of substring mode (see below): `/proc/PID/cmdline`
110
111 To add process names with spaces, enclose them in quotes (single or double)
112 -example: ` 'Plex Media Serv' ` or ` "my other process" `.
112 +example: `'Plex Media Serv'` or `"my other process"`.
113
114 -You can add an asterisk ` * ` at the beginning and/or the end of a process:
114 +You can add an asterisk `*` at the beginning and/or the end of a process:
115
116 - - `*name` *suffix* mode: will search for processes ending with `name` (at `/proc/PID/stat`)
117 - - `name*` *prefix* mode: will search for processes beginning with `name` (at `/proc/PID/stat`)
118 - - `*name*` *substring* mode: will search for `name` in the whole command line (at `/proc/PID/cmdline`)
116 +- `*name` _suffix_ mode: will search for processes ending with `name` (at `/proc/PID/stat`)
117 +- `name*` _prefix_ mode: will search for processes beginning with `name` (at `/proc/PID/stat`)
118 +- `*name*` _substring_ mode: will search for `name` in the whole command line (at `/proc/PID/cmdline`)
119
120 -If you enter even just one *name* (substring), `apps.plugin` will process
120 +If you enter even just one _name_ (substring), `apps.plugin` will process
121 `/proc/PID/cmdline` for all processes (of course only once per process: when they are first seen).
122
123 -To add processes with single quotes, enclose them in double quotes: ` "process with this ' single quote" `
123 +To add processes with single quotes, enclose them in double quotes: `"process with this ' single quote"`
124
125 -To add processes with double quotes, enclose them in single quotes: ` 'process with this " double quote' `
125 +To add processes with double quotes, enclose them in single quotes: `'process with this " double quote'`
126
127 -If a group or process name starts with a ` - `, the dimension will be hidden from the chart (cpu chart only).
127 +If a group or process name starts with a `-`, the dimension will be hidden from the chart (cpu chart only).
128
129 -If a process starts with a ` + `, debugging will be enabled for it (debugging produces a lot of output - do not enable it in production systems).
129 +If a process starts with a `+`, debugging will be enabled for it (debugging produces a lot of output - do not enable it in production systems).
130
131 You can add any number of groups. Only the ones found running will affect the charts generated.
132 However, producing charts with hundreds of dimensions may slow down your web browser.
@@ -145,7 +145,7 @@ The problem is described in issue #157.
145 When Netdata is installed, `apps.plugin` is given the capabilities `cap_dac_read_search,cap_sys_ptrace+ep`.
146 If this fails (i.e. `setcap` fails), `apps.plugin` is setuid to `root`.
147
148 -#### linux capabilities in containers
148 +### linux capabilities in containers
149
150 There are a few cases, like `docker` and `virtuozzo` containers, where `setcap` succeeds, but the capabilities
151 are silently ignored (in `lxc` containers `setcap` fails).
@@ -189,22 +189,21 @@ Here is an example for the process group `sql` at `https://registry.my-netdata.i
189 Netdata is able give you a lot more badges for your app.
190 Examples below for process group `sql`:
191
192 -- CPU usage: ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.cpu&dimensions=sql&value_color=green=0%7Corange%3C50%7Cred)
193 -- Disk Physical Reads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.preads&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
194 -- Disk Physical Writes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.pwrites&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
195 -- Disk Logical Reads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.lreads&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
196 -- Disk Logical Writes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.lwrites&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
197 -- Open Files ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.files&dimensions=sql&value_color=green%3E30%7Cred)
198 -- Real Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.mem&dimensions=sql&value_color=green%3C100%7Corange%3C200%7Cred)
199 -- Virtual Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.vmem&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
200 -- Swap Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.swap&dimensions=sql&value_color=green=0%7Cred)
201 -- Minor Page Faults ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.minor_faults&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
202 -- Processes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.processes&dimensions=sql&value_color=green%3E0%7Cred)
203 -- Threads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.threads&dimensions=sql&value_color=green%3E=28%7Cred)
204 -- Major Faults (swap activity) ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.major_faults&dimensions=sql&value_color=green=0%7Cred)
205 -- Open Pipes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.pipes&dimensions=sql&value_color=green=0%7Cred)
206 -- Open Sockets ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.sockets&dimensions=sql&value_color=green%3E=3%7Cred)
207 -
192 +- CPU usage: ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.cpu&dimensions=sql&value_color=green=0%7Corange%3C50%7Cred)
193 +- Disk Physical Reads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.preads&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
194 +- Disk Physical Writes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.pwrites&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
195 +- Disk Logical Reads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.lreads&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
196 +- Disk Logical Writes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.lwrites&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
197 +- Open Files ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.files&dimensions=sql&value_color=green%3E30%7Cred)
198 +- Real Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.mem&dimensions=sql&value_color=green%3C100%7Corange%3C200%7Cred)
199 +- Virtual Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.vmem&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
200 +- Swap Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.swap&dimensions=sql&value_color=green=0%7Cred)
201 +- Minor Page Faults ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.minor_faults&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
202 +- Processes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.processes&dimensions=sql&value_color=green%3E0%7Cred)
203 +- Threads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.threads&dimensions=sql&value_color=green%3E=28%7Cred)
204 +- Major Faults (swap activity) ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.major_faults&dimensions=sql&value_color=green=0%7Cred)
205 +- Open Pipes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.pipes&dimensions=sql&value_color=green=0%7Cred)
206 +- Open Sockets ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.sockets&dimensions=sql&value_color=green%3E=3%7Cred)
207
208 For more information about badges check [Generating Badges](../../web/api/badges)
209
@@ -225,7 +224,7 @@ identify the process that consumes so much CPU**.
224
225 Here is what common Linux console monitoring tools report:
226
228 -#### top
227 +### top
228
229 `top` reports that `bash` is using just 14%.
230
@@ -249,7 +248,7 @@ KiB Swap: 0 total, 0 free, 0 used. 753712 avail Mem
248 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
249 ```
250
252 -#### htop
251 +### htop
252
253 Exactly like `top`, `htop` is providing an incomplete breakdown of the system CPU utilization.
254
@@ -267,7 +266,7 @@ Exactly like `top`, `htop` is providing an incomplete breakdown of the system CP
266 7019 netdata 20 0 138M 21016 2712 S 0.0 2.1 0:00.14 /usr/sbin/netdata
267 ```
268
270 -#### atop
269 +### atop
270
271 `atop` also fails to break down CPU usage.
272
@@ -290,14 +289,13 @@ NET | eth0 ---- | pcki 16 | pcko 15 | si 1 Kbps | so 4 Kbps |
289 7009 0.01s 0.01s 0K 0K 0K 4K -- - S 0% netdata
290 ```
291
293 -#### glances
292 +### glances
293
294 And the same is true for `glances`. The system runs at 100%, but `glances` reports only 17%
295 per process utilization.
296
297 Note also, that being a `python` program, `glances` uses 1.6% CPU while it runs.
298
300 -
299 ```
300 localhost Uptime: 3 days, 21:42:00
301
@@ -318,24 +316,24 @@ FILE SYS Used Total 0.3 2.1 7009 netdata 0 S /usr/sbin/netdata
316 / (vda1) 1.56G 29.5G 0.0 0.0 17 root 0 S oom_reaper
317 ```
318
321 -#### why does this happen?
319 +### why does this happen?
320
321 All the console tools report usage based on the processes found running *at the moment they
322 examine the process tree*. So, they see just one `ls` command, which is actually very quick
323 with minor CPU utilization. But the shell, is spawning hundreds of them, one after another
324 (much like shell scripts do).
325
328 -#### What does Netdata report?
326 +### What does Netdata report?
327
328 The total CPU utilization of the system:
329
330 ![image](https://cloud.githubusercontent.com/assets/2662304/21076212/9198e5a6-bf2e-11e6-9bc0-6bdea25befb2.png)
333 -<br/>_**Figure 1**: The system overview section at Netdata, just a few seconds after the command was run_
331 +<br/>***Figure 1**: The system overview section at Netdata, just a few seconds after the command was run*
332
333 And at the applications `apps.plugin` breaks down CPU usage per application:
334
335 ![image](https://cloud.githubusercontent.com/assets/2662304/21076220/c9687848-bf2e-11e6-8d81-348592c5aca2.png)
338 -<br/>_**Figure 2**: The Applications section at Netdata, just a few seconds after the command was run_
336 +<br/>***Figure 2**: The Applications section at Netdata, just a few seconds after the command was run*
337
338 So, the `ssh` session is using 95% CPU time.
339
@@ -372,4 +370,4 @@ if you sum the CPU utilization of all processes, you might have more CPU time th
370 total cpu time of the system. Netdata solves this, by adapting the per process cpu utilization to
371 the total of the system. [Netdata adds charts that document this normalization](https://london.my-netdata.io/default.html#menu_netdata_submenu_apps_plugin).
372
375 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fapps.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
373 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fapps.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/cgroups.plugin/README.md
+23 -26
@@ -68,7 +68,6 @@ Basic unified cgroups metrics are supported. To use them instead of v1 cgroups a
68
69 Unified cgroups use same name pattern matching as v1 cgroups. `cgroup_enable_systemd_services_detailed_memory` is currently unsupported when using unified cgroups.
70
71 -
71 ### enabled cgroups
72
73 To check if the cgroup is enabled, Netdata uses this setting:
@@ -124,20 +123,20 @@ Netdata monitors **systemd services**. Example:
123
124 Support per distribution:
125
127 -system|systemd services<br/>charts shown|`tree`<br/>`/sys/fs/cgroup`|comments
128 -:-------:|:-------:|:-------:|:------------
129 -Arch Linux|YES| |
130 -Gentoo|NO| |can be enabled, see below
131 -Ubuntu 16.04 LTS|YES| |
132 -Ubuntu 16.10|YES|[here](http://pastebin.com/PiWbQEXy)|
133 -Fedora 25|YES|[here](http://pastebin.com/ax0373wF)|
134 -Debian 8|NO| |can be enabled, see below
135 -AMI|NO|[here](http://pastebin.com/FrxmptjL)|not a systemd system
136 -Centos 7.3.1611|NO|[here](http://pastebin.com/SpzgezAg)|can be enabled, see below
126 +|system|systemd services<br/>charts shown|`tree`<br/>`/sys/fs/cgroup`|comments|
127 +|:----:|:-------------------------------:|:-------------------------:|:-------|
128 +|Arch Linux|YES|||
129 +|Gentoo|NO||can be enabled, see below|
130 +|Ubuntu 16.04 LTS|YES|||
131 +|Ubuntu 16.10|YES|[here](http://pastebin.com/PiWbQEXy)||
132 +|Fedora 25|YES|[here](http://pastebin.com/ax0373wF)||
133 +|Debian 8|NO||can be enabled, see below|
134 +|AMI|NO|[here](http://pastebin.com/FrxmptjL)|not a systemd system|
135 +|Centos 7.3.1611|NO|[here](http://pastebin.com/SpzgezAg)|can be enabled, see below|
136
138 -#### how to enable cgroup accounting on systemd systems that is by default disabled
137 +### how to enable cgroup accounting on systemd systems that is by default disabled
138
140 -You can verify there is no accounting enabled, by running `systemd-cgtop`. The program will show only resources for cgroup ` / `, but all services will show nothing.
139 +You can verify there is no accounting enabled, by running `systemd-cgtop`. The program will show only resources for cgroup `/`, but all services will show nothing.
140
141 To enable cgroup accounting, execute this:
142
@@ -192,7 +191,7 @@ Which systemd services are monitored by Netdata is determined by the following p
191 cgroups to match as systemd services = !/system.slice/*/*.service /system.slice/*.service
192 ```
193
195 ----
194 +- - -
195
196 ## Monitoring ephemeral containers
197
@@ -200,10 +199,9 @@ Netdata monitors containers automatically when it is installed at the host, or w
199
200 Netdata prior to v1.6 had 2 issues when such containers were monitored:
201
203 -1. network interface alarms where triggering when containers were stopped
204 -
205 -2. charts were never cleaned up, so after some time dozens of containers were showing up on the dashboard, and they were occupying memory.
202 +1. network interface alarms where triggering when containers were stopped
203
204 +2. charts were never cleaned up, so after some time dozens of containers were showing up on the dashboard, and they were occupying memory.
205
206 ### the current Netdata
207
@@ -211,13 +209,12 @@ network interfaces and cgroups (containers) are now self-cleaned.
209
210 So, when a network interface or container stops, Netdata might log a few errors in error.log complaining about files it cannot find, but immediately:
211
214 -1. it will detect this is a removed container or network interface
215 -2. it will freeze/pause all alarms for them
216 -3. it will mark their charts as obsolete
217 -4. obsolete charts are not be offered on new dashboard sessions (so hit F5 and the charts are gone)
218 -5. existing dashboard sessions will continue to see them, but of course they will not refresh
219 -6. obsolete charts will be removed from memory, 1 hour after the last user viewed them (configurable with `[global].cleanup obsolete charts after seconds = 3600` (at `netdata.conf`).
220 -7. when obsolete charts are removed from memory they are also deleted from disk (configurable with `[global].delete obsolete charts files = yes`)
221 -
212 +1. it will detect this is a removed container or network interface
213 +2. it will freeze/pause all alarms for them
214 +3. it will mark their charts as obsolete
215 +4. obsolete charts are not be offered on new dashboard sessions (so hit F5 and the charts are gone)
216 +5. existing dashboard sessions will continue to see them, but of course they will not refresh
217 +6. obsolete charts will be removed from memory, 1 hour after the last user viewed them (configurable with `[global].cleanup obsolete charts after seconds = 3600` (at `netdata.conf`).
218 +7. when obsolete charts are removed from memory they are also deleted from disk (configurable with `[global].delete obsolete charts files = yes`)
219
223 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcgroups.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
220 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcgroups.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/README.md
+30 -32
@@ -2,10 +2,10 @@
2
3 `charts.d.plugin` is a Netdata external plugin. It is an **orchestrator** for data collection modules written in `BASH` v4+.
4
5 -1. It runs as an independent process `ps fax` shows it
6 -2. It is started and stopped automatically by Netdata
7 -3. It communicates with Netdata via a unidirectional pipe (sending data to the `netdata` daemon)
8 -4. Supports any number of data collection **modules**
5 +1. It runs as an independent process `ps fax` shows it
6 +2. It is started and stopped automatically by Netdata
7 +3. It communicates with Netdata via a unidirectional pipe (sending data to the `netdata` daemon)
8 +4. Supports any number of data collection **modules**
9
10 `charts.d.plugin` has been designed so that the actual script that will do data collection will be permanently in
11 memory, collecting data with as little overheads as possible
@@ -39,31 +39,31 @@ A `charts.d.plugin` module is a BASH script defining a few functions.
39
40 For a module called `X`, the following criteria must be met:
41
42 -1. The module script must be called `X.chart.sh` and placed in `/usr/libexec/netdata/charts.d`.
42 +1. The module script must be called `X.chart.sh` and placed in `/usr/libexec/netdata/charts.d`.
43
44 -2. If the module needs a configuration, it should be called `X.conf` and placed in `/etc/netdata/charts.d`.
45 - The configuration file `X.conf` is also a BASH script itself.
46 - To edit the default files supplied by Netdata, run `/etc/netdata/edit-config charts.d/X.conf`,
47 - where `X` is the name of the module.
44 +2. If the module needs a configuration, it should be called `X.conf` and placed in `/etc/netdata/charts.d`.
45 + The configuration file `X.conf` is also a BASH script itself.
46 + To edit the default files supplied by Netdata, run `/etc/netdata/edit-config charts.d/X.conf`,
47 + where `X` is the name of the module.
48
49 -3. All functions and global variables defined in the script and its configuration, must begin with `X_`.
49 +3. All functions and global variables defined in the script and its configuration, must begin with `X_`.
50
51 -4. The following functions must be defined:
51 +4. The following functions must be defined:
52
53 - - `X_check()` - returns 0 or 1 depending on whether the module is able to run or not
54 - (following the standard Linux command line return codes: 0 = OK, the collector can operate and 1 = FAILED,
55 - the collector cannot be used).
53 + - `X_check()` - returns 0 or 1 depending on whether the module is able to run or not
54 + (following the standard Linux command line return codes: 0 = OK, the collector can operate and 1 = FAILED,
55 + the collector cannot be used).
56
57 - - `X_create()` - creates the Netdata charts, following the standard Netdata plugin guides as described in
58 - **[External Plugins](../plugins.d/)** (commands `CHART` and `DIMENSION`).
59 - The return value does matter: 0 = OK, 1 = FAILED.
57 + - `X_create()` - creates the Netdata charts, following the standard Netdata plugin guides as described in
58 + **[External Plugins](../plugins.d/)** (commands `CHART` and `DIMENSION`).
59 + The return value does matter: 0 = OK, 1 = FAILED.
60
61 - - `X_update()` - collects the values for the defined charts, following the standard Netdata plugin guides
62 - as described in **[External Plugins](../plugins.d/)** (commands `BEGIN`, `SET`, `END`).
63 - The return value also matters: 0 = OK, 1 = FAILED.
61 + - `X_update()` - collects the values for the defined charts, following the standard Netdata plugin guides
62 + as described in **[External Plugins](../plugins.d/)** (commands `BEGIN`, `SET`, `END`).
63 + The return value also matters: 0 = OK, 1 = FAILED.
64
65 -5. The following global variables are available to be set:
66 - - `X_update_every` - is the data collection frequency for the module script, in seconds.
65 +5. The following global variables are available to be set:
66 + - `X_update_every` - is the data collection frequency for the module script, in seconds.
67
68 The module script may use more functions or variables. But all of them must begin with `X_`.
69
@@ -169,7 +169,6 @@ export NETDATA_USER_CONFIG_DIR="/path/to/etc/netdata"
169
170 Also, remember that Netdata runs `chart.d.plugin` as user `netdata` (or any other user the `netdata` process is configured to run as).
171
172 -
172 ## Running multiple instances of charts.d.plugin
173
174 `charts.d.plugin` will call the `X_update()` function one after another. This means that a delay in collector `X`
@@ -179,17 +178,16 @@ You can have multiple `charts.d.plugin` running to overcome this problem.
178
179 This is what you need to do:
180
182 -1. Decide a new name for the new charts.d instance: example `charts2.d`.
181 +1. Decide a new name for the new charts.d instance: example `charts2.d`.
182 +
183 +2. Create/edit the files `/etc/netdata/charts.d.conf` and `/etc/netdata/charts2.d.conf` and enable / disable the
184 + module you want each to run. Remember to set `enable_all_charts="no"` to both of them, and enable the individual
185 + modules for each.
186
184 -2. Create/edit the files `/etc/netdata/charts.d.conf` and `/etc/netdata/charts2.d.conf` and enable / disable the
185 - module you want each to run. Remember to set `enable_all_charts="no"` to both of them, and enable the individual
186 - modules for each.
187 -
188 -3. link `/usr/libexec/netdata/plugins.d/charts.d.plugin` to `/usr/libexec/netdata/plugins.d/charts2.d.plugin`.
189 - Netdata will spawn a new charts.d process.
187 +3. link `/usr/libexec/netdata/plugins.d/charts.d.plugin` to `/usr/libexec/netdata/plugins.d/charts2.d.plugin`.
188 + Netdata will spawn a new charts.d process.
189
190 Execute the above in this order, since Netdata will (by default) attempt to start new plugins soon after they are
191 created in `/usr/libexec/netdata/plugins.d/`.
192
194 -
195 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
193 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/ap/README.md
+22 -22
@@ -10,11 +10,12 @@ The `ap` collector visualizes data related to access points.
10
11 It does the following:
12
13 -1. Runs `iw dev` searching for interfaces that have `type AP`.
13 +1. Runs `iw dev` searching for interfaces that have `type AP`.
14
15 - From the same output it collects the SSIDs each AP supports by looking for lines `ssid NAME`.
15 + From the same output it collects the SSIDs each AP supports by looking for lines `ssid NAME`.
16 +
17 + Example:
18
17 - Example:
19 ```sh
20 # iw dev
21 phy#0
@@ -27,20 +28,19 @@ phy#0
28 channel 7 (2442 MHz), width: 20 MHz, center1: 2442 MHz
29 ```
30
31 +2. For each interface found, it runs `iw INTERFACE station dump`.
32
31 -2. For each interface found, it runs `iw INTERFACE station dump`.
32 -
33 - From the output is collects:
33 + From the output is collects:
34
35 - - rx/tx bytes
36 - - rx/tx packets
37 - - tx retries
38 - - tx failed
39 - - signal strength
40 - - rx/tx bitrate
41 - - expected throughput
35 + - rx/tx bytes
36 + - rx/tx packets
37 + - tx retries
38 + - tx failed
39 + - signal strength
40 + - rx/tx bitrate
41 + - expected throughput
42
43 - Example:
43 + Example:
44
45 ```sh
46 # iw wlan0 station dump
@@ -65,14 +65,14 @@ Station 40:b8:37:5a:ed:5e (on wlan0)
65 TDLS peer: no
66 ```
67
68 -3. For each interface found, it creates 6 charts:
68 +3. For each interface found, it creates 6 charts:
69
70 - - Number of Connected clients
71 - - Bandwidth for all clients
72 - - Packets for all clients
73 - - Transmit Issues for all clients
74 - - Average Signal among all clients
75 - - Average Bitrate (including average expected throughput) among all clients
70 + - Number of Connected clients
71 + - Bandwidth for all clients
72 + - Packets for all clients
73 + - Transmit Issues for all clients
74 + - Average Signal among all clients
75 + - Average Bitrate (including average expected throughput) among all clients
76
77 ## Configuration
78
@@ -83,4 +83,4 @@ To edit this file on your system run `/etc/netdata/edit-config charts.d/ap.conf`
83
84 The plugin is able to auto-detect if you are running access points on your linux box.
85
86 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fap%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
86 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fap%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/apache/README.md
+10 -10
@@ -78,14 +78,14 @@ Scoreboard: ____________________________________________________________________
78
79 From the apache status output it collects:
80
81 - - total accesses (incremental value, rendered as requests/s)
82 - - total bandwidth (incremental value, rendered as bandwidth/s)
83 - - requests per second (this appears to be calculated by apache as an average for its lifetime, while the one calculated by Netdata using the total accesses counter is real-time)
84 - - bytes per second (average for the lifetime of the apache server)
85 - - bytes per request (average for the lifetime of the apache server)
86 - - workers by status (`busy` and `idle`)
87 - - total connections (currently active connections - offered by apache 2.4+)
88 - - async connections per status (`keepalive`, `writing`, `closing` - offered by apache 2.4+)
81 +- total accesses (incremental value, rendered as requests/s)
82 +- total bandwidth (incremental value, rendered as bandwidth/s)
83 +- requests per second (this appears to be calculated by apache as an average for its lifetime, while the one calculated by Netdata using the total accesses counter is real-time)
84 +- bytes per second (average for the lifetime of the apache server)
85 +- bytes per request (average for the lifetime of the apache server)
86 +- workers by status (`busy` and `idle`)
87 +- total connections (currently active connections - offered by apache 2.4+)
88 +- async connections per status (`keepalive`, `writing`, `closing` - offered by apache 2.4+)
89
90 ## Configuration
91
@@ -124,6 +124,6 @@ curl "http://127.0.0.1:80/server-status?auto"
124
125 Netdata will be able to do it too.
126
127 -Notice: You may need to have the default `000-default.conf ` website enabled in order for the status mod to work.
127 +Notice: You may need to have the default `000-default.conf` website enabled in order for the status mod to work.
128
129 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fapache%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
129 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fapache%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/apcupsd/README.md
+2 -2
@@ -1,7 +1,7 @@
1 # apcupsd
2
3 -*Under construction*
3 +_Under construction_
4
5 Collects UPS metrics
6
7 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fapcupsd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
7 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fapcupsd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/cpu_apps/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > USE [APPS.PLUGIN](../../apps.plugin).
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fcpu_apps%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fcpu_apps%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/cpufreq/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > USE THE [PROC PLUGIN](../../proc.plugin) - IT SUPPORTS MULTIPLE JOBS AND IT IS MORE EFFICIENT
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fcpufreq%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fcpufreq%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/example/README.md
+1 -2
@@ -2,5 +2,4 @@
2
3 This is just an example charts.d data collector.
4
5 -
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fexample%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
5 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fexample%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/exim/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > USE [THE PYTHON ONE](../../python.d.plugin/exim) - IT SUPPORTS MULTIPLE JOBS AND IT IS MORE EFFICIENT
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fexim%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fexim%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/hddtemp/README.md
+3 -3
@@ -7,9 +7,9 @@ The plugin will collect temperatures from disks
7
8 It will create one chart with all active disks
9
10 -1. **temperature in Celsius**
10 +1. **temperature in Celsius**
11
12 -### configuration
12 +## configuration
13
14 hddtemp needs to be running in daemonized mode
15
@@ -27,4 +27,4 @@ hddtemp_disks=()
27
28 ---
29
30 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fhddtemp%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
30 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fhddtemp%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/libreswan/README.md
+7 -7
@@ -4,16 +4,16 @@ The plugin will collects bytes-in, bytes-out and uptime for all established libr
4
5 The following charts are created, **per tunnel**:
6
7 -1. **Uptime**
7 +1. **Uptime**
8
9 - * the uptime of the tunnel
9 +- the uptime of the tunnel
10
11 -2. **Traffic**
11 +2. **Traffic**
12
13 - * bytes in
14 - * bytes out
13 +- bytes in
14 +- bytes out
15
16 -### configuration
16 +## configuration
17
18 Its config file is `/etc/netdata/charts.d/libreswan.conf`.
19
@@ -41,4 +41,4 @@ Make sure the path `/sbin/ipsec` matches your setup (execute `which ipsec` to fi
41
42 ---
43
44 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Flibreswan%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
44 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Flibreswan%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/load_average/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > THE NETDATA DAEMON COLLECTS LOAD AVERAGE BY ITSELF
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fload_average%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fload_average%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/mem_apps/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > USE [APPS.PLUGIN](../../apps.plugin).
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fmem_apps%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fmem_apps%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/mysql/README.md
+53 -48
@@ -7,57 +7,63 @@ The plugin will monitor one or more mysql servers
7
8 It will produce the following charts:
9
10 -1. **Bandwidth** in kbps
11 - * in
12 - * out
13 -
14 -2. **Queries** in queries/sec
15 - * queries
16 - * questions
17 - * slow queries
18 -
19 -3. **Operations** in operations/sec
20 - * opened tables
21 - * flush
22 - * commit
23 - * delete
24 - * prepare
25 - * read first
26 - * read key
27 - * read next
28 - * read prev
29 - * read random
30 - * read random next
31 - * rollback
32 - * save point
33 - * update
34 - * write
35 -
36 -4. **Table Locks** in locks/sec
37 - * immediate
38 - * waited
39 -
40 -5. **Select Issues** in issues/sec
41 - * full join
42 - * full range join
43 - * range
44 - * range check
45 - * scan
46 -
47 -6. **Sort Issues** in issues/sec
48 - * merge passes
49 - * range
50 - * scan
51 -
52 -### configuration
10 +1. **Bandwidth** in kbps
11 +
12 +- in
13 +- out
14 +
15 +2. **Queries** in queries/sec
16 +
17 +- queries
18 +- questions
19 +- slow queries
20 +
21 +3. **Operations** in operations/sec
22 +
23 +- opened tables
24 +- flush
25 +- commit
26 +- delete
27 +- prepare
28 +- read first
29 +- read key
30 +- read next
31 +- read prev
32 +- read random
33 +- read random next
34 +- rollback
35 +- save point
36 +- update
37 +- write
38 +
39 +4. **Table Locks** in locks/sec
40 +
41 +- immediate
42 +- waited
43 +
44 +5. **Select Issues** in issues/sec
45 +
46 +- full join
47 +- full range join
48 +- range
49 +- range check
50 +- scan
51 +
52 +6. **Sort Issues** in issues/sec
53 +
54 +- merge passes
55 +- range
56 +- scan
57 +
58 +## configuration
59
60 You can configure many database servers, like this:
61
62 You can provide, per server, the following:
63
58 -1. a name, anything you like, but keep it short
59 -2. the mysql command to connect to the server
60 -3. the mysql command line options to be used for connecting to the server
64 +1. a name, anything you like, but keep it short
65 +2. the mysql command to connect to the server
66 +3. the mysql command line options to be used for connecting to the server
67
68 Here is an example for 2 servers:
69
@@ -77,7 +83,6 @@ The above sets the mysql command only for server2. server1 will use the system d
83
84 If no configuration is given, the plugin will attempt to connect to mysql server at localhost.
85
80 -
86 ---
87
83 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fmysql%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
88 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fmysql%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/nginx/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > USE [THE PYTHON ONE](../../python.d.plugin/nginx) - IT SUPPORTS MULTIPLE JOBS AND IT IS MORE EFFICIENT
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fnginx%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fnginx%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/nut/README.md
+24 -25
@@ -4,46 +4,45 @@ The plugin will collect UPS data for all UPSes configured in the system.
4
5 The following charts will be created:
6
7 -1. **UPS Charge**
7 +1. **UPS Charge**
8
9 - * percentage changed
9 +- percentage changed
10
11 -2. **UPS Battery Voltage**
11 +2. **UPS Battery Voltage**
12
13 - * current voltage
14 - * high voltage
15 - * low voltage
16 - * nominal voltage
13 +- current voltage
14 +- high voltage
15 +- low voltage
16 +- nominal voltage
17
18 -3. **UPS Input Voltage**
18 +3. **UPS Input Voltage**
19
20 - * current voltage
21 - * fault voltage
22 - * nominal voltage
20 +- current voltage
21 +- fault voltage
22 +- nominal voltage
23
24 -4. **UPS Input Current**
24 +4. **UPS Input Current**
25
26 - * nominal current
26 +- nominal current
27
28 -5. **UPS Input Frequency**
28 +5. **UPS Input Frequency**
29
30 - * current frequency
31 - * nominal frequency
30 +- current frequency
31 +- nominal frequency
32
33 -6. **UPS Output Voltage**
33 +6. **UPS Output Voltage**
34
35 - * current voltage
35 +- current voltage
36
37 -7. **UPS Load**
37 +7. **UPS Load**
38
39 - * current load
39 +- current load
40
41 -8. **UPS Temperature**
41 +8. **UPS Temperature**
42
43 - * current temperature
43 +- current temperature
44
45 -
46 -### configuration
45 +## configuration
46
47 This is the internal default for `/etc/netdata/nut.conf`
48
@@ -58,4 +57,4 @@ nut_update_every=2
57
58 ---
59
61 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fnut%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
60 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fnut%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/opensips/README.md
+2 -2
@@ -1,7 +1,7 @@
1 # OpenSIPS
2
3 -*Under construction*
3 +_Under construction_
4
5 Collects OpenSIPS metrics
6
7 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fopensips%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
7 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fopensips%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/phpfpm/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > USE [THE PYTHON ONE](../../python.d.plugin/phpfpm) - IT SUPPORTS MULTIPLE JOBS AND IT IS MORE EFFICIENT
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fphpfpm%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fphpfpm%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/postfix/README.md
+4 -4
@@ -7,10 +7,10 @@ The plugin will collect the postfix queue size.
7
8 It will create two charts:
9
10 -1. **queue size in emails**
11 -2. **queue size in KB**
10 +1. **queue size in emails**
11 +2. **queue size in KB**
12
13 -### configuration
13 +## configuration
14
15 This is the internal default for `/etc/netdata/postfix.conf`
16
@@ -25,4 +25,4 @@ postfix_update_every=15
25
26 ---
27
28 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fpostfix%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
28 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fpostfix%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/sensors/README.md
+10 -11
@@ -2,10 +2,9 @@
2
3 > THIS MODULE IS OBSOLETE.
4 > USE [THE PYTHON ONE](../../python.d.plugin/sensors) - IT SUPPORTS MULTIPLE JOBS AND IT IS MORE EFFICIENT
5 -
5 +>
6 > Unlike the python one, this module can collect temperature on RPi.
7
8 -
8 The plugin will provide charts for all configured system sensors
9
10 > This plugin is reading sensors directly from the kernel.
@@ -15,17 +14,17 @@ The plugin will provide charts for all configured system sensors
14
15 The plugin will create Netdata charts for:
16
18 -1. **Temperature**
19 -2. **Voltage**
20 -3. **Current**
21 -4. **Power**
22 -5. **Fans Speed**
23 -6. **Energy**
24 -7. **Humidity**
17 +1. **Temperature**
18 +2. **Voltage**
19 +3. **Current**
20 +4. **Power**
21 +5. **Fans Speed**
22 +6. **Energy**
23 +7. **Humidity**
24
25 One chart for every sensor chip found and each of the above will be created.
26
28 -### configuration
27 +## configuration
28
29 This is the internal default for `/etc/netdata/sensors.conf`
30
@@ -52,4 +51,4 @@ sensors_excluded=()
51
52 ---
53
55 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fsensors%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
54 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fsensors%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/squid/README.md
+24 -24
@@ -7,50 +7,50 @@ The plugin will monitor a squid server.
7
8 It will produce 4 charts:
9
10 -1. **Squid Client Bandwidth** in kbps
10 +1. **Squid Client Bandwidth** in kbps
11
12 - * in
13 - * out
14 - * hits
12 +- in
13 +- out
14 +- hits
15
16 -2. **Squid Client Requests** in requests/sec
16 +2. **Squid Client Requests** in requests/sec
17
18 - * requests
19 - * hits
20 - * errors
18 +- requests
19 +- hits
20 +- errors
21
22 -3. **Squid Server Bandwidth** in kbps
22 +3. **Squid Server Bandwidth** in kbps
23
24 - * in
25 - * out
24 +- in
25 +- out
26
27 -4. **Squid Server Requests** in requests/sec
27 +4. **Squid Server Requests** in requests/sec
28
29 - * requests
30 - * errors
29 +- requests
30 +- errors
31
32 -### autoconfig
32 +## autoconfig
33
34 The plugin will by itself detect squid servers running on
35 localhost, on ports 3128 or 8080.
36
37 It will attempt to download URLs in the form:
38
39 -- `cache_object://HOST:PORT/counters`
40 -- `/squid-internal-mgr/counters`
39 +- `cache_object://HOST:PORT/counters`
40 +- `/squid-internal-mgr/counters`
41
42 If any succeeds, it will use this.
43
44 -### configuration
44 +## configuration
45
46 If you need to configure it by hand, create the file
47 `/etc/netdata/squid.conf` with the following variables:
48
49 -- `squid_host=IP` the IP of the squid host
50 -- `squid_port=PORT` the port the squid is listening
51 -- `squid_url="URL"` the URL with the statistics to be fetched from squid
52 -- `squid_timeout=SECONDS` how much time we should wait for squid to respond
53 -- `squid_update_every=SECONDS` the frequency of the data collection
49 +- `squid_host=IP` the IP of the squid host
50 +- `squid_port=PORT` the port the squid is listening
51 +- `squid_url="URL"` the URL with the statistics to be fetched from squid
52 +- `squid_timeout=SECONDS` how much time we should wait for squid to respond
53 +- `squid_update_every=SECONDS` the frequency of the data collection
54
55 Example `/etc/netdata/squid.conf`:
56
@@ -64,4 +64,4 @@ squid_update_every=5
64
65 ---
66
67 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fsquid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
67 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fsquid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/charts.d.plugin/tomcat/README.md
+1 -1
@@ -3,4 +3,4 @@
3 > THIS MODULE IS OBSOLETE.
4 > USE [THE PYTHON ONE](../../python.d.plugin/tomcat) - IT SUPPORTS MULTIPLE JOBS AND IT IS MORE EFFICIENT
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Ftomcat%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Ftomcat%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/checks.plugin/README.md
+1 -1
@@ -2,4 +2,4 @@
2
3 A debugging plugin (by default it is disabled)
4
5 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fchecks.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
5 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fchecks.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/cups.plugin/README.md
+32 -26
@@ -10,40 +10,46 @@ This plugin needs a running local CUPS daemon (`cupsd`). This plugin does not ne
10
11 `cups.plugin` provides one common section `destinations` and one section per destination.
12
13 -> Destinations in CUPS represent individual printers or classes (collections or pools) of printers (https://www.cups.org/doc/cupspm.html#working-with-destinations)
13 +> Destinations in CUPS represent individual printers or classes (collections or pools) of printers (<https://www.cups.org/doc/cupspm.html#working-with-destinations>)
14
15 The section `server` provides these charts:
16
17 -1. **destinations by state**
18 - * idle
19 - * printing
20 - * stopped
17 +1. **destinations by state**
18
22 -2. **destinations by options**
23 - * total
24 - * accepting jobs
25 - * shared
19 + - idle
20 + - printing
21 + - stopped
22
27 -3. **total job number by status**
28 - * pending
29 - * processing
30 - * held
23 +2. **destinations by options**
24
32 -4. **total job size by status**
33 - * pending
34 - * processing
35 - * held
25 + - total
26 + - accepting jobs
27 + - shared
28 +
29 +3. **total job number by status**
30 +
31 + - pending
32 + - processing
33 + - held
34 +
35 +4. **total job size by status**
36 +
37 + - pending
38 + - processing
39 + - held
40
41 For each destination the plugin provides these charts:
42
39 -1. **job number by status**
40 - * pending
41 - * held
42 - * processing
43 +1. **job number by status**
44 +
45 + - pending
46 + - held
47 + - processing
48 +
49 +2. **job size by status**
50 +
51 + - pending
52 + - held
53 + - processing
54
44 -3. **job size by status**
45 - * pending
46 - * held
47 - * processing
48 -
55 At the moment only job status pending, processing, and held are reported because we do not have a method to collect stopped, canceled, aborted and completed jobs which scales.
collectors/diskspace.plugin/README.md
+4 -5
@@ -3,8 +3,9 @@
3 This plugin monitors the disk space usage of mounted disks, under Linux. The plugin requires Netdata to have execute/search permissions on the mount point itself, as well as each component of the absolute path to the mount point.
4
5 Two charts are available for every mount:
6 - - Disk Space Usage
7 - - Disk Files (inodes) Usage
6 +
7 +- Disk Space Usage
8 +- Disk Files (inodes) Usage
9
10 ## configuration
11
@@ -12,7 +13,6 @@ Simple patterns can be used to exclude mounts from showed statistics based on pa
13
14 By default, Netdata will enable monitoring metrics only when they are not zero. If they are constantly zero they are ignored. Metrics that will start having values, after Netdata is started, will be detected and charts will be automatically added to the dashboard (a refresh of the dashboard is needed for them to appear though). Set `yes` for a chart instead of `auto` to enable it permanently. You can also set the `enable zero metrics` option to `yes` in the `[global]` section which enables charts with zero metrics for all internal Netdata plugins.
15
15 -
16 ```
17 [plugin:proc:diskspace]
18 # remove charts of unmounted disks = yes
@@ -34,5 +34,4 @@ Charts can be enabled/disabled for every mount separately:
34
35 > for disks performance monitoring, see the `proc` plugin, [here](../proc.plugin/#monitoring-disks)
36
37 -
38 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fdiskspace.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
37 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fdiskspace.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/fping.plugin/README.md
+3 -4
@@ -3,7 +3,7 @@
3 The fping plugin supports monitoring latency, packet loss and uptime of any number of network end points,
4 by pinging them with `fping`.
5
6 -A recent version of `fping` is required (one that supports option ` -N `).
6 +A recent version of `fping` is required (one that supports option `-N`).
7 The supplied plugin can install it, by running:
8
9 ```sh
@@ -39,7 +39,7 @@ fping_opts="-R -b 56 -i 1 -r 0 -t 5000"
39 Netdata will automatically attach a few alarms for each host.
40 Check the [latest versions of the fping alarms](../../health/health.d/fping.conf)
41
42 -## Additional Tips
42 +## Additional Tips
43
44 ### Customizing Amount of Pings Per Second
45
@@ -66,7 +66,6 @@ Follow this procedure:
66
67 **1. Create New fping Configuration File**
68
69 -
69 ```sh
70 # Step Into Configuration Directory
71 cd /etc/netdata
@@ -95,4 +94,4 @@ That's it. Netdata will detect the new plugin and start it.
94 You can name the new plugin any name you like.
95 Just make sure the plugin and the configuration file have the same name.
96
98 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ffping.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
97 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ffping.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/freebsd.plugin/README.md
+1 -1
@@ -4,4 +4,4 @@ Collects resource usage and performance data on FreeBSD systems
4
5 By default, Netdata will enable monitoring metrics for disks, memory, and network only when they are not zero. If they are constantly zero they are ignored. Metrics that will start having values, after Netdata is started, will be detected and charts will be automatically added to the dashboard (a refresh of the dashboard is needed for them to appear though). Use `yes` instead of `auto` in plugin configuration sections to enable these charts permanently. You can also set the `enable zero metrics` option to `yes` in the `[global]` section which enables charts with zero metrics for all internal Netdata plugins.
6
7 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ffreebsd.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
7 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ffreebsd.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/freeipmi.plugin/README.md
+14 -17
@@ -6,9 +6,9 @@ Netdata has a [freeipmi](https://www.gnu.org/software/freeipmi/) plugin.
6
7 ## Compile `freeipmi.plugin`
8
9 -1. install `libipmimonitoring-dev` or `libipmimonitoring-devel` (`freeipmi-devel` on RHEL based OS) using the package manager of your system.
9 +1. install `libipmimonitoring-dev` or `libipmimonitoring-devel` (`freeipmi-devel` on RHEL based OS) using the package manager of your system.
10
11 -2. re-install Netdata from source. The installer will detect that the required libraries are now available and will also build `freeipmi.plugin`.
11 +2. re-install Netdata from source. The installer will detect that the required libraries are now available and will also build `freeipmi.plugin`.
12
13 Keep in mind IPMI requires root access, so the plugin is setuid to root.
14
@@ -18,20 +18,19 @@ If you just installed the required IPMI tools, please run at least once the comm
18
19 The plugin creates (up to) 8 charts, based on the information collected from IPMI:
20
21 -1. number of sensors by state
22 -2. number of events in SEL
23 -3. Temperatures CELCIUS
24 -4. Temperatures FAHRENHEIT
25 -5. Voltages
26 -6. Currents
27 -7. Power
28 -8. Fans
29 -
21 +1. number of sensors by state
22 +2. number of events in SEL
23 +3. Temperatures CELCIUS
24 +4. Temperatures FAHRENHEIT
25 +5. Voltages
26 +6. Currents
27 +7. Power
28 +8. Fans
29
30 It also adds 2 alarms:
31
33 -1. Sensors in non-nominal state (i.e. warning and critical)
34 -2. SEL is non empty
32 +1. Sensors in non-nominal state (i.e. warning and critical)
33 +2. SEL is non empty
34
35 ![image](https://cloud.githubusercontent.com/assets/2662304/23674138/88926a20-037d-11e7-89c0-20e74ee10cd1.png)
36
@@ -96,7 +95,6 @@ The plugin supports a few options. To see them, run:
95
96 For more information:
97 https://github.com/netdata/netdata/tree/master/collectors/freeipmi.plugin
99 -
98 ```
99
100 You can set these options in `/etc/netdata/netdata.conf` at this section:
@@ -107,7 +105,7 @@ You can set these options in `/etc/netdata/netdata.conf` at this section:
105 command options =
106 ```
107
110 -Append to `command options = ` the settings you need. The minimum `update every` is 5 (enforced internally by the plugin). IPMI is slow and CPU hungry. So, once every 5 seconds is pretty acceptable.
108 +Append to `command options =` the settings you need. The minimum `update every` is 5 (enforced internally by the plugin). IPMI is slow and CPU hungry. So, once every 5 seconds is pretty acceptable.
109
110 ## Ignoring specific sensors
111
@@ -142,7 +140,6 @@ ID | Name | Type | State | Reading | Unit
140 ...
141 ```
142
145 -
143 ## Debugging
144
145 You can run the plugin by hand:
@@ -187,4 +184,4 @@ If you need to disable IPMI for Netdata, edit `/etc/netdata/netdata.conf` and se
184 freeipmi = no
185 ```
186
190 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ffreeipmi.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
187 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ffreeipmi.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/idlejitter.plugin/README.md
+4 -4
@@ -8,8 +8,8 @@ The difference between the requested and the actual duration of the sleep, is th
8 This is done at most 50 times per second, to ensure we have a good average.
9
10 This number is useful:
11 -
12 - 1. in real-time environments, when the CPU jitter can affect the quality of the service (like VoIP media gateways).
13 - 2. in cloud infrastructure, at can pause the VM or container for a small duration to perform operations at the host.
11
15 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fidlejitter.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
12 +1. in real-time environments, when the CPU jitter can affect the quality of the service (like VoIP media gateways).
13 +2. in cloud infrastructure, at can pause the VM or container for a small duration to perform operations at the host.
14 +
15 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fidlejitter.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/ioping.plugin/README.md
+2 -3
@@ -3,7 +3,7 @@
3 The ioping plugin supports monitoring latency for any number of directories/files/devices,
4 by pinging them with `ioping`.
5
6 -A recent version of `ioping` is required (one that supports option ` -N `).
6 +A recent version of `ioping` is required (one that supports option `-N`).
7 The supplied plugin can install it, by running:
8
9 ```sh
@@ -50,7 +50,6 @@ Follow this procedure:
50
51 **1. Create New ioping Configuration File**
52
53 -
53 ```sh
54 # Step Into Configuration Directory
55 cd /etc/netdata
@@ -79,4 +78,4 @@ That's it. Netdata will detect the new plugin and start it.
78 You can name the new plugin any name you like.
79 Just make sure the plugin and the configuration file have the same name.
80
82 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fioping.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
81 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fioping.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/macos.plugin/README.md
+1 -1
@@ -4,4 +4,4 @@ Collects resource usage and performance data on MacOS systems
4
5 By default, Netdata will enable monitoring metrics for disks, memory, and network only when they are not zero. If they are constantly zero they are ignored. Metrics that will start having values, after Netdata is started, will be detected and charts will be automatically added to the dashboard (a refresh of the dashboard is needed for them to appear though). Use `yes` instead of `auto` in plugin configuration sections to enable these charts permanently. You can also set the `enable zero metrics` option to `yes` in the `[global]` section which enables charts with zero metrics for all internal Netdata plugins.
6
7 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fmacos.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
7 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fmacos.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/nfacct.plugin/README.md
+12 -10
@@ -4,9 +4,9 @@
4
5 ## Prerequisites
6
7 -1. install `libmnl-dev` and `libnetfilter_acct-dev` using the package manager of your system.
7 +1. install `libmnl-dev` and `libnetfilter_acct-dev` using the package manager of your system.
8
9 -2. re-install Netdata from source. The installer will detect that the required libraries are now available and will also build `netdata.plugin`.
9 +2. re-install Netdata from source. The installer will detect that the required libraries are now available and will also build `netdata.plugin`.
10
11 Keep in mind that NFACCT requires root access, so the plugin is setuid to root.
12
@@ -15,15 +15,17 @@ Keep in mind that NFACCT requires root access, so the plugin is setuid to root.
15 The plugin provides Netfilter connection tracker statistics and nfacct packet and bandwidth accounting:
16
17 Connection tracker:
18 -1. Connections.
19 -2. Changes.
20 -3. Expectations.
21 -4. Errors.
22 -5. Searches.
18 +
19 +1. Connections.
20 +2. Changes.
21 +3. Expectations.
22 +4. Errors.
23 +5. Searches.
24
25 Netfilter accounting:
25 -1. Packets.
26 -2. Bandwidth.
26 +
27 +1. Packets.
28 +2. Bandwidth.
29
30 ## Configuration
31
@@ -44,4 +46,4 @@ sudo /usr/libexec/netdata/plugins.d/nfacct.plugin 1 debug
46
47 You will get verbose output on what the plugin does.
48
47 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnfacct.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
49 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnfacct.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/node.d.plugin/README.md
+27 -29
@@ -2,12 +2,12 @@
2
3 `node.d.plugin` is a Netdata external plugin. It is an **orchestrator** for data collection modules written in `node.js`.
4
5 -1. It runs as an independent process `ps fax` shows it
6 -2. It is started and stopped automatically by Netdata
7 -3. It communicates with Netdata via a unidirectional pipe (sending data to the `netdata` daemon)
8 -4. Supports any number of data collection **modules**
9 -5. Allows each **module** to have one or more data collection **jobs**
10 -6. Each **job** is collecting one or more metrics from a single data source
5 +1. It runs as an independent process `ps fax` shows it
6 +2. It is started and stopped automatically by Netdata
7 +3. It communicates with Netdata via a unidirectional pipe (sending data to the `netdata` daemon)
8 +4. Supports any number of data collection **modules**
9 +5. Allows each **module** to have one or more data collection **jobs**
10 +6. Each **job** is collecting one or more metrics from a single data source
11
12 ## Pull Request Checklist for Node.js Plugins
13
@@ -15,13 +15,13 @@ This is a generic checklist for submitting a new Node.js plugin for Netdata. It
15
16 At minimum, to be buildable and testable, the PR needs to include:
17
18 -* The module itself, following proper naming conventions: `node.d/<module_dir>/<module_name>.node.js`
19 -* A README.md file for the plugin.
20 -* The configuration file for the module
21 -* A basic configuration for the plugin in the appropriate global config file: `conf.d/node.d.conf`, which is also in JSON format. If the module should be enabled by default, add a section for it in the `modules` dictionary.
22 -* A line for the plugin in the appropriate `Makefile.am` file: `node.d/Makefile.am` under `dist_node_DATA`.
23 -* A line for the plugin configuration file in `conf.d/Makefile.am`: under `dist_nodeconfig_DATA`
24 -* Optionally, chart information in `web/dashboard_info.js`. This generally involves specifying a name and icon for the section, and may include descriptions for the section or individual charts.
18 +- The module itself, following proper naming conventions: `node.d/<module_dir>/<module_name>.node.js`
19 +- A README.md file for the plugin.
20 +- The configuration file for the module
21 +- A basic configuration for the plugin in the appropriate global config file: `conf.d/node.d.conf`, which is also in JSON format. If the module should be enabled by default, add a section for it in the `modules` dictionary.
22 +- A line for the plugin in the appropriate `Makefile.am` file: `node.d/Makefile.am` under `dist_node_DATA`.
23 +- A line for the plugin configuration file in `conf.d/Makefile.am`: under `dist_nodeconfig_DATA`
24 +- Optionally, chart information in `web/dashboard_info.js`. This generally involves specifying a name and icon for the section, and may include descriptions for the section or individual charts.
25
26 ## Motivation
27
@@ -40,7 +40,7 @@ To run `node.js` plugins you need to have `node` installed in your system.
40 In some older systems, the package named `node` is not node.js. It is a terminal emulation program called `ax25-node`.
41 In this case the node.js package may be referred as `nodejs`. Once you install `nodejs`, we suggest to link
42 `/usr/bin/nodejs` to `/usr/bin/node`, so that typing `node` in your terminal, opens node.js.
43 -For more information check the **[[Installation]]** guide.
43 +For more information check the **\[[Installation]]** guide.
44
45 ## configuring `node.d.plugin`
46
@@ -55,11 +55,10 @@ Unfortunately, `JSON` files do not accept comments. So, the best way to describe
55 with instructions.
56
57 `JSON` has a very strict formatting. If you get errors from Netdata at `/var/log/netdata/error.log` that a certain
58 -configuration file cannot be loaded, we suggest to verify it at [http://jsonlint.com/](http://jsonlint.com/).
58 +configuration file cannot be loaded, we suggest to verify it at <http://jsonlint.com/>.
59
60 The files in this directory, provide usable examples for configuring each `node.d.plugin` module.
61
62 -
62 ## debugging modules written for node.d.plugin
63
64 To test `node.d.plugin` modules, which are placed in `/usr/libexec/netdata/node.d`, you can run `node.d.plugin` by hand,
@@ -89,15 +88,15 @@ export NETDATA_USER_CONFIG_DIR="/path/to/etc/netdata"
88
89 Your data collection module should be split in 3 parts:
90
92 - - a function to fetch the data from its source. `node.d.plugin` already can fetch data from web sources,
93 - so you don't need to do anything about it for http.
91 +- a function to fetch the data from its source. `node.d.plugin` already can fetch data from web sources,
92 + so you don't need to do anything about it for http.
93
95 - - a function to process the fetched/manipulate the data fetched. This function will make a number of calls
96 - to create charts and dimensions and pass the collected values to Netdata.
97 - This is the only function you need to write for collecting http JSON data.
94 +- a function to process the fetched/manipulate the data fetched. This function will make a number of calls
95 + to create charts and dimensions and pass the collected values to Netdata.
96 + This is the only function you need to write for collecting http JSON data.
97
99 - - a `configure` and an `update` function, which take care of your module configuration and data refresh
100 - respectively. You can use the supplied ones.
98 +- a `configure` and an `update` function, which take care of your module configuration and data refresh
99 + respectively. You can use the supplied ones.
100
101 Your module will automatically be able to process any number of servers, with different settings (even different
102 data collection frequencies). You will write just the work needed for one and `node.d.plugin` will do the rest.
@@ -108,7 +107,6 @@ For each server you are going to fetch data from, you will have to create a `ser
107 To provide a module called `mymodule`, you have create the file `/usr/libexec/netdata/node.d/mymodule.node.js`, with this structure:
108
109 ```js
111 -
110 // the processor is needed only
111 // if you need a custom processor
112 // other than http
@@ -223,12 +221,12 @@ The configuration file `/etc/netdata/node.d/mymodule.conf` may contain whatever
221
222 The `service` object defines a set of functions to allow you send information to the Netdata core about:
223
226 -1. Charts and dimension definitions
227 -2. Updated values, from the collected values
224 +1. Charts and dimension definitions
225 +2. Updated values, from the collected values
226
227 ---
228
231 -*FIXME: document an operational node.d.plugin data collector - the best example is the
232 -[snmp collector](snmp/snmp.node.js)*
229 +_FIXME: document an operational node.d.plugin data collector - the best example is the
230 +[snmp collector](snmp/snmp.node.js)_
231
234 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
232 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/node.d.plugin/fronius/README.md
+30 -23
@@ -3,32 +3,37 @@
3 This module collects metrics from the configured solar power installation from Fronius Symo.
4
5 **Requirements**
6 - * Configuration file `fronius.conf` in the node.d Netdata config dir (default: `/etc/netdata/node.d/fronius.conf`)
7 - * Fronius Symo with network access (http)
6 +
7 +- Configuration file `fronius.conf` in the node.d Netdata config dir (default: `/etc/netdata/node.d/fronius.conf`)
8 +- Fronius Symo with network access (http)
9
10 It produces per server:
11
11 -1. **Power**
12 - * Current power input from the grid (positive values), output to the grid (negative values), in W
13 - * Current power input from the solar panels, in W
14 - * Current power stored in the accumulator (if present), in W (in theory, untested)
12 +1. **Power**
13 +
14 +- Current power input from the grid (positive values), output to the grid (negative values), in W
15 +- Current power input from the solar panels, in W
16 +- Current power stored in the accumulator (if present), in W (in theory, untested)
17 +
18 +2. **Consumption**
19 +
20 +- Local consumption in W
21 +
22 +3. **Autonomy**
23
16 -2. **Consumption**
17 - * Local consumption in W
24 +- Relative autonomy in %. 100 % autonomy means that the solar panels are delivering more power than it is needed by local consumption.
25 +- Relative self consumption in %. The lower the better
26
19 -3. **Autonomy**
20 - * Relative autonomy in %. 100 % autonomy means that the solar panels are delivering more power than it is needed by local consumption.
21 - * Relative self consumption in %. The lower the better
27 +4. **Energy**
28
23 -4. **Energy**
24 - * The energy produced during the current day, in kWh
25 - * The energy produced during the current year, in kWh
29 +- The energy produced during the current day, in kWh
30 +- The energy produced during the current year, in kWh
31
27 -5. **Inverter**
28 - * The current power output from the connected inverters, in W, one dimension per inverter. At least one is always present.
29 -
30 -
31 -### configuration
32 +5. **Inverter**
33 +
34 +- The current power output from the connected inverters, in W, one dimension per inverter. At least one is always present.
35 +
36 +## configuration
37
38 Sample:
39
@@ -55,14 +60,15 @@ If no configuration is given, the module will be disabled. Each `update_every` i
60
61 The plugin has been tested with a single inverter, namely Fronius Symo 8.2-3-M:
62
58 -- Datalogger version: 240.162630
59 -- Software version: 3.7.4-6
60 -- Hardware version: 2.4D
63 +- Datalogger version: 240.162630
64 +- Software version: 3.7.4-6
65 +- Hardware version: 2.4D
66
67 Other products and versions may work, but without any guarantees.
68
69 Example Netdata configuration for node.d/fronius.conf. Copy this section to fronius.conf and change name/ip.
70 The module supports any number of servers. Sometimes there is a lag when collecting every 3 seconds, so 5 should be okay too. You can modify this per server.
71 +
72 ```json
73 {
74 "enable_autodetect": false,
@@ -79,6 +85,7 @@ The module supports any number of servers. Sometimes there is a lag when collect
85 ```
86
87 The output of /solar_api/v1/GetPowerFlowRealtimeData.fcgi looks like this:
88 +
89 ```json
90 {
91 "Head" : {
@@ -119,4 +126,4 @@ The output of /solar_api/v1/GetPowerFlowRealtimeData.fcgi looks like this:
126 }
127 ```
128
122 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Ffronius%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
129 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Ffronius%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/node.d.plugin/named/README.md
+342 -344
@@ -1,344 +1,342 @@
1 -# ISC Bind Statistics
2 -
3 -Using this Netdata collector, you can monitor one or more ISC Bind servers.
4 -
5 -## Example Netdata charts
6 -
7 -Depending on the number of views your bind has, you may get a large number of charts.
8 -Here this is with just one view:
9 -
10 -![image](https://cloud.githubusercontent.com/assets/2662304/12765473/879b8e04-ca07-11e5-817d-b0651996c42b.png)
11 -![image](https://cloud.githubusercontent.com/assets/2662304/12766538/12b272fa-ca0d-11e5-81e1-6a9f8ff488ff.png)
12 -
13 -## How it works
14 -
15 -The plugin will execute (from within node.js) the equivalent of:
16 -
17 -```sh
18 -curl "http://localhost:8888/json/v1/server"
19 -```
20 -
21 -Here is a sample of the output this command produces.
22 -
23 -```js
24 -{
25 - "json-stats-version":"1.0",
26 - "boot-time":"2016-01-31T08:20:48Z",
27 - "config-time":"2016-01-31T09:28:03Z",
28 - "current-time":"2016-02-02T22:22:20Z",
29 - "opcodes":{
30 - "QUERY":247816,
31 - "IQUERY":0,
32 - "STATUS":0,
33 - "RESERVED3":0,
34 - "NOTIFY":0,
35 - "UPDATE":3813,
36 - "RESERVED6":0,
37 - "RESERVED7":0,
38 - "RESERVED8":0,
39 - "RESERVED9":0,
40 - "RESERVED10":0,
41 - "RESERVED11":0,
42 - "RESERVED12":0,
43 - "RESERVED13":0,
44 - "RESERVED14":0,
45 - "RESERVED15":0
46 - },
47 - "qtypes":{
48 - "A":89519,
49 - "NS":863,
50 - "CNAME":1,
51 - "SOA":1,
52 - "PTR":116779,
53 - "MX":276,
54 - "TXT":198,
55 - "AAAA":39324,
56 - "SRV":850,
57 - "ANY":5
58 - },
59 - "nsstats":{
60 - "Requestv4":251630,
61 - "ReqEdns0":1255,
62 - "ReqTSIG":3813,
63 - "ReqTCP":57,
64 - "AuthQryRej":1455,
65 - "RecQryRej":122,
66 - "Response":245918,
67 - "TruncatedResp":44,
68 - "RespEDNS0":1255,
69 - "RespTSIG":3813,
70 - "QrySuccess":205159,
71 - "QryAuthAns":119495,
72 - "QryNoauthAns":120770,
73 - "QryNxrrset":32711,
74 - "QrySERVFAIL":262,
75 - "QryNXDOMAIN":2395,
76 - "QryRecursion":40885,
77 - "QryDuplicate":5712,
78 - "QryFailure":1577,
79 - "UpdateDone":2514,
80 - "UpdateFail":1299,
81 - "UpdateBadPrereq":1276,
82 - "QryUDP":246194,
83 - "QryTCP":45,
84 - "OtherOpt":101
85 - },
86 - "views":{
87 - "local":{
88 - "resolver":{
89 - "stats":{
90 - "Queryv4":74577,
91 - "Responsev4":67032,
92 - "NXDOMAIN":601,
93 - "SERVFAIL":5,
94 - "FORMERR":7,
95 - "EDNS0Fail":7,
96 - "Truncated":3071,
97 - "Lame":4,
98 - "Retry":11826,
99 - "QueryTimeout":1838,
100 - "GlueFetchv4":6864,
101 - "GlueFetchv4Fail":30,
102 - "QryRTT10":112,
103 - "QryRTT100":42900,
104 - "QryRTT500":23275,
105 - "QryRTT800":534,
106 - "QryRTT1600":97,
107 - "QryRTT1600+":20,
108 - "BucketSize":31,
109 - "REFUSED":13
110 - },
111 - "qtypes":{
112 - "A":64931,
113 - "NS":870,
114 - "CNAME":185,
115 - "PTR":5,
116 - "MX":49,
117 - "TXT":149,
118 - "AAAA":7972,
119 - "SRV":416
120 - },
121 - "cache":{
122 - "A":40356,
123 - "NS":8032,
124 - "CNAME":14477,
125 - "PTR":2,
126 - "MX":21,
127 - "TXT":32,
128 - "AAAA":3301,
129 - "SRV":94,
130 - "DS":237,
131 - "RRSIG":2301,
132 - "NSEC":126,
133 - "!A":52,
134 - "!NS":4,
135 - "!TXT":1,
136 - "!AAAA":3797,
137 - "!SRV":9,
138 - "NXDOMAIN":590
139 - },
140 - "cachestats":{
141 - "CacheHits":1085188,
142 - "CacheMisses":109,
143 - "QueryHits":464755,
144 - "QueryMisses":55624,
145 - "DeleteLRU":0,
146 - "DeleteTTL":42615,
147 - "CacheNodes":5188,
148 - "CacheBuckets":2079,
149 - "TreeMemTotal":2326026,
150 - "TreeMemInUse":1508075,
151 - "HeapMemMax":132096,
152 - "HeapMemTotal":393216,
153 - "HeapMemInUse":132096
154 - },
155 - "adb":{
156 - "nentries":1021,
157 - "entriescnt":3157,
158 - "nnames":1021,
159 - "namescnt":3022
160 - }
161 - }
162 - },
163 - "public":{
164 - "resolver":{
165 - "stats":{
166 - "BucketSize":31
167 - },
168 - "qtypes":{
169 - },
170 - "cache":{
171 - },
172 - "cachestats":{
173 - "CacheHits":0,
174 - "CacheMisses":0,
175 - "QueryHits":0,
176 - "QueryMisses":0,
177 - "DeleteLRU":0,
178 - "DeleteTTL":0,
179 - "CacheNodes":0,
180 - "CacheBuckets":64,
181 - "TreeMemTotal":287392,
182 - "TreeMemInUse":29608,
183 - "HeapMemMax":1024,
184 - "HeapMemTotal":262144,
185 - "HeapMemInUse":1024
186 - },
187 - "adb":{
188 - "nentries":1021,
189 - "nnames":1021
190 - }
191 - }
192 - },
193 - "_bind":{
194 - "resolver":{
195 - "stats":{
196 - "BucketSize":31
197 - },
198 - "qtypes":{
199 - },
200 - "cache":{
201 - },
202 - "cachestats":{
203 - "CacheHits":0,
204 - "CacheMisses":0,
205 - "QueryHits":0,
206 - "QueryMisses":0,
207 - "DeleteLRU":0,
208 - "DeleteTTL":0,
209 - "CacheNodes":0,
210 - "CacheBuckets":64,
211 - "TreeMemTotal":287392,
212 - "TreeMemInUse":29608,
213 - "HeapMemMax":1024,
214 - "HeapMemTotal":262144,
215 - "HeapMemInUse":1024
216 - },
217 - "adb":{
218 - "nentries":1021,
219 - "nnames":1021
220 - }
221 - }
222 - }
223 - }
224 -}
225 -```
226 -
227 -
228 -From this output it collects:
229 -
230 -- Global Received Requests by IP version (IPv4, IPv6)
231 -- Global Successful Queries
232 -- Current Recursive Clients
233 -- Global Queries by IP Protocol (TCP, UDP)
234 -- Global Queries Analysis
235 -- Global Received Updates
236 -- Global Query Failures
237 -- Global Query Failures Analysis
238 -- Other Global Server Statistics
239 -- Global Incoming Requests by OpCode
240 -- Global Incoming Requests by Query Type
241 -- Global Socket Statistics (will only work if the url is `http://127.0.0.1:8888/json/v1`, i.e. without `/server`, but keep in mind this produces a very long output and probably will account for 0.5% CPU overhead alone, per bind server added)
242 -- Per View Statistics (the following set will be added for each bind view):
243 - - View, Resolver Active Queries
244 - - View, Resolver Statistics
245 - - View, Resolver Round Trip Timings
246 - - View, Requests by Query Type
247 -
248 -## Configuration
249 -
250 -The collector (optionally) reads a configuration file named `/etc/netdata/node.d/named.conf`, with the following contents:
251 -
252 -```js
253 -{
254 - "enable_autodetect": true,
255 - "update_every": 5,
256 - "servers": [
257 - {
258 - "name": "bind1",
259 - "url": "http://127.0.0.1:8888/json/v1/server",
260 - "update_every": 1
261 - },
262 - {
263 - "name": "bind2",
264 - "url": "http://10.1.2.3:8888/json/v1/server",
265 - "update_every": 2
266 - }
267 - ]
268 -}
269 -```
270 -
271 -You can add any number of bind servers.
272 -
273 -If the configuration file is missing, or the key `enable_autodetect` is `true`, the collector will also attempt to fetch `http://localhost:8888/json/v1/server` which, if successful will be added too.
274 -
275 -### XML instead of JSON, from bind
276 -
277 -The collector can also accept bind URLs that return XML output. This might required if you cannot have bind 9.10+ with JSON but you have an version of bind that supports XML statistics v3. Check [this](https://www.isc.org/blogs/bind-9-10-statistics-troubleshooting-and-zone-configuration/) for versions supported.
278 -
279 -In such cases, use a URL like this:
280 -
281 -```sh
282 -curl "http://localhost:8888/xml/v3/server"
283 -```
284 -
285 -Only `xml` and `v3` has been tested.
286 -
287 -Keep in mind though, that XML parsing is done using javascript code, which requires a triple conversion:
288 -
289 -1. from XML to JSON using a javascript XML parser (**CPU intensive**),
290 -2. which is then transformed to emulate the output of the JSON output of bind (**CPU intensive** - and yes the converted JSON from XML is different to the native JSON - even bind produces different names for various attributes),
291 -3. which is then processed to generate the data for the charts (this will happen even if bind is producing JSON).
292 -
293 -In general, expect XML parsing to be 2 to 3 times more CPU intensive than JSON.
294 -
295 -**So, if you can use the JSON output of bind, prefer it over XML**. Keep also in mind that even bind will use more CPU when generating XML instead of JSON.
296 -
297 -The XML interface of bind is not autodetected.
298 -You will have to provide the config file `/etc/netdata/node.d/named.conf`, like this:
299 -
300 -```js
301 -{
302 - "enable_autodetect": false,
303 - "update_every": 1,
304 - "servers": [
305 - {
306 - "name": "local",
307 - "url": "http://localhost:8888/xml/v3/server",
308 - "update_every": 1
309 - }
310 - ]
311 -}
312 -```
313 -
314 -Of course, you can monitor more than one bind servers. Each one can be configured with either JSON or XML output.
315 -
316 -## Auto-detection
317 -
318 -Auto-detection is controlled by `enable_autodetect` in the config file. The default is enabled, so that if the collector can connect to `http://localhost:8888/json/v1/server` to receive bind statistics, it will automatically enable it.
319 -
320 -## Bind (named) configuration
321 -
322 -To use this plugin, you have to have bind v9.10+ properly compiled to provide statistics in `JSON` format.
323 -
324 -For more information on how to get your bind installation ready, please refer to the [bind statistics channel developer comments](http://jpmens.net/2013/03/18/json-in-bind-9-s-statistics-server/) and to [bind documentation](https://ftp.isc.org/isc/bind/9.10.3/doc/arm/Bv9ARM.ch06.html#statistics) or [bind Knowledge Base article AA-01123](https://kb.isc.org/article/AA-01123/0).
325 -
326 -Normally, you will need something like this in your `named.conf`:
327 -
328 -```
329 -statistics-channels {
330 - inet 127.0.0.1 port 8888 allow { 127.0.0.1; };
331 - inet ::1 port 8888 allow { ::1; };
332 -};
333 -```
334 -
335 -(use the IPv4 or IPv6 line depending on what you are using, you can also use both)
336 -
337 -Verify it works by running the following command (the collector is written in node.js and will query your bind server directly, but if this command works, the collector should be able to work too):
338 -
339 -```sh
340 -curl "http://localhost:8888/json/v1/server"
341 -```
342 -
343 -
344 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fnamed%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +# ISC Bind Statistics
2 +
3 +Using this Netdata collector, you can monitor one or more ISC Bind servers.
4 +
5 +## Example Netdata charts
6 +
7 +Depending on the number of views your bind has, you may get a large number of charts.
8 +Here this is with just one view:
9 +
10 +![image](https://cloud.githubusercontent.com/assets/2662304/12765473/879b8e04-ca07-11e5-817d-b0651996c42b.png)
11 +![image](https://cloud.githubusercontent.com/assets/2662304/12766538/12b272fa-ca0d-11e5-81e1-6a9f8ff488ff.png)
12 +
13 +## How it works
14 +
15 +The plugin will execute (from within node.js) the equivalent of:
16 +
17 +```sh
18 +curl "http://localhost:8888/json/v1/server"
19 +```
20 +
21 +Here is a sample of the output this command produces.
22 +
23 +```js
24 +{
25 + "json-stats-version":"1.0",
26 + "boot-time":"2016-01-31T08:20:48Z",
27 + "config-time":"2016-01-31T09:28:03Z",
28 + "current-time":"2016-02-02T22:22:20Z",
29 + "opcodes":{
30 + "QUERY":247816,
31 + "IQUERY":0,
32 + "STATUS":0,
33 + "RESERVED3":0,
34 + "NOTIFY":0,
35 + "UPDATE":3813,
36 + "RESERVED6":0,
37 + "RESERVED7":0,
38 + "RESERVED8":0,
39 + "RESERVED9":0,
40 + "RESERVED10":0,
41 + "RESERVED11":0,
42 + "RESERVED12":0,
43 + "RESERVED13":0,
44 + "RESERVED14":0,
45 + "RESERVED15":0
46 + },
47 + "qtypes":{
48 + "A":89519,
49 + "NS":863,
50 + "CNAME":1,
51 + "SOA":1,
52 + "PTR":116779,
53 + "MX":276,
54 + "TXT":198,
55 + "AAAA":39324,
56 + "SRV":850,
57 + "ANY":5
58 + },
59 + "nsstats":{
60 + "Requestv4":251630,
61 + "ReqEdns0":1255,
62 + "ReqTSIG":3813,
63 + "ReqTCP":57,
64 + "AuthQryRej":1455,
65 + "RecQryRej":122,
66 + "Response":245918,
67 + "TruncatedResp":44,
68 + "RespEDNS0":1255,
69 + "RespTSIG":3813,
70 + "QrySuccess":205159,
71 + "QryAuthAns":119495,
72 + "QryNoauthAns":120770,
73 + "QryNxrrset":32711,
74 + "QrySERVFAIL":262,
75 + "QryNXDOMAIN":2395,
76 + "QryRecursion":40885,
77 + "QryDuplicate":5712,
78 + "QryFailure":1577,
79 + "UpdateDone":2514,
80 + "UpdateFail":1299,
81 + "UpdateBadPrereq":1276,
82 + "QryUDP":246194,
83 + "QryTCP":45,
84 + "OtherOpt":101
85 + },
86 + "views":{
87 + "local":{
88 + "resolver":{
89 + "stats":{
90 + "Queryv4":74577,
91 + "Responsev4":67032,
92 + "NXDOMAIN":601,
93 + "SERVFAIL":5,
94 + "FORMERR":7,
95 + "EDNS0Fail":7,
96 + "Truncated":3071,
97 + "Lame":4,
98 + "Retry":11826,
99 + "QueryTimeout":1838,
100 + "GlueFetchv4":6864,
101 + "GlueFetchv4Fail":30,
102 + "QryRTT10":112,
103 + "QryRTT100":42900,
104 + "QryRTT500":23275,
105 + "QryRTT800":534,
106 + "QryRTT1600":97,
107 + "QryRTT1600+":20,
108 + "BucketSize":31,
109 + "REFUSED":13
110 + },
111 + "qtypes":{
112 + "A":64931,
113 + "NS":870,
114 + "CNAME":185,
115 + "PTR":5,
116 + "MX":49,
117 + "TXT":149,
118 + "AAAA":7972,
119 + "SRV":416
120 + },
121 + "cache":{
122 + "A":40356,
123 + "NS":8032,
124 + "CNAME":14477,
125 + "PTR":2,
126 + "MX":21,
127 + "TXT":32,
128 + "AAAA":3301,
129 + "SRV":94,
130 + "DS":237,
131 + "RRSIG":2301,
132 + "NSEC":126,
133 + "!A":52,
134 + "!NS":4,
135 + "!TXT":1,
136 + "!AAAA":3797,
137 + "!SRV":9,
138 + "NXDOMAIN":590
139 + },
140 + "cachestats":{
141 + "CacheHits":1085188,
142 + "CacheMisses":109,
143 + "QueryHits":464755,
144 + "QueryMisses":55624,
145 + "DeleteLRU":0,
146 + "DeleteTTL":42615,
147 + "CacheNodes":5188,
148 + "CacheBuckets":2079,
149 + "TreeMemTotal":2326026,
150 + "TreeMemInUse":1508075,
151 + "HeapMemMax":132096,
152 + "HeapMemTotal":393216,
153 + "HeapMemInUse":132096
154 + },
155 + "adb":{
156 + "nentries":1021,
157 + "entriescnt":3157,
158 + "nnames":1021,
159 + "namescnt":3022
160 + }
161 + }
162 + },
163 + "public":{
164 + "resolver":{
165 + "stats":{
166 + "BucketSize":31
167 + },
168 + "qtypes":{
169 + },
170 + "cache":{
171 + },
172 + "cachestats":{
173 + "CacheHits":0,
174 + "CacheMisses":0,
175 + "QueryHits":0,
176 + "QueryMisses":0,
177 + "DeleteLRU":0,
178 + "DeleteTTL":0,
179 + "CacheNodes":0,
180 + "CacheBuckets":64,
181 + "TreeMemTotal":287392,
182 + "TreeMemInUse":29608,
183 + "HeapMemMax":1024,
184 + "HeapMemTotal":262144,
185 + "HeapMemInUse":1024
186 + },
187 + "adb":{
188 + "nentries":1021,
189 + "nnames":1021
190 + }
191 + }
192 + },
193 + "_bind":{
194 + "resolver":{
195 + "stats":{
196 + "BucketSize":31
197 + },
198 + "qtypes":{
199 + },
200 + "cache":{
201 + },
202 + "cachestats":{
203 + "CacheHits":0,
204 + "CacheMisses":0,
205 + "QueryHits":0,
206 + "QueryMisses":0,
207 + "DeleteLRU":0,
208 + "DeleteTTL":0,
209 + "CacheNodes":0,
210 + "CacheBuckets":64,
211 + "TreeMemTotal":287392,
212 + "TreeMemInUse":29608,
213 + "HeapMemMax":1024,
214 + "HeapMemTotal":262144,
215 + "HeapMemInUse":1024
216 + },
217 + "adb":{
218 + "nentries":1021,
219 + "nnames":1021
220 + }
221 + }
222 + }
223 + }
224 +}
225 +```
226 +
227 +From this output it collects:
228 +
229 +- Global Received Requests by IP version (IPv4, IPv6)
230 +- Global Successful Queries
231 +- Current Recursive Clients
232 +- Global Queries by IP Protocol (TCP, UDP)
233 +- Global Queries Analysis
234 +- Global Received Updates
235 +- Global Query Failures
236 +- Global Query Failures Analysis
237 +- Other Global Server Statistics
238 +- Global Incoming Requests by OpCode
239 +- Global Incoming Requests by Query Type
240 +- Global Socket Statistics (will only work if the url is `http://127.0.0.1:8888/json/v1`, i.e. without `/server`, but keep in mind this produces a very long output and probably will account for 0.5% CPU overhead alone, per bind server added)
241 +- Per View Statistics (the following set will be added for each bind view):
242 + - View, Resolver Active Queries
243 + - View, Resolver Statistics
244 + - View, Resolver Round Trip Timings
245 + - View, Requests by Query Type
246 +
247 +## Configuration
248 +
249 +The collector (optionally) reads a configuration file named `/etc/netdata/node.d/named.conf`, with the following contents:
250 +
251 +```js
252 +{
253 + "enable_autodetect": true,
254 + "update_every": 5,
255 + "servers": [
256 + {
257 + "name": "bind1",
258 + "url": "http://127.0.0.1:8888/json/v1/server",
259 + "update_every": 1
260 + },
261 + {
262 + "name": "bind2",
263 + "url": "http://10.1.2.3:8888/json/v1/server",
264 + "update_every": 2
265 + }
266 + ]
267 +}
268 +```
269 +
270 +You can add any number of bind servers.
271 +
272 +If the configuration file is missing, or the key `enable_autodetect` is `true`, the collector will also attempt to fetch `http://localhost:8888/json/v1/server` which, if successful will be added too.
273 +
274 +### XML instead of JSON, from bind
275 +
276 +The collector can also accept bind URLs that return XML output. This might required if you cannot have bind 9.10+ with JSON but you have an version of bind that supports XML statistics v3. Check [this](https://www.isc.org/blogs/bind-9-10-statistics-troubleshooting-and-zone-configuration/) for versions supported.
277 +
278 +In such cases, use a URL like this:
279 +
280 +```sh
281 +curl "http://localhost:8888/xml/v3/server"
282 +```
283 +
284 +Only `xml` and `v3` has been tested.
285 +
286 +Keep in mind though, that XML parsing is done using javascript code, which requires a triple conversion:
287 +
288 +1. from XML to JSON using a javascript XML parser (**CPU intensive**),
289 +2. which is then transformed to emulate the output of the JSON output of bind (**CPU intensive** - and yes the converted JSON from XML is different to the native JSON - even bind produces different names for various attributes),
290 +3. which is then processed to generate the data for the charts (this will happen even if bind is producing JSON).
291 +
292 +In general, expect XML parsing to be 2 to 3 times more CPU intensive than JSON.
293 +
294 +**So, if you can use the JSON output of bind, prefer it over XML**. Keep also in mind that even bind will use more CPU when generating XML instead of JSON.
295 +
296 +The XML interface of bind is not autodetected.
297 +You will have to provide the config file `/etc/netdata/node.d/named.conf`, like this:
298 +
299 +```js
300 +{
301 + "enable_autodetect": false,
302 + "update_every": 1,
303 + "servers": [
304 + {
305 + "name": "local",
306 + "url": "http://localhost:8888/xml/v3/server",
307 + "update_every": 1
308 + }
309 + ]
310 +}
311 +```
312 +
313 +Of course, you can monitor more than one bind servers. Each one can be configured with either JSON or XML output.
314 +
315 +## Auto-detection
316 +
317 +Auto-detection is controlled by `enable_autodetect` in the config file. The default is enabled, so that if the collector can connect to `http://localhost:8888/json/v1/server` to receive bind statistics, it will automatically enable it.
318 +
319 +## Bind (named) configuration
320 +
321 +To use this plugin, you have to have bind v9.10+ properly compiled to provide statistics in `JSON` format.
322 +
323 +For more information on how to get your bind installation ready, please refer to the [bind statistics channel developer comments](http://jpmens.net/2013/03/18/json-in-bind-9-s-statistics-server/) and to [bind documentation](https://ftp.isc.org/isc/bind/9.10.3/doc/arm/Bv9ARM.ch06.html#statistics) or [bind Knowledge Base article AA-01123](https://kb.isc.org/article/AA-01123/0).
324 +
325 +Normally, you will need something like this in your `named.conf`:
326 +
327 +```
328 +statistics-channels {
329 + inet 127.0.0.1 port 8888 allow { 127.0.0.1; };
330 + inet ::1 port 8888 allow { ::1; };
331 +};
332 +```
333 +
334 +(use the IPv4 or IPv6 line depending on what you are using, you can also use both)
335 +
336 +Verify it works by running the following command (the collector is written in node.js and will query your bind server directly, but if this command works, the collector should be able to work too):
337 +
338 +```sh
339 +curl "http://localhost:8888/json/v1/server"
340 +```
341 +
342 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fnamed%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/node.d.plugin/sma_webbox/README.md
+28 -29
@@ -1,29 +1,28 @@
1 -
2 -# SMA Sunny Webbox
3 -
4 -[SMA Sunny Webbox](http://files.sma.de/dl/4253/WEBBOX-DUS131916W.pdf)
5 -
6 -Example Netdata configuration for node.d/sma_webbox.conf
7 -
8 -The module supports any number of name servers, like this:
9 -
10 -```json
11 -{
12 - "enable_autodetect": false,
13 - "update_every": 5,
14 - "servers": [
15 - {
16 - "name": "plant1",
17 - "hostname": "10.0.1.1",
18 - "update_every": 10
19 - },
20 - {
21 - "name": "plant2",
22 - "hostname": "10.0.2.1",
23 - "update_every": 15
24 - }
25 - ]
26 -}
27 -```
28 -
29 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fsma_webbox%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +# SMA Sunny Webbox
2 +
3 +[SMA Sunny Webbox](http://files.sma.de/dl/4253/WEBBOX-DUS131916W.pdf)
4 +
5 +Example Netdata configuration for node.d/sma_webbox.conf
6 +
7 +The module supports any number of name servers, like this:
8 +
9 +```json
10 +{
11 + "enable_autodetect": false,
12 + "update_every": 5,
13 + "servers": [
14 + {
15 + "name": "plant1",
16 + "hostname": "10.0.1.1",
17 + "update_every": 10
18 + },
19 + {
20 + "name": "plant2",
21 + "hostname": "10.0.2.1",
22 + "update_every": 15
23 + }
24 + ]
25 +}
26 +```
27 +
28 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fsma_webbox%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/node.d.plugin/snmp/README.md
+28 -31
@@ -4,11 +4,11 @@ Using this collector, Netdata can collect data from any SNMP device.
4
5 This collector supports:
6
7 -- any number of SNMP devices
8 -- each SNMP device can be used to collect data for any number of charts
9 -- each chart may have any number of dimensions
10 -- each SNMP device may have a different update frequency
11 -- each SNMP device will accept one or more batches to report values (you can set `max_request_size` per SNMP server, to control the size of batches).
7 +- any number of SNMP devices
8 +- each SNMP device can be used to collect data for any number of charts
9 +- each chart may have any number of dimensions
10 +- each SNMP device may have a different update frequency
11 +- each SNMP device will accept one or more batches to report values (you can set `max_request_size` per SNMP server, to control the size of batches).
12
13 ## Configuration
14
@@ -16,10 +16,10 @@ You will need to create the file `/etc/netdata/node.d/snmp.conf` with data like
16
17 In this example:
18
19 - - the SNMP device is `10.11.12.8`.
20 - - the SNMP community is `public`.
21 - - we will update the values every 10 seconds (`update_every: 10` under the server `10.11.12.8`).
22 - - we define 2 charts `snmp_switch.bandwidth_port1` and `snmp_switch.bandwidth_port2`, each having 2 dimensions: `in` and `out`.
19 +- the SNMP device is `10.11.12.8`.
20 +- the SNMP community is `public`.
21 +- we will update the values every 10 seconds (`update_every: 10` under the server `10.11.12.8`).
22 +- we define 2 charts `snmp_switch.bandwidth_port1` and `snmp_switch.bandwidth_port2`, each having 2 dimensions: `in` and `out`.
23
24 ```json
25 {
@@ -100,7 +100,6 @@ The SNMP plugin supports Counter64 metrics with the only limitation that the `of
100 <br>
101 If you need to define many charts using incremental OIDs, you can use something like this:
102
103 -
103 ```json
104 {
105 "enable_autodetect": false,
@@ -146,19 +145,18 @@ This is like the previous, but the option `multiply_range` given, will multiply
145
146 Each of the 24 new charts will have its id (1-24) appended at:
147
149 -1. its chart unique id, i.e. `snmp_switch.bandwidth_port1` to `snmp_switch.bandwidth_port24`
150 -2. its `title`, i.e. `Switch Bandwidth for port 1` to `Switch Bandwidth for port 24`
151 -3. its `oid` (for all dimensions), i.e. dimension `in` will be `1.3.6.1.2.1.2.2.1.10.1` to `1.3.6.1.2.1.2.2.1.10.24`
152 -3. its priority (which will be incremented for each chart so that the charts will appear on the dashboard in this order)
153 -
148 +1. its chart unique id, i.e. `snmp_switch.bandwidth_port1` to `snmp_switch.bandwidth_port24`
149 +2. its `title`, i.e. `Switch Bandwidth for port 1` to `Switch Bandwidth for port 24`
150 +3. its `oid` (for all dimensions), i.e. dimension `in` will be `1.3.6.1.2.1.2.2.1.10.1` to `1.3.6.1.2.1.2.2.1.10.24`
151 +4. its priority (which will be incremented for each chart so that the charts will appear on the dashboard in this order)
152
153 The `options` given for each server, are:
154
157 - - `timeout`, the time to wait for the SNMP device to respond. The default is 5000 ms.
158 - - `version`, the SNMP version to use. `0` is Version 1, `1` is Version 2c. The default is Version 1 (`0`).
159 - - `transport`, the default is `udp4`.
160 - - `port`, the port of the SNMP device to connect to. The default is `161`.
161 - - `retries`, the number of attempts to make to fetch the data. The default is `1`.
155 +- `timeout`, the time to wait for the SNMP device to respond. The default is 5000 ms.
156 +- `version`, the SNMP version to use. `0` is Version 1, `1` is Version 2c. The default is Version 1 (`0`).
157 +- `transport`, the default is `udp4`.
158 +- `port`, the port of the SNMP device to connect to. The default is `161`.
159 +- `retries`, the number of attempts to make to fetch the data. The default is `1`.
160
161 ## Retrieving names from snmp
162
@@ -168,7 +166,6 @@ You can set a dimension name to a value retrieved from SNMP, by adding `oidname`
166
167 Both of the above will participate in `multiply_range`.
168
171 -
169 ## Testing the configuration
170
171 To test it, you can run:
@@ -195,11 +192,11 @@ Use `snmpwalk`, like this:
192 snmpwalk -t 20 -v 1 -O fn -c public 10.11.12.8
193 ```
194
198 -- `-t 20` is the timeout in seconds
199 -- `-v 1` is the SNMP version
200 -- `-O fn` will display full OIDs in numeric format (you may want to run it also without this option to see human readable output of OIDs)
201 -- `-c public` is the SNMP community
202 -- `10.11.12.8` is the SNMP device
195 +- `-t 20` is the timeout in seconds
196 +- `-v 1` is the SNMP version
197 +- `-O fn` will display full OIDs in numeric format (you may want to run it also without this option to see human readable output of OIDs)
198 +- `-c public` is the SNMP community
199 +- `10.11.12.8` is the SNMP device
200
201 Keep in mind that `snmpwalk` outputs the OIDs with a dot in front them. You should remove this dot when adding OIDs to the configuration file of this collector.
202
@@ -207,10 +204,10 @@ Keep in mind that `snmpwalk` outputs the OIDs with a dot in front them. You shou
204
205 This is what I use for my Linksys SRW2024P. It creates:
206
210 -1. A chart for power consumption (it is a PoE switch)
211 -2. Two charts for packets received (total packets received and packets received with errors)
212 -3. One chart for packets output
213 -4. 24 charts, one for each port of the switch. It also appends the port names, as defined at the switch, to the chart titles.
207 +1. A chart for power consumption (it is a PoE switch)
208 +2. Two charts for packets received (total packets received and packets received with errors)
209 +3. One chart for packets output
210 +4. 24 charts, one for each port of the switch. It also appends the port names, as defined at the switch, to the chart titles.
211
212 This switch also reports various other metrics, like snmp, packets per port, etc. Unfortunately it does not report CPU utilization or backplane utilization.
213
@@ -364,4 +361,4 @@ This switch has a very slow SNMP processors. To respond, it needs about 8 second
361 }
362 ```
363
367 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fsnmp%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
364 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fsnmp%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/node.d.plugin/stiebeleltron/README.md
+57 -45
@@ -3,48 +3,56 @@
3 This module collects metrics from the configured heat pump and hot water installation from Stiebel Eltron ISG web.
4
5 **Requirements**
6 - * Configuration file `stiebeleltron.conf` in the node.d Netdata config dir (default: `/etc/netdata/node.d/stiebeleltron.conf`)
7 - * Stiebel Eltron ISG web with network access (http), without password login
6 +
7 +- Configuration file `stiebeleltron.conf` in the node.d Netdata config dir (default: `/etc/netdata/node.d/stiebeleltron.conf`)
8 +- Stiebel Eltron ISG web with network access (http), without password login
9
10 The charts are configurable, however, the provided default configuration collects the following:
11
11 -1. **General**
12 - * Outside temperature in C
13 - * Condenser temperature in C
14 - * Heating circuit pressure in bar
15 - * Flow rate in l/min
16 - * Output of water and heat pumps in %
12 +1. **General**
13 +
14 + - Outside temperature in C
15 + - Condenser temperature in C
16 + - Heating circuit pressure in bar
17 + - Flow rate in l/min
18 + - Output of water and heat pumps in %
19 +
20 +2. **Heating**
21 +
22 + - Heat circuit 1 temperature in C (set/actual)
23 + - Heat circuit 2 temperature in C (set/actual)
24 + - Flow temperature in C (set/actual)
25 + - Buffer temperature in C (set/actual)
26 + - Pre-flow temperature in C
27 +
28 +3. **Hot Water**
29 +
30 + - Hot water temperature in C (set/actual)
31 +
32 +4. **Room Temperature**
33
18 -2. **Heating**
19 - * Heat circuit 1 temperature in C (set/actual)
20 - * Heat circuit 2 temperature in C (set/actual)
21 - * Flow temperature in C (set/actual)
22 - * Buffer temperature in C (set/actual)
23 - * Pre-flow temperature in C
34 + - Heat circuit 1 room temperature in C (set/actual)
35 + - Heat circuit 2 room temperature in C (set/actual)
36
25 -3. **Hot Water**
26 - * Hot water temperature in C (set/actual)
37 +5. **Eletric Reheating**
38
28 -4. **Room Temperature**
29 - * Heat circuit 1 room temperature in C (set/actual)
30 - * Heat circuit 2 room temperature in C (set/actual)
39 + - Dual Mode Reheating temperature in C (hot water/heating)
40
32 -5. **Eletric Reheating**
33 - * Dual Mode Reheating temperature in C (hot water/heating)
41 +6. **Process Data**
42
35 -6. **Process Data**
36 - * Remaining compressor rest time in s
43 + - Remaining compressor rest time in s
44
38 -7. **Runtime**
39 - * Compressor runtime hours (hot water/heating)
40 - * Reheating runtime hours (reheating 1/reheating 2)
45 +7. **Runtime**
46
42 -8. **Energy**
43 - * Compressor today in kWh (hot water/heating)
44 - * Compressor Total in kWh (hot water/heating)
45 -
46 -
47 -### configuration
47 + - Compressor runtime hours (hot water/heating)
48 + - Reheating runtime hours (reheating 1/reheating 2)
49 +
50 +8. **Energy**
51 +
52 + - Compressor today in kWh (hot water/heating)
53 + - Compressor Total in kWh (hot water/heating)
54 +
55 +## configuration
56
57 If no configuration is given, the module will be disabled. Each `update_every` is optional, the default is `10`.
58
@@ -57,15 +65,17 @@ Original author: BrainDoctor (github)
65 The module supports any metrics that are parseable with RegEx. There is no API that gives direct access to the values (AFAIK), so the "workaround" is to parse the HTML output of the ISG.
66
67 ### Testing
68 +
69 This plugin has been tested within the following environment:
61 - * ISG version: 8.5.6
62 - * MFG version: 12
63 - * Controller version: 9
64 - * July (summer time, not much activity)
65 - * Interface language: English
66 - * login- and password-less ISG web access (without HTTPS it's useless anyway)
67 - * Heatpump model: WPL 25 I-2
68 - * Hot water boiler model: 820 WT 1
70 +
71 +- ISG version: 8.5.6
72 +- MFG version: 12
73 +- Controller version: 9
74 +- July (summer time, not much activity)
75 +- Interface language: English
76 +- login- and password-less ISG web access (without HTTPS it's useless anyway)
77 +- Heatpump model: WPL 25 I-2
78 +- Hot water boiler model: 820 WT 1
79
80 So, if the language is set to english, copy the following configuration into `/etc/netdata/node.d/stiebeleltron.conf` and change the `url`s.
81
@@ -73,13 +83,15 @@ In my case, the ISG is relatively slow with responding (at least 1s, but also up
83
84 ### How to update the config
85
76 -* The dimensions support variable digits, the default is `1`. Most of the values printed by ISG are using 1 digit, some use 2.
77 -* The dimensions also support the `multiplier` and `divisor` attributes, however the divisor gets overridden by `digits`, if specified. Default is `1`.
78 -* The test string for the regex is always the whole HTML output from the url. For each parameter you need to have a regular expression that extracts the value from the HTML source in the first capture group.
79 - Recommended: [regexr.com](https://regexr.com/) for testing and matching, [freeformatter.com](https://www.freeformatter.com/json-escape.html) for escaping the newly created regex for the JSON config.
86 +- The dimensions support variable digits, the default is `1`. Most of the values printed by ISG are using 1 digit, some use 2.
87 +- The dimensions also support the `multiplier` and `divisor` attributes, however the divisor gets overridden by `digits`, if specified. Default is `1`.
88 +- The test string for the regex is always the whole HTML output from the url. For each parameter you need to have a regular expression that extracts the value from the HTML source in the first capture group.
89 + Recommended: [regexr.com](https://regexr.com/) for testing and matching, [freeformatter.com](https://www.freeformatter.com/json-escape.html) for escaping the newly created regex for the JSON config.
90
91 The charts are being generated using the configuration below. So if your installation is in another language or has other metrics, just adapt the structure or regexes.
92 +
93 ### Configuration template
94 +
95 ```json
96 {
97 "enable_autodetect": false,
@@ -504,4 +516,4 @@ The charts are being generated using the configuration below. So if your install
516 }
517 ```
518
507 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fstiebeleltron%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
519 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnode.d.plugin%2Fstiebeleltron%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/perf.plugin/README.md
+4 -1
@@ -15,6 +15,7 @@ event for every CPU core needs a separate file descriptor to be opened.
15 The plugin provides statistics for general hardware and software performance monitoring events:
16
17 Hardware events:
18 +
19 1. CPU cycles
20 2. Instructions
21 3. Branch instructions
@@ -23,11 +24,13 @@ Hardware events:
24 6. Stalled frontend and backend cycles
25
26 Software events:
27 +
28 1. CPU migrations
29 2. Alignment faults
30 3. Emulation faults
31
32 Hardware cache events:
33 +
34 1. L1D cache operations
35 2. L1D prefetch cache operations
36 3. L1I cache operations
@@ -69,4 +72,4 @@ sudo /usr/libexec/netdata/plugins.d/perf.plugin 1 all debug
72
73 You will get verbose output on what the plugin does.
74
72 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fperf.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
75 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fperf.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/plugins.d/README.md
+102 -105
@@ -5,19 +5,19 @@ from external processes, thus allowing Netdata to use **external plugins**.
5
6 ## Provided External Plugins
7
8 -plugin|language|O/S|description
9 -:---:|:---:|:---:|:---
10 -[apps.plugin](../apps.plugin/)|`C`|linux, freebsd|monitors the whole process tree on Linux and FreeBSD and breaks down system resource usage by **process**, **user** and **user group**.
11 -[charts.d.plugin](../charts.d.plugin/)|`BASH`|all|a **plugin orchestrator** for data collection modules written in `BASH` v4+.
12 -[cups.plugin](../cups.plugin/)|`C`|all|monitors **CUPS**
13 -[fping.plugin](../fping.plugin/)|`C`|all|measures network latency, jitter and packet loss between the monitored node and any number of remote network end points.
14 -[ioping.plugin](../ioping.plugin/)|`C`|all|measures disk latency.
15 -[freeipmi.plugin](../freeipmi.plugin/)|`C`|linux|collects metrics from enterprise hardware sensors, on Linux servers.
16 -[nfacct.plugin](../nfacct.plugin/)|`C`|linux|collects netfilter firewall, connection tracker and accounting metrics using `libmnl` and `libnetfilter_acct`.
17 -[xenstat.plugin](../xenstat.plugin/)|`C`|linux|collects XenServer and XCP-ng metrics using `lxenstat`.
18 -[perf.plugin](../perf.plugin/)|`C`|linux|collects CPU performance metrics using performance monitoring units (PMU).
19 -[node.d.plugin](../node.d.plugin/)|`node.js`|all|a **plugin orchestrator** for data collection modules written in `node.js`.
20 -[python.d.plugin](../python.d.plugin/)|`python`|all|a **plugin orchestrator** for data collection modules written in `python` v2 or v3 (both are supported).
8 +|plugin|language|O/S|description|
9 +|:----:|:------:|:-:|:----------|
10 +|[apps.plugin](../apps.plugin/)|`C`|linux, freebsd|monitors the whole process tree on Linux and FreeBSD and breaks down system resource usage by **process**, **user** and **user group**.|
11 +|[charts.d.plugin](../charts.d.plugin/)|`BASH`|all|a **plugin orchestrator** for data collection modules written in `BASH` v4+.|
12 +|[cups.plugin](../cups.plugin/)|`C`|all|monitors **CUPS**|
13 +|[fping.plugin](../fping.plugin/)|`C`|all|measures network latency, jitter and packet loss between the monitored node and any number of remote network end points.|
14 +|[ioping.plugin](../ioping.plugin/)|`C`|all|measures disk latency.|
15 +|[freeipmi.plugin](../freeipmi.plugin/)|`C`|linux|collects metrics from enterprise hardware sensors, on Linux servers.|
16 +|[nfacct.plugin](../nfacct.plugin/)|`C`|linux|collects netfilter firewall, connection tracker and accounting metrics using `libmnl` and `libnetfilter_acct`.|
17 +|[xenstat.plugin](../xenstat.plugin/)|`C`|linux|collects XenServer and XCP-ng metrics using `lxenstat`.|
18 +|[perf.plugin](../perf.plugin/)|`C`|linux|collects CPU performance metrics using performance monitoring units (PMU).|
19 +|[node.d.plugin](../node.d.plugin/)|`node.js`|all|a **plugin orchestrator** for data collection modules written in `node.js`.|
20 +|[python.d.plugin](../python.d.plugin/)|`python`|all|a **plugin orchestrator** for data collection modules written in `python` v2 or v3 (both are supported).|
21
22 Plugin orchestrators may also be described as **modular plugins**. They are modular since they accept custom made modules to be included. Writing modules for these plugins is easier than accessing the native Netdata API directly. You will find modules already available for each orchestrator under the directory of the particular modular plugin (e.g. under python.d.plugin for the python orchestrator).
23 Each of these modular plugins has each own methods for defining modules. Please check the examples and their documentation.
@@ -26,13 +26,13 @@ Each of these modular plugins has each own methods for defining modules. Please
26
27 This plugin allows Netdata to use **external plugins** for data collection:
28
29 -1. external data collection plugins may be written in any computer language.
29 +1. external data collection plugins may be written in any computer language.
30
31 -2. external data collection plugins may use O/S capabilities or `setuid` to
32 - run with escalated privileges (compared to the `netdata` daemon).
33 - The communication between the external plugin and Netdata is unidirectional
34 - (from the plugin to Netdata), so that Netdata cannot manipulate an external
35 - plugin running with escalated privileges.
31 +2. external data collection plugins may use O/S capabilities or `setuid` to
32 + run with escalated privileges (compared to the `netdata` daemon).
33 + The communication between the external plugin and Netdata is unidirectional
34 + (from the plugin to Netdata), so that Netdata cannot manipulate an external
35 + plugin running with escalated privileges.
36
37 ## Operation
38
@@ -41,8 +41,9 @@ Netdata will start it when it starts and stop it when it exits.
41
42 If the external plugin exits or crashes, Netdata will log an error.
43 If the external plugin exits or crashes without pushing metrics to Netdata, Netdata will not start it again.
44 -- Plugins that exit with any value other than zero, will be disabled. Plugins that exit with zero, will be restarted after some time.
45 -- Plugins may also be disabled by Netdata if they output things that Netdata does not understand.
44 +
45 +- Plugins that exit with any value other than zero, will be disabled. Plugins that exit with zero, will be restarted after some time.
46 +- Plugins may also be disabled by Netdata if they output things that Netdata does not understand.
47
48 The `stdout` of external plugins is connected to Netdata to receive metrics,
49 with the API defined below.
@@ -90,9 +91,8 @@ For example, for `apps.plugin` the following section is available:
91 # command options =
92 ```
93
93 -- `update every` controls the granularity of the external plugin.
94 -- `command options` allows giving additional command line options to the plugin.
95 -
94 +- `update every` controls the granularity of the external plugin.
95 +- `command options` allows giving additional command line options to the plugin.
96
97 Netdata will provide to the external plugins the environment variable `NETDATA_UPDATE_EVERY`, in seconds (the default is 1). This is the **minimum update frequency** for all charts. A plugin that is updating values more frequently than this, is just wasting resources.
98
@@ -114,13 +114,13 @@ Any program that can print a few values to its standard output can become a Netd
114
115 Netdata parses 7 lines starting with:
116
117 -- `CHART` - create or update a chart
118 -- `DIMENSION` - add or update a dimension to the chart just created
119 -- `BEGIN` - initialize data collection for a chart
120 -- `SET` - set the value of a dimension for the initialized chart
121 -- `END` - complete data collection for the initialized chart
122 -- `FLUSH` - ignore the last collected values
123 -- `DISABLE` - disable this plugin
117 +- `CHART` - create or update a chart
118 +- `DIMENSION` - add or update a dimension to the chart just created
119 +- `BEGIN` - initialize data collection for a chart
120 +- `SET` - set the value of a dimension for the initialized chart
121 +- `END` - complete data collection for the initialized chart
122 +- `FLUSH` - ignore the last collected values
123 +- `DISABLE` - disable this plugin
124
125 a single program can produce any number of charts with any number of dimensions each.
126
@@ -142,18 +142,17 @@ every 5 seconds.
142 There are a few environment variables that are set by `netdata` and are
143 available for the plugin to use.
144
145 -variable|description
146 -:------:|:----------
147 -`NETDATA_USER_CONFIG_DIR`|The directory where all Netdata-related user configuration should be stored. If the plugin requires custom user configuration, this is the place the user has saved it (normally under `/etc/netdata`).
148 -`NETDATA_STOCK_CONFIG_DIR`|The directory where all Netdata -related stock configuration should be stored. If the plugin is shipped with configuration files, this is the place they can be found (normally under `/usr/lib/netdata/conf.d`).
149 -`NETDATA_PLUGINS_DIR`|The directory where all Netdata plugins are stored.
150 -`NETDATA_WEB_DIR`|The directory where the web files of Netdata are saved.
151 -`NETDATA_CACHE_DIR`|The directory where the cache files of Netdata are stored. Use this directory if the plugin requires a place to store data. A new directory should be created for the plugin for this purpose, inside this directory.
152 -`NETDATA_LOG_DIR`|The directory where the log files are stored. By default the `stderr` output of the plugin will be saved in the `error.log` file of Netdata.
153 -`NETDATA_HOST_PREFIX`|This is used in environments where system directories like `/sys` and `/proc` have to be accessed at a different path.
154 -`NETDATA_DEBUG_FLAGS`|This is a number (probably in hex starting with `0x`), that enables certain Netdata debugging features. Check **[[Tracing Options]]** for more information.
155 -`NETDATA_UPDATE_EVERY`|The minimum number of seconds between chart refreshes. This is like the **internal clock** of Netdata (it is user configurable, defaulting to `1`). There is no meaning for a plugin to update its values more frequently than this number of seconds.
156 -
145 +|variable|description|
146 +|:------:|:----------|
147 +|`NETDATA_USER_CONFIG_DIR`|The directory where all Netdata-related user configuration should be stored. If the plugin requires custom user configuration, this is the place the user has saved it (normally under `/etc/netdata`).|
148 +|`NETDATA_STOCK_CONFIG_DIR`|The directory where all Netdata -related stock configuration should be stored. If the plugin is shipped with configuration files, this is the place they can be found (normally under `/usr/lib/netdata/conf.d`).|
149 +|`NETDATA_PLUGINS_DIR`|The directory where all Netdata plugins are stored.|
150 +|`NETDATA_WEB_DIR`|The directory where the web files of Netdata are saved.|
151 +|`NETDATA_CACHE_DIR`|The directory where the cache files of Netdata are stored. Use this directory if the plugin requires a place to store data. A new directory should be created for the plugin for this purpose, inside this directory.|
152 +|`NETDATA_LOG_DIR`|The directory where the log files are stored. By default the `stderr` output of the plugin will be saved in the `error.log` file of Netdata.|
153 +|`NETDATA_HOST_PREFIX`|This is used in environments where system directories like `/sys` and `/proc` have to be accessed at a different path.|
154 +|`NETDATA_DEBUG_FLAGS`|This is a number (probably in hex starting with `0x`), that enables certain Netdata debugging features. Check **\[[Tracing Options]]** for more information.|
155 +|`NETDATA_UPDATE_EVERY`|The minimum number of seconds between chart refreshes. This is like the **internal clock** of Netdata (it is user configurable, defaulting to `1`). There is no meaning for a plugin to update its values more frequently than this number of seconds.|
156
157 ### The output of the plugin
158
@@ -169,31 +168,32 @@ The plugin should output instructions for Netdata to its output (`stdout`). Sinc
168
169 the template is:
170
172 -> CHART type.id name title units [family [context [charttype [priority [update_every [options [plugin [module]]]]]]]]
171 +> CHART type.id name title units \[family \[context \[charttype \[priority \[update_every \[options \[plugin [module]]]]]]]]
172
173 where:
175 - - `type.id`
174 +
175 +- `type.id`
176
177 uniquely identifies the chart,
178 this is what will be needed to add values to the chart
179
180 the `type` part controls the menu the charts will appear in
181
182 - - `name`
182 +- `name`
183
184 is the name that will be presented to the user instead of `id` in `type.id`. This means that only the `id` part of `type.id` is changed. When a name has been given, the chart is index (and can be referred) as both `type.id` and `type.name`. You can set name to `''`, or `null`, or `(null)` to disable it.
185
186 - - `title`
186 +- `title`
187
188 the text above the chart
189
190 - - `units`
190 +- `units`
191
192 the label of the vertical axis of the chart,
193 all dimensions added to a chart should have the same units
194 of measurement
195
196 - - `family`
196 +- `family`
197
198 is used to group charts together
199 (for example all eth0 charts should say: eth0),
@@ -201,98 +201,96 @@ the template is:
201
202 this controls the sub-menu on the dashboard
203
204 - - `context`
204 +- `context`
205
206 the context is giving the template of the chart. For example, if multiple charts present the same information for a different family, they should have the same `context`
207
208 this is used for looking up rendering information for the chart (colors, sizes, informational texts) and also apply alarms to it
209
210 - - `charttype`
210 +- `charttype`
211
212 one of `line`, `area` or `stacked`,
213 if empty or missing, the `line` will be used
214
215 - - `priority`
215 +- `priority`
216
217 is the relative priority of the charts as rendered on the web page,
218 lower numbers make the charts appear before the ones with higher numbers,
219 if empty or missing, `1000` will be used
220
221 - - `update_every`
221 +- `update_every`
222
223 overwrite the update frequency set by the server,
224 if empty or missing, the user configured value will be used
225
226 - - `options`
226 +- `options`
227
228 a space separated list of options, enclosed in quotes. 4 options are currently supported: `obsolete` to mark a chart as obsolete (Netdata will hide it and delete it after some time), `detail` to mark a chart as insignificant (this may be used by dashboards to make the charts smaller, or somehow visualize properly a less important chart), `store_first` to make Netdata store the first collected value, assuming there was an invisible previous value set to zero (this is used by statsd charts - if the first data collected value of incremental dimensions is not zero based, unrealistic spikes will appear with this option set) and `hidden` to perform all operations on a chart, but do not offer it on dashboards (the chart will be send to backends). `CHART` options have been added in Netdata v1.7 and the `hidden` option was added in 1.10.
229
230 - - `plugin` and `module`
230 +- `plugin` and `module`
231
232 both are just names that are used to let the user identify the plugin and the module that generated the chart. If `plugin` is unset or empty, Netdata will automatically set the filename of the plugin that generated the chart. `module` has not default.
233
234 -
234 #### DIMENSION
235
236 `DIMENSION` defines a new dimension for the chart
237
238 the template is:
239
241 -> DIMENSION id [name [algorithm [multiplier [divisor [options]]]]]
240 +> DIMENSION id \[name \[algorithm \[multiplier \[divisor [options]]]]]
241
242 where:
243
245 - - `id`
244 +- `id`
245
246 the `id` of this dimension (it is a text value, not numeric),
247 this will be needed later to add values to the dimension
248
249 We suggest to avoid using `.` in dimension ids. Backends expect metrics to be `.` separated and people will get confused if a dimension id contains a dot.
250
252 - - `name`
251 +- `name`
252
253 the name of the dimension as it will appear at the legend of the chart,
254 if empty or missing the `id` will be used
255
257 - - `algorithm`
256 +- `algorithm`
257
258 one of:
259
261 - * `absolute`
260 + - `absolute`
261
263 - the value is to drawn as-is (interpolated to second boundary),
264 - if `algorithm` is empty, invalid or missing, `absolute` is used
262 + the value is to drawn as-is (interpolated to second boundary),
263 + if `algorithm` is empty, invalid or missing, `absolute` is used
264
266 - * `incremental`
265 + - `incremental`
266
268 - the value increases over time,
269 - the difference from the last value is presented in the chart,
270 - the server interpolates the value and calculates a per second figure
267 + the value increases over time,
268 + the difference from the last value is presented in the chart,
269 + the server interpolates the value and calculates a per second figure
270
272 - * `percentage-of-absolute-row`
271 + - `percentage-of-absolute-row`
272
274 - the % of this value compared to the total of all dimensions
273 + the % of this value compared to the total of all dimensions
274
276 - * `percentage-of-incremental-row`
275 + - `percentage-of-incremental-row`
276
278 - the % of this value compared to the incremental total of
279 - all dimensions
277 + the % of this value compared to the incremental total of
278 + all dimensions
279
281 - - `multiplier`
280 +- `multiplier`
281
282 an integer value to multiply the collected value,
283 if empty or missing, `1` is used
284
286 - - `divisor`
285 +- `divisor`
286
287 an integer value to divide the collected value,
288 if empty or missing, `1` is used
289
291 - - `options`
290 +- `options`
291
292 a space separated list of options, enclosed in quotes. Options supported: `obsolete` to mark a dimension as obsolete (Netdata will delete it after some time) and `hidden` to make this dimension hidden, it will take part in the calculations but will not be presented in the chart.
293
295 -
294 #### VARIABLE
295
296 > VARIABLE [SCOPE] name = value
@@ -301,8 +299,8 @@ the template is:
299
300 Variables support 2 scopes:
301
304 -- `GLOBAL` or `HOST` to define the variable at the host level.
305 -- `LOCAL` or `CHART` to define the variable at the chart level. Use chart-local variables when the same variable may exist for different charts (i.e. Netdata monitors 2 mysql servers, and you need to set the `max_connections` each server accepts). Using chart-local variables is the ideal to build alarm templates.
302 +- `GLOBAL` or `HOST` to define the variable at the host level.
303 +- `LOCAL` or `CHART` to define the variable at the chart level. Use chart-local variables when the same variable may exist for different charts (i.e. Netdata monitors 2 mysql servers, and you need to set the `max_connections` each server accepts). Using chart-local variables is the ideal to build alarm templates.
304
305 The position of the `VARIABLE` line, sets its default scope (in case you do not specify a scope). So, defining a `VARIABLE` before any `CHART`, or between `END` and `BEGIN` (outside any chart), sets `GLOBAL` scope, while defining a `VARIABLE` just after a `CHART` or a `DIMENSION`, or within the `BEGIN` - `END` block of a chart, sets `LOCAL` scope.
306
@@ -320,11 +318,11 @@ data collection is defined as a series of `BEGIN` -> `SET` -> `END` lines
318
319 > BEGIN type.id [microseconds]
320
323 - - `type.id`
321 +- `type.id`
322
323 is the unique identification of the chart (as given in `CHART`)
324
327 - - `microseconds`
325 +- `microseconds`
326
327 is the number of microseconds since the last update of the chart. It is optional.
328
@@ -338,13 +336,13 @@ data collection is defined as a series of `BEGIN` -> `SET` -> `END` lines
336
337 > SET id = value
338
341 - - `id`
339 +- `id`
340
343 - is the unique identification of the dimension (of the chart just began)
341 + is the unique identification of the dimension (of the chart just began)
342
345 - - `value`
343 +- `value`
344
347 - is the collected value, only integer values are collected. If you want to push fractional values, multiply this value by 100 or 1000 and set the `DIMENSION` divider to 1000.
345 + is the collected value, only integer values are collected. If you want to push fractional values, multiply this value by 100 or 1000 and set the `DIMENSION` divider to 1000.
346
347 > END
348
@@ -373,43 +371,43 @@ Netdata will collect any **signed** value in the 64bit range:
371
372 If a value is not collected, leave it empty, like this:
373
376 -`SET id = `
374 +`SET id =`
375
376 or do not output the line at all.
377
378 ## Modular Plugins
379
382 -1. **python**, use `python.d.plugin`, there are many examples in the [python.d directory](../python.d.plugin/)
380 +1. **python**, use `python.d.plugin`, there are many examples in the [python.d directory](../python.d.plugin/)
381
384 - python is ideal for Netdata plugins. It is a simple, yet powerful way to collect data, it has a very small memory footprint, although it is not the most CPU efficient way to do it.
382 + python is ideal for Netdata plugins. It is a simple, yet powerful way to collect data, it has a very small memory footprint, although it is not the most CPU efficient way to do it.
383
386 -2. **node.js**, use `node.d.plugin`, there are a few examples in the [node.d directory](../node.d.plugin/)
384 +2. **node.js**, use `node.d.plugin`, there are a few examples in the [node.d directory](../node.d.plugin/)
385
388 - node.js is the fastest scripting language for collecting data. If your plugin needs to do a lot of work, compute values, etc, node.js is probably the best choice before moving to compiled code. Keep in mind though that node.js is not memory efficient; it will probably need more RAM compared to python.
386 + node.js is the fastest scripting language for collecting data. If your plugin needs to do a lot of work, compute values, etc, node.js is probably the best choice before moving to compiled code. Keep in mind though that node.js is not memory efficient; it will probably need more RAM compared to python.
387
390 -3. **BASH**, use `charts.d.plugin`, there are many examples in the [charts.d directory](../charts.d.plugin/)
388 +3. **BASH**, use `charts.d.plugin`, there are many examples in the [charts.d directory](../charts.d.plugin/)
389
392 - BASH is the simplest scripting language for collecting values. It is the less efficient though in terms of CPU resources. You can use it to collect data quickly, but extensive use of it might use a lot of system resources.
390 + BASH is the simplest scripting language for collecting values. It is the less efficient though in terms of CPU resources. You can use it to collect data quickly, but extensive use of it might use a lot of system resources.
391
394 -4. **C**
392 +4. **C**
393
396 - Of course, C is the most efficient way of collecting data. This is why Netdata itself is written in C.
394 + Of course, C is the most efficient way of collecting data. This is why Netdata itself is written in C.
395
396 ## Writing Plugins Properly
397
398 There are a few rules for writing plugins properly:
399
402 -1. Respect system resources
400 +1. Respect system resources
401
404 - Pay special attention to efficiency:
402 + Pay special attention to efficiency:
403
406 - - Initialize everything once, at the beginning. Initialization is not an expensive operation. Your plugin will most probably be started once and run forever. So, do whatever heavy operation is needed at the beginning, just once.
407 - - Do the absolutely minimum while iterating to collect values repeatedly.
408 - - If you need to connect to another server to collect values, avoid re-connects if possible. Connect just once, with keep-alive (for HTTP) enabled and collect values using the same connection.
409 - - Avoid any CPU or memory heavy operation while collecting data. If you control memory allocation, avoid any memory allocation while iterating to collect values.
410 - - Avoid running external commands when possible. If you are writing shell scripts avoid especially pipes (each pipe is another fork, a very expensive operation).
404 + - Initialize everything once, at the beginning. Initialization is not an expensive operation. Your plugin will most probably be started once and run forever. So, do whatever heavy operation is needed at the beginning, just once.
405 + - Do the absolutely minimum while iterating to collect values repeatedly.
406 + - If you need to connect to another server to collect values, avoid re-connects if possible. Connect just once, with keep-alive (for HTTP) enabled and collect values using the same connection.
407 + - Avoid any CPU or memory heavy operation while collecting data. If you control memory allocation, avoid any memory allocation while iterating to collect values.
408 + - Avoid running external commands when possible. If you are writing shell scripts avoid especially pipes (each pipe is another fork, a very expensive operation).
409
412 -2. The best way to iterate at a constant pace is this pseudo code:
410 +2. The best way to iterate at a constant pace is this pseudo code:
411
412 ```js
413 var update_every = argv[1] * 1000; /* seconds * 1000 = milliseconds */
@@ -470,9 +468,8 @@ There are a few rules for writing plugins properly:
468
469 Netdata interpolates values to second boundaries, so even if your plugin is not perfectly aligned it does not matter. Netdata will find out. When your plugin works in increments of `update_every`, there will be no gaps in the charts due to the possible cumulative micro-delays in data collection. Gaps will only appear if the data collection is really delayed.
470
473 -3. If you are not sure of memory leaks, exit every one hour. Netdata will re-start your process.
474 -
475 -4. If possible, try to autodetect if your plugin should be enabled, without any configuration.
471 +3. If you are not sure of memory leaks, exit every one hour. Netdata will re-start your process.
472
473 +4. If possible, try to autodetect if your plugin should be enabled, without any configuration.
474
478 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fplugins.d%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
475 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fplugins.d%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/proc.plugin/README.md
+163 -143
@@ -1,31 +1,30 @@
1 # proc.plugin
2
3 - - `/proc/net/dev` (all network interfaces for all their values)
4 - - `/proc/diskstats` (all disks for all their values)
5 - - `/proc/mdstat` (status of RAID arrays)
6 - - `/proc/net/snmp` (total IPv4, TCP and UDP usage)
7 - - `/proc/net/snmp6` (total IPv6 usage)
8 - - `/proc/net/netstat` (more IPv4 usage)
9 - - `/proc/net/stat/nf_conntrack` (connection tracking performance)
10 - - `/proc/net/stat/synproxy` (synproxy performance)
11 - - `/proc/net/ip_vs/stats` (IPVS connection statistics)
12 - - `/proc/stat` (CPU utilization and attributes)
13 - - `/proc/meminfo` (memory information)
14 - - `/proc/vmstat` (system performance)
15 - - `/proc/net/rpc/nfsd` (NFS server statistics for both v3 and v4 NFS servers)
16 - - `/sys/fs/cgroup` (Control Groups - Linux Containers)
17 - - `/proc/self/mountinfo` (mount points)
18 - - `/proc/interrupts` (total and per core hardware interrupts)
19 - - `/proc/softirqs` (total and per core software interrupts)
20 - - `/proc/loadavg` (system load and total processes running)
21 - - `/proc/sys/kernel/random/entropy_avail` (random numbers pool availability - used in cryptography)
22 - - `/sys/class/power_supply` (power supply properties)
23 - - `ipc` (IPC semaphores and message queues)
24 - - `ksm` Kernel Same-Page Merging performance (several files under `/sys/kernel/mm/ksm`).
25 - - `netdata` (internal Netdata resources utilization)
26 -
27 -
28 ----
3 +- `/proc/net/dev` (all network interfaces for all their values)
4 +- `/proc/diskstats` (all disks for all their values)
5 +- `/proc/mdstat` (status of RAID arrays)
6 +- `/proc/net/snmp` (total IPv4, TCP and UDP usage)
7 +- `/proc/net/snmp6` (total IPv6 usage)
8 +- `/proc/net/netstat` (more IPv4 usage)
9 +- `/proc/net/stat/nf_conntrack` (connection tracking performance)
10 +- `/proc/net/stat/synproxy` (synproxy performance)
11 +- `/proc/net/ip_vs/stats` (IPVS connection statistics)
12 +- `/proc/stat` (CPU utilization and attributes)
13 +- `/proc/meminfo` (memory information)
14 +- `/proc/vmstat` (system performance)
15 +- `/proc/net/rpc/nfsd` (NFS server statistics for both v3 and v4 NFS servers)
16 +- `/sys/fs/cgroup` (Control Groups - Linux Containers)
17 +- `/proc/self/mountinfo` (mount points)
18 +- `/proc/interrupts` (total and per core hardware interrupts)
19 +- `/proc/softirqs` (total and per core software interrupts)
20 +- `/proc/loadavg` (system load and total processes running)
21 +- `/proc/sys/kernel/random/entropy_avail` (random numbers pool availability - used in cryptography)
22 +- `/sys/class/power_supply` (power supply properties)
23 +- `ipc` (IPC semaphores and message queues)
24 +- `ksm` Kernel Same-Page Merging performance (several files under `/sys/kernel/mm/ksm`).
25 +- `netdata` (internal Netdata resources utilization)
26 +
27 +- - -
28
29 ## Monitoring Disks
30
@@ -37,37 +36,37 @@ Hopefully, the Linux kernel provides many metrics that can provide deep insights
36
37 ### Monitored disk metrics
38
40 -- **I/O bandwidth/s (kb/s)**
41 - The amount of data transferred from and to the disk.
42 -- **I/O operations/s**
43 - The number of I/O operations completed.
44 -- **Queued I/O operations**
45 - The number of currently queued I/O operations. For traditional disks that execute commands one after another, one of them is being run by the disk and the rest are just waiting in a queue.
46 -- **Backlog size (time in ms)**
47 - The expected duration of the currently queued I/O operations.
48 -- **Utilization (time percentage)**
49 - The percentage of time the disk was busy with something. This is a very interesting metric, since for most disks, that execute commands sequentially, **this is the key indication of congestion**. A sequential disk that is 100% of the available time busy, has no time to do anything more, so even if the bandwidth or the number of operations executed by the disk is low, its capacity has been reached.
50 - Of course, for newer disk technologies (like fusion cards) that are capable to execute multiple commands in parallel, this metric is just meaningless.
51 -- **Average I/O operation time (ms)**
52 - The average time for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
53 -- **Average I/O operation size (kb)**
54 - The average amount of data of the completed I/O operations.
55 -- **Average Service Time (ms)**
56 - The average service time for completed I/O operations. This metric is calculated using the total busy time of the disk and the number of completed operations. If the disk is able to execute multiple parallel operations the reporting average service time will be misleading.
57 -- **Merged I/O operations/s**
58 - The Linux kernel is capable of merging I/O operations. So, if two requests to read data from the disk are adjacent, the Linux kernel may merge them to one before giving them to disk. This metric measures the number of operations that have been merged by the Linux kernel.
59 -- **Total I/O time**
60 - The sum of the duration of all completed I/O operations. This number can exceed the interval if the disk is able to execute multiple I/O operations in parallel.
61 -- **Space usage**
62 - For mounted disks, Netdata will provide a chart for their space, with 3 dimensions:
63 - 1. free
64 - 2. used
65 - 3. reserved for root
66 -- **inode usage**
67 - For mounted disks, Netdata will provide a chart for their inodes (number of file and directories), with 3 dimensions:
68 - 1. free
69 - 2. used
70 - 3. reserved for root
39 +- **I/O bandwidth/s (kb/s)**
40 + The amount of data transferred from and to the disk.
41 +- **I/O operations/s**
42 + The number of I/O operations completed.
43 +- **Queued I/O operations**
44 + The number of currently queued I/O operations. For traditional disks that execute commands one after another, one of them is being run by the disk and the rest are just waiting in a queue.
45 +- **Backlog size (time in ms)**
46 + The expected duration of the currently queued I/O operations.
47 +- **Utilization (time percentage)**
48 + The percentage of time the disk was busy with something. This is a very interesting metric, since for most disks, that execute commands sequentially, **this is the key indication of congestion**. A sequential disk that is 100% of the available time busy, has no time to do anything more, so even if the bandwidth or the number of operations executed by the disk is low, its capacity has been reached.
49 + Of course, for newer disk technologies (like fusion cards) that are capable to execute multiple commands in parallel, this metric is just meaningless.
50 +- **Average I/O operation time (ms)**
51 + The average time for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
52 +- **Average I/O operation size (kb)**
53 + The average amount of data of the completed I/O operations.
54 +- **Average Service Time (ms)**
55 + The average service time for completed I/O operations. This metric is calculated using the total busy time of the disk and the number of completed operations. If the disk is able to execute multiple parallel operations the reporting average service time will be misleading.
56 +- **Merged I/O operations/s**
57 + The Linux kernel is capable of merging I/O operations. So, if two requests to read data from the disk are adjacent, the Linux kernel may merge them to one before giving them to disk. This metric measures the number of operations that have been merged by the Linux kernel.
58 +- **Total I/O time**
59 + The sum of the duration of all completed I/O operations. This number can exceed the interval if the disk is able to execute multiple I/O operations in parallel.
60 +- **Space usage**
61 + For mounted disks, Netdata will provide a chart for their space, with 3 dimensions:
62 + 1. free
63 + 2. used
64 + 3. reserved for root
65 +- **inode usage**
66 + For mounted disks, Netdata will provide a chart for their inodes (number of file and directories), with 3 dimensions:
67 + 1. free
68 + 2. used
69 + 3. reserved for root
70
71 ### disk names
72
@@ -79,9 +78,9 @@ By default, Netdata will enable monitoring metrics only when they are not zero.
78
79 Netdata categorizes all block devices in 3 categories:
80
82 -1. physical disks (i.e. block devices that does not have slaves and are not partitions)
83 -2. virtual disks (i.e. block devices that have slaves - like RAID devices)
84 -3. disk partitions (i.e. block devices that are part of a physical disk)
81 +1. physical disks (i.e. block devices that does not have slaves and are not partitions)
82 +2. virtual disks (i.e. block devices that have slaves - like RAID devices)
83 +3. disk partitions (i.e. block devices that are part of a physical disk)
84
85 Performance metrics are enabled by default for all disk devices, except partitions and not-mounted virtual disks. Of course, you can enable/disable monitoring any block device by editing the Netdata configuration file.
86
@@ -144,21 +143,26 @@ For each virtual disk, physical disk and partition you will have a section like
143 ```
144
145 For all configuration options:
147 -- `auto` = enable monitoring if the collected values are not zero
148 -- `yes` = enable monitoring
149 -- `no` = disable monitoring
146 +
147 +- `auto` = enable monitoring if the collected values are not zero
148 +- `yes` = enable monitoring
149 +- `no` = disable monitoring
150
151 Of course, to set options, you will have to uncomment them. The comments show the internal defaults.
152
153 After saving `/etc/netdata/netdata.conf`, restart your Netdata to apply them.
154
155 #### Disabling performance metrics for individual device and to multiple devices by device type
156 +
157 You can pretty easy disable performance metrics for individual device, for ex.:
158 +
159 ```
160 [plugin:proc:/proc/diskstats:sda]
161 enable performance metrics = no
162 ```
163 +
164 But sometimes you need disable performance metrics for all devices with the same type, to do it you need to figure out device type from `/proc/diskstats` for ex.:
165 +
166 ```
167 7 0 loop0 1651 0 3452 168 0 0 0 0 0 8 168
168 7 1 loop1 4955 0 11924 880 0 0 0 0 0 64 880
@@ -168,8 +172,10 @@ But sometimes you need disable performance metrics for all devices with the same
172 251 2 zram2 27487 0 219896 188 79953 0 639624 1640 0 1828 1828
173 251 3 zram3 27348 0 218784 152 79952 0 639616 1960 0 2060 2104
174 ```
175 +
176 All zram devices starts with `251` number and all loop devices starts with `7`.
177 So, to disable performance metrics for all loop devices you could add `performance metrics for disks with major 7 = no` to `[plugin:proc:/proc/diskstats]` section.
178 +
179 ```
180 [plugin:proc:/proc/diskstats]
181 performance metrics for disks with major 7 = no
@@ -179,26 +185,30 @@ So, to disable performance metrics for all loop devices you could add `performan
185
186 ### Monitored RAID array metrics
187
182 -1. **Health** Number of failed disks in every array (aggregate chart).
188 +1. **Health** Number of failed disks in every array (aggregate chart).
189 +
190 +2. **Disks stats**
191 +
192 +- total (number of devices array ideally would have)
193 +- inuse (number of devices currently are in use)
194
184 -2. **Disks stats**
185 - * total (number of devices array ideally would have)
186 - * inuse (number of devices currently are in use)
195 +3. **Mismatch count**
196
188 -3. **Mismatch count**
189 - * unsynchronized blocks
197 +- unsynchronized blocks
198
191 -4. **Current status**
192 - * resync in percent
193 - * recovery in percent
194 - * reshape in percent
195 - * check in percent
199 +4. **Current status**
200
197 -5. **Operation status** (if resync/recovery/reshape/check is active)
198 - * finish in minutes
199 - * speed in megabytes/s
201 +- resync in percent
202 +- recovery in percent
203 +- reshape in percent
204 +- check in percent
205
201 -6. **Nonredundant array availability**
206 +5. **Operation status** (if resync/recovery/reshape/check is active)
207 +
208 +- finish in minutes
209 +- speed in megabytes/s
210 +
211 +6. **Nonredundant array availability**
212
213 #### configuration
214
@@ -259,24 +269,29 @@ each state.
269
270 ### Monitored network interface metrics
271
262 -- **Physical Network Interfaces Aggregated Bandwidth (kilobits/s)**
263 - The amount of data received and sent through all physical interfaces in the system. This is the source of data for the Net Inbound and Net Outbound dials in the System Overview section.
264 -
265 -- **Bandwidth (kilobits/s)**
266 - The amount of data received and sent through the interface.
267 -- **Packets (packets/s)**
268 - The number of packets received, packets sent, and multicast packets transmitted through the interface.
269 -
270 -- **Interface Errors (errors/s)**
271 - The number of errors for the inbound and outbound traffic on the interface.
272 -- **Interface Drops (drops/s)**
273 - The number of packets dropped for the inbound and outbound traffic on the interface.
274 -- **Interface FIFO Buffer Errors (errors/s)**
275 - The number of FIFO buffer errors encountered while receiving and transmitting data through the interface.
276 -- **Compressed Packets (packets/s)**
277 - The number of compressed packets transmitted or received by the device driver.
278 -- **Network Interface Events (events/s)**
279 - The number of packet framing errors, collisions detected on the interface, and carrier losses detected by the device driver.
272 +- **Physical Network Interfaces Aggregated Bandwidth (kilobits/s)**
273 + The amount of data received and sent through all physical interfaces in the system. This is the source of data for the Net Inbound and Net Outbound dials in the System Overview section.
274 +
275 +- **Bandwidth (kilobits/s)**
276 + The amount of data received and sent through the interface.
277 +
278 +- **Packets (packets/s)**
279 + The number of packets received, packets sent, and multicast packets transmitted through the interface.
280 +
281 +- **Interface Errors (errors/s)**
282 + The number of errors for the inbound and outbound traffic on the interface.
283 +
284 +- **Interface Drops (drops/s)**
285 + The number of packets dropped for the inbound and outbound traffic on the interface.
286 +
287 +- **Interface FIFO Buffer Errors (errors/s)**
288 + The number of FIFO buffer errors encountered while receiving and transmitting data through the interface.
289 +
290 +- **Compressed Packets (packets/s)**
291 + The number of compressed packets transmitted or received by the device driver.
292 +
293 +- **Network Interface Events (events/s)**
294 + The number of packet framing errors, collisions detected on the interface, and carrier losses detected by the device driver.
295
296 By default Netdata will enable monitoring metrics only when they are not zero. If they are constantly zero they are ignored. Metrics that will start having values, after Netdata is started, will be detected and charts will be automatically added to the dashboard (a refresh of the dashboard is needed for them to appear though).
297
@@ -327,6 +342,7 @@ Per interface configuration:
342 ![image6](https://cloud.githubusercontent.com/assets/2662304/14253733/53550b16-fa95-11e5-8d9d-4ed171df4735.gif)
343
344 ---
345 +
346 SYNPROXY is a TCP SYN packets proxy. It can be used to protect any TCP server (like a web server) from SYN floods and similar DDos attacks.
347
348 SYNPROXY is a netfilter module, in the Linux kernel (since version 3.12). It is optimized to handle millions of packets per second utilizing all CPUs available without any concurrency locking between the connections.
@@ -335,8 +351,8 @@ The net effect of this, is that the real servers will not notice any change duri
351
352 Netdata does not enable SYNPROXY. It just uses the SYNPROXY metrics exposed by your kernel, so you will first need to configure it. The hard way is to run iptables SYNPROXY commands directly on the console. An easier way is to use [FireHOL](https://firehol.org/), which, is a firewall manager for iptables. FireHOL can configure SYNPROXY using the following setup guides:
353
338 - - **[Working with SYNPROXY](https://github.com/firehol/firehol/wiki/Working-with-SYNPROXY)**
339 - - **[Working with SYNPROXY and traps](https://github.com/firehol/firehol/wiki/Working-with-SYNPROXY-and-traps)**
354 +- **[Working with SYNPROXY](https://github.com/firehol/firehol/wiki/Working-with-SYNPROXY)**
355 +- **[Working with SYNPROXY and traps](https://github.com/firehol/firehol/wiki/Working-with-SYNPROXY-and-traps)**
356
357 ### Real-time monitoring of Linux Anti-DDoS
358
@@ -344,10 +360,10 @@ Netdata is able to monitor in real-time (per second updates) the operation of th
360
361 It visualizes 4 charts:
362
347 -1. TCP SYN Packets received on ports operated by SYNPROXY
348 -2. TCP Cookies (valid, invalid, retransmits)
349 -3. Connections Reopened
350 -4. Entries used
363 +1. TCP SYN Packets received on ports operated by SYNPROXY
364 +2. TCP Cookies (valid, invalid, retransmits)
365 +3. Connections Reopened
366 +4. Entries used
367
368 Example image:
369
@@ -364,29 +380,33 @@ battery capacity.
380 Depending on the underlying driver, it may provide the following charts
381 and metrics:
382
367 -1. Capacity: The power supply capacity expressed as a percentage.
368 - * capacity\_now
369 -
370 -2. Charge: The charge for the power supply, expressed as amphours.
371 - * charge\_full\_design
372 - * charge\_full
373 - * charge\_now
374 - * charge\_empty
375 - * charge\_empty\_design
376 -
377 -3. Energy: The energy for the power supply, expressed as watthours.
378 - * energy\_full\_design
379 - * energy\_full
380 - * energy\_now
381 - * energy\_empty
382 - * energy\_empty\_design
383 -
384 -2. Voltage: The voltage for the power supply, expressed as volts.
385 - * voltage\_max\_design
386 - * voltage\_max
387 - * voltage\_now
388 - * voltage\_min
389 - * voltage\_min\_design
383 +1. Capacity: The power supply capacity expressed as a percentage.
384 +
385 + - capacity_now
386 +
387 +2. Charge: The charge for the power supply, expressed as amphours.
388 +
389 + - charge_full_design
390 + - charge_full
391 + - charge_now
392 + - charge_empty
393 + - charge_empty_design
394 +
395 +3. Energy: The energy for the power supply, expressed as watthours.
396 +
397 + - energy_full_design
398 + - energy_full
399 + - energy_now
400 + - energy_empty
401 + - energy_empty_design
402 +
403 +4. Voltage: The voltage for the power supply, expressed as volts.
404 +
405 + - voltage_max_design
406 + - voltage_max
407 + - voltage_now
408 + - voltage_min
409 + - voltage_min_design
410
411 #### configuration
412
@@ -402,30 +422,30 @@ and metrics:
422
423 #### notes
424
405 -* Most drivers provide at least the first chart. Battery powered ACPI
406 -compliant systems (like most laptops) provide all but the third, but do
407 -not provide all of the metrics for each chart.
425 +- Most drivers provide at least the first chart. Battery powered ACPI
426 + compliant systems (like most laptops) provide all but the third, but do
427 + not provide all of the metrics for each chart.
428
409 -* Current, energy, and voltages are reported with a _very_ high precision
410 -by the power\_supply framework. Usually, this is far higher than the
411 -actual hardware supports reporting, so expect to see changes in these
412 -charts jump instead of scaling smoothly.
429 +- Current, energy, and voltages are reported with a *very* high precision
430 + by the power_supply framework. Usually, this is far higher than the
431 + actual hardware supports reporting, so expect to see changes in these
432 + charts jump instead of scaling smoothly.
433
414 -* If `max` or `full` attribute is defined by the driver, but not a
415 -corresponding `min` or `empty` attribute, then Netdata will still provide
416 -the corresponding `min` or `empty`, which will then always read as zero.
417 -This way, alerts which match on these will still work.
434 +- If `max` or `full` attribute is defined by the driver, but not a
435 + corresponding `min` or `empty` attribute, then Netdata will still provide
436 + the corresponding `min` or `empty`, which will then always read as zero.
437 + This way, alerts which match on these will still work.
438
439 ## IPC
440
441 ### Monitored IPC metrics
442
423 -- **number of messages in message queues**
424 -- **amount of memory used by message queues**
425 -- **number of semaphores**
426 -- **number of semaphore arrays**
427 -- **number of shared memory segments**
428 -- **amount of memory used by shared memory segments**
443 +- **number of messages in message queues**
444 +- **amount of memory used by message queues**
445 +- **number of semaphores**
446 +- **number of semaphore arrays**
447 +- **number of shared memory segments**
448 +- **amount of memory used by shared memory segments**
449
450 As far as the message queue charts are dynamic, sane limits are applied for the number of dimensions per chart (the limit is configurable).
451
@@ -441,4 +461,4 @@ As far as the message queue charts are dynamic, sane limits are applied for the
461 # max dimensions in memory allowed = 50
462 ```
463
444 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fproc.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
464 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fproc.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/README.md
+48 -39
@@ -2,12 +2,12 @@
2
3 `python.d.plugin` is a Netdata external plugin. It is an **orchestrator** for data collection modules written in `python`.
4
5 -1. It runs as an independent process `ps fax` shows it
6 -2. It is started and stopped automatically by Netdata
7 -3. It communicates with Netdata via a unidirectional pipe (sending data to the `netdata` daemon)
8 -4. Supports any number of data collection **modules**
9 -5. Allows each **module** to have one or more data collection **jobs**
10 -6. Each **job** is collecting one or more metrics from a single data source
5 +1. It runs as an independent process `ps fax` shows it
6 +2. It is started and stopped automatically by Netdata
7 +3. It communicates with Netdata via a unidirectional pipe (sending data to the `netdata` daemon)
8 +4. Supports any number of data collection **modules**
9 +5. Allows each **module** to have one or more data collection **jobs**
10 +6. Each **job** is collecting one or more metrics from a single data source
11
12 ## Disclaimer
13
@@ -17,7 +17,7 @@ Module configurations are written in YAML and **pyYAML is required**.
17
18 Every configuration file must have one of two formats:
19
20 -- Configuration for only one job:
20 +- Configuration for only one job:
21
22 ```yaml
23 update_every : 2 # update frequency
@@ -27,7 +27,7 @@ other_var1 : bla # variables passed to module
27 other_var2 : alb
28 ```
29
30 -- Configuration for many jobs (ex. mysql):
30 +- Configuration for many jobs (ex. mysql):
31
32 ```yaml
33 # module defaults:
@@ -51,6 +51,7 @@ other_job:
51 # become user netdata
52 sudo su -s /bin/bash netdata
53 ```
54 +
55 Depending on where Netdata was installed, execute one of the following commands to trace the execution of a python module:
56
57 ```
@@ -58,16 +59,18 @@ Depending on where Netdata was installed, execute one of the following commands
59 /opt/netdata/usr/libexec/netdata/plugins.d/python.d.plugin <module> debug trace
60 /usr/libexec/netdata/plugins.d/python.d.plugin <module> debug trace
61 ```
61 -Where `[module]` is the directory name under https://github.com/netdata/netdata/tree/master/collectors/python.d.plugin
62 +
63 +Where `[module]` is the directory name under <https://github.com/netdata/netdata/tree/master/collectors/python.d.plugin>
64
65 ## How to write a new module
66
67 Writing new python module is simple. You just need to remember to include 5 major things:
66 -- **ORDER** global list
67 -- **CHART** global dictionary
68 -- **Service** class
69 -- **_get_data** method
70 -- all code needs to be compatible with Python 2 (**≥ 2.7**) *and* 3 (**≥ 3.1**)
68 +
69 +- **ORDER** global list
70 +- **CHART** global dictionary
71 +- **Service** class
72 +- **\_get_data** method
73 +- all code needs to be compatible with Python 2 (**≥ 2.7**) *and* 3 (**≥ 3.1**)
74
75 If you plan to submit the module in a PR, make sure and go through the [PR checklist for new modules](#pull-request-checklist-for-python-plugins) beforehand to make sure you have updated all the files you need to.
76
@@ -76,11 +79,13 @@ For a quick start, you can look at the [example plugin](example/example.chart.py
79 ### Global variables `ORDER` and `CHART`
80
81 `ORDER` list should contain the order of chart ids. Example:
82 +
83 ```py
84 ORDER = ['first_chart', 'second_chart', 'third_chart']
85 ```
86
87 `CHART` dictionary is a little bit trickier. It should contain the chart definition in following format:
88 +
89 ```py
90 CHART = {
91 id: {
@@ -97,15 +102,16 @@ Parameters like `priority` and `update_every` are handled by `python.d.plugin`.
102
103 Every module needs to implement its own `Service` class. This class should inherit from one of the framework classes:
104
100 -- `SimpleService`
101 -- `UrlService`
102 -- `SocketService`
103 -- `LogService`
104 -- `ExecutableService`
105 +- `SimpleService`
106 +- `UrlService`
107 +- `SocketService`
108 +- `LogService`
109 +- `ExecutableService`
110
111 Also it needs to invoke the parent class constructor in a specific way as well as assign global variables to class variables.
112
113 Simple example:
114 +
115 ```py
116 from base import UrlService
117 class Service(UrlService):
@@ -120,6 +126,7 @@ class Service(UrlService):
126 This method should grab raw data from `_get_raw_data`, parse it, and return a dictionary where keys are unique dimension names or `None` if no data is collected.
127
128 Example:
129 +
130 ```py
131 def _get_data(self):
132 try:
@@ -129,12 +136,12 @@ def _get_data(self):
136 return None
137 ```
138
132 -More about framework classes
133 -============================
139 +# More about framework classes
140
141 Every framework class has some user-configurable variables which are specific to this particular class. Those variables should have default values initialized in the child class constructor.
142
143 If module needs some additional user-configurable variable, it can be accessed from the `self.configuration` list and assigned in constructor or custom `check` method. Example:
144 +
145 ```py
146 def __init__(self, configuration=None, name=None):
147 UrlService.__init__(self, configuration=configuration, name=name)
@@ -153,11 +160,12 @@ _This is last resort class, if a new module cannot be written by using other fra
160 _Example: `ceph`, `sensors`_
161
162 It is the lowest-level class which implements most of module logic, like:
156 -- threading
157 -- handling run times
158 -- chart formatting
159 -- logging
160 -- chart creation and updating
163 +
164 +- threading
165 +- handling run times
166 +- chart formatting
167 +- logging
168 +- chart creation and updating
169
170 ### `LogService`
171
@@ -174,11 +182,12 @@ _Examples: `exim`, `postfix`_
182 _Variable from config file_: `command`.
183
184 This allows to execute a shell command in a secure way. It will check for invalid characters in `command` variable and won't proceed if there is one of:
177 -- '&'
178 -- '|'
179 -- ';'
180 -- '>'
181 -- '<'
185 +
186 +- '&'
187 +- '|'
188 +- ';'
189 +- '>'
190 +- '\<'
191
192 For additional security it uses python `subprocess.Popen` (without `shell=True` option) to execute command. Command can be specified with absolute or relative name. When using relative name, it will try to find `command` in `PATH` environment variable as well as in `/sbin` and `/usr/sbin`.
193
@@ -214,12 +223,12 @@ This is a generic checklist for submitting a new Python plugin for Netdata. It
223
224 At minimum, to be buildable and testable, the PR needs to include:
225
217 -* The module itself, following proper naming conventions: `python.d/<module_dir>/<module_name>.chart.py`
218 -* A README.md file for the plugin under `python.d/<module_dir>`.
219 -* The configuration file for the module: `conf.d/python.d/<module_name>.conf`. Python config files are in YAML format, and should include comments describing what options are present. The instructions are also needed in the configuration section of the README.md
220 -* A basic configuration for the plugin in the appropriate global config file: `conf.d/python.d.conf`, which is also in YAML format. Either add a line that reads `# <module_name>: yes` if the module is to be enabled by default, or one that reads `<module_name>: no` if it is to be disabled by default.
221 -* A line for the plugin in `python.d/Makefile.am` under `dist_python_DATA`.
222 -* A line for the plugin configuration file in `conf.d/Makefile.am`, under `dist_pythonconfig_DATA`
223 -* Optionally, chart information in `web/dashboard_info.js`. This generally involves specifying a name and icon for the section, and may include descriptions for the section or individual charts.
226 +- The module itself, following proper naming conventions: `python.d/<module_dir>/<module_name>.chart.py`
227 +- A README.md file for the plugin under `python.d/<module_dir>`.
228 +- The configuration file for the module: `conf.d/python.d/<module_name>.conf`. Python config files are in YAML format, and should include comments describing what options are present. The instructions are also needed in the configuration section of the README.md
229 +- A basic configuration for the plugin in the appropriate global config file: `conf.d/python.d.conf`, which is also in YAML format. Either add a line that reads `# <module_name>: yes` if the module is to be enabled by default, or one that reads `<module_name>: no` if it is to be disabled by default.
230 +- A line for the plugin in `python.d/Makefile.am` under `dist_python_DATA`.
231 +- A line for the plugin configuration file in `conf.d/Makefile.am`, under `dist_pythonconfig_DATA`
232 +- Optionally, chart information in `web/dashboard_info.js`. This generally involves specifying a name and icon for the section, and may include descriptions for the section or individual charts.
233
225 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
234 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/adaptec_raid/README.md
+18 -14
@@ -3,35 +3,39 @@
3 Module collects logical and physical devices health metrics.
4
5 **Requirements:**
6 -* `arcconf` program
7 -* `sudo` program
8 -* `netdata` user needs to be able to sudo the `arcconf` program without password
6 +
7 +- `arcconf` program
8 +- `sudo` program
9 +- `netdata` user needs to be able to sudo the `arcconf` program without password
10
11 To grab stats it executes:
11 - * `sudo -n arcconf GETCONFIG 1 LD`
12 - * `sudo -n arcconf GETCONFIG 1 PD`
12
13 +- `sudo -n arcconf GETCONFIG 1 LD`
14 +- `sudo -n arcconf GETCONFIG 1 PD`
15
16 It produces:
17
17 -1. **Logical Device Status**
18 +1. **Logical Device Status**
19 +
20 +2. **Physical Device State**
21
19 -2. **Physical Device State**
22 +3. **Physical Device S.M.A.R.T warnings**
23
21 -3. **Physical Device S.M.A.R.T warnings**
24 +4. **Physical Device Temperature**
25
23 -4. **Physical Device Temperature**
26 +## prerequisite
27
25 -### prerequisite
28 This module uses `arcconf` which can only be executed by root. It uses
29 `sudo` and assumes that it is configured such that the `netdata` user can
30 execute `arcconf` as root without password.
31
32 Add to `sudoers`:
33
32 - netdata ALL=(root) NOPASSWD: /path/to/arcconf
34 +```
35 +netdata ALL=(root) NOPASSWD: /path/to/arcconf
36 +```
37
34 -### configuration
38 +## configuration
39
40 **adaptec_raid** is disabled by default. Should be explicitly enabled in `python.d.conf`.
41
@@ -39,10 +43,10 @@ Add to `sudoers`:
43 adaptec_raid: yes
44 ```
45
42 -#### Screenshot:
46 +### Screenshot:
47
48 ![image](https://user-images.githubusercontent.com/22274335/47278133-6d306680-d601-11e8-87c2-cc9c0f42d686.png)
49
50 ---
51
48 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fadaptec_raid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
52 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fadaptec_raid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/apache/README.md
+31 -22
@@ -3,38 +3,47 @@
3 This module will monitor one or more Apache servers depending on configuration.
4
5 **Requirements:**
6 - * apache with enabled `mod_status`
6 +
7 +- apache with enabled `mod_status`
8
9 It produces the following charts:
10
10 -1. **Requests** in requests/s
11 - * requests
11 +1. **Requests** in requests/s
12 +
13 + - requests
14 +
15 +2. **Connections**
16 +
17 + - connections
18 +
19 +3. **Async Connections**
20 +
21 + - keepalive
22 + - closing
23 + - writing
24 +
25 +4. **Bandwidth** in kilobytes/s
26 +
27 + - sent
28 +
29 +5. **Workers**
30
13 -2. **Connections**
14 - * connections
31 + - idle
32 + - busy
33
16 -3. **Async Connections**
17 - * keepalive
18 - * closing
19 - * writing
34 +6. **Lifetime Avg. Requests/s** in requests/s
35
21 -4. **Bandwidth** in kilobytes/s
22 - * sent
36 + - requests_sec
37
24 -5. **Workers**
25 - * idle
26 - * busy
38 +7. **Lifetime Avg. Bandwidth/s** in kilobytes/s
39
28 -6. **Lifetime Avg. Requests/s** in requests/s
29 - * requests_sec
40 + - size_sec
41
31 -7. **Lifetime Avg. Bandwidth/s** in kilobytes/s
32 - * size_sec
42 +8. **Lifetime Avg. Response Size** in bytes/request
43
34 -8. **Lifetime Avg. Response Size** in bytes/request
35 - * size_req
44 + - size_req
45
37 -### configuration
46 +## configuration
47
48 Needs only `url` to server's `server-status?auto`
49
@@ -56,4 +65,4 @@ Without configuration, module attempts to connect to `http://localhost/server-st
65
66 ---
67
59 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fapache%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
68 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fapache%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/beanstalk/README.md
+90 -76
@@ -3,93 +3,107 @@
3 Module provides server and tube-level statistics:
4
5 **Requirements:**
6 - * `python-beanstalkc`
6 +
7 +- `python-beanstalkc`
8
9 **Server statistics:**
10
10 -1. **Cpu usage** in cpu time
11 - * user
12 - * system
13 -
14 -2. **Jobs rate** in jobs/s
15 - * total
16 - * timeouts
17 -
18 -3. **Connections rate** in connections/s
19 - * connections
20 -
21 -4. **Commands rate** in commands/s
22 - * put
23 - * peek
24 - * peek-ready
25 - * peek-delayed
26 - * peek-buried
27 - * reserve
28 - * use
29 - * watch
30 - * ignore
31 - * delete
32 - * release
33 - * bury
34 - * kick
35 - * stats
36 - * stats-job
37 - * stats-tube
38 - * list-tubes
39 - * list-tube-used
40 - * list-tubes-watched
41 - * pause-tube
42 -
43 -5. **Current tubes** in tubes
44 - * tubes
45 -
46 -6. **Current jobs** in jobs
47 - * urgent
48 - * ready
49 - * reserved
50 - * delayed
51 - * buried
52 -
53 -7. **Current connections** in connections
54 - * written
55 - * producers
56 - * workers
57 - * waiting
58 -
59 -8. **Binlog** in records/s
60 - * written
61 - * migrated
62 -
63 -9. **Uptime** in seconds
64 - * uptime
11 +1. **Cpu usage** in cpu time
12 +
13 + - user
14 + - system
15 +
16 +2. **Jobs rate** in jobs/s
17 +
18 + - total
19 + - timeouts
20 +
21 +3. **Connections rate** in connections/s
22 +
23 + - connections
24 +
25 +4. **Commands rate** in commands/s
26 +
27 + - put
28 + - peek
29 + - peek-ready
30 + - peek-delayed
31 + - peek-buried
32 + - reserve
33 + - use
34 + - watch
35 + - ignore
36 + - delete
37 + - release
38 + - bury
39 + - kick
40 + - stats
41 + - stats-job
42 + - stats-tube
43 + - list-tubes
44 + - list-tube-used
45 + - list-tubes-watched
46 + - pause-tube
47 +
48 +5. **Current tubes** in tubes
49 +
50 + - tubes
51 +
52 +6. **Current jobs** in jobs
53 +
54 + - urgent
55 + - ready
56 + - reserved
57 + - delayed
58 + - buried
59 +
60 +7. **Current connections** in connections
61 +
62 + - written
63 + - producers
64 + - workers
65 + - waiting
66 +
67 +8. **Binlog** in records/s
68 +
69 + - written
70 + - migrated
71 +
72 +9. **Uptime** in seconds
73 +
74 + - uptime
75
76 **Per tube statistics:**
77
68 -1. **Jobs rate** in jobs/s
69 - * jobs
78 +1. **Jobs rate** in jobs/s
79 +
80 + - jobs
81 +
82 +2. **Jobs** in jobs
83 +
84 + - using
85 + - ready
86 + - reserved
87 + - delayed
88 + - buried
89 +
90 +3. **Connections** in connections
91
71 -2. **Jobs** in jobs
72 - * using
73 - * ready
74 - * reserved
75 - * delayed
76 - * buried
92 + - using
93 + - waiting
94 + - watching
95
78 -3. **Connections** in connections
79 - * using
80 - * waiting
81 - * watching
96 +4. **Commands** in commands/s
97
83 -4. **Commands** in commands/s
84 - * deletes
85 - * pauses
98 + - deletes
99 + - pauses
100
87 -5. **Pause** in seconds
88 - * since
89 - * left
101 +5. **Pause** in seconds
102
103 + - since
104 + - left
105
92 -### configuration
106 +## configuration
107
108 Sample:
109
@@ -102,4 +116,4 @@ If no configuration is given, module will attempt to connect to beanstalkd on `1
116
117 ---
118
105 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fbeanstalk%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
119 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fbeanstalk%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/bind_rndc/README.md
+45 -42
@@ -3,50 +3,53 @@
3 Module parses bind dump file to collect real-time performance metrics
4
5 **Requirements:**
6 - * Version of bind must be 9.6 +
7 - * Netdata must have permissions to run `rndc stats`
6 +
7 +- Version of bind must be 9.6 +
8 +- Netdata must have permissions to run `rndc stats`
9
10 It produces:
11
11 -1. **Name server statistics**
12 - * requests
13 - * responses
14 - * success
15 - * auth_answer
16 - * nonauth_answer
17 - * nxrrset
18 - * failure
19 - * nxdomain
20 - * recursion
21 - * duplicate
22 - * rejections
23 -
24 -2. **Incoming queries**
25 - * RESERVED0
26 - * A
27 - * NS
28 - * CNAME
29 - * SOA
30 - * PTR
31 - * MX
32 - * TXT
33 - * X25
34 - * AAAA
35 - * SRV
36 - * NAPTR
37 - * A6
38 - * DS
39 - * RSIG
40 - * DNSKEY
41 - * SPF
42 - * ANY
43 - * DLV
44 -
45 -3. **Outgoing queries**
46 - * Same as Incoming queries
47 -
48 -
49 -### configuration
12 +1. **Name server statistics**
13 +
14 + - requests
15 + - responses
16 + - success
17 + - auth_answer
18 + - nonauth_answer
19 + - nxrrset
20 + - failure
21 + - nxdomain
22 + - recursion
23 + - duplicate
24 + - rejections
25 +
26 +2. **Incoming queries**
27 +
28 + - RESERVED0
29 + - A
30 + - NS
31 + - CNAME
32 + - SOA
33 + - PTR
34 + - MX
35 + - TXT
36 + - X25
37 + - AAAA
38 + - SRV
39 + - NAPTR
40 + - A6
41 + - DS
42 + - RSIG
43 + - DNSKEY
44 + - SPF
45 + - ANY
46 + - DLV
47 +
48 +3. **Outgoing queries**
49 +
50 +- Same as Incoming queries
51 +
52 +## configuration
53
54 Sample:
55
@@ -59,4 +62,4 @@ If no configuration is given, module will attempt to read named.stats file at `
62
63 ---
64
62 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fbind_rndc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
65 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fbind_rndc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/boinc/README.md
+2 -2
@@ -7,7 +7,7 @@ RPC interface that the BOINC monitoring GUI does.
7 It provides charts tracking the total number of tasks and active tasks,
8 as well as ones tracking each of the possible states for tasks.
9
10 -### configuration
10 +## configuration
11
12 BOINC requires use of a password to access it's RPC interface. You can
13 find this password in the `gui_rpc_auth.cfg` file in your BOINC directory.
@@ -27,4 +27,4 @@ remote:
27
28 ---
29
30 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fboinc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
30 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fboinc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/ceph/README.md
+13 -11
@@ -4,25 +4,27 @@ This module monitors the ceph cluster usage and consumption data of a server.
4
5 It produces:
6
7 -* Cluster statistics (usage, available, latency, objects, read/write rate)
8 -* OSD usage
9 -* OSD latency
10 -* Pool usage
11 -* Pool read/write operations
12 -* Pool read/write rate
13 -* number of objects per pool
7 +- Cluster statistics (usage, available, latency, objects, read/write rate)
8 +- OSD usage
9 +- OSD latency
10 +- Pool usage
11 +- Pool read/write operations
12 +- Pool read/write rate
13 +- number of objects per pool
14
15 **Requirements:**
16
17 -- `rados` python module
18 -- Granting read permissions to ceph group from keyring file
17 +- `rados` python module
18 +- Granting read permissions to ceph group from keyring file
19 +
20 ```shell
21 # chmod 640 /etc/ceph/ceph.client.admin.keyring
22 ```
23
23 -### Configuration
24 +## Configuration
25
26 Sample:
27 +
28 ```yaml
29 local:
30 config_file: '/etc/ceph/ceph.conf'
@@ -31,4 +33,4 @@ local:
33
34 ---
35
34 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fceph%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
36 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fceph%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/chrony/README.md
+11 -10
@@ -4,21 +4,22 @@ This module monitors the precision and statistics of a local chronyd server.
4
5 It produces:
6
7 -* frequency
8 -* last offset
9 -* RMS offset
10 -* residual freq
11 -* root delay
12 -* root dispersion
13 -* skew
14 -* system time
7 +- frequency
8 +- last offset
9 +- RMS offset
10 +- residual freq
11 +- root delay
12 +- root dispersion
13 +- skew
14 +- system time
15
16 **Requirements:**
17 Verify that user Netdata can execute `chronyc tracking`. If necessary, update `/etc/chrony.conf`, `cmdallow`.
18
19 -### Configuration
19 +## Configuration
20
21 Sample:
22 +
23 ```yaml
24 # data collection frequency:
25 update_every: 1
@@ -30,4 +31,4 @@ local:
31
32 ---
33
33 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fchrony%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
34 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fchrony%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/couchdb/README.md
+12 -10
@@ -2,18 +2,19 @@
2
3 This module monitors vital statistics of a local Apache CouchDB 2.x server, including:
4
5 -* Overall server reads/writes
6 -* HTTP traffic breakdown
7 - * Request methods (`GET`, `PUT`, `POST`, etc.)
8 - * Response status codes (`200`, `201`, `4xx`, etc.)
9 -* Active server tasks
10 -* Replication status (CouchDB 2.1 and up only)
11 -* Erlang VM stats
12 -* Optional per-database statistics: sizes, # of docs, # of deleted docs
5 +- Overall server reads/writes
6 +- HTTP traffic breakdown
7 + - Request methods (`GET`, `PUT`, `POST`, etc.)
8 + - Response status codes (`200`, `201`, `4xx`, etc.)
9 +- Active server tasks
10 +- Replication status (CouchDB 2.1 and up only)
11 +- Erlang VM stats
12 +- Optional per-database statistics: sizes, # of docs, # of deleted docs
13
14 -### Configuration
14 +## Configuration
15
16 Sample for a local server running on port 5984:
17 +
18 ```yaml
19 local:
20 user: 'admin'
@@ -26,6 +27,7 @@ Be sure to specify a correct admin-level username and password.
27 You may also need to change the `node` name; this should match the value of `-name NODENAME` in your CouchDB's `etc/vm.args` file. Typically this is of the form `couchdb@fully.qualified.domain.name` in a cluster, or `couchdb@127.0.0.1` / `couchdb@localhost` for a single-node server.
28
29 If you want per-database statistics, these need to be added to the configuration, separated by spaces:
30 +
31 ```yaml
32 local:
33 ...
@@ -34,4 +36,4 @@ local:
36
37 ---
38
37 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fcouchdb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
39 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fcouchdb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/dns_query_time/README.md
+3 -2
@@ -3,10 +3,11 @@
3 This module provides DNS query time statistics.
4
5 **Requirement:**
6 -* `python-dnspython` package
6 +
7 +- `python-dnspython` package
8
9 It produces one aggregate chart or one chart per DNS server, showing the query time.
10
11 ---
12
12 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdns_query_time%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
13 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdns_query_time%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/dnsdist/README.md
+43 -37
@@ -4,42 +4,48 @@ Module monitor dnsdist performance and health metrics.
4
5 Following charts are drawn:
6
7 -1. **Response latency**
8 - * latency-slow
9 - * latency100-1000
10 - * latency50-100
11 - * latency10-50
12 - * latency1-10
13 - * latency0-1
14 -
15 -2. **Cache performance**
16 - * cache-hits
17 - * cache-misses
18 -
19 -3. **ACL events**
20 - * acl-drops
21 - * rule-drop
22 - * rule-nxdomain
23 - * rule-refused
24 -
25 -4. **Noncompliant data**
26 - * empty-queries
27 - * no-policy
28 - * noncompliant-queries
29 - * noncompliant-responses
30 -
31 -5. **Queries**
32 - * queries
33 - * rdqueries
34 - * rdqueries
35 -
36 -6. **Health**
37 - * downstream-send-errors
38 - * downstream-timeouts
39 - * servfail-responses
40 - * trunc-failures
41 -
42 -### configuration
7 +1. **Response latency**
8 +
9 + - latency-slow
10 + - latency100-1000
11 + - latency50-100
12 + - latency10-50
13 + - latency1-10
14 + - latency0-1
15 +
16 +2. **Cache performance**
17 +
18 + - cache-hits
19 + - cache-misses
20 +
21 +3. **ACL events**
22 +
23 + - acl-drops
24 + - rule-drop
25 + - rule-nxdomain
26 + - rule-refused
27 +
28 +4. **Noncompliant data**
29 +
30 + - empty-queries
31 + - no-policy
32 + - noncompliant-queries
33 + - noncompliant-responses
34 +
35 +5. **Queries**
36 +
37 + - queries
38 + - rdqueries
39 + - rdqueries
40 +
41 +6. **Health**
42 +
43 + - downstream-send-errors
44 + - downstream-timeouts
45 + - servfail-responses
46 + - trunc-failures
47 +
48 +## configuration
49
50 ```yaml
51 localhost:
@@ -53,4 +59,4 @@ localhost:
59
60 ---
61
56 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdnsdist%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
62 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdnsdist%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/dockerd/README.md
+14 -10
@@ -3,26 +3,30 @@
3 Module monitor docker health metrics.
4
5 **Requirement:**
6 -* `docker` package, required version 3.2.0+
6 +
7 +- `docker` package, required version 3.2.0+
8
9 Following charts are drawn:
10
10 -1. **running containers**
11 - * count
11 +1. **running containers**
12 +
13 + - count
14 +
15 +2. **healthy containers**
16 +
17 + - count
18
13 -2. **healthy containers**
14 - * count
19 +3. **unhealthy containers**
20
16 -3. **unhealthy containers**
17 - * count
21 + - count
22
19 -### configuration
23 +## configuration
24
25 ```yaml
26 update_every : 1
27 priority : 60000
24 - ```
28 +```
29
30 ---
31
28 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdockerd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
32 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdockerd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/dovecot/README.md
+43 -31
@@ -13,51 +13,63 @@ Dovecot UNIX socket with R/W permissions for user `netdata` or Dovecot with conf
13
14 Module gives information with following charts:
15
16 -1. **sessions**
17 - * active sessions
16 +1. **sessions**
17
19 -2. **logins**
20 - * logins
18 + - active sessions
19
22 -3. **commands** - number of IMAP commands
23 - * commands
20 +2. **logins**
21
25 -4. **Faults**
26 - * minor
27 - * major
22 + - logins
23
29 -5. **Context Switches**
30 - * volountary
31 - * involountary
24 +3. **commands** - number of IMAP commands
25
33 -6. **disk** in bytes/s
34 - * read
35 - * write
26 + - commands
27
37 -7. **bytes** in bytes/s
38 - * read
39 - * write
28 +4. **Faults**
29
41 -8. **number of syscalls** in syscalls/s
42 - * read
43 - * write
30 + - minor
31 + - major
32
45 -9. **lookups** - number of lookups per second
46 - * path
47 - * attr
33 +5. **Context Switches**
34 +
35 + - volountary
36 + - involountary
37 +
38 +6. **disk** in bytes/s
39 +
40 + - read
41 + - write
42 +
43 +7. **bytes** in bytes/s
44 +
45 + - read
46 + - write
47 +
48 +8. **number of syscalls** in syscalls/s
49 +
50 + - read
51 + - write
52 +
53 +9. **lookups** - number of lookups per second
54 +
55 + - path
56 + - attr
57
58 10. **hits** - number of cache hits
50 - * hits
59 +
60 + - hits
61
62 11. **attempts** - authorization attempts
53 - * success
54 - * failure
63 +
64 + - success
65 + - failure
66
67 12. **cache** - cached authorization hits
57 - * hit
58 - * miss
68
60 -### configuration
69 + - hit
70 + - miss
71 +
72 +## configuration
73
74 Sample:
75
@@ -76,4 +88,4 @@ If no configuration is given, module will attempt to connect to dovecot using un
88
89 ---
90
79 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdovecot%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
91 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fdovecot%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/elasticsearch/README.md
+49 -41
@@ -4,46 +4,54 @@ This module monitors Elasticsearch performance and health metrics.
4
5 It produces:
6
7 -1. **Search performance** charts:
8 - * Number of queries, fetches
9 - * Time spent on queries, fetches
10 - * Query and fetch latency
11 -
12 -2. **Indexing performance** charts:
13 - * Number of documents indexed, index refreshes, flushes
14 - * Time spent on indexing, refreshing, flushing
15 - * Indexing and flushing latency
16 -
17 -3. **Memory usage and garbace collection** charts:
18 - * JVM heap currently in use, committed
19 - * Count of garbage collections
20 - * Time spent on garbage collections
21 -
22 -4. **Host metrics** charts:
23 - * Available file descriptors in percent
24 - * Opened HTTP connections
25 - * Cluster communication transport metrics
26 -
27 -5. **Queues and rejections** charts:
28 - * Number of queued/rejected threads in thread pool
29 -
30 -6. **Fielddata cache** charts:
31 - * Fielddata cache size
32 - * Fielddata evictions and circuit breaker tripped count
33 -
34 -7. **Cluster health API** charts:
35 - * Cluster status
36 - * Nodes and tasks statistics
37 - * Shards statistics
38 -
39 -8. **Cluster stats API** charts:
40 - * Nodes statistics
41 - * Query cache statistics
42 - * Docs statistics
43 - * Store statistics
44 - * Indices and shards statistics
45 -
46 -### configuration
7 +1. **Search performance** charts:
8 +
9 + - Number of queries, fetches
10 + - Time spent on queries, fetches
11 + - Query and fetch latency
12 +
13 +2. **Indexing performance** charts:
14 +
15 + - Number of documents indexed, index refreshes, flushes
16 + - Time spent on indexing, refreshing, flushing
17 + - Indexing and flushing latency
18 +
19 +3. **Memory usage and garbace collection** charts:
20 +
21 + - JVM heap currently in use, committed
22 + - Count of garbage collections
23 + - Time spent on garbage collections
24 +
25 +4. **Host metrics** charts:
26 +
27 + - Available file descriptors in percent
28 + - Opened HTTP connections
29 + - Cluster communication transport metrics
30 +
31 +5. **Queues and rejections** charts:
32 +
33 + - Number of queued/rejected threads in thread pool
34 +
35 +6. **Fielddata cache** charts:
36 +
37 + - Fielddata cache size
38 + - Fielddata evictions and circuit breaker tripped count
39 +
40 +7. **Cluster health API** charts:
41 +
42 + - Cluster status
43 + - Nodes and tasks statistics
44 + - Shards statistics
45 +
46 +8. **Cluster stats API** charts:
47 +
48 + - Nodes statistics
49 + - Query cache statistics
50 + - Docs statistics
51 + - Store statistics
52 + - Indices and shards statistics
53 +
54 +## configuration
55
56 Sample:
57
@@ -59,4 +67,4 @@ If no configuration is given, module will fail to run.
67
68 ---
69
62 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Felasticsearch%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
70 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Felasticsearch%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/energid/README.md
+2 -1
@@ -43,6 +43,7 @@ long daemon startup.
43 ## Configuration
44
45 Sample:
46 +
47 ```yaml
48 energi:
49 host: '127.0.0.1'
@@ -59,4 +60,4 @@ bitcoin:
60
61 ---
62
62 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fenergid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
63 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fenergid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/example/README.md
+1 -1
@@ -3,4 +3,4 @@
3 An example python data collection module.
4 You can use this example to help you [write a new Python module](../#how-to-write-a-new-module).
5
6 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fexample%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fexample%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/exim/README.md
+4 -3
@@ -5,11 +5,12 @@ This command can take a lot of time to finish its execution thus it is not recom
5
6 It produces only one chart:
7
8 -1. **Exim Queue Emails**
9 - * emails
8 +1. **Exim Queue Emails**
9 +
10 + - emails
11
12 Configuration is not needed.
13
14 ---
15
15 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fexim%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
16 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fexim%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/fail2ban/README.md
+5 -3
@@ -3,11 +3,12 @@
3 Module monitor fail2ban log file to show all bans for all active jails
4
5 **Requirements:**
6 - * fail2ban.log file MUST BE readable by Netdata (A good idea is to add **create 0640 root netdata** to fail2ban conf at logrotate.d)
6 +
7 +- fail2ban.log file MUST BE readable by Netdata (A good idea is to add **create 0640 root netdata** to fail2ban conf at logrotate.d)
8
9 It produces one chart with multiple lines (one line per jail)
10
10 -### configuration
11 +## configuration
12
13 Sample:
14
@@ -17,9 +18,10 @@ local:
18 conf_path: '/etc/fail2ban/jail.local'
19 exclude: 'dropbear apache'
20 ```
21 +
22 If no configuration is given, module will attempt to read log file at `/var/log/fail2ban.log` and conf file at `/etc/fail2ban/jail.local`.
23 If conf file is not found default jail is `ssh`.
24
25 ---
26
25 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ffail2ban%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
27 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ffail2ban%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/freeradius/README.md
+45 -41
@@ -4,44 +4,47 @@ Uses the `radclient` command to provide freeradius statistics. It is not recomme
4
5 It produces:
6
7 -1. **Authentication counters:**
8 - * access-accepts
9 - * access-rejects
10 - * auth-dropped-requests
11 - * auth-duplicate-requests
12 - * auth-invalid-requests
13 - * auth-malformed-requests
14 - * auth-unknown-types
15 -
16 -2. **Accounting counters:** [optional]
17 - * accounting-requests
18 - * accounting-responses
19 - * acct-dropped-requests
20 - * acct-duplicate-requests
21 - * acct-invalid-requests
22 - * acct-malformed-requests
23 - * acct-unknown-types
24 -
25 -3. **Proxy authentication counters:** [optional]
26 - * proxy-access-accepts
27 - * proxy-access-rejects
28 - * proxy-auth-dropped-requests
29 - * proxy-auth-duplicate-requests
30 - * proxy-auth-invalid-requests
31 - * proxy-auth-malformed-requests
32 - * proxy-auth-unknown-types
33 -
34 -4. **Proxy accounting counters:** [optional]
35 - * proxy-accounting-requests
36 - * proxy-accounting-responses
37 - * proxy-acct-dropped-requests
38 - * proxy-acct-duplicate-requests
39 - * proxy-acct-invalid-requests
40 - * proxy-acct-malformed-requests
41 - * proxy-acct-unknown-typesa
42 -
43 -
44 -### configuration
7 +1. **Authentication counters:**
8 +
9 + - access-accepts
10 + - access-rejects
11 + - auth-dropped-requests
12 + - auth-duplicate-requests
13 + - auth-invalid-requests
14 + - auth-malformed-requests
15 + - auth-unknown-types
16 +
17 +2. **Accounting counters:** [optional]
18 +
19 + - accounting-requests
20 + - accounting-responses
21 + - acct-dropped-requests
22 + - acct-duplicate-requests
23 + - acct-invalid-requests
24 + - acct-malformed-requests
25 + - acct-unknown-types
26 +
27 +3. **Proxy authentication counters:** [optional]
28 +
29 + - proxy-access-accepts
30 + - proxy-access-rejects
31 + - proxy-auth-dropped-requests
32 + - proxy-auth-duplicate-requests
33 + - proxy-auth-invalid-requests
34 + - proxy-auth-malformed-requests
35 + - proxy-auth-unknown-types
36 +
37 +4. **Proxy accounting counters:** [optional]
38 +
39 + - proxy-accounting-requests
40 + - proxy-accounting-responses
41 + - proxy-acct-dropped-requests
42 + - proxy-acct-duplicate-requests
43 + - proxy-acct-invalid-requests
44 + - proxy-acct-malformed-requests
45 + - proxy-acct-unknown-typesa
46 +
47 +## configuration
48
49 Sample:
50
@@ -62,11 +65,12 @@ By default, server is enabled and can be queried from every client.
65 FreeRADIUS will only respond to status-server messages, if the status-server virtual server has been enabled.
66
67 To do this, create a link from the sites-enabled directory to the status file in the sites-available directory:
65 - * cd sites-enabled
66 - * ln -s ../sites-available/status status
68 +
69 +- cd sites-enabled
70 +- ln -s ../sites-available/status status
71
72 and restart/reload your FREERADIUS server.
73
74 ---
75
72 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ffreeradius%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
76 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ffreeradius%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/go_expvar/README.md
+63 -43
@@ -7,28 +7,34 @@ The `go_expvar` module can monitor any Go application that exposes its metrics w
7
8 For the memory statistics, it produces the following charts:
9
10 -1. **Heap allocations** in kB
11 - * alloc: size of objects allocated on the heap
12 - * inuse: size of allocated heap spans
10 +1. **Heap allocations** in kB
11
14 -2. **Stack allocations** in kB
15 - * inuse: size of allocated stack spans
12 + - alloc: size of objects allocated on the heap
13 + - inuse: size of allocated heap spans
14
17 -3. **MSpan allocations** in kB
18 - * inuse: size of allocated mspan structures
15 +2. **Stack allocations** in kB
16
20 -4. **MCache allocations** in kB
21 - * inuse: size of allocated mcache structures
17 + - inuse: size of allocated stack spans
18
23 -5. **Virtual memory** in kB
24 - * sys: size of reserved virtual address space
19 +3. **MSpan allocations** in kB
20
26 -6. **Live objects**
27 - * live: number of live objects in memory
21 + - inuse: size of allocated mspan structures
22
29 -7. **GC pauses average** in ns
30 - * avg: average duration of all GC stop-the-world pauses
23 +4. **MCache allocations** in kB
24
25 + - inuse: size of allocated mcache structures
26 +
27 +5. **Virtual memory** in kB
28 +
29 + - sys: size of reserved virtual address space
30 +
31 +6. **Live objects**
32 +
33 + - live: number of live objects in memory
34 +
35 +7. **GC pauses average** in ns
36 +
37 + - avg: average duration of all GC stop-the-world pauses
38
39 ## Monitoring Go Applications
40
@@ -102,7 +108,7 @@ Apart from the runtime memory stats, this application publishes two counters and
108 number of currently running Goroutines and updates these stats every second.
109
110 In the next section, we will cover how to monitor and chart these exposed stats with
105 -the use of `netdata`s ```go_expvar``` module.
111 +the use of `netdata`s `go_expvar` module.
112
113 ### Using Netdata go_expvar module
114
@@ -141,22 +147,30 @@ app1:
147
148 Let's go over each of the defined options:
149
144 - name: 'app1'
150 +```
151 +name: 'app1'
152 +```
153
154 This is the job name that will appear at the Netdata dashboard.
155 If not defined, the job_name (top level key) will be used.
156
149 - url: 'http://127.0.0.1:8080/debug/vars'
157 +```
158 +url: 'http://127.0.0.1:8080/debug/vars'
159 +```
160
161 This is the URL of the expvar endpoint. As the expvar handler can be installed
162 in a custom path, the whole URL has to be specified. This value is mandatory.
163
154 - collect_memstats: true
164 +```
165 +collect_memstats: true
166 +```
167
168 Whether to enable collecting stats about Go runtime's memory. You can find more
169 information about the exposed values at the [runtime package docs](https://golang.org/pkg/runtime/#MemStats).
170
159 - extra_charts: {}
171 +```
172 +extra_charts: {}
173 +```
174
175 Enables the user to specify custom expvars to monitor and chart.
176 Will be explained in more detail below.
@@ -167,10 +181,12 @@ disable itself, as there will be no data to collect!**
181 Apart from these options, each job supports options inherited from Netdata's `python.d.plugin`
182 and its base `UrlService` class. These are:
183
170 - update_every: 1 # the job's data collection frequency
171 - priority: 60000 # the job's order on the dashboard
172 - user: admin # use when the expvar endpoint is protected by HTTP Basic Auth
173 - password: sekret # use when the expvar endpoint is protected by HTTP Basic Auth
184 +```
185 +update_every: 1 # the job's data collection frequency
186 +priority: 60000 # the job's order on the dashboard
187 +user: admin # use when the expvar endpoint is protected by HTTP Basic Auth
188 +password: sekret # use when the expvar endpoint is protected by HTTP Basic Auth
189 +```
190
191 ### Monitoring custom vars with go_expvar
192
@@ -181,35 +197,39 @@ the `extra_charts` configuration variable.
197 The `extra_charts` variable is a YaML list of Netdata chart definitions.
198 Each chart definition has the following keys:
199
184 - id: Netdata chart ID
185 - options: a key-value mapping of chart options
186 - lines: a list of line definitions
200 +```
201 +id: Netdata chart ID
202 +options: a key-value mapping of chart options
203 +lines: a list of line definitions
204 +```
205
206 **Note: please do not use dots in the chart or line ID field.
207 See [this issue](https://github.com/netdata/netdata/pull/1902#issuecomment-284494195) for explanation.**
208
209 Please see these two links to the official Netdata documentation for more information about the values:
210
193 -- [External plugins - charts](../../plugins.d/#chart)
194 -- [Chart variables](../#global-variables-order-and-chart)
211 +- [External plugins - charts](../../plugins.d/#chart)
212 +- [Chart variables](../#global-variables-order-and-chart)
213
214 **Line definitions**
215
216 Each chart can define multiple lines (dimensions).
217 A line definition is a key-value mapping of line options.
218 Each line can have the following options:
201 -
202 - # mandatory
203 - expvar_key: the name of the expvar as present in the JSON output of /debug/vars endpoint
204 - expvar_type: value type; supported are "float" or "int"
205 - id: the id of this line/dimension in Netdata
206 -
207 - # optional - Netdata defaults are used if these options are not defined
208 - name: ''
209 - algorithm: absolute
210 - multiplier: 1
211 - divisor: 100 if expvar_type == float, 1 if expvar_type == int
212 - hidden: False
219 +
220 +```
221 +# mandatory
222 +expvar_key: the name of the expvar as present in the JSON output of /debug/vars endpoint
223 +expvar_type: value type; supported are "float" or "int"
224 +id: the id of this line/dimension in Netdata
225 +
226 +# optional - Netdata defaults are used if these options are not defined
227 +name: ''
228 +algorithm: absolute
229 +multiplier: 1
230 +divisor: 100 if expvar_type == float, 1 if expvar_type == int
231 +hidden: False
232 +```
233
234 Please see the following link for more information about the options and their default values:
235 [External plugins - dimensions](../../plugins.d/#dimension)
@@ -219,6 +239,7 @@ All dicts in the resulting JSON document are then flattened to one level.
239 Expvar names are joined together with '.' when flattening.
240
241 Example:
242 +
243 ```
244 {
245 "counters": {"cnt1": 1042, "cnt2": 1512.9839999999983},
@@ -273,5 +294,4 @@ The images below show how do the final charts in Netdata look.
294
295 ![Custom charts](https://cloud.githubusercontent.com/assets/15180106/26762051/62ae915e-493b-11e7-8518-bd25a3886650.png)
296
276 -
277 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fgo_expvar%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
297 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fgo_expvar%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/haproxy/README.md
+16 -14
@@ -10,23 +10,25 @@ Socket MUST be readable AND writable by the `netdata` user.
10
11 It produces:
12
13 -1. **Frontend** family charts
14 - * Kilobytes in/s
15 - * Kilobytes out/s
16 - * Sessions current
17 - * Sessions in queue current
13 +1. **Frontend** family charts
14
19 -2. **Backend** family charts
20 - * Kilobytes in/s
21 - * Kilobytes out/s
22 - * Sessions current
23 - * Sessions in queue current
15 + - Kilobytes in/s
16 + - Kilobytes out/s
17 + - Sessions current
18 + - Sessions in queue current
19
25 -3. **Health** chart
26 - * number of failed servers for every backend (in DOWN state)
20 +2. **Backend** family charts
21
22 + - Kilobytes in/s
23 + - Kilobytes out/s
24 + - Sessions current
25 + - Sessions in queue current
26
29 -### configuration
27 +3. **Health** chart
28 +
29 + - number of failed servers for every backend (in DOWN state)
30 +
31 +## configuration
32
33 Sample:
34
@@ -48,4 +50,4 @@ If no configuration is given, module will fail to run.
50
51 ---
52
51 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fhaproxy%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
53 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fhaproxy%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/hddtemp/README.md
+2 -2
@@ -7,7 +7,7 @@ Running `hddtemp` in daemonized mode with access on tcp port
7
8 It produces one chart **Temperature** with dynamic number of dimensions (one per disk)
9
10 -### configuration
10 +## configuration
11
12 Sample:
13
@@ -21,4 +21,4 @@ If no configuration is given, module will attempt to connect to hddtemp daemon o
21
22 ---
23
24 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fhddtemp%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
24 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fhddtemp%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/httpcheck/README.md
+18 -16
@@ -4,18 +4,20 @@ Module monitors remote http server for availability and response time.
4
5 Following charts are drawn per job:
6
7 -1. **Response time** ms
8 - * Time in 0.1 ms resolution in which the server responds.
9 - If the connection failed, the value is missing.
7 +1. **Response time** ms
8
11 -2. **Status** boolean
12 - * Connection successful
13 - * Unexpected content: No Regex match found in the response
14 - * Unexpected status code: Do we get 500 errors?
15 - * Connection failed: port not listening or blocked
16 - * Connection timed out: host or port unreachable
9 + - Time in 0.1 ms resolution in which the server responds.
10 + If the connection failed, the value is missing.
11
18 -### configuration
12 +2. **Status** boolean
13 +
14 + - Connection successful
15 + - Unexpected content: No Regex match found in the response
16 + - Unexpected status code: Do we get 500 errors?
17 + - Connection failed: port not listening or blocked
18 + - Connection timed out: host or port unreachable
19 +
20 +## configuration
21
22 Sample configuration and their default values.
23
@@ -32,12 +34,12 @@ server:
34
35 ### notes
36
35 - * The status chart is primarily intended for alarms, badges or for access via API.
36 - * A system/service/firewall might block Netdata's access if a portscan or
37 - similar is detected.
38 - * This plugin is meant for simple use cases. Currently, the accuracy of the
39 - response time is low and should be used as reference only.
37 +- The status chart is primarily intended for alarms, badges or for access via API.
38 +- A system/service/firewall might block Netdata's access if a portscan or
39 + similar is detected.
40 +- This plugin is meant for simple use cases. Currently, the accuracy of the
41 + response time is low and should be used as reference only.
42
43 ---
44
43 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fhttpcheck%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
45 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fhttpcheck%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/icecast/README.md
+7 -5
@@ -3,14 +3,16 @@
3 This module will monitor number of listeners for active sources.
4
5 **Requirements:**
6 - * icecast version >= 2.4.0
6 +
7 +- icecast version >= 2.4.0
8
9 It produces the following charts:
10
10 -1. **Listeners** in listeners
11 - * source number
11 +1. **Listeners** in listeners
12 +
13 +- source number
14
13 -### configuration
15 +## configuration
16
17 Needs only `url` to server's `/status-json.xsl`
18
@@ -25,4 +27,4 @@ Without configuration, module attempts to connect to `http://localhost:8443/stat
27
28 ---
29
28 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ficecast%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
30 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ficecast%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/ipfs/README.md
+9 -8
@@ -2,14 +2,16 @@
2
3 Module monitors [IPFS](https://ipfs.io) basic information.
4
5 -1. **Bandwidth** in kbits/s
6 - * in
7 - * out
5 +1. **Bandwidth** in kbits/s
6
9 -2. **Peers**
10 - * peers
7 + - in
8 + - out
9
12 -### configuration
10 +2. **Peers**
11 +
12 + - peers
13 +
14 +## configuration
15
16 Only url to IPFS server is needed.
17
@@ -23,5 +25,4 @@ localhost:
25
26 ---
27
26 -
27 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fipfs%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
28 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fipfs%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/isc_dhcpd/README.md
+13 -10
@@ -3,22 +3,25 @@
3 Module monitor leases database to show all active leases for given pools.
4
5 **Requirements:**
6 - * dhcpd leases file MUST BE readable by Netdata
7 - * pools MUST BE in CIDR format
6 +
7 +- dhcpd leases file MUST BE readable by Netdata
8 +- pools MUST BE in CIDR format
9
10 It produces:
11
11 -1. **Pools utilization** Aggregate chart for all pools.
12 - * utilization in percent
12 +1. **Pools utilization** Aggregate chart for all pools.
13 +
14 + - utilization in percent
15 +
16 +2. **Total leases**
17
14 -2. **Total leases**
15 - * leases (overall number of leases for all pools)
18 + - leases (overall number of leases for all pools)
19
17 -3. **Active leases** for every pools
18 - * leases (number of active leases in pool)
20 +3. **Active leases** for every pools
21
22 + - leases (number of active leases in pool)
23
21 -### configuration
24 +## configuration
25
26 Sample:
27
@@ -33,4 +36,4 @@ The module will not work If no configuration is given.
36
37 ---
38
36 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fisc_dhcpd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
39 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fisc_dhcpd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/litespeed/README.md
+33 -24
@@ -4,39 +4,48 @@ Module monitor litespeed web server performance metrics.
4
5 It produces:
6
7 -1. **Network Throughput HTTP** in kilobits/s
8 - * in
9 - * out
7 +1. **Network Throughput HTTP** in kilobits/s
8
11 -2. **Network Throughput HTTPS** in kilobits/s
12 - * in
13 - * out
9 + - in
10 + - out
11
15 -3. **Connections HTTP** in connections
16 - * free
17 - * used
12 +2. **Network Throughput HTTPS** in kilobits/s
13
19 -4. **Connections HTTPS** in connections
20 - * free
21 - * used
14 + - in
15 + - out
16
23 -5. **Requests** in requests/s
24 - * requests
17 +3. **Connections HTTP** in connections
18
26 -6. **Requests In Processing** in requests
27 - * processing
19 + - free
20 + - used
21
29 -7. **Public Cache Hits** in hits/s
30 - * hits
22 +4. **Connections HTTPS** in connections
23
32 -8. **Private Cache Hits** in hits/s
33 - * hits
24 + - free
25 + - used
26
35 -9. **Static Hits** in hits/s
36 - * hits
27 +5. **Requests** in requests/s
28
29 + - requests
30 +
31 +6. **Requests In Processing** in requests
32 +
33 + - processing
34 +
35 +7. **Public Cache Hits** in hits/s
36 +
37 + - hits
38 +
39 +8. **Private Cache Hits** in hits/s
40 +
41 + - hits
42 +
43 +9. **Static Hits** in hits/s
44 +
45 + - hits
46 +
47 +## configuration
48
39 -### configuration
49 ```yaml
50 local:
51 path : 'PATH'
@@ -46,4 +55,4 @@ If no configuration is given, module will use "/tmp/lshttpd/".
55
56 ---
57
49 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Flitespeed%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
58 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Flitespeed%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/logind/README.md
+29 -26
@@ -4,20 +4,23 @@ This module monitors active sessions, users, and seats tracked by systemd-logind
4
5 It provides the following charts:
6
7 -1. **Sessions** Tracks the total number of sessions.
8 - * Graphical: Local graphical sessions (running X11, or Wayland, or something else).
9 - * Console: Local console sessions.
10 - * Remote: Remote sessions.
7 +1. **Sessions** Tracks the total number of sessions.
8
12 -2. **Users** Tracks total number of unique user logins of each type.
13 - * Graphical
14 - * Console
15 - * Remote
9 + - Graphical: Local graphical sessions (running X11, or Wayland, or something else).
10 + - Console: Local console sessions.
11 + - Remote: Remote sessions.
12
17 -3. **Seats** Total number of seats in use.
18 - * Seats
13 +2. **Users** Tracks total number of unique user logins of each type.
14
20 -### configuration
15 + - Graphical
16 + - Console
17 + - Remote
18 +
19 +3. **Seats** Total number of seats in use.
20 +
21 + - Seats
22 +
23 +## configuration
24
25 This module needs no configuration. Just make sure the `netdata` user
26 can run the `loginctl` command and get a session list without having to
@@ -32,25 +35,25 @@ specify it using the `command` key like so:
35 command: '/path/to/other/command'
36 ```
37
35 -### notes
38 +## notes
39
37 -* This module's ability to track logins is dependent on what PAM services
38 -are configured to register sessions with logind. In particular, for
39 -most systems, it will only track TTY logins, local desktop logins,
40 -and logins through remote shell connections.
40 +- This module's ability to track logins is dependent on what PAM services
41 + are configured to register sessions with logind. In particular, for
42 + most systems, it will only track TTY logins, local desktop logins,
43 + and logins through remote shell connections.
44
42 -* The users chart counts _usernames_ not UID's. This is potentially
43 -important in configurations where multiple users have the same UID.
45 +- The users chart counts _usernames_ not UID's. This is potentially
46 + important in configurations where multiple users have the same UID.
47
45 -* The users chart counts any given user name up to once for _each_ type
46 -of login. So if the same user has a graphical and a console login on a
47 -system, they will show up once in the graphical count, and once in the
48 -console count.
48 +- The users chart counts any given user name up to once for _each_ type
49 + of login. So if the same user has a graphical and a console login on a
50 + system, they will show up once in the graphical count, and once in the
51 + console count.
52
50 -* Because the data collection process is rather expensive, this plugin
51 -is currently disabled by default, and needs to be explicitly enabled in
52 -`/etc/netdata/python.d.conf` before it will run.
53 +- Because the data collection process is rather expensive, this plugin
54 + is currently disabled by default, and needs to be explicitly enabled in
55 + `/etc/netdata/python.d.conf` before it will run.
56
57 ---
58
56 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Flogind%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
59 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Flogind%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/megacli/README.md
+19 -13
@@ -3,48 +3,54 @@
3 Module collects adapter, physical drives and battery stats.
4
5 **Requirements:**
6 - * `megacli` program
7 - * `sudo` program
8 - * `netdata` user needs to be able to be able to sudo the `megacli` program without password
6 +
7 +- `megacli` program
8 +- `sudo` program
9 +- `netdata` user needs to be able to be able to sudo the `megacli` program without password
10
11 To grab stats it executes:
11 - * `sudo -n megacli -LDPDInfo -aAll`
12 - * `sudo -n megacli -AdpBbuCmd -a0`
12
13 +- `sudo -n megacli -LDPDInfo -aAll`
14 +- `sudo -n megacli -AdpBbuCmd -a0`
15
16 It produces:
17
17 -1. **Adapter State**
18 +1. **Adapter State**
19 +
20 +2. **Physical Drives Media Errors**
21
19 -2. **Physical Drives Media Errors**
22 +3. **Physical Drives Predictive Failures**
23
21 -3. **Physical Drives Predictive Failures**
24 +4. **Battery Relative State of Charge**
25
23 -4. **Battery Relative State of Charge**
26 +5. **Battery Cycle Count**
27
25 -5. **Battery Cycle Count**
28 +## prerequisite
29
27 -### prerequisite
30 This module uses `megacli` which can only be executed by root. It uses
31 `sudo` and assumes that it is configured such that the `netdata` user can
32 execute `megacli` as root without password.
33
34 Add to `sudoers`:
35
34 - netdata ALL=(root) NOPASSWD: /path/to/megacli
36 +```
37 +netdata ALL=(root) NOPASSWD: /path/to/megacli
38 +```
39
40 ### configuration
41
42 **megacli** is disabled by default. Should be explicitly enabled in `python.d.conf`.
43 +
44 ```yaml
45 megacli: yes
46 ```
47
48 Battery stats disabled by default. To enable them modify `megacli.conf`.
49 +
50 ```yaml
51 do_battery: yes
52 ```
53
54 ---
55
50 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmegacli%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
56 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmegacli%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/memcached/README.md
+49 -36
@@ -2,58 +2,71 @@
2
3 Memcached monitoring module. Data grabbed from [stats interface](https://github.com/memcached/memcached/wiki/Commands#stats).
4
5 -1. **Network** in kilobytes/s
6 - * read
7 - * written
5 +1. **Network** in kilobytes/s
6
9 -2. **Connections** per second
10 - * current
11 - * rejected
12 - * total
7 + - read
8 + - written
9
14 -3. **Items** in cluster
15 - * current
16 - * total
10 +2. **Connections** per second
11
18 -4. **Evicted and Reclaimed** items
19 - * evicted
20 - * reclaimed
12 + - current
13 + - rejected
14 + - total
15
22 -5. **GET** requests/s
23 - * hits
24 - * misses
16 +3. **Items** in cluster
17
26 -6. **GET rate** rate in requests/s
27 - * rate
18 + - current
19 + - total
20
29 -7. **SET rate** rate in requests/s
30 - * rate
21 +4. **Evicted and Reclaimed** items
22
32 -8. **DELETE** requests/s
33 - * hits
34 - * misses
23 + - evicted
24 + - reclaimed
25
36 -9. **CAS** requests/s
37 - * hits
38 - * misses
39 - * bad value
26 +5. **GET** requests/s
27 +
28 + - hits
29 + - misses
30 +
31 +6. **GET rate** rate in requests/s
32 +
33 + - rate
34 +
35 +7. **SET rate** rate in requests/s
36 +
37 + - rate
38 +
39 +8. **DELETE** requests/s
40 +
41 + - hits
42 + - misses
43 +
44 +9. **CAS** requests/s
45 +
46 + - hits
47 + - misses
48 + - bad value
49
50 10. **Increment** requests/s
42 - * hits
43 - * misses
51 +
52 + - hits
53 + - misses
54
55 11. **Decrement** requests/s
46 - * hits
47 - * misses
56 +
57 + - hits
58 + - misses
59
60 12. **Touch** requests/s
50 - * hits
51 - * misses
61 +
62 + - hits
63 + - misses
64
65 13. **Touch rate** rate in requests/s
54 - * rate
66
56 -### configuration
67 + - rate
68 +
69 +## configuration
70
71 Sample:
72
@@ -68,4 +81,4 @@ If no configuration is given, module will attempt to connect to memcached instan
81
82 ---
83
71 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmemcached%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
84 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmemcached%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/mongodb/README.md
+143 -118
@@ -3,135 +3,161 @@
3 Module monitor mongodb performance and health metrics
4
5 **Requirements:**
6 - * `python-pymongo` package v2.4+.
6
8 -You need to install it manually.
7 +- `python-pymongo` package v2.4+.
8
9 +You need to install it manually.
10
11 Number of charts depends on mongodb version, storage engine and other features (replication):
12
13 -1. **Read requests**:
14 - * query
15 - * getmore (operation the cursor executes to get additional data from query)
16 -
17 -2. **Write requests**:
18 - * insert
19 - * delete
20 - * update
21 -
22 -3. **Active clients**:
23 - * readers (number of clients with read operations in progress or queued)
24 - * writers (number of clients with write operations in progress or queued)
25 -
26 -4. **Journal transactions**:
27 - * commits (count of transactions that have been written to the journal)
28 -
29 -5. **Data written to the journal**:
30 - * volume (volume of data)
31 -
32 -6. **Background flush** (MMAPv1):
33 - * average ms (average time taken by flushes to execute)
34 - * last ms (time taken by the last flush)
35 -
36 -8. **Read tickets** (WiredTiger):
37 - * in use (number of read tickets in use)
38 - * available (number of available read tickets remaining)
39 -
40 -9. **Write tickets** (WiredTiger):
41 - * in use (number of write tickets in use)
42 - * available (number of available write tickets remaining)
43 -
44 -10. **Cursors**:
45 - * opened (number of cursors currently opened by MongoDB for clients)
46 - * timedOut (number of cursors that have timed)
47 - * noTimeout (number of open cursors with timeout disabled)
48 -
49 -11. **Connections**:
50 - * connected (number of clients currently connected to the database server)
51 - * unused (number of unused connections available for new clients)
52 -
53 -12. **Memory usage metrics**:
54 - * virtual
55 - * resident (amount of memory used by the database process)
56 - * mapped
57 - * non mapped
58 -
59 -13. **Page faults**:
60 - * page faults (number of times MongoDB had to request from disk)
61 -
62 -14. **Cache metrics** (WiredTiger):
63 - * percentage of bytes currently in the cache (amount of space taken by cached data)
64 - * percantage of tracked dirty bytes in the cache (amount of space taken by dirty data)
65 -
66 -15. **Pages evicted from cache** (WiredTiger):
67 - * modified
68 - * unmodified
69 -
70 -16. **Queued requests**:
71 - * readers (number of read request currently queued)
72 - * writers (number of write request currently queued)
73 -
74 -17. **Errors**:
75 - * msg (number of message assertions raised)
76 - * warning (number of warning assertions raised)
77 - * regular (number of regular assertions raised)
78 - * user (number of assertions corresponding to errors generated by users)
79 -
80 -18. **Storage metrics** (one chart for every database)
81 - * dataSize (size of all documents + padding in the database)
82 - * indexSize (size of all indexes in the database)
83 - * storageSize (size of all extents in the database)
84 -
85 -19. **Documents in the database** (one chart for all databases)
86 - * documents (number of objects in the database among all the collections)
87 -
88 -20. **tcmalloc metrics**
89 - * central cache free
90 - * current total thread cache
91 - * pageheap free
92 - * pageheap unmapped
93 - * thread cache free
94 - * transfer cache free
95 - * heap size
96 -
97 -21. **Commands total/failed rate**
98 - * count
99 - * createIndex
100 - * delete
101 - * eval
102 - * findAndModify
103 - * insert
104 -
105 -22. **Locks metrics** (acquireCount metrics - number of times the lock was acquired in the specified mode)
106 - * Global lock
107 - * Database lock
108 - * Collection lock
109 - * Metadata lock
110 - * oplog lock
111 -
112 -23. **Replica set members state**
113 - * state
114 -
115 -24. **Oplog window**
116 - * window (interval of time between the oldest and the latest entries in the oplog)
117 -
118 -25. **Replication lag**
119 - * member (time when last entry from the oplog was applied for every member)
120 -
121 -26. **Replication set member heartbeat latency**
122 - * member (time when last heartbeat was received from replica set member)
123 -
124 -### prerequisite
13 +1. **Read requests**:
14 +
15 + - query
16 + - getmore (operation the cursor executes to get additional data from query)
17 +
18 +2. **Write requests**:
19 +
20 + - insert
21 + - delete
22 + - update
23 +
24 +3. **Active clients**:
25 +
26 + - readers (number of clients with read operations in progress or queued)
27 + - writers (number of clients with write operations in progress or queued)
28 +
29 +4. **Journal transactions**:
30 +
31 + - commits (count of transactions that have been written to the journal)
32 +
33 +5. **Data written to the journal**:
34 +
35 + - volume (volume of data)
36 +
37 +6. **Background flush** (MMAPv1):
38 +
39 + - average ms (average time taken by flushes to execute)
40 + - last ms (time taken by the last flush)
41 +
42 +7. **Read tickets** (WiredTiger):
43 +
44 + - in use (number of read tickets in use)
45 + - available (number of available read tickets remaining)
46 +
47 +8. **Write tickets** (WiredTiger):
48 +
49 + - in use (number of write tickets in use)
50 + - available (number of available write tickets remaining)
51 +
52 +9. **Cursors**:
53 +
54 +- opened (number of cursors currently opened by MongoDB for clients)
55 +- timedOut (number of cursors that have timed)
56 +- noTimeout (number of open cursors with timeout disabled)
57 +
58 +10. **Connections**:
59 +
60 + - connected (number of clients currently connected to the database server)
61 + - unused (number of unused connections available for new clients)
62 +
63 +11. **Memory usage metrics**:
64 +
65 + - virtual
66 + - resident (amount of memory used by the database process)
67 + - mapped
68 + - non mapped
69 +
70 +12. **Page faults**:
71 +
72 + - page faults (number of times MongoDB had to request from disk)
73 +
74 +13. **Cache metrics** (WiredTiger):
75 +
76 + - percentage of bytes currently in the cache (amount of space taken by cached data)
77 + - percantage of tracked dirty bytes in the cache (amount of space taken by dirty data)
78 +
79 +14. **Pages evicted from cache** (WiredTiger):
80 +
81 + - modified
82 + - unmodified
83 +
84 +15. **Queued requests**:
85 +
86 + - readers (number of read request currently queued)
87 + - writers (number of write request currently queued)
88 +
89 +16. **Errors**:
90 +
91 + - msg (number of message assertions raised)
92 + - warning (number of warning assertions raised)
93 + - regular (number of regular assertions raised)
94 + - user (number of assertions corresponding to errors generated by users)
95 +
96 +17. **Storage metrics** (one chart for every database)
97 +
98 + - dataSize (size of all documents + padding in the database)
99 + - indexSize (size of all indexes in the database)
100 + - storageSize (size of all extents in the database)
101 +
102 +18. **Documents in the database** (one chart for all databases)
103 +
104 +- documents (number of objects in the database among all the collections)
105 +
106 +19. **tcmalloc metrics**
107 +
108 + - central cache free
109 + - current total thread cache
110 + - pageheap free
111 + - pageheap unmapped
112 + - thread cache free
113 + - transfer cache free
114 + - heap size
115 +
116 +20. **Commands total/failed rate**
117 +
118 + - count
119 + - createIndex
120 + - delete
121 + - eval
122 + - findAndModify
123 + - insert
124 +
125 +21. **Locks metrics** (acquireCount metrics - number of times the lock was acquired in the specified mode)
126 +
127 + - Global lock
128 + - Database lock
129 + - Collection lock
130 + - Metadata lock
131 + - oplog lock
132 +
133 +22. **Replica set members state**
134 +
135 + - state
136 +
137 +23. **Oplog window**
138 +
139 + - window (interval of time between the oldest and the latest entries in the oplog)
140 +
141 +24. **Replication lag**
142 +
143 + - member (time when last entry from the oplog was applied for every member)
144 +
145 +25. **Replication set member heartbeat latency**
146 +
147 + - member (time when last heartbeat was received from replica set member)
148 +
149 +## prerequisite
150 +
151 Create a read-only user for Netdata in the admin database.
152
127 -1. Authenticate as the admin user.
153 +1. Authenticate as the admin user.
154
155 ```
156 use admin
157 db.auth("admin", "<MONGODB_ADMIN_PASSWORD>")
158 ```
159
134 -2. Create a user.
160 +2. Create a user.
161
162 ```
163 # MongoDB 2.x.
@@ -161,11 +187,10 @@ local:
187 port : 27017
188 user : 'netdata'
189 pass : 'netdata'
164 -
190 ```
191
192 If no configuration is given, module will attempt to connect to mongodb daemon on `127.0.0.1:27017` address
193
194 ---
195
171 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmongodb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
196 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmongodb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/monit/README.md
+16 -13
@@ -2,21 +2,24 @@
2
3 Monit monitoring module. Data is grabbed from stats XML interface (exists for a long time, but not mentioned in official documentation). Mostly this plugin shows statuses of monit targets, i.e. [statuses of specified checks](https://mmonit.com/monit/documentation/monit.html#Service-checks).
4
5 -1. **Filesystems**
6 - * Filesystems
7 - * Directories
8 - * Files
9 - * Pipes
5 +1. **Filesystems**
6
11 -2. **Applications**
12 - * Processes (+threads/childs)
13 - * Programs
7 + - Filesystems
8 + - Directories
9 + - Files
10 + - Pipes
11
15 -3. **Network**
16 - * Hosts (+latency)
17 - * Network interfaces
12 +2. **Applications**
13
19 -### configuration
14 + - Processes (+threads/childs)
15 + - Programs
16 +
17 +3. **Network**
18 +
19 + - Hosts (+latency)
20 + - Network interfaces
21 +
22 +## configuration
23
24 Sample:
25
@@ -32,4 +35,4 @@ If no configuration is given, module will attempt to connect to monit as `http:/
35
36 ---
37
35 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmonit%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
38 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmonit%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/mysql/README.md
+273 -223
@@ -3,255 +3,305 @@
3 Module monitors one or more mysql servers
4
5 **Requirements:**
6 - * python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)
6 +
7 +- python library [MySQLdb](https://github.com/PyMySQL/mysqlclient-python) (faster) or [PyMySQL](https://github.com/PyMySQL/PyMySQL) (slower)
8
9 It will produce following charts (if data is available):
10
10 -1. **Bandwidth** in kilobits/s
11 - * in
12 - * out
13 -
14 -2. **Queries** in queries/sec
15 - * queries
16 - * questions
17 - * slow queries
18 -
19 -3. **Queries By Type** in queries/s
20 - * select
21 - * delete
22 - * update
23 - * insert
24 - * cache hits
25 - * replace
26 -
27 -4. **Handlerse** in handlers/s
28 - * commit
29 - * delete
30 - * prepare
31 - * read first
32 - * read key
33 - * read next
34 - * read prev
35 - * read rnd
36 - * read rnd next
37 - * rollback
38 - * savepoint
39 - * savepoint rollback
40 - * update
41 - * write
42 -
43 -4. **Table Locks** in locks/s
44 - * immediate
45 - * waited
46 -
47 -5. **Table Select Join Issuess** in joins/s
48 - * full join
49 - * full range join
50 - * range
51 - * range check
52 - * scan
53 -
54 -6. **Table Sort Issuess** in joins/s
55 - * merge passes
56 - * range
57 - * scan
58 -
59 -7. **Tmp Operations** in created/s
60 - * disk tables
61 - * files
62 - * tables
63 -
64 -8. **Connections** in connections/s
65 - * all
66 - * aborted
67 -
68 -9. **Connections Active** in connections/s
69 - * active
70 - * limit
71 - * max active
72 -
73 -10. **Binlog Cache** in threads
74 - * disk
75 - * all
76 -
77 -11. **Threads** in transactions/s
78 - * connected
79 - * cached
80 - * running
81 -
82 -12. **Threads Creation Rate** in threads/s
83 - * created
84 -
85 -13. **Threads Cache Misses** in misses
86 - * misses
87 -
88 -14. **InnoDB I/O Bandwidth** in KiB/s
89 - * read
90 - * write
91 -
92 -15. **InnoDB I/O Operations** in operations/s
93 - * reads
94 - * writes
95 - * fsyncs
96 -
97 -16. **InnoDB Pending I/O Operations** in operations/s
98 - * reads
99 - * writes
100 - * fsyncs
101 -
102 -17. **InnoDB Log Operations** in operations/s
103 - * waits
104 - * write requests
105 - * writes
106 -
107 -18. **InnoDB OS Log Pending Operations** in operations
108 - * fsyncs
109 - * writes
110 -
111 -19. **InnoDB OS Log Operations** in operations/s
112 - * fsyncs
113 -
114 -20. **InnoDB OS Log Bandwidth** in KiB/s
115 - * write
116 -
117 -21. **InnoDB Current Row Locks** in operations
118 - * current waits
119 -
120 -22. **InnoDB Row Operations** in operations/s
121 - * inserted
122 - * read
123 - * updated
124 - * deleted
125 -
126 -23. **InnoDB Buffer Pool Pagess** in pages
127 - * data
128 - * dirty
129 - * free
130 - * misc
131 - * total
132 -
133 -24. **InnoDB Buffer Pool Flush Pages Requests** in requests/s
134 - * flush pages
135 -
136 -25. **InnoDB Buffer Pool Bytes** in MiB
137 - * data
138 - * dirty
139 -
140 -26. **InnoDB Buffer Pool Operations** in operations/s
141 - * disk reads
142 - * wait free
143 -
144 -27. **QCache Operations** in queries/s
145 - * hits
146 - * lowmem prunes
147 - * inserts
148 - * no caches
149 -
150 -28. **QCache Queries in Cache** in queries
151 - * queries
152 -
153 -29. **QCache Free Memory** in MiB
154 - * free
155 -
156 -30. **QCache Memory Blocks** in blocks
157 - * free
158 - * total
159 -
160 -31. **MyISAM Key Cache Blocks** in blocks
161 - * unused
162 - * used
163 - * not flushed
164 -
165 -32. **MyISAM Key Cache Requests** in requests/s
166 - * reads
167 - * writes
11 +1. **Bandwidth** in kilobits/s
12 +
13 + - in
14 + - out
15 +
16 +2. **Queries** in queries/sec
17 +
18 + - queries
19 + - questions
20 + - slow queries
21 +
22 +3. **Queries By Type** in queries/s
23 +
24 + - select
25 + - delete
26 + - update
27 + - insert
28 + - cache hits
29 + - replace
30 +
31 +4. **Handlerse** in handlers/s
32 +
33 + - commit
34 + - delete
35 + - prepare
36 + - read first
37 + - read key
38 + - read next
39 + - read prev
40 + - read rnd
41 + - read rnd next
42 + - rollback
43 + - savepoint
44 + - savepoint rollback
45 + - update
46 + - write
47 +
48 +5. **Table Locks** in locks/s
49 +
50 + - immediate
51 + - waited
52 +
53 +6. **Table Select Join Issuess** in joins/s
54 +
55 + - full join
56 + - full range join
57 + - range
58 + - range check
59 + - scan
60 +
61 +7. **Table Sort Issuess** in joins/s
62 +
63 + - merge passes
64 + - range
65 + - scan
66 +
67 +8. **Tmp Operations** in created/s
68 +
69 + - disk tables
70 + - files
71 + - tables
72 +
73 +9. **Connections** in connections/s
74 +
75 + - all
76 + - aborted
77 +
78 +10. **Connections Active** in connections/s
79 +
80 + - active
81 + - limit
82 + - max active
83 +
84 +11. **Binlog Cache** in threads
85 +
86 + - disk
87 + - all
88 +
89 +12. **Threads** in transactions/s
90 +
91 + - connected
92 + - cached
93 + - running
94 +
95 +13. **Threads Creation Rate** in threads/s
96 +
97 + - created
98 +
99 +14. **Threads Cache Misses** in misses
100 +
101 + - misses
102 +
103 +15. **InnoDB I/O Bandwidth** in KiB/s
104 +
105 + - read
106 + - write
107 +
108 +16. **InnoDB I/O Operations** in operations/s
109 +
110 + - reads
111 + - writes
112 + - fsyncs
113 +
114 +17. **InnoDB Pending I/O Operations** in operations/s
115 +
116 + - reads
117 + - writes
118 + - fsyncs
119 +
120 +18. **InnoDB Log Operations** in operations/s
121 +
122 + - waits
123 + - write requests
124 + - writes
125 +
126 +19. **InnoDB OS Log Pending Operations** in operations
127 +
128 + - fsyncs
129 + - writes
130 +
131 +20. **InnoDB OS Log Operations** in operations/s
132 +
133 + - fsyncs
134 +
135 +21. **InnoDB OS Log Bandwidth** in KiB/s
136 +
137 + - write
138 +
139 +22. **InnoDB Current Row Locks** in operations
140 +
141 + - current waits
142 +
143 +23. **InnoDB Row Operations** in operations/s
144 +
145 + - inserted
146 + - read
147 + - updated
148 + - deleted
149 +
150 +24. **InnoDB Buffer Pool Pagess** in pages
151 +
152 + - data
153 + - dirty
154 + - free
155 + - misc
156 + - total
157 +
158 +25. **InnoDB Buffer Pool Flush Pages Requests** in requests/s
159 +
160 + - flush pages
161 +
162 +26. **InnoDB Buffer Pool Bytes** in MiB
163 +
164 + - data
165 + - dirty
166 +
167 +27. **InnoDB Buffer Pool Operations** in operations/s
168 +
169 + - disk reads
170 + - wait free
171 +
172 +28. **QCache Operations** in queries/s
173 +
174 + - hits
175 + - lowmem prunes
176 + - inserts
177 + - no caches
178 +
179 +29. **QCache Queries in Cache** in queries
180 +
181 + - queries
182 +
183 +30. **QCache Free Memory** in MiB
184 +
185 + - free
186 +
187 +31. **QCache Memory Blocks** in blocks
188 +
189 + - free
190 + - total
191 +
192 +32. **MyISAM Key Cache Blocks** in blocks
193 +
194 + - unused
195 + - used
196 + - not flushed
197
198 33. **MyISAM Key Cache Requests** in requests/s
170 - * reads
171 - * writes
199
173 -34. **MyISAM Key Cache Disk Operations** in operations/s
174 - * reads
175 - * writes
200 + - reads
201 + - writes
202 +
203 +34. **MyISAM Key Cache Requests** in requests/s
204 +
205 + - reads
206 + - writes
207 +
208 +35. **MyISAM Key Cache Disk Operations** in operations/s
209 +
210 + - reads
211 + - writes
212 +
213 +36. **Open Files** in files
214 +
215 + - files
216 +
217 +37. **Opened Files Rate** in files/s
218 +
219 + - files
220
177 -35. **Open Files** in files
178 - * files
221 +38. **Binlog Statement Cache** in statements/s
222
180 -36. **Opened Files Rate** in files/s
181 - * files
223 + - disk
224 + - all
225
183 -37. **Binlog Statement Cache** in statements/s
184 - * disk
185 - * all
226 +39. **Connection Errors** in errors/s
227
187 -38. **Connection Errors** in errors/s
188 - * accept
189 - * internal
190 - * max
191 - * peer addr
192 - * select
193 - * tcpwrap
228 + - accept
229 + - internal
230 + - max
231 + - peer addr
232 + - select
233 + - tcpwrap
234
195 -39. **Slave Behind Seconds** in seconds
196 - * time
235 +40. **Slave Behind Seconds** in seconds
236
198 -40. **I/O / SQL Thread Running State** in bool
199 - * sql
200 - * io
237 + - time
238
202 -41. **Replicated Writesets** in writesets/s
203 - * rx
204 - * tx
239 +41. **I/O / SQL Thread Running State** in bool
240
206 -42. **Replicated Bytes** in KiB/s
207 - * rx
208 - * tx
241 + - sql
242 + - io
243
210 -43. **Galera Queue** in writesets
211 - * rx
212 - * tx
244 +42. **Replicated Writesets** in writesets/s
245
214 -44. **Replication Conflicts** in transactions
215 - * bf aborts
216 - * cert fails
246 + - rx
247 + - tx
248
218 -45. **Flow Control** in ms
219 - * paused
249 +43. **Replicated Bytes** in KiB/s
250
221 -46. **Users CPU time** in percentage
222 - * users
251 + - rx
252 + - tx
253 +
254 +44. **Galera Queue** in writesets
255 +
256 + - rx
257 + - tx
258 +
259 +45. **Replication Conflicts** in transactions
260 +
261 + - bf aborts
262 + - cert fails
263 +
264 +46. **Flow Control** in ms
265 +
266 + - paused
267 +
268 +47. **Users CPU time** in percentage
269 +
270 + - users
271
272 **Per user statistics:**
273
226 -1. **Rows Operations** in operations/s
227 - * read
228 - * send
229 - * updated
230 - * inserted
231 - * deleted
274 +1. **Rows Operations** in operations/s
275
233 -2. **Commands** in commands/s
234 - * select
235 - * update
236 - * other
276 + - read
277 + - send
278 + - updated
279 + - inserted
280 + - deleted
281
282 +2. **Commands** in commands/s
283
239 -### configuration
284 + - select
285 + - update
286 + - other
287 +
288 +## configuration
289
290 You can provide, per server, the following:
291
243 -1. username which have access to database (defaults to 'root')
244 -2. password (defaults to none)
245 -3. mysql my.cnf configuration file
246 -4. mysql socket (optional)
247 -5. mysql host (ip or hostname)
248 -6. mysql port (defaults to 3306)
249 -7. ssl connection parameters
250 - - key: the path name of the client private key file.
251 - - cert: the path name of the client public key certificate file.
252 - - ca: the path name of the Certificate Authority (CA) certificate file. This option, if used, must specify the same certificate used by the server.
253 - - capath: the path name of the directory that contains trusted SSL CA certificate files.
254 - - cipher: the list of permitted ciphers for SSL encryption.
292 +1. username which have access to database (defaults to 'root')
293 +2. password (defaults to none)
294 +3. mysql my.cnf configuration file
295 +4. mysql socket (optional)
296 +5. mysql host (ip or hostname)
297 +6. mysql port (defaults to 3306)
298 +7. ssl connection parameters
299 +
300 + - key: the path name of the client private key file.
301 + - cert: the path name of the client public key certificate file.
302 + - ca: the path name of the Certificate Authority (CA) certificate file. This option, if used, must specify the same certificate used by the server.
303 + - capath: the path name of the directory that contains trusted SSL CA certificate files.
304 + - cipher: the list of permitted ciphers for SSL encryption.
305
306 Here is an example for 3 servers:
307
@@ -282,4 +332,4 @@ If no configuration is given, module will attempt to connect to mysql server via
332
333 ---
334
285 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmysql%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
335 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fmysql%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/nginx/README.md
+20 -15
@@ -3,29 +3,34 @@
3 This module will monitor one or more nginx servers depending on configuration. Servers can be either local or remote.
4
5 **Requirements:**
6 - * nginx with configured 'ngx_http_stub_status_module'
7 - * 'location /stub_status'
6 +
7 +- nginx with configured 'ngx_http_stub_status_module'
8 +- 'location /stub_status'
9
10 Example nginx configuration can be found in 'python.d/nginx.conf'
11
12 It produces following charts:
13
13 -1. **Active Connections**
14 - * active
14 +1. **Active Connections**
15 +
16 + - active
17 +
18 +2. **Requests** in requests/s
19 +
20 + - requests
21 +
22 +3. **Active Connections by Status**
23
16 -2. **Requests** in requests/s
17 - * requests
24 + - reading
25 + - writing
26 + - waiting
27
19 -3. **Active Connections by Status**
20 - * reading
21 - * writing
22 - * waiting
28 +4. **Connections Rate** in connections/s
29
24 -4. **Connections Rate** in connections/s
25 - * accepts
26 - * handled
30 + - accepts
31 + - handled
32
28 -### configuration
33 +## configuration
34
35 Needs only `url` to server's `stub_status`
36
@@ -43,4 +48,4 @@ Without configuration, module attempts to connect to `http://localhost/stub_stat
48
49 ---
50
46 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnginx%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
51 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnginx%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/nginx_plus/README.md
+96 -71
@@ -7,109 +7,134 @@ Example nginx_plus configuration can be found in 'python.d/nginx_plus.conf'
7
8 It produces following charts:
9
10 -1. **Requests total** in requests/s
11 - * total
10 +1. **Requests total** in requests/s
11
13 -2. **Requests current** in requests
14 - * current
12 + - total
13
16 -3. **Connection Statistics** in connections/s
17 - * accepted
18 - * dropped
14 +2. **Requests current** in requests
15
20 -4. **Workers Statistics** in workers
21 - * idle
22 - * active
16 + - current
17
24 -5. **SSL Handshakes** in handshakes/s
25 - * successful
26 - * failed
18 +3. **Connection Statistics** in connections/s
19
28 -6. **SSL Session Reuses** in sessions/s
29 - * reused
20 + - accepted
21 + - dropped
22
31 -7. **SSL Memory Usage** in percent
32 - * usage
23 +4. **Workers Statistics** in workers
24
34 -8. **Processes** in processes
35 - * respawned
25 + - idle
26 + - active
27 +
28 +5. **SSL Handshakes** in handshakes/s
29 +
30 + - successful
31 + - failed
32 +
33 +6. **SSL Session Reuses** in sessions/s
34 +
35 + - reused
36 +
37 +7. **SSL Memory Usage** in percent
38 +
39 + - usage
40 +
41 +8. **Processes** in processes
42 +
43 + - respawned
44
45 For every server zone:
46
39 -1. **Processing** in requests
40 - * processing
47 +1. **Processing** in requests
48 +
49 +- processing
50 +
51 +2. **Requests** in requests/s
52
42 -2. **Requests** in requests/s
43 - * requests
53 + - requests
54
45 -3. **Responses** in requests/s
46 - * 1xx
47 - * 2xx
48 - * 3xx
49 - * 4xx
50 - * 5xx
55 +3. **Responses** in requests/s
56
52 -4. **Traffic** in kilobits/s
53 - * received
54 - * sent
57 + - 1xx
58 + - 2xx
59 + - 3xx
60 + - 4xx
61 + - 5xx
62 +
63 +4. **Traffic** in kilobits/s
64 +
65 + - received
66 + - sent
67
68 For every upstream:
69
58 -1. **Peers Requests** in requests/s
59 - * peer name (dimension per peer)
70 +1. **Peers Requests** in requests/s
71 +
72 + - peer name (dimension per peer)
73
61 -2. **All Peers Responses** in responses/s
62 - * 1xx
63 - * 2xx
64 - * 3xx
65 - * 4xx
66 - * 5xx
74 +2. **All Peers Responses** in responses/s
75
68 -3. **Peer Responses** in requests/s (for every peer)
69 - * 1xx
70 - * 2xx
71 - * 3xx
72 - * 4xx
73 - * 5xx
76 + - 1xx
77 + - 2xx
78 + - 3xx
79 + - 4xx
80 + - 5xx
81
75 -4. **Peers Connections** in active
76 - * peer name (dimension per peer)
82 +3. **Peer Responses** in requests/s (for every peer)
83
78 -5. **Peers Connections Usage** in percent
79 - * peer name (dimension per peer)
84 + - 1xx
85 + - 2xx
86 + - 3xx
87 + - 4xx
88 + - 5xx
89
81 -6. **All Peers Traffic** in KB
82 - * received
83 - * sent
90 +4. **Peers Connections** in active
91
85 -7. **Peer Traffic** in KB/s (for every peer)
86 - * received
87 - * sent
92 + - peer name (dimension per peer)
93
89 -8. **Peer Timings** in ms (for every peer)
90 - * header
91 - * response
94 +5. **Peers Connections Usage** in percent
95
93 -9. **Memory Usage** in percent
94 - * usage
96 + - peer name (dimension per peer)
97 +
98 +6. **All Peers Traffic** in KB
99 +
100 + - received
101 + - sent
102 +
103 +7. **Peer Traffic** in KB/s (for every peer)
104 +
105 + - received
106 + - sent
107 +
108 +8. **Peer Timings** in ms (for every peer)
109 +
110 + - header
111 + - response
112 +
113 +9. **Memory Usage** in percent
114 +
115 + - usage
116
117 10. **Peers Status** in state
97 - * peer name (dimension per peer)
118 +
119 + - peer name (dimension per peer)
120
121 11. **Peers Total Downtime** in seconds
100 - * peer name (dimension per peer)
122 +
123 + - peer name (dimension per peer)
124
125 For every cache:
126
104 -1. **Traffic** in KB
105 - * served
106 - * written
107 - * bypass
127 +1. **Traffic** in KB
128 +
129 + - served
130 + - written
131 + - bypass
132 +
133 +2. **Memory Usage** in percent
134
109 -2. **Memory Usage** in percent
110 - * usage
135 + - usage
136
112 -### configuration
137 +## configuration
138
139 Needs only `url` to server's `status`
140
@@ -124,4 +149,4 @@ Without configuration, module fail to start.
149
150 ---
151
127 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnginx_plus%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
152 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnginx_plus%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/nsd/README.md
+48 -42
@@ -3,54 +3,60 @@
3 Module uses the `nsd-control stats_noreset` command to provide `nsd` statistics.
4
5 **Requirements:**
6 - * Version of `nsd` must be 4.0+
7 - * Netdata must have permissions to run `nsd-control stats_noreset`
6 +
7 +- Version of `nsd` must be 4.0+
8 +- Netdata must have permissions to run `nsd-control stats_noreset`
9
10 It produces:
11
11 -1. **Queries**
12 - * queries
13 -
14 -2. **Zones**
15 - * master
16 - * slave
17 -
18 -3. **Protocol**
19 - * udp
20 - * udp6
21 - * tcp
22 - * tcp6
23 -
24 -4. **Query Type**
25 - * A
26 - * NS
27 - * CNAME
28 - * SOA
29 - * PTR
30 - * HINFO
31 - * MX
32 - * NAPTR
33 - * TXT
34 - * AAAA
35 - * SRV
36 - * ANY
37 -
38 -5. **Transfer**
39 - * NOTIFY
40 - * AXFR
41 -
42 -6. **Return Code**
43 - * NOERROR
44 - * FORMERR
45 - * SERVFAIL
46 - * NXDOMAIN
47 - * NOTIMP
48 - * REFUSED
49 - * YXDOMAIN
12 +1. **Queries**
13 +
14 + - queries
15 +
16 +2. **Zones**
17 +
18 + - master
19 + - slave
20 +
21 +3. **Protocol**
22 +
23 + - udp
24 + - udp6
25 + - tcp
26 + - tcp6
27 +
28 +4. **Query Type**
29 +
30 + - A
31 + - NS
32 + - CNAME
33 + - SOA
34 + - PTR
35 + - HINFO
36 + - MX
37 + - NAPTR
38 + - TXT
39 + - AAAA
40 + - SRV
41 + - ANY
42 +
43 +5. **Transfer**
44 +
45 + - NOTIFY
46 + - AXFR
47 +
48 +6. **Return Code**
49
50 + - NOERROR
51 + - FORMERR
52 + - SERVFAIL
53 + - NXDOMAIN
54 + - NOTIMP
55 + - REFUSED
56 + - YXDOMAIN
57
58 Configuration is not needed.
59
60 ---
61
56 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnsd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
62 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnsd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/ntpd/README.md
+31 -28
@@ -3,8 +3,9 @@
3 Module monitors the system variables of the local `ntpd` daemon (optional incl. variables of the polled peers) using the NTP Control Message Protocol via UDP socket, similar to `ntpq`, the [standard NTP query program](http://doc.ntp.org/current-stable/ntpq.html).
4
5 **Requirements:**
6 - * Version: `NTPv4`
7 - * Local interrogation allowed in `/etc/ntp.conf` (default):
6 +
7 +- Version: `NTPv4`
8 +- Local interrogation allowed in `/etc/ntp.conf` (default):
9
10 ```
11 # Local users may interrogate the ntp server more closely.
@@ -14,31 +15,33 @@ restrict ::1
15
16 It produces:
17
17 -1. system
18 - * offset
19 - * jitter
20 - * frequency
21 - * delay
22 - * dispersion
23 - * stratum
24 - * tc
25 - * precision
26 -
27 -2. peers
28 - * offset
29 - * delay
30 - * dispersion
31 - * jitter
32 - * rootdelay
33 - * rootdispersion
34 - * stratum
35 - * hmode
36 - * pmode
37 - * hpoll
38 - * ppoll
39 - * precision
40 -
41 -**configuration**
18 +1. system
19 +
20 + - offset
21 + - jitter
22 + - frequency
23 + - delay
24 + - dispersion
25 + - stratum
26 + - tc
27 + - precision
28 +
29 +2. peers
30 +
31 + - offset
32 + - delay
33 + - dispersion
34 + - jitter
35 + - rootdelay
36 + - rootdispersion
37 + - stratum
38 + - hmode
39 + - pmode
40 + - hpoll
41 + - ppoll
42 + - precision
43 +
44 +## configuration
45
46 Sample:
47
@@ -70,4 +73,4 @@ If no configuration is given, module will attempt to connect to `ntpd` on `::1:1
73
74 ---
75
73 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fntpd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
76 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fntpd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/nvidia_smi/README.md
+20 -18
@@ -4,37 +4,39 @@ This module monitors the `nvidia-smi` cli tool.
4
5 **Requirements and Notes:**
6
7 - * You must have the `nvidia-smi` tool installed and your NVIDIA GPU(s) must support the tool. Mostly the newer high end models used for AI / ML and Crypto or Pro range, read more about [nvidia_smi](https://developer.nvidia.com/nvidia-system-management-interface).
7 +- You must have the `nvidia-smi` tool installed and your NVIDIA GPU(s) must support the tool. Mostly the newer high end models used for AI / ML and Crypto or Pro range, read more about [nvidia_smi](https://developer.nvidia.com/nvidia-system-management-interface).
8
9 - * You must enable this plugin as its disabled by default due to minor performance issues.
9 +- You must enable this plugin as its disabled by default due to minor performance issues.
10
11 - * On some systems when the GPU is idle the `nvidia-smi` tool unloads and there is added latency again when it is next queried. If you are running GPUs under constant workload this isn't likely to be an issue.
11 +- On some systems when the GPU is idle the `nvidia-smi` tool unloads and there is added latency again when it is next queried. If you are running GPUs under constant workload this isn't likely to be an issue.
12
13 - * Currently the `nvidia-smi` tool is being queried via cli. Updating the plugin to use the nvidia c/c++ API directly should resolve this issue. See discussion here: https://github.com/netdata/netdata/pull/4357
13 +- Currently the `nvidia-smi` tool is being queried via cli. Updating the plugin to use the nvidia c/c++ API directly should resolve this issue. See discussion here: <https://github.com/netdata/netdata/pull/4357>
14
15 - * Contributions are welcome.
15 +- Contributions are welcome.
16
17 - * Make sure `netdata` user can execute `/usr/bin/nvidia-smi` or wherever your binary is.
17 +- Make sure `netdata` user can execute `/usr/bin/nvidia-smi` or wherever your binary is.
18
19 - * `poll_seconds` is how often in seconds the tool is polled for as an integer.
19 +- `poll_seconds` is how often in seconds the tool is polled for as an integer.
20
21 It produces:
22
23 -1. Per GPU
24 - * GPU utilization
25 - * memory allocation
26 - * memory utilization
27 - * fan speed
28 - * power usage
29 - * temperature
30 - * clock speed
31 - * PCI bandwidth
23 +1. Per GPU
24
33 -### configuration
25 + - GPU utilization
26 + - memory allocation
27 + - memory utilization
28 + - fan speed
29 + - power usage
30 + - temperature
31 + - clock speed
32 + - PCI bandwidth
33 +
34 +## configuration
35
36 Sample:
37
38 ```yaml
39 poll_seconds: 1
40 ```
40 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnvidia_smi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
41 +
42 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fnvidia_smi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/openldap/README.md
+32 -26
@@ -4,42 +4,48 @@ This module provides statistics information from openldap (slapd) server.
4 Statistics are taken from LDAP monitoring interface. Manual page, slapd-monitor(5) is available.
5
6 **Requirement:**
7 -* Follow instructions from https://www.openldap.org/doc/admin24/monitoringslapd.html to activate monitoring interface.
8 -* Install python ldap module `pip install ldap` or `yum install python-ldap`
9 -* Modify openldap.conf with your credentials
7 +
8 +- Follow instructions from <https://www.openldap.org/doc/admin24/monitoringslapd.html> to activate monitoring interface.
9 +- Install python ldap module `pip install ldap` or `yum install python-ldap`
10 +- Modify openldap.conf with your credentials
11
12 ### Module gives information with following charts:
13
13 -1. **connections**
14 - * total connections number
14 +1. **connections**
15 +
16 + - total connections number
17 +
18 +2. **Bytes**
19 +
20 + - sent
21 +
22 +3. **operations**
23 +
24 + - completed
25 + - initiated
26
16 -2. **Bytes**
17 - * sent
27 +4. **referrals**
28
19 -3. **operations**
20 - * completed
21 - * initiated
29 + - sent
30
23 -4. **referrals**
24 - * sent
31 +5. **entries**
32
26 -5. **entries**
27 - * sent
33 + - sent
34
29 -6. **ldap operations**
30 - * bind
31 - * search
32 - * unbind
33 - * add
34 - * delete
35 - * modify
36 - * compare
35 +6. **ldap operations**
36
38 -7. **waiters**
39 - * read
40 - * write
37 + - bind
38 + - search
39 + - unbind
40 + - add
41 + - delete
42 + - modify
43 + - compare
44
45 +7. **waiters**
46
47 + - read
48 + - write
49
50 ### configuration
51
@@ -56,4 +62,4 @@ openldap:
62
63 ---
64
59 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fopenldap%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
65 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fopenldap%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/oracledb/README.md
+37 -36
@@ -3,46 +3,48 @@
3 Module monitor oracledb performance and health metrics.
4
5 **Requirements:**
6 - - `cx_Oracle` package.
7 - - Oracle Client (using `cx_Oracle` requires Oracle Client libraries to be installed).
6 +
7 +- `cx_Oracle` package.
8 +- Oracle Client (using `cx_Oracle` requires Oracle Client libraries to be installed).
9
10 It produces following charts:
10 - - session activity
11 - - Session Count
12 - - Session Limit Usage
13 - - Logons
14 - - disk activity
15 - - Physical Disk Reads/Writes
16 - - Sorts On Disk
17 - - Full Table Scans
18 - - database and buffer activity
19 - - Database Wait Time Ratio
20 - - Shared Pool Free Memory
21 - - In-Memory Sorts Ratio
22 - - SQL Service Response Time
23 - - User Rollbacks
24 - - Enqueue Timeouts
25 - - cache
26 - - Cache Hit Ratio
27 - - Global Cache Blocks Events
28 - - activities
29 - - Activities
30 - - wait time
31 - - Wait Time
32 - - tablespace
33 - - Size
34 - - Usage
35 - - Usage In Percent
36 -
37 -### prerequisite
11 +
12 +- session activity
13 + - Session Count
14 + - Session Limit Usage
15 + - Logons
16 +- disk activity
17 + - Physical Disk Reads/Writes
18 + - Sorts On Disk
19 + - Full Table Scans
20 +- database and buffer activity
21 + - Database Wait Time Ratio
22 + - Shared Pool Free Memory
23 + - In-Memory Sorts Ratio
24 + - SQL Service Response Time
25 + - User Rollbacks
26 + - Enqueue Timeouts
27 +- cache
28 + - Cache Hit Ratio
29 + - Global Cache Blocks Events
30 +- activities
31 + - Activities
32 +- wait time
33 + - Wait Time
34 +- tablespace
35 + - Size
36 + - Usage
37 + - Usage In Percent
38 +
39 +## prerequisite
40
41 To use the Oracle module do the following:
42
41 -1. Install `cx_Oracle` package ([link](https://cx-oracle.readthedocs.io/en/latest/installation.html#install-cx-oracle)).
43 +1. Install `cx_Oracle` package ([link](https://cx-oracle.readthedocs.io/en/latest/installation.html#install-cx-oracle)).
44
43 -2. Install Oracle Client libraries ([link](https://cx-oracle.readthedocs.io/en/latest/installation.html#install-oracle-client)).
45 +2. Install Oracle Client libraries ([link](https://cx-oracle.readthedocs.io/en/latest/installation.html#install-oracle-client)).
46
45 -3. Create a read-only `netdata` user with proper access to your Oracle Database Server.
47 +3. Create a read-only `netdata` user with proper access to your Oracle Database Server.
48
49 Connect to your Oracle database with an administrative user and execute:
50
@@ -53,8 +55,7 @@ CREATE USER netdata IDENTIFIED BY <PASSWORD>;
55
56 GRANT CONNECT TO netdata;
57 GRANT SELECT_CATALOG_ROLE TO netdata;
56 -
57 -```
58 +```
59
60 ### configuration
61
@@ -74,4 +75,4 @@ remote:
75
76 All parameters are required. Without them module will fail to start.
77
77 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Foracledb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
78 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Foracledb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/ovpn_status_log/README.md
+13 -11
@@ -4,23 +4,25 @@ Module monitor openvpn-status log file.
4
5 **Requirements:**
6
7 - * If you are running multiple OpenVPN instances out of the same directory, MAKE SURE TO EDIT DIRECTIVES which create output files
8 - so that multiple instances do not overwrite each other's output files.
7 +- If you are running multiple OpenVPN instances out of the same directory, MAKE SURE TO EDIT DIRECTIVES which create output files
8 + so that multiple instances do not overwrite each other's output files.
9
10 - * Make sure NETDATA USER CAN READ openvpn-status.log
10 +- Make sure NETDATA USER CAN READ openvpn-status.log
11
12 - * Update_every interval MUST MATCH interval on which OpenVPN writes operational status to log file.
12 +- Update_every interval MUST MATCH interval on which OpenVPN writes operational status to log file.
13
14 It produces:
15
16 -1. **Users** OpenVPN active users
17 - * users
16 +1. **Users** OpenVPN active users
17
19 -2. **Traffic** OpenVPN overall bandwidth usage in kilobit/s
20 - * in
21 - * out
18 + - users
19
23 -### configuration
20 +2. **Traffic** OpenVPN overall bandwidth usage in kilobit/s
21 +
22 + - in
23 + - out
24 +
25 +## configuration
26
27 Sample:
28
@@ -31,4 +33,4 @@ default
33
34 ---
35
34 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fovpn_status_log%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
36 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fovpn_status_log%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/phpfpm/README.md
+17 -13
@@ -3,24 +3,28 @@
3 This module will monitor one or more php-fpm instances depending on configuration.
4
5 **Requirements:**
6 - * php-fpm with enabled `status` page
7 - * access to `status` page via web server
6 +
7 +- php-fpm with enabled `status` page
8 +- access to `status` page via web server
9
10 It produces following charts:
11
11 -1. **Active Connections**
12 - * active
13 - * maxActive
14 - * idle
12 +1. **Active Connections**
13 +
14 + - active
15 + - maxActive
16 + - idle
17 +
18 +2. **Requests** in requests/s
19 +
20 + - requests
21
16 -2. **Requests** in requests/s
17 - * requests
22 +3. **Performance**
23
19 -3. **Performance**
20 - * reached
21 - * slow
24 + - reached
25 + - slow
26
23 -### configuration
27 +## configuration
28
29 Needs only `url` to server's `status`
30
@@ -38,4 +42,4 @@ Without configuration, module attempts to connect to `http://localhost/status`
42
43 ---
44
41 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fphpfpm%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
45 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fphpfpm%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/portcheck/README.md
+15 -14
@@ -4,18 +4,19 @@ Module monitors a remote TCP service.
4
5 Following charts are drawn per host:
6
7 -1. **Latency** ms
8 - * Time required to connect to a TCP port.
9 - Displays latency in 0.1 ms resolution. If the connection failed, the value is missing.
7 +1. **Latency** ms
8
11 -2. **Status** boolean
12 - * Connection successful
13 - * Could not create socket: possible DNS problems
14 - * Connection refused: port not listening or blocked
15 - * Connection timed out: host or port unreachable
9 + - Time required to connect to a TCP port.
10 + Displays latency in 0.1 ms resolution. If the connection failed, the value is missing.
11
12 +2. **Status** boolean
13
18 -### configuration
14 + - Connection successful
15 + - Could not create socket: possible DNS problems
16 + - Connection refused: port not listening or blocked
17 + - Connection timed out: host or port unreachable
18 +
19 +## configuration
20
21 ```yaml
22 server:
@@ -27,11 +28,11 @@ server:
28
29 ### notes
30
30 - * The error chart is intended for alarms, badges or for access via API.
31 - * A system/service/firewall might block Netdata's access if a portscan or
32 - similar is detected.
33 - * Currently, the accuracy of the latency is low and should be used as reference only.
31 +- The error chart is intended for alarms, badges or for access via API.
32 +- A system/service/firewall might block Netdata's access if a portscan or
33 + similar is detected.
34 +- Currently, the accuracy of the latency is low and should be used as reference only.
35
36 ---
37
37 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fportcheck%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
38 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fportcheck%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/postfix/README.md
+7 -5
@@ -4,14 +4,16 @@ Simple module executing `postfix -p` to grab postfix queue.
4
5 It produces only two charts:
6
7 -1. **Postfix Queue Emails**
8 - * emails
7 +1. **Postfix Queue Emails**
8
10 -2. **Postfix Queue Emails Size** in KB
11 - * size
9 + - emails
10 +
11 +2. **Postfix Queue Emails Size** in KB
12 +
13 + - size
14
15 Configuration is not needed.
16
17 ---
18
17 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpostfix%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
19 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpostfix%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/postgres/README.md
+41 -31
@@ -4,50 +4,60 @@ Module monitors one or more postgres servers.
4
5 **Requirements:**
6
7 - * `python-psycopg2` package. You have to install it manually.
7 +- `python-psycopg2` package. You have to install it manually.
8
9 Following charts are drawn:
10
11 -1. **Database size** MB
12 - * size
11 +1. **Database size** MB
12
14 -2. **Current Backend Processes** processes
15 - * active
13 + - size
14
17 -3. **Write-Ahead Logging Statistics** files/s
18 - * total
19 - * ready
20 - * done
15 +2. **Current Backend Processes** processes
16
22 -4. **Checkpoints** writes/s
23 - * scheduled
24 - * requested
17 + - active
18
26 -5. **Current connections to db** count
27 - * connections
19 +3. **Write-Ahead Logging Statistics** files/s
20
29 -6. **Tuples returned from db** tuples/s
30 - * sequential
31 - * bitmap
21 + - total
22 + - ready
23 + - done
24
33 -7. **Tuple reads from db** reads/s
34 - * disk
35 - * cache
25 +4. **Checkpoints** writes/s
26
37 -8. **Transactions on db** transactions/s
38 - * committed
39 - * rolled back
27 + - scheduled
28 + - requested
29
41 -9. **Tuples written to db** writes/s
42 - * inserted
43 - * updated
44 - * deleted
45 - * conflicts
30 +5. **Current connections to db** count
31 +
32 + - connections
33 +
34 +6. **Tuples returned from db** tuples/s
35 +
36 + - sequential
37 + - bitmap
38 +
39 +7. **Tuple reads from db** reads/s
40 +
41 + - disk
42 + - cache
43 +
44 +8. **Transactions on db** transactions/s
45 +
46 + - committed
47 + - rolled back
48 +
49 +9. **Tuples written to db** writes/s
50 +
51 + - inserted
52 + - updated
53 + - deleted
54 + - conflicts
55
56 10. **Locks on db** count per type
48 - * locks
57
50 -### configuration
58 + - locks
59 +
60 +## configuration
61
62 For all available options please see module [configuration file](postgres.conf).
63
@@ -69,4 +79,4 @@ When no configuration file is found, module tries to connect to TCP/IP socket: `
79
80 ---
81
72 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpostgres%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
82 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpostgres%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/powerdns/README.md
+70 -59
@@ -4,67 +4,78 @@ Module monitor powerdns performance and health metrics.
4
5 Powerdns charts:
6
7 -1. **Queries and Answers**
8 - * udp-queries
9 - * udp-answers
10 - * tcp-queries
11 - * tcp-answers
12 -
13 -2. **Cache Usage**
14 - * query-cache-hit
15 - * query-cache-miss
16 - * packetcache-hit
17 - * packetcache-miss
18 -
19 -3. **Cache Size**
20 - * query-cache-size
21 - * packetcache-size
22 - * key-cache-size
23 - * meta-cache-size
24 -
25 -4. **Latency**
26 - * latency
7 +1. **Queries and Answers**
8 +
9 + - udp-queries
10 + - udp-answers
11 + - tcp-queries
12 + - tcp-answers
13 +
14 +2. **Cache Usage**
15 +
16 + - query-cache-hit
17 + - query-cache-miss
18 + - packetcache-hit
19 + - packetcache-miss
20 +
21 +3. **Cache Size**
22 +
23 + - query-cache-size
24 + - packetcache-size
25 + - key-cache-size
26 + - meta-cache-size
27 +
28 +4. **Latency**
29 +
30 + - latency
31
32 Powerdns Recursor charts:
33
30 - 1. **Questions In**
31 - * questions
32 - * ipv6-questions
33 - * tcp-queries
34 -
35 -2. **Questions Out**
36 - * all-outqueries
37 - * ipv6-outqueries
38 - * tcp-outqueries
39 - * throttled-outqueries
40 -
41 -3. **Answer Times**
42 - * answers-slow
43 - * answers0-1
44 - * answers1-10
45 - * answers10-100
46 - * answers100-1000
47 -
48 -4. **Timeouts**
49 - * outgoing-timeouts
50 - * outgoing4-timeouts
51 - * outgoing6-timeouts
52 -
53 -5. **Drops**
54 - * over-capacity-drops
55 -
56 -6. **Cache Usage**
57 - * cache-hits
58 - * cache-misses
59 - * packetcache-hits
60 - * packetcache-misses
61 -
62 -7. **Cache Size**
63 - * cache-entries
64 - * packetcache-entries
65 - * negcache-entries
66 -
67 -### configuration
34 +1. **Questions In**
35 +
36 + - questions
37 + - ipv6-questions
38 + - tcp-queries
39 +
40 +2. **Questions Out**
41 +
42 + - all-outqueries
43 + - ipv6-outqueries
44 + - tcp-outqueries
45 + - throttled-outqueries
46 +
47 +3. **Answer Times**
48 +
49 + - answers-slow
50 + - answers0-1
51 + - answers1-10
52 + - answers10-100
53 + - answers100-1000
54 +
55 +4. **Timeouts**
56 +
57 + - outgoing-timeouts
58 + - outgoing4-timeouts
59 + - outgoing6-timeouts
60 +
61 +5. **Drops**
62 +
63 + - over-capacity-drops
64 +
65 +6. **Cache Usage**
66 +
67 + - cache-hits
68 + - cache-misses
69 + - packetcache-hits
70 + - packetcache-misses
71 +
72 +7. **Cache Size**
73 +
74 + - cache-entries
75 + - packetcache-entries
76 + - negcache-entries
77 +
78 +## configuration
79
80 ```yaml
81 local:
@@ -76,4 +87,4 @@ local:
87
88 ---
89
79 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpowerdns%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
90 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpowerdns%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/proxysql/README.md
+61 -42
@@ -4,49 +4,68 @@ This module monitors proxysql backend and frontend performance metrics.
4
5 It produces:
6
7 -1. **Connections (frontend)**
8 - * connected: number of frontend connections currently connected
9 - * aborted: number of frontend connections aborted due to invalid credential or max_connections reached
10 - * non_idle: number of frontend connections that are not currently idle
11 - * created: number of frontend connections created
12 -2. **Questions (frontend)**
13 - * questions: total number of queries sent from frontends
14 - * slow_queries: number of queries that ran for longer than the threshold in milliseconds defined in global variable `mysql-long_query_time`
15 -3. **Overall Bandwith (backends)**
16 - * in
17 - * out
18 -4. **Status (backends)**
19 - * Backends
20 - * `1=ONLINE`: backend server is fully operational
21 - * `2=SHUNNED`: backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold
22 - * `3=OFFLINE_SOFT`: when a server is put into OFFLINE_SOFT mode, new incoming connections aren't accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend
23 - * `4=OFFLINE_HARD`: when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren't accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work
24 - * `-1`: Unknown status
25 -5. **Bandwith (backends)**
26 - * Backends
27 - * in
28 - * out
29 -6. **Queries (backends)**
30 - * Backends
31 - * queries
32 -7. **Latency (backends)**
33 - * Backends
34 - * ping time
35 -8. **Pool connections (backends)**
36 - * Backends
37 - * Used: The number of connections are currently used by ProxySQL for sending queries to the backend server.
38 - * Free: The number of connections are currently free.
39 - * Established/OK: The number of connections were established successfully.
40 - * Error: The number of connections weren't established successfully.
41 -9. **Commands**
42 - * Commands
43 - * Count
44 - * Duration (Total duration for each command)
7 +1. **Connections (frontend)**
8 +
9 + - connected: number of frontend connections currently connected
10 + - aborted: number of frontend connections aborted due to invalid credential or max_connections reached
11 + - non_idle: number of frontend connections that are not currently idle
12 + - created: number of frontend connections created
13 +
14 +2. **Questions (frontend)**
15 +
16 + - questions: total number of queries sent from frontends
17 + - slow_queries: number of queries that ran for longer than the threshold in milliseconds defined in global variable `mysql-long_query_time`
18 +
19 +3. **Overall Bandwith (backends)**
20 +
21 + - in
22 + - out
23 +
24 +4. **Status (backends)**
25 +
26 + - Backends
27 + - `1=ONLINE`: backend server is fully operational
28 + - `2=SHUNNED`: backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold
29 + - `3=OFFLINE_SOFT`: when a server is put into OFFLINE_SOFT mode, new incoming connections aren't accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend
30 + - `4=OFFLINE_HARD`: when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren't accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work
31 + - `-1`: Unknown status
32 +
33 +5. **Bandwith (backends)**
34 +
35 + - Backends
36 + - in
37 + - out
38 +
39 +6. **Queries (backends)**
40 +
41 + - Backends
42 + - queries
43 +
44 +7. **Latency (backends)**
45 +
46 + - Backends
47 + - ping time
48 +
49 +8. **Pool connections (backends)**
50 +
51 + - Backends
52 + - Used: The number of connections are currently used by ProxySQL for sending queries to the backend server.
53 + - Free: The number of connections are currently free.
54 + - Established/OK: The number of connections were established successfully.
55 + - Error: The number of connections weren't established successfully.
56 +
57 +9. **Commands**
58 +
59 + - Commands
60 + - Count
61 + - Duration (Total duration for each command)
62 +
63 10. **Commands Histogram**
46 - * Commands
47 - * 100us, 500us, ..., 10s, inf: the total number of commands of the given type which executed within the specified time limit and the previous one.
64
49 -### configuration
65 + - Commands
66 + - 100us, 500us, ..., 10s, inf: the total number of commands of the given type which executed within the specified time limit and the previous one.
67 +
68 +## configuration
69
70 ```yaml
71 tcpipv4:
@@ -61,4 +80,4 @@ If no configuration is given, module will fail to run.
80
81 ---
82
64 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fproxysql%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
83 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fproxysql%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/puppet/README.md
+27 -21
@@ -4,21 +4,27 @@ Monitor status of Puppet Server and Puppet DB.
4
5 Following charts are drawn:
6
7 -1. **JVM Heap**
8 - * committed (allocated from OS)
9 - * used (actual use)
10 -2. **JVM Non-Heap**
11 - * committed (allocated from OS)
12 - * used (actual use)
13 -3. **CPU Usage**
14 - * execution
15 - * GC (taken by garbage collection)
16 -4. **File Descriptors**
17 - * max
18 - * used
19 -
20 -
21 -### configuration
7 +1. **JVM Heap**
8 +
9 + - committed (allocated from OS)
10 + - used (actual use)
11 +
12 +2. **JVM Non-Heap**
13 +
14 + - committed (allocated from OS)
15 + - used (actual use)
16 +
17 +3. **CPU Usage**
18 +
19 + - execution
20 + - GC (taken by garbage collection)
21 +
22 +4. **File Descriptors**
23 +
24 + - max
25 + - used
26 +
27 +## configuration
28
29 ```yaml
30 puppetdb:
@@ -36,12 +42,12 @@ When no configuration is given, module uses `https://fqdn.example.com:8140`.
42
43 ### notes
44
39 -* Exact Fully Qualified Domain Name of the node should be used.
40 -* Usually Puppet Server/DB startup time is VERY long. So, there should
41 - be quite reasonable retry count.
42 -* Secure PuppetDB config may require client certificate. Not applies
43 - to default PuppetDB configuration though.
45 +- Exact Fully Qualified Domain Name of the node should be used.
46 +- Usually Puppet Server/DB startup time is VERY long. So, there should
47 + be quite reasonable retry count.
48 +- Secure PuppetDB config may require client certificate. Not applies
49 + to default PuppetDB configuration though.
50
51 ---
52
47 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpuppet%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
53 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fpuppet%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/rabbitmq/README.md
+37 -29
@@ -4,42 +4,51 @@ Module monitor rabbitmq performance and health metrics.
4
5 Following charts are drawn:
6
7 -1. **Queued Messages**
8 - * ready
9 - * unacknowledged
7 +1. **Queued Messages**
8
11 -2. **Message Rates**
12 - * ack
13 - * redelivered
14 - * deliver
15 - * publish
9 + - ready
10 + - unacknowledged
11
17 -3. **Global Counts**
18 - * channels
19 - * consumers
20 - * connections
21 - * queues
22 - * exchanges
12 +2. **Message Rates**
13
24 -4. **File Descriptors**
25 - * used descriptors
14 + - ack
15 + - redelivered
16 + - deliver
17 + - publish
18
27 -5. **Socket Descriptors**
28 - * used descriptors
19 +3. **Global Counts**
20
30 -6. **Erlang processes**
31 - * used processes
21 + - channels
22 + - consumers
23 + - connections
24 + - queues
25 + - exchanges
26
33 -7. **Erlang run queue**
34 - * Erlang run queue
27 +4. **File Descriptors**
28
36 -8. **Memory**
37 - * free memory in megabytes
29 + - used descriptors
30
39 -9. **Disk Space**
40 - * free disk space in gigabytes
31 +5. **Socket Descriptors**
32
42 -### configuration
33 + - used descriptors
34 +
35 +6. **Erlang processes**
36 +
37 + - used processes
38 +
39 +7. **Erlang run queue**
40 +
41 + - Erlang run queue
42 +
43 +8. **Memory**
44 +
45 + - free memory in megabytes
46 +
47 +9. **Disk Space**
48 +
49 + - free disk space in gigabytes
50 +
51 +## configuration
52
53 ```yaml
54 socket:
@@ -48,11 +57,10 @@ socket:
57 port : 15672
58 user : 'guest'
59 pass : 'guest'
51 -
60 ```
61
62 When no configuration file is found, module tries to connect to: `localhost:15672`.
63
64 ---
65
58 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Frabbitmq%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
66 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Frabbitmq%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/redis/README.md
+22 -16
@@ -4,27 +4,33 @@ Get INFO data from redis instance.
4
5 Following charts are drawn:
6
7 -1. **Operations** per second
8 - * operations
7 +1. **Operations** per second
8
10 -2. **Hit rate** in percent
11 - * rate
9 + - operations
10
13 -3. **Memory utilization** in kilobytes
14 - * total
15 - * lua
11 +2. **Hit rate** in percent
12
17 -4. **Database keys**
18 - * lines are creates dynamically based on how many databases are there
13 + - rate
14
20 -5. **Clients**
21 - * connected
22 - * blocked
15 +3. **Memory utilization** in kilobytes
16
24 -6. **Slaves**
25 - * connected
17 + - total
18 + - lua
19
27 -### configuration
20 +4. **Database keys**
21 +
22 + - lines are creates dynamically based on how many databases are there
23 +
24 +5. **Clients**
25 +
26 + - connected
27 + - blocked
28 +
29 +6. **Slaves**
30 +
31 + - connected
32 +
33 +## configuration
34
35 ```yaml
36 socket:
@@ -41,4 +47,4 @@ When no configuration file is found, module tries to connect to TCP/IP socket: `
47
48 ---
49
44 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fredis%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
50 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fredis%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/rethinkdbs/README.md
+15 -12
@@ -4,23 +4,26 @@ Module monitor rethinkdb health metrics.
4
5 Following charts are drawn:
6
7 -1. **Connected Servers**
8 - * connected
9 - * missing
7 +1. **Connected Servers**
8
11 -2. **Active Clients**
12 - * active
9 + - connected
10 + - missing
11
14 -3. **Queries** per second
15 - * queries
12 +2. **Active Clients**
13
17 -4. **Documents** per second
18 - * documents
14 + - active
15
20 -### configuration
16 +3. **Queries** per second
17
22 -```yaml
18 + - queries
19 +
20 +4. **Documents** per second
21 +
22 + - documents
23
24 +## configuration
25 +
26 +```yaml
27 localhost:
28 name : 'local'
29 host : '127.0.0.1'
@@ -33,4 +36,4 @@ When no configuration file is found, module tries to connect to `127.0.0.1:28015
36
37 ---
38
36 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Frethinkdbs%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
39 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Frethinkdbs%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/retroshare/README.md
+1 -1
@@ -1,3 +1,3 @@
1 # retroshare
2
3 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fretroshare%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
3 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fretroshare%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/riakkv/README.md
+65 -62
@@ -4,94 +4,97 @@ Monitors one or more Riak KV servers.
4
5 **Requirements:**
6
7 -* An accessible `/stats` endpoint. See [the Riak KV configuration reference documentation](<https://docs.riak.com/riak/kv/2.2.3/configuring/reference/#client-interfaces>)
8 - for how to enable this.
7 +- An accessible `/stats` endpoint. See [the Riak KV configuration reference documentation](https://docs.riak.com/riak/kv/2.2.3/configuring/reference/#client-interfaces)
8 + for how to enable this.
9
10 The following charts are included, which are mostly derived from the metrics
11 listed
12 [here](https://docs.riak.com/riak/kv/latest/using/reference/statistics-monitoring/index.html#riak-metrics-to-graph).
13
14 -1. **Throughput** in operations/s
15 - * **KV operations**
16 - * gets
17 - * puts
14 +1. **Throughput** in operations/s
15
19 - * **Data type updates**
20 - * counters
21 - * sets
22 - * maps
16 +- **KV operations**
17 + - gets
18 + - puts
19
24 - * **Search queries**
25 - * queries
20 +- **Data type updates**
21 + - counters
22 + - sets
23 + - maps
24
27 - * **Search documents**
28 - * indexed
25 +- **Search queries**
26 + - queries
27
30 - * **Strong consistency operations**
31 - * gets
32 - * puts
28 +- **Search documents**
29 + - indexed
30
34 -2. **Latency** in milliseconds
35 - * **KV latency** of the past minute
36 - * get (mean, median, 95th / 99th / 100th percentile)
37 - * put (mean, median, 95th / 99th / 100th percentile)
31 +- **Strong consistency operations**
32 + - gets
33 + - puts
34
39 - * **Data type latency** of the past minute
40 - * counter_merge (mean, median, 95th / 99th / 100th percentile)
41 - * set_merge (mean, median, 95th / 99th / 100th percentile)
42 - * map_merge (mean, median, 95th / 99th / 100th percentile)
35 +2. **Latency** in milliseconds
36
44 - * **Search latency** of the past minute
45 - * query (median, min, max, 95th / 99th percentile)
46 - * index (median, min, max, 95th / 99th percentile)
37 +- **KV latency** of the past minute
38 + - get (mean, median, 95th / 99th / 100th percentile)
39 + - put (mean, median, 95th / 99th / 100th percentile)
40
48 - * **Strong consistency latency** of the past minute
49 - * get (mean, median, 95th / 99th / 100th percentile)
50 - * put (mean, median, 95th / 99th / 100th percentile)
41 +- **Data type latency** of the past minute
42 + - counter_merge (mean, median, 95th / 99th / 100th percentile)
43 + - set_merge (mean, median, 95th / 99th / 100th percentile)
44 + - map_merge (mean, median, 95th / 99th / 100th percentile)
45
52 -3. **Erlang VM metrics**
53 - * **System counters**
54 - * processes
46 +- **Search latency** of the past minute
47 + - query (median, min, max, 95th / 99th percentile)
48 + - index (median, min, max, 95th / 99th percentile)
49
56 - * **Memory allocation** in MB
57 - * processes.allocated
58 - * processes.used
50 +- **Strong consistency latency** of the past minute
51 + - get (mean, median, 95th / 99th / 100th percentile)
52 + - put (mean, median, 95th / 99th / 100th percentile)
53
60 -4. **General load / health metrics**
61 - * **Siblings encountered in KV operations** during the past minute
62 - * get (mean, median, 95th / 99th / 100th percentile)
54 +3. **Erlang VM metrics**
55
64 - * **Object size in KV operations** during the past minute in KB
65 - * get (mean, median, 95th / 99th / 100th percentile)
56 +- **System counters**
57 + - processes
58
67 - * **Message queue length** in unprocessed messages
68 - * vnodeq_size (mean, median, 95th / 99th / 100th percentile)
59 +- **Memory allocation** in MB
60 + - processes.allocated
61 + - processes.used
62
70 - * **Index operations** encountered by Search
71 - * errors
63 +4. **General load / health metrics**
64
73 - * **Protocol buffer connections**
74 - * active
65 +- **Siblings encountered in KV operations** during the past minute
66 + - get (mean, median, 95th / 99th / 100th percentile)
67
76 - * **Repair operations coordinated by this node**
77 - * read
68 +- **Object size in KV operations** during the past minute in KB
69 + - get (mean, median, 95th / 99th / 100th percentile)
70
79 - * **Active finite state machines by kind**
80 - * get
81 - * put
82 - * secondary_index
83 - * list_keys
71 +- **Message queue length** in unprocessed messages
72 + - vnodeq_size (mean, median, 95th / 99th / 100th percentile)
73
85 - * **Rejected finite state machines**
86 - * get
87 - * put
74 +- **Index operations** encountered by Search
75 + - errors
76
89 - * **Number of writes to Search failed due to bad data format by reason**
90 - * bad_entry
91 - * extract_fail
77 +- **Protocol buffer connections**
78 + - active
79
80 +- **Repair operations coordinated by this node**
81 + - read
82
94 -### configuration
83 +- **Active finite state machines by kind**
84 + - get
85 + - put
86 + - secondary_index
87 + - list_keys
88 +
89 +- **Rejected finite state machines**
90 + - get
91 + - put
92 +
93 +- **Number of writes to Search failed due to bad data format by reason**
94 + - bad_entry
95 + - extract_fail
96 +
97 +## configuration
98
99 The module needs to be passed the full URL to Riak's stats endpoint.
100 For example:
collectors/python.d.plugin/samba/README.md
+56 -45
@@ -3,60 +3,71 @@
3 Performance metrics of Samba file sharing.
4
5 **Requirements:**
6 -* `smbstatus` program
7 -* `sudo` program
8 -* `smbd` must be compiled with profiling enabled
9 -* `smbd` must be started either with the `-P 1` option or inside `smb.conf` using `smbd profiling level`
10 -* `netdata` user needs to be able to sudo the `smbstatus` program without password
6 +
7 +- `smbstatus` program
8 +- `sudo` program
9 +- `smbd` must be compiled with profiling enabled
10 +- `smbd` must be started either with the `-P 1` option or inside `smb.conf` using `smbd profiling level`
11 +- `netdata` user needs to be able to sudo the `smbstatus` program without password
12
13 It produces the following charts:
14
14 -1. **Syscall R/Ws** in kilobytes/s
15 - * sendfile
16 - * recvfle
17 -
18 -2. **Smb2 R/Ws** in kilobytes/s
19 - * readout
20 - * writein
21 - * readin
22 - * writeout
23 -
24 -3. **Smb2 Create/Close** in operations/s
25 - * create
26 - * close
27 -
28 -4. **Smb2 Info** in operations/s
29 - * getinfo
30 - * setinfo
31 -
32 -5. **Smb2 Find** in operations/s
33 - * find
34 -
35 -6. **Smb2 Notify** in operations/s
36 - * notify
37 -
38 -7. **Smb2 Lesser Ops** as counters
39 - * tcon
40 - * negprot
41 - * tdis
42 - * cancel
43 - * logoff
44 - * flush
45 - * lock
46 - * keepalive
47 - * break
48 - * sessetup
49 -
50 -### prerequisite
15 +1. **Syscall R/Ws** in kilobytes/s
16 +
17 + - sendfile
18 + - recvfle
19 +
20 +2. **Smb2 R/Ws** in kilobytes/s
21 +
22 + - readout
23 + - writein
24 + - readin
25 + - writeout
26 +
27 +3. **Smb2 Create/Close** in operations/s
28 +
29 + - create
30 + - close
31 +
32 +4. **Smb2 Info** in operations/s
33 +
34 + - getinfo
35 + - setinfo
36 +
37 +5. **Smb2 Find** in operations/s
38 +
39 + - find
40 +
41 +6. **Smb2 Notify** in operations/s
42 +
43 + - notify
44 +
45 +7. **Smb2 Lesser Ops** as counters
46 +
47 + - tcon
48 + - negprot
49 + - tdis
50 + - cancel
51 + - logoff
52 + - flush
53 + - lock
54 + - keepalive
55 + - break
56 + - sessetup
57 +
58 +## prerequisite
59 +
60 This module uses `smbstatus` which can only be executed by root. It uses
61 `sudo` and assumes that it is configured such that the `netdata` user can
62 execute `smbstatus` as root without password.
63
64 Add to `sudoers`:
65
57 - netdata ALL=(root) NOPASSWD: /path/to/smbstatus
66 +```
67 +netdata ALL=(root) NOPASSWD: /path/to/smbstatus
68 +```
69
59 -### configuration
70 +## configuration
71
72 **samba** is disabled by default. Should be explicitly enabled in `python.d.conf`.
73
@@ -66,4 +77,4 @@ samba: yes
77
78 ---
79
69 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsamba%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
80 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsamba%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/sensors/README.md
+2 -2
@@ -4,7 +4,7 @@ System sensors information.
4
5 Charts are created dynamically.
6
7 -### configuration
7 +## configuration
8
9 For detailed configuration information please read [`sensors.conf`](sensors.conf) file.
10
@@ -16,4 +16,4 @@ Please join this discussion for help.
16
17 ---
18
19 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsensors%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
19 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsensors%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/smartd_log/README.md
+28 -24
@@ -3,43 +3,44 @@
3 Module monitor `smartd` log files to collect HDD/SSD S.M.A.R.T attributes.
4
5 **Requirements:**
6 -* `smartmontools`
6
8 -It produces following charts for SCSI devices:
7 +- `smartmontools`
8
10 -1. **Read Error Corrected**
9 +It produces following charts for SCSI devices:
10
12 -2. **Read Error Uncorrected**
11 +1. **Read Error Corrected**
12
14 -3. **Write Error Corrected**
13 +2. **Read Error Uncorrected**
14
16 -4. **Write Error Uncorrected**
15 +3. **Write Error Corrected**
16
18 -5. **Verify Error Corrected**
17 +4. **Write Error Uncorrected**
18
20 -6. **Verify Error Uncorrected**
19 +5. **Verify Error Corrected**
20
22 -7. **Temperature**
21 +6. **Verify Error Uncorrected**
22
23 +7. **Temperature**
24
25 For ATA devices:
26 -1. **Read Error Rate**
26
28 -2. **Seek Error Rate**
27 +1. **Read Error Rate**
28 +
29 +2. **Seek Error Rate**
30
30 -3. **Soft Read Error Rate**
31 +3. **Soft Read Error Rate**
32
32 -4. **Write Error Rate**
33 +4. **Write Error Rate**
34
34 -5. **SATA Interface Downshift**
35 +5. **SATA Interface Downshift**
36
36 -6. **UDMA CRC Error Count**
37 +6. **UDMA CRC Error Count**
38
38 -7. **Throughput Performance**
39 +7. **Throughput Performance**
40
40 -8. **Seek Time Performance**
41 +8. **Seek Time Performance**
42
42 -9. **Start/Stop Count**
43 +9. **Start/Stop Count**
44
45 10. **Power-On Hours Count**
46
@@ -75,25 +76,28 @@ For ATA devices:
76
77 26. **Percent Lifetime Used**
78
78 -### prerequisite
79 +## prerequisite
80 +
81 `smartd` must be running with `-A` option to write smartd attribute information to files.
82
83 For this you need to set `smartd_opts` (or `SMARTD_ARGS`, check _smartd.service_ content) in `/etc/default/smartmontools`:
84
83 -
85 ```
86 # dump smartd attrs info every 600 seconds
87 smartd_opts="-A /var/log/smartd/ -i 600"
88 ```
89 +
90 You may need to create the smartd directory before smartd will write to it:
89 -```
91 +
92 +```sh
93 mkdir -p /var/log/smartd
94 ```
92 -Otherwise, all the smartd `.csv` files may get written to `/var/lib/smartmontools` (default location). See also [https://linux.die.net/man/8/smartd](https://linux.die.net/man/8/smartd) for more info on the `-A --attributelog=PREFIX` command.
95 +
96 +Otherwise, all the smartd `.csv` files may get written to `/var/lib/smartmontools` (default location). See also <https://linux.die.net/man/8/smartd> for more info on the `-A --attributelog=PREFIX` command.
97
98 `smartd` appends logs at every run. It's strongly recommended to use `logrotate` for smartd files.
99
96 -### configuration
100 +## configuration
101
102 ```yaml
103 local:
@@ -104,4 +108,4 @@ If no configuration is given, module will attempt to read log files in `/var/log
108
109 ---
110
107 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsmartd_log%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
111 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsmartd_log%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/spigotmc/README.md
+2 -2
@@ -9,7 +9,7 @@ active users.
9 This is not compatible with Spigot plugins which change the format of
10 the data returned by the `tps` or `list` console commands.
11
12 -### configuration
12 +## configuration
13
14 ```yaml
15 host: localhost
@@ -21,4 +21,4 @@ By default, a connection to port 25575 on the local system is attempted with an
21
22 ---
23
24 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fspigotmc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
24 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fspigotmc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/springboot/README.md
+27 -20
@@ -6,11 +6,13 @@ Netdata can be used to monitor running Java [Spring Boot](https://spring.io/) ap
6 ## Configuration
7
8 The Spring Boot Actuator exposes these metrics over HTTP and is very easy to use:
9 -* add `org.springframework.boot:spring-boot-starter-actuator` to your application dependencies
10 -* set `endpoints.metrics.sensitive=false` in your `application.properties`
9 +
10 +- add `org.springframework.boot:spring-boot-starter-actuator` to your application dependencies
11 +- set `endpoints.metrics.sensitive=false` in your `application.properties`
12
13 You can create custom Metrics by add and inject a PublicMetrics in your application.
14 This is a example to add custom metrics:
15 +
16 ```java
17 package com.example;
18
@@ -65,26 +67,30 @@ Please refer [Spring Boot Actuator: Production-ready features](https://docs.spri
67
68 ## Charts
69
68 -1. **Response Codes** in requests/s
69 - * 1xx
70 - * 2xx
71 - * 3xx
72 - * 4xx
73 - * 5xx
74 - * others
70 +1. **Response Codes** in requests/s
71 +
72 + - 1xx
73 + - 2xx
74 + - 3xx
75 + - 4xx
76 + - 5xx
77 + - others
78 +
79 +2. **Threads**
80
76 -2. **Threads**
77 - * daemon
78 - * total
81 + - daemon
82 + - total
83
80 -3. **GC Time** in milliseconds and **GC Operations** in operations/s
81 - * Copy
82 - * MarkSweep
83 - * ...
84 +3. **GC Time** in milliseconds and **GC Operations** in operations/s
85
85 -4. **Heap Mmeory Usage** in KB
86 - * used
87 - * committed
86 + - Copy
87 + - MarkSweep
88 + - ...
89 +
90 +4. **Heap Mmeory Usage** in KB
91 +
92 + - used
93 + - committed
94
95 ## Usage
96
@@ -93,6 +99,7 @@ The springboot module is enabled by default. It looks up `http://localhost:8080/
99 This module defines some common charts, and you can add custom charts by change the configurations.
100
101 The configuration format is like:
102 +
103 ```yaml
104 <id>:
105 name: '<name>'
@@ -121,4 +128,4 @@ The dimension name of extras charts should replace `.` to `_`.
128
129 Please check [springboot.conf](springboot.conf) for more examples.
130
124 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fspringboot%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
131 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fspringboot%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/squid/README.md
+20 -16
@@ -4,25 +4,29 @@ This module will monitor one or more squid instances depending on configuration.
4
5 It produces following charts:
6
7 -1. **Client Bandwidth** in kilobits/s
8 - * in
9 - * out
10 - * hits
7 +1. **Client Bandwidth** in kilobits/s
8
12 -2. **Client Requests** in requests/s
13 - * requests
14 - * hits
15 - * errors
9 + - in
10 + - out
11 + - hits
12
17 -3. **Server Bandwidth** in kilobits/s
18 - * in
19 - * out
13 +2. **Client Requests** in requests/s
14
21 -4. **Server Requests** in requests/s
22 - * requests
23 - * errors
15 + - requests
16 + - hits
17 + - errors
18
25 -### configuration
19 +3. **Server Bandwidth** in kilobits/s
20 +
21 + - in
22 + - out
23 +
24 +4. **Server Requests** in requests/s
25 +
26 + - requests
27 + - errors
28 +
29 +## configuration
30
31 ```yaml
32 priority : 50000
@@ -37,4 +41,4 @@ Without any configuration module will try to autodetect where squid presents its
41
42 ---
43
40 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsquid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
44 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fsquid%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/tomcat/README.md
+15 -11
@@ -4,20 +4,24 @@ Present tomcat containers memory utilization.
4
5 Charts:
6
7 -1. **Requests** per second
8 - * accesses
7 +1. **Requests** per second
8
10 -2. **Volume** in KB/s
11 - * volume
9 + - accesses
10
13 -3. **Threads**
14 - * current
15 - * busy
11 +2. **Volume** in KB/s
12
17 -4. **JVM Free Memory** in MB
18 - * jvm
13 + - volume
14
20 -### configuration
15 +3. **Threads**
16 +
17 + - current
18 + - busy
19 +
20 +4. **JVM Free Memory** in MB
21 +
22 + - jvm
23 +
24 +## configuration
25
26 ```yaml
27 localhost:
@@ -32,4 +36,4 @@ So it will probably fail.
36
37 ---
38
35 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ftomcat%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
39 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ftomcat%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/tor/README.md
+9 -7
@@ -3,16 +3,18 @@
3 Module connects to tor control port to collect traffic statistics.
4
5 **Requirements:**
6 -* `tor` program
7 -* `stem` python package
6 +
7 +- `tor` program
8 +- `stem` python package
9
10 It produces only one chart:
11
11 -1. **Traffic**
12 - * read
13 - * write
12 +1. **Traffic**
13 +
14 + - read
15 + - write
16
15 -### configuration
17 +## configuration
18
19 Needs only `control_port`
20
@@ -45,4 +47,4 @@ Without configuration, module attempts to connect to `127.0.0.1:9051`.
47
48 ---
49
48 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ftor%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
50 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ftor%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/traefik/README.md
+29 -24
@@ -4,37 +4,42 @@ Module uses the `health` API to provide statistics.
4
5 It produces:
6
7 -1. **Responses** by statuses
8 - * success (1xx, 2xx, 304)
9 - * error (5xx)
10 - * redirect (3xx except 304)
11 - * bad (4xx)
12 - * other (all other responses)
7 +1. **Responses** by statuses
8
14 -2. **Responses** by codes
15 - * 2xx (successful)
16 - * 5xx (internal server errors)
17 - * 3xx (redirect)
18 - * 4xx (bad)
19 - * 1xx (informational)
20 - * other (non-standart responses)
9 + - success (1xx, 2xx, 304)
10 + - error (5xx)
11 + - redirect (3xx except 304)
12 + - bad (4xx)
13 + - other (all other responses)
14
22 -3. **Detailed Response Codes** requests/s (number of responses for each response code family individually)
15 +2. **Responses** by codes
16
24 -4. **Requests**/s
25 - * request statistics
17 + - 2xx (successful)
18 + - 5xx (internal server errors)
19 + - 3xx (redirect)
20 + - 4xx (bad)
21 + - 1xx (informational)
22 + - other (non-standart responses)
23
27 -5. **Total response time**
28 - * sum of all response time
24 +3. **Detailed Response Codes** requests/s (number of responses for each response code family individually)
25
30 -6. **Average response time**
26 +4. **Requests**/s
27
32 -7. **Average response time per iteration**
28 + - request statistics
29
34 -8. **Uptime**
35 - * Traefik server uptime
30 +5. **Total response time**
31
37 -### configuration
32 + - sum of all response time
33 +
34 +6. **Average response time**
35 +
36 +7. **Average response time per iteration**
37 +
38 +8. **Uptime**
39 +
40 + - Traefik server uptime
41 +
42 +## configuration
43
44 Needs only `url` to server's `health`
45
@@ -52,4 +57,4 @@ Without configuration, module attempts to connect to `http://localhost:8080/heal
57
58 ---
59
55 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ftraefik%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
60 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Ftraefik%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/unbound/README.md
+52 -48
@@ -4,37 +4,41 @@ Monitoring uses the remote control interface to fetch statistics.
4
5 Provides the following charts:
6
7 -1. **Queries Processed**
8 - * Ratelimited
9 - * Cache Misses
10 - * Cache Hits
11 - * Expired
12 - * Prefetched
13 - * Recursive
14 -
15 -2. **Request List**
16 - * Average Size
17 - * Max Size
18 - * Overwritten Requests
19 - * Overruns
20 - * Current Size
21 - * User Requests
22 -
23 -3. **Recursion Timings**
24 - * Average recursion processing time
25 - * Median recursion processing time
7 +1. **Queries Processed**
8 +
9 + - Ratelimited
10 + - Cache Misses
11 + - Cache Hits
12 + - Expired
13 + - Prefetched
14 + - Recursive
15 +
16 +2. **Request List**
17 +
18 + - Average Size
19 + - Max Size
20 + - Overwritten Requests
21 + - Overruns
22 + - Current Size
23 + - User Requests
24 +
25 +3. **Recursion Timings**
26 +
27 +- Average recursion processing time
28 +- Median recursion processing time
29
30 If extended stats are enabled, also provides:
31
29 -4. **Cache Sizes**
30 - * Message Cache
31 - * RRset Cache
32 - * Infra Cache
33 - * DNSSEC Key Cache
34 - * DNSCrypt Shared Secret Cache
35 - * DNSCrypt Nonce Cache
32 +4. **Cache Sizes**
33 +
34 + - Message Cache
35 + - RRset Cache
36 + - Infra Cache
37 + - DNSSEC Key Cache
38 + - DNSCrypt Shared Secret Cache
39 + - DNSCrypt Nonce Cache
40
37 -### Configuration
41 +## Configuration
42
43 Unbound must be manually configured to enable the remote-control protocol.
44 Check the Unbound documentation for info on how to do this. Additionally,
@@ -78,27 +82,27 @@ that you use a UNIX socket as it provides far better performance.
82 If you've configured the module and can't get it to work, make sure and
83 check all of the following:
84
81 -* If you're using autodetection, double check that your `unbound.conf`
82 - file is actually using spaces instead of tabs, and that appropriate
83 - indentation is present. Most Linux distributions ship a default config
84 - for Unbound that uses tabs, and the plugin can't read such a config file
85 - correctly. Also, make sure this file is actually readable by Netdata.
86 -* Ensure that the control protocol is actually configured correctly.
87 - You can check this quickly by running `unbound-control stats_noreset`
88 - as root, which should print out a bunch of info about the internal
89 - statistics of the server. If this returns an error, you don't have
90 - the control protocol set up correctly.
91 -* If using the regular control interface, make sure that the certificate
92 - and key file you have configured in `unbound.conf` are readable by
93 - Netdata. In general, it's preferred to use ACL's on the files to
94 - provide the required permissions.
95 -* If using a UNIX socket, make sure that the socket is both readable
96 - _and_ writable by Netdata. Just like with the regular control
97 - interface, it's preferred to use ACL's to provide these permissions.
98 -* Make sure that SELinux, Apparmor, or any other mandatory access control
99 - system isn't interfering with the access requirements mentioned above.
100 - In some cases, you may have to add a local rule to allow this access.
85 +- If you're using autodetection, double check that your `unbound.conf`
86 + file is actually using spaces instead of tabs, and that appropriate
87 + indentation is present. Most Linux distributions ship a default config
88 + for Unbound that uses tabs, and the plugin can't read such a config file
89 + correctly. Also, make sure this file is actually readable by Netdata.
90 +- Ensure that the control protocol is actually configured correctly.
91 + You can check this quickly by running `unbound-control stats_noreset`
92 + as root, which should print out a bunch of info about the internal
93 + statistics of the server. If this returns an error, you don't have
94 + the control protocol set up correctly.
95 +- If using the regular control interface, make sure that the certificate
96 + and key file you have configured in `unbound.conf` are readable by
97 + Netdata. In general, it's preferred to use ACL's on the files to
98 + provide the required permissions.
99 +- If using a UNIX socket, make sure that the socket is both readable
100 + _and_ writable by Netdata. Just like with the regular control
101 + interface, it's preferred to use ACL's to provide these permissions.
102 +- Make sure that SELinux, Apparmor, or any other mandatory access control
103 + system isn't interfering with the access requirements mentioned above.
104 + In some cases, you may have to add a local rule to allow this access.
105
106 ---
107
104 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Funbound%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
108 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Funbound%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/uwsgi/README.md
+15 -13
@@ -2,26 +2,28 @@
2
3 Module monitor uwsgi performance metrics.
4
5 -https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html
5 +<https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html>
6
7 lines are creates dynamically based on how many workers are there
8
9 Following charts are drawn:
10
11 -1. **Requests**
12 - * requests per second
13 - * transmitted data
14 - * average request time
11 +1. **Requests**
12
16 -2. **Memory**
17 - * rss
18 - * vsz
13 + - requests per second
14 + - transmitted data
15 + - average request time
16
20 -3. **Exceptions**
21 -4. **Harakiris**
22 -5. **Respawns**
17 +2. **Memory**
18
24 -### configuration
19 + - rss
20 + - vsz
21 +
22 +3. **Exceptions**
23 +4. **Harakiris**
24 +5. **Respawns**
25 +
26 +## configuration
27
28 ```yaml
29 socket:
@@ -36,4 +38,4 @@ localhost:
38
39 When no configuration file is found, module tries to connect to TCP/IP socket: `localhost:1717`.
40
39 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fuwsgi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
41 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fuwsgi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/varnish/README.md
+55 -43
@@ -4,65 +4,77 @@ Module uses the `varnishstat` command to provide varnish cache statistics.
4
5 It produces:
6
7 -1. **Connections Statistics** in connections/s
8 - * accepted
9 - * dropped
7 +1. **Connections Statistics** in connections/s
8
11 -2. **Client Requests** in requests/s
12 - * received
9 + - accepted
10 + - dropped
11
14 -3. **All History Hit Rate Ratio** in percent
15 - * hit
16 - * miss
17 - * hitpass
12 +2. **Client Requests** in requests/s
13
19 -4. **Current Poll Hit Rate Ratio** in percent
20 - * hit
21 - * miss
22 - * hitpass
14 + - received
15
24 -5. **Expired Objects** in expired/s
25 - * objects
16 +3. **All History Hit Rate Ratio** in percent
17
27 -6. **Least Recently Used Nuked Objects** in nuked/s
28 - * objects
18 + - hit
19 + - miss
20 + - hitpass
21
22 +4. **Current Poll Hit Rate Ratio** in percent
23
31 -7. **Number Of Threads In All Pools** in threads
32 - * threads
24 + - hit
25 + - miss
26 + - hitpass
27
34 -8. **Threads Statistics** in threads/s
35 - * created
36 - * failed
37 - * limited
28 +5. **Expired Objects** in expired/s
29
39 -9. **Current Queue Length** in requests
40 - * in queue
30 + - objects
31 +
32 +6. **Least Recently Used Nuked Objects** in nuked/s
33 +
34 + - objects
35 +
36 +7. **Number Of Threads In All Pools** in threads
37 +
38 + - threads
39 +
40 +8. **Threads Statistics** in threads/s
41 +
42 + - created
43 + - failed
44 + - limited
45 +
46 +9. **Current Queue Length** in requests
47 +
48 + - in queue
49
50 10. **Backend Connections Statistics** in connections/s
43 - * successful
44 - * unhealthy
45 - * reused
46 - * closed
47 - * resycled
48 - * failed
51
50 -10. **Requests To The Backend** in requests/s
51 - * received
52 + - successful
53 + - unhealthy
54 + - reused
55 + - closed
56 + - resycled
57 + - failed
58 +
59 +11. **Requests To The Backend** in requests/s
60 +
61 + - received
62 +
63 +12. **ESI Statistics** in problems/s
64 +
65 + - errors
66 + - warnings
67
53 -11. **ESI Statistics** in problems/s
54 - * errors
55 - * warnings
68 +13. **Memory Usage** in MB
69
57 -12. **Memory Usage** in MB
58 - * free
59 - * allocated
70 + - free
71 + - allocated
72
61 -13. **Uptime** in seconds
62 - * uptime
73 +14. **Uptime** in seconds
74
75 + - uptime
76
65 -### configuration
77 +## configuration
78
79 Only one parameter is supported:
80
@@ -74,4 +86,4 @@ The name of the varnishd instance to get logs from. If not specified, the host n
86
87 ---
88
77 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fvarnish%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
89 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fvarnish%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/w1sensor/README.md
+2 -2
@@ -6,10 +6,10 @@ Currently temperature sensors are supported and automatically detected.
6
7 Charts are created dynamically based on the number of detected sensors.
8
9 -### configuration
9 +## configuration
10
11 For detailed configuration information please read [`w1sensor.conf`](w1sensor.conf) file.
12
13 ---
14
15 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fw1sensor%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
15 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fw1sensor%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/python.d.plugin/web_log/README.md
+46 -46
@@ -8,13 +8,13 @@ Yet, after the appearance of google analytics and similar services, and the rece
8
9 Netdata turns this "useless" log file, into a powerful performance and health monitoring tool, capable of detecting, **in real-time**, most common web server problems, such as:
10
11 -- too many redirects (i.e. **oops!** *this should not redirect clients to itself*)
12 -- too many bad requests (i.e. **oops!** *a few files were not uploaded*)
13 -- too many internal server errors (i.e. **oops!** *this release crashes too much*)
14 -- unreasonably too many requests (i.e. **oops!** *we are under attack*)
15 -- unreasonably few requests (i.e. **oops!** *call the network guys*)
16 -- unreasonably slow responses (i.e. **oops!** *the database is slow again*)
17 -- too few successful responses (i.e. **oops!** *help us God!*)
11 +- too many redirects (i.e. **oops!** *this should not redirect clients to itself*)
12 +- too many bad requests (i.e. **oops!** *a few files were not uploaded*)
13 +- too many internal server errors (i.e. **oops!** *this release crashes too much*)
14 +- unreasonably too many requests (i.e. **oops!** *we are under attack*)
15 +- unreasonably few requests (i.e. **oops!** *call the network guys*)
16 +- unreasonably slow responses (i.e. **oops!** *the database is slow again*)
17 +- too few successful responses (i.e. **oops!** *help us God!*)
18
19 ## Usage
20
@@ -29,7 +29,6 @@ If Netdata is installed on a system running a web server, it will detect it and
29
30 [**netdata**](https://my-netdata.io/) has a powerful `web_log` plugin, capable of incrementally parsing any number of web server log files. This plugin is automatically started with [**netdata**](https://my-netdata.io/) and comes, pre-configured, for finding web server log files on popular distributions. Its configuration is at [`/etc/netdata/python.d/web_log.conf`](web_log.conf), like this:
31
32 -
32 ```yaml
33 nginx_log:
34 name : 'nginx_log'
@@ -56,11 +55,11 @@ Once you have all log files configured and [**netdata**](https://my-netdata.io/)
55
56 In this chart we tried to provide a meaningful status for all responses. So:
57
59 -- `success` counts all the valid responses (i.e. `1xx` informational, `2xx` successful and `304` not modified).
60 -- `error` are `5xx` internal server errors. These are very bad, they mean your web site or API is facing difficulties.
61 -- `redirect` are `3xx` responses, except `304`. All `3xx` are redirects, but `304` means "not modified" - it tells the browsers the content they already have is still valid and can be used as-is. So, we decided to account it as a successful response.
62 -- `bad` are bad requests that cannot be served.
63 -- `other` as all the other, non-standard, types of responses.
58 +- `success` counts all the valid responses (i.e. `1xx` informational, `2xx` successful and `304` not modified).
59 +- `error` are `5xx` internal server errors. These are very bad, they mean your web site or API is facing difficulties.
60 +- `redirect` are `3xx` responses, except `304`. All `3xx` are redirects, but `304` means "not modified" - it tells the browsers the content they already have is still valid and can be used as-is. So, we decided to account it as a successful response.
61 +- `bad` are bad requests that cannot be served.
62 +- `other` as all the other, non-standard, types of responses.
63
64 ![image](https://cloud.githubusercontent.com/assets/2662304/22902194/ea0affc6-f23c-11e6-85f1-a4951dd4bb40.png)
65
@@ -68,11 +67,12 @@ In this chart we tried to provide a meaningful status for all responses. So:
67
68 Then, we group all responses by code family, without interpreting their meaning.
69 **Response by type** requests/s
71 - * success (1xx, 2xx, 304)
72 - * error (5xx)
73 - * redirect (3xx except 304)
74 - * bad (4xx)
75 - * other (all other responses)
70 +
71 +- success (1xx, 2xx, 304)
72 +- error (5xx)
73 +- redirect (3xx except 304)
74 +- bad (4xx)
75 +- other (all other responses)
76
77 ![image](https://cloud.githubusercontent.com/assets/2662304/22901883/dea7d33a-f23b-11e6-960d-00a913b58936.png)
78
@@ -81,18 +81,18 @@ Then, we group all responses by code family, without interpreting their meaning.
81 Here we show all the response codes in detail.
82
83 **Response by code family** requests/s
84 - * 1xx (informational)
85 - * 2xx (successful)
86 - * 3xx (redirect)
87 - * 4xx (bad)
88 - * 5xx (internal server errors)
89 - * other (non-standart responses)
90 - * unmatched (the lines in the log file that are not matched)
91 -
84 +
85 +- 1xx (informational)
86 +- 2xx (successful)
87 +- 3xx (redirect)
88 +- 4xx (bad)
89 +- 5xx (internal server errors)
90 +- other (non-standart responses)
91 +- unmatched (the lines in the log file that are not matched)
92
93 ![image](https://cloud.githubusercontent.com/assets/2662304/22901965/1a5d84ba-f23c-11e6-9d38-3deebcc8b879.png)
94
95 ->**Important**<br/>If your application is using hundreds of non-standard response codes, your browser may become slow while viewing this chart, so we have added a configuration [option to disable this chart](https://github.com/netdata/netdata/blob/419cd0a237275e5eeef3f92dcded84e735ee6c58/conf.d/python.d/web_log.conf#L63).
95 +> **Important**<br/>If your application is using hundreds of non-standard response codes, your browser may become slow while viewing this chart, so we have added a configuration [option to disable this chart](https://github.com/netdata/netdata/blob/419cd0a237275e5eeef3f92dcded84e735ee6c58/conf.d/python.d/web_log.conf#L63).
96
97 ### Detailed Response Codes
98
@@ -107,9 +107,10 @@ What is important to know for this chart, is that the bandwidth used for each re
107 As the legend on the chart suggests, you can use FireQoS to setup QoS on the web server ports and IPs to accurately measure the bandwidth the web server is using. Actually, [there may be a few more reasons to install QoS on your servers](../../tc.plugin/#tcplugin)...
108
109 **Bandwidth** KB/s
110 - * received (bandwidth of requests)
111 - * send (bandwidth of responses)
112 -
110 +
111 +- received (bandwidth of requests)
112 +- send (bandwidth of responses)
113 +
114 ![image](https://cloud.githubusercontent.com/assets/2662304/22902266/245141d6-f23d-11e6-90f9-98729733e0da.png)
115
116 > **Important**<br/>Most web servers do not log the request size by default.<br/>So, [unless you have configured your web server to log the size of requests](https://github.com/netdata/netdata/blob/419cd0a237275e5eeef3f92dcded84e735ee6c58/conf.d/python.d/web_log.conf#L76-L89), the `received` dimension will be always zero.
@@ -121,10 +122,11 @@ As the legend on the chart suggests, you can use FireQoS to setup QoS on the web
122 Keep in mind most web servers timings start at the reception of the full request, until the dispatch of the last byte of the response. So, they include network latencies of responses, but they do not include network latencies of requests.
123
124 **Timings** ms (request processing time)
124 - * min (bandwidth of requests)
125 - * max (bandwidth of responses)
126 - * average (bandwidth of responses)
127 -
125 +
126 +- min (bandwidth of requests)
127 +- max (bandwidth of responses)
128 +- average (bandwidth of responses)
129 +
130 ![image](https://cloud.githubusercontent.com/assets/2662304/22902283/369e3f92-f23d-11e6-9359-53e5d4ecb18e.png)
131
132 > **Important**<br/>Most web servers do not log timing information by default.<br/>So, [unless you have configured your web server to also log timings](https://github.com/netdata/netdata/blob/419cd0a237275e5eeef3f92dcded84e735ee6c58/conf.d/python.d/web_log.conf#L76-L89), this chart will not exist.
@@ -179,25 +181,23 @@ The last charts are about the unique IPs accessing your web server.
181
182 ![image](https://cloud.githubusercontent.com/assets/2662304/22902407/92dd27e6-f23d-11e6-900d-eede7bc08e64.png)
183
182 ->**Important**<br/>To provide this information `web_log` plugin keeps in memory all the IPs seen by the web server. Although this does not require so much memory, if you have a web server with several million unique client IPs, we suggest to [disable this chart](https://github.com/netdata/netdata/blob/419cd0a237275e5eeef3f92dcded84e735ee6c58/conf.d/python.d/web_log.conf#L64).
183 -
184 +> **Important**<br/>To provide this information `web_log` plugin keeps in memory all the IPs seen by the web server. Although this does not require so much memory, if you have a web server with several million unique client IPs, we suggest to [disable this chart](https://github.com/netdata/netdata/blob/419cd0a237275e5eeef3f92dcded84e735ee6c58/conf.d/python.d/web_log.conf#L64).
185
186 ## Alarms
187
188 The magic of [**netdata**](https://my-netdata.io/) is that all metrics are collected per second, and all metrics can be used or correlated to provide real-time alarms. Out of the box, [**netdata**](https://my-netdata.io/) automatically attaches the [following alarms](../../../health/health.d/web_log.conf) to all `web_log` charts (i.e. to all log files configured, individually):
189
189 -alarm|description|minimum<br/>requests|warning|critical
190 -:-------|-------|:------:|:-----:|:------:
191 -`1m_redirects`|The ratio of HTTP redirects (3xx except 304) over all the requests, during the last minute.<br/>&nbsp;<br/>*Detects if the site or the web API is suffering from too many or circular redirects.*<br/>&nbsp;<br/>(i.e. **oops!** *this should not redirect clients to itself*)|120/min|&gt; 20%|&gt; 30%
192 -`1m_bad_requests`|The ratio of HTTP bad requests (4xx) over all the requests, during the last minute.<br/>&nbsp;<br/>*Detects if the site or the web API is receiving too many bad requests, including `404`, not found.*<br/>&nbsp;<br/>(i.e. **oops!** *a few files were not uploaded*)|120/min|&gt; 30%|&gt; 50%
193 -`1m_internal_errors`|The ratio of HTTP internal server errors (5xx), over all the requests, during the last minute.<br/>&nbsp;<br/>*Detects if the site is facing difficulties to serve requests.*<br/>&nbsp;<br/>(i.e. **oops!** *this release crashes too much*)|120/min|&gt; 2%|&gt; 5%
194 -`5m_requests_ratio`|The percentage of successful web requests of the last 5 minutes, compared with the previous 5 minutes.<br/>&nbsp;<br/>*Detects if the site or the web API is suddenly getting too many or too few requests.*<br/>&nbsp;<br/>(i.e. too many = **oops!** *we are under attack*)<br/>(i.e. too few = **oops!** *call the network guys*)|120/5min|&gt; double or &lt; half|&gt; 4x or &lt; 1/4x
195 -`web_slow`|The average time to respond to requests, over the last 1 minute, compared to the average of last 10 minutes.<br/>&nbsp;<br/>*Detects if the site or the web API is suddenly a lot slower.*<br/>&nbsp;<br/>(i.e. **oops!** *the database is slow again*)|120/min|&gt; 2x|&gt; 4x
196 -`1m_successful`|The ratio of successful HTTP responses (1xx, 2xx, 304) over all the requests, during the last minute.<br/>&nbsp;<br/>*Detects if the site or the web API is performing within limits.*<br/>&nbsp;<br/>(i.e. **oops!** *help us God!*)|120/min|&lt; 85%|&lt; 75%
190 +| alarm|description|minimum<br/>requests|warning|critical|
191 +|:----|-----------|:------------------:|:-----:|:------:|
192 +| `1m_redirects`|The ratio of HTTP redirects (3xx except 304) over all the requests, during the last minute.<br/> <br/>*Detects if the site or the web API is suffering from too many or circular redirects.*<br/> <br/>(i.e. **oops!** *this should not redirect clients to itself*)|120/min|> 20%|> 30%|
193 +| `1m_bad_requests`|The ratio of HTTP bad requests (4xx) over all the requests, during the last minute.<br/> <br/>*Detects if the site or the web API is receiving too many bad requests, including `404`, not found.*<br/> <br/>(i.e. **oops!** *a few files were not uploaded*)|120/min|> 30%|> 50%|
194 +| `1m_internal_errors`|The ratio of HTTP internal server errors (5xx), over all the requests, during the last minute.<br/> <br/>*Detects if the site is facing difficulties to serve requests.*<br/> <br/>(i.e. **oops!** *this release crashes too much*)|120/min|> 2%|> 5%|
195 +| `5m_requests_ratio`|The percentage of successful web requests of the last 5 minutes, compared with the previous 5 minutes.<br/> <br/>*Detects if the site or the web API is suddenly getting too many or too few requests.*<br/> <br/>(i.e. too many = **oops!** *we are under attack*)<br/>(i.e. too few = **oops!** *call the network guys*)|120/5min|> double or \< half|> 4x or \< 1/4x|
196 +| `web_slow`|The average time to respond to requests, over the last 1 minute, compared to the average of last 10 minutes.<br/> <br/>*Detects if the site or the web API is suddenly a lot slower.*<br/> <br/>(i.e. **oops!** *the database is slow again*)|120/min|> 2x|> 4x|
197 +| `1m_successful`|The ratio of successful HTTP responses (1xx, 2xx, 304) over all the requests, during the last minute.<br/> <br/>*Detects if the site or the web API is performing within limits.*<br/> <br/>(i.e. **oops!** *help us God!*)|120/min|\< 85%|\< 75%|
198
199 The column `minimum requests` state the minimum number of requests required for the alarm to be evaluated. We found that when the site is receiving requests above this rate, these alarms are pretty accurate (i.e. no false-positives).
200
201 [**netdata**](https://my-netdata.io/) alarms are user configurable. Sample config files can be found under directory `health/health.d` of the [Netdata GitHub repository](https://github.com/netdata/netdata/). So, even [`web_log` alarms can be adapted to your needs](../../../health/health.d/web_log.conf).
202
202 -
203 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fweb_log%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
203 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fpython.d.plugin%2Fweb_log%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/statsd.plugin/README.md
+83 -84
@@ -16,45 +16,45 @@ Netdata statsd is fast. It can collect more than **1.200.000 metrics per second*
16
17 Netdata fully supports the statsd protocol. All statsd client libraries can be used with Netdata too.
18
19 -- **Gauges**
19 +- **Gauges**
20
21 - The application sends `name:value|g`, where `value` is any **decimal/fractional** number, statsd reports the latest value collected and the number of times it was updated (events).
21 + The application sends `name:value|g`, where `value` is any **decimal/fractional** number, statsd reports the latest value collected and the number of times it was updated (events).
22
23 - The application may increment or decrement a previous value, by setting the first character of the value to ` + ` or ` - ` (so, the only way to set a gauge to an absolute negative value, is to first set it to zero).
23 + The application may increment or decrement a previous value, by setting the first character of the value to `+` or `-` (so, the only way to set a gauge to an absolute negative value, is to first set it to zero).
24
25 - Sampling rate is supported (check below).
25 + Sampling rate is supported (check below).
26
27 - When a gauge is not collected and the setting is not to show gaps on the charts (the default), the last value will be shown, until a data collection event changes it.
27 + When a gauge is not collected and the setting is not to show gaps on the charts (the default), the last value will be shown, until a data collection event changes it.
28
29 -- **Counters** and **Meters**
29 +- **Counters** and **Meters**
30
31 - The application sends `name:value|c`, `name:value|C` or `name:value|m`, where `value` is a positive or negative **integer** number of events occurred, statsd reports the **rate** and the number of times it was updated (events).
31 + The application sends `name:value|c`, `name:value|C` or `name:value|m`, where `value` is a positive or negative **integer** number of events occurred, statsd reports the **rate** and the number of times it was updated (events).
32
33 - `:value` can be omitted and statsd will assume it is `1`. `|c`, `|C` and `|m` can be omitted an statsd will assume it is `|m`. So, the application may send just `name` and statsd will parse it as `name:1|m`.
33 + `:value` can be omitted and statsd will assume it is `1`. `|c`, `|C` and `|m` can be omitted an statsd will assume it is `|m`. So, the application may send just `name` and statsd will parse it as `name:1|m`.
34
35 - For counters use `|c` (esty/statsd compatible) or `|C` (brubeck compatible), for meters use `|m`.
35 + For counters use `|c` (esty/statsd compatible) or `|C` (brubeck compatible), for meters use `|m`.
36
37 - Sampling rate is supported (check below).
37 + Sampling rate is supported (check below).
38
39 - When a counter or meter is not collected and the setting is not to show gaps on the charts (the default), zero will be shown, until a data collection event changes it.
39 + When a counter or meter is not collected and the setting is not to show gaps on the charts (the default), zero will be shown, until a data collection event changes it.
40
41 -- **Timers** and **Histograms**
41 +- **Timers** and **Histograms**
42
43 - The application sends `name:value|ms` or `name:value|h`, where ` value` is any **decimal/fractional** number, statsd reports **min**, **max**, **average**, **sum**, **95th percentile**, **median** and **standard deviation** and the total number of times it was updated (events).
43 + The application sends `name:value|ms` or `name:value|h`, where `value` is any **decimal/fractional** number, statsd reports **min**, **max**, **average**, **sum**, **95th percentile**, **median** and **standard deviation** and the total number of times it was updated (events).
44
45 - For timers use `|ms`, or histograms use `|h`. The only difference between the two, is the `units` of the charts (timers report milliseconds).
45 + For timers use `|ms`, or histograms use `|h`. The only difference between the two, is the `units` of the charts (timers report milliseconds).
46
47 - Sampling rate is supported (check below).
47 + Sampling rate is supported (check below).
48
49 - When a timer or histogram is not collected and the setting is not to show gaps on the charts (the default), zero will be shown, until a data collection event changes it.
49 + When a timer or histogram is not collected and the setting is not to show gaps on the charts (the default), zero will be shown, until a data collection event changes it.
50
51 -- **Sets**
51 +- **Sets**
52
53 - The application sends `name:value|s`, where `value` is anything (**number or text**, leading and trailing spaces are removed), statsd reports the number of unique values sent and the number of times it was updated (events).
53 + The application sends `name:value|s`, where `value` is anything (**number or text**, leading and trailing spaces are removed), statsd reports the number of unique values sent and the number of times it was updated (events).
54
55 - Sampling rate is **not** supported for Sets. `value` is always considered text.
55 + Sampling rate is **not** supported for Sets. `value` is always considered text.
56
57 - When a set is not collected and the setting is not to show gaps on the charts (the default), zero will be shown, until a data collection event changes it.
57 + When a set is not collected and the setting is not to show gaps on the charts (the default), zero will be shown, until a data collection event changes it.
58
59 #### Sampling Rates
60
@@ -105,21 +105,22 @@ This is the statsd configuration at `/etc/netdata/netdata.conf`:
105 ```
106
107 ### statsd main config options
108 -- `enabled = yes|no`
108
110 - controls if statsd will be enabled for this Netdata. The default is enabled.
109 +- `enabled = yes|no`
110
112 -- `default port = 8125`
111 + controls if statsd will be enabled for this Netdata. The default is enabled.
112
114 - controls the port statsd will use. This is the default, since the next line, allows defining ports too.
113 +- `default port = 8125`
114
116 -- `bind to = udp:localhost tcp:localhost`
115 + controls the port statsd will use. This is the default, since the next line, allows defining ports too.
116
118 - is a space separated list of IPs and ports to listen to. The format is `PROTOCOL:IP:PORT` - if `PORT` is omitted, the `default port` will be used. If `IP` is IPv6, it needs to be enclosed in `[]`. `IP` can also be ` * ` (to listen on all IPs) or even a hostname.
117 +- `bind to = udp:localhost tcp:localhost`
118
120 -- `update every (flushInterval) = 1` seconds, controls the frequency statsd will push the collected metrics to Netdata charts.
119 + is a space separated list of IPs and ports to listen to. The format is `PROTOCOL:IP:PORT` - if `PORT` is omitted, the `default port` will be used. If `IP` is IPv6, it needs to be enclosed in `[]`. `IP` can also be `*` (to listen on all IPs) or even a hostname.
120
122 -- `decimal detail = 1000` controls the number of fractional digits in gauges and histograms. Netdata collects metrics using signed 64 bit integers and their fractional detail is controlled using multipliers and divisors. This setting is used to multiply all collected values to convert them to integers and is also set as the divisors, so that the final data will be a floating point number with this fractional detail (1000 = X.0 - X.999, 10000 = X.0 - X.9999, etc).
121 +- `update every (flushInterval) = 1` seconds, controls the frequency statsd will push the collected metrics to Netdata charts.
122 +
123 +- `decimal detail = 1000` controls the number of fractional digits in gauges and histograms. Netdata collects metrics using signed 64 bit integers and their fractional detail is controlled using multipliers and divisors. This setting is used to multiply all collected values to convert them to integers and is also set as the divisors, so that the final data will be a floating point number with this fractional detail (1000 = X.0 - X.999, 10000 = X.0 - X.9999, etc).
124
125 The rest of the settings are discussed below.
126
@@ -127,9 +128,9 @@ The rest of the settings are discussed below.
128
129 Netdata can visualize statsd collected metrics in 2 ways:
130
130 -1. Each metric gets its own **private chart**. This is the default and does not require any configuration (although there are a few options to tweak).
131 +1. Each metric gets its own **private chart**. This is the default and does not require any configuration (although there are a few options to tweak).
132
132 -2. **Synthetic charts** can be created, combining multiple metrics, independently of their metric types. For this type of charts, special configuration is required, to define the chart title, type, units, its dimensions, etc.
133 +2. **Synthetic charts** can be created, combining multiple metrics, independently of their metric types. For this type of charts, special configuration is required, to define the chart title, type, units, its dimensions, etc.
134
135 ### private metric charts
136
@@ -155,25 +156,25 @@ Example private charts (automatically generated without any configuration):
156
157 #### counters
158
158 -- Scope: **count the events of something** (e.g. number of file downloads)
159 -- Format: `name:INTEGER|c` or `name:INTEGER|C` or `name|c`
160 -- statsd increments the counter by the `INTEGER` number supplied (positive, or negative).
159 +- Scope: **count the events of something** (e.g. number of file downloads)
160 +- Format: `name:INTEGER|c` or `name:INTEGER|C` or `name|c`
161 +- statsd increments the counter by the `INTEGER` number supplied (positive, or negative).
162
163 ![image](https://cloud.githubusercontent.com/assets/2662304/26131553/4a26d19c-3aa3-11e7-94e8-c53b5ed6ebc3.png)
164
165 #### gauges
166
166 -- Scope: **report the value of something** (e.g. cache memory used by the application server)
167 -- Format: `name:FLOAT|g`
168 -- statsd remembers the last value supplied, and can increment or decrement the latest value if `FLOAT` begins with ` + ` or ` - `.
167 +- Scope: **report the value of something** (e.g. cache memory used by the application server)
168 +- Format: `name:FLOAT|g`
169 +- statsd remembers the last value supplied, and can increment or decrement the latest value if `FLOAT` begins with `+` or `-`.
170
171 ![image](https://cloud.githubusercontent.com/assets/2662304/26131575/5d54e6f0-3aa3-11e7-9099-bc4440cd4592.png)
172
173 #### histograms
174
174 -- Scope: **statistics on a size of events** (e.g. statistics on the sizes of files downloaded)
175 -- Format: `name:FLOAT|h`
176 -- statsd maintains a list of all the values supplied and provides statistics on them.
175 +- Scope: **statistics on a size of events** (e.g. statistics on the sizes of files downloaded)
176 +- Format: `name:FLOAT|h`
177 +- statsd maintains a list of all the values supplied and provides statistics on them.
178
179 ![image](https://cloud.githubusercontent.com/assets/2662304/26131587/704de72a-3aa3-11e7-9ea9-0d2bb778c150.png)
180
@@ -184,42 +185,40 @@ The same chart with `sum` unselected, to show the detail of the dimensions suppo
185
186 This is identical to `counter`.
187
187 -- Scope: **count the events of something** (e.g. number of file downloads)
188 -- Format: `name:INTEGER|m` or `name|m` or just `name`
189 -- statsd increments the counter by the `INTEGER` number supplied (positive, or negative).
188 +- Scope: **count the events of something** (e.g. number of file downloads)
189 +- Format: `name:INTEGER|m` or `name|m` or just `name`
190 +- statsd increments the counter by the `INTEGER` number supplied (positive, or negative).
191
192 ![image](https://cloud.githubusercontent.com/assets/2662304/26131605/8fdf5a06-3aa3-11e7-963f-7ecf207d1dbc.png)
193
194 #### sets
195
195 -- Scope: **count the unique occurrences of something** (e.g. unique filenames downloaded, or unique users that downloaded files)
196 -- Format: `name:TEXT|s`
197 -- statsd maintains a unique index of all values supplied, and reports the unique entries in it.
196 +- Scope: **count the unique occurrences of something** (e.g. unique filenames downloaded, or unique users that downloaded files)
197 +- Format: `name:TEXT|s`
198 +- statsd maintains a unique index of all values supplied, and reports the unique entries in it.
199
200 ![image](https://cloud.githubusercontent.com/assets/2662304/26131612/9eaa7b1a-3aa3-11e7-903b-d881e9a35be2.png)
201
202 #### timers
203
203 -- Scope: **statistics on the duration of events** (e.g. statistics for the duration of file downloads)
204 -- Format: `name:FLOAT|ms`
205 -- statsd maintains a list of all the values supplied and provides statistics on them.
204 +- Scope: **statistics on the duration of events** (e.g. statistics for the duration of file downloads)
205 +- Format: `name:FLOAT|ms`
206 +- statsd maintains a list of all the values supplied and provides statistics on them.
207
208 ![image](https://cloud.githubusercontent.com/assets/2662304/26131620/acbea6a4-3aa3-11e7-8bdd-4a8996847767.png)
209
210 The same chart with the `sum` unselected:
211 ![image](https://cloud.githubusercontent.com/assets/2662304/26131629/bc34f2d2-3aa3-11e7-8a07-f2fc94ba4352.png)
212
212 -
213 -
213 ### synthetic statsd charts
214
215 Using synthetic charts, you can create dedicated sections on the dashboard to render the charts. You can control everything: the main menu, the submenus, the charts, the dimensions on each chart, etc.
216
217 Synthetic charts are organized in
218
220 -- **applications** (i.e. entries at the main menu of the Netdata dashboard)
221 -- **charts for each application** (grouped in families - i.e. submenus at the dashboard menu)
222 -- **statsd metrics for each chart** (i.e. dimensions of the charts)
219 +- **applications** (i.e. entries at the main menu of the Netdata dashboard)
220 +- **charts for each application** (grouped in families - i.e. submenus at the dashboard menu)
221 +- **statsd metrics for each chart** (i.e. dimensions of the charts)
222
223 For each application you need to create a `.conf` file in `/etc/netdata/statsd.d`.
224
@@ -256,12 +255,12 @@ Using the above configuration `myapp` should get its own section on the dashboar
255
256 `[app]` starts a new application definition. The supported settings in this section are:
257
259 -- `name` defines the name of the app.
260 -- `metrics` is a Netdata simple pattern (space separated patterns, using `*` for wildcard, possibly starting with `!` for negative match). This pattern should match all the possible statsd metrics that will be participating in the application `myapp`.
261 -- `private charts = yes|no`, enables or disables private charts for the metrics matched.
262 -- `gaps when not collected = yes|no`, enables or disables gaps on the charts of the application, when metrics are not collected.
263 -- `memory mode` sets the memory mode for all charts of the application. The default is the global default for Netdata (not the global default for statsd private charts).
264 -- `history` sets the size of the round robin database for this application. The default is the global default for Netdata (not the global default for statsd private charts).
258 +- `name` defines the name of the app.
259 +- `metrics` is a Netdata simple pattern (space separated patterns, using `*` for wildcard, possibly starting with `!` for negative match). This pattern should match all the possible statsd metrics that will be participating in the application `myapp`.
260 +- `private charts = yes|no`, enables or disables private charts for the metrics matched.
261 +- `gaps when not collected = yes|no`, enables or disables gaps on the charts of the application, when metrics are not collected.
262 +- `memory mode` sets the memory mode for all charts of the application. The default is the global default for Netdata (not the global default for statsd private charts).
263 +- `history` sets the size of the round robin database for this application. The default is the global default for Netdata (not the global default for statsd private charts).
264
265 `[dictionary]` defines name-value associations. These are used to renaming metrics, when added to synthetic charts. Metric names are also defined at each `dimension` line. However, using the dictionary dimension names can be declared globally, for each app and is the only way to rename dimensions when using patterns. Of course the dictionary can be empty or missing.
266
@@ -269,14 +268,15 @@ Then, you can add any number of charts. Each chart should start with `[id]`. Th
268
269 You can add any number of metrics to a chart, using `dimension` lines. These lines accept 5 space separated parameters:
270
272 -1. the metric name, as it is collected (it has to be matched by the `metrics = ` pattern of the app)
273 -2. the dimension name, as it should be shown on the chart
274 -3. an optional selector (type) of the value to shown (see below)
275 -4. an optional multiplier
276 -5. an optional divider
277 -6. optional flags, space separated and enclosed in quotes. All the external plugins `DIMENSION` flags can be used. Currently the only usable flag is `hidden`, to add the dimension, but not show it on the dashboard. This is usually needed to have the values available for percentage calculation, or use them in alarms.
271 +1. the metric name, as it is collected (it has to be matched by the `metrics =` pattern of the app)
272 +2. the dimension name, as it should be shown on the chart
273 +3. an optional selector (type) of the value to shown (see below)
274 +4. an optional multiplier
275 +5. an optional divider
276 +6. optional flags, space separated and enclosed in quotes. All the external plugins `DIMENSION` flags can be used. Currently the only usable flag is `hidden`, to add the dimension, but not show it on the dashboard. This is usually needed to have the values available for percentage calculation, or use them in alarms.
277
278 So, the format is this:
279 +
280 ```
281 dimension = [pattern] METRIC NAME TYPE MULTIPLIER DIVIDER OPTIONS
282 ```
@@ -287,18 +287,18 @@ dimension = [pattern] METRIC NAME TYPE MULTIPLIER DIVIDER OPTIONS
287
288 `TYPE` can be:
289
290 -- `events` to show the number of events received by statsd for this metric
291 -- `last` to show the last value, as calculated at the flush interval of the metric (the default)
290 +- `events` to show the number of events received by statsd for this metric
291 +- `last` to show the last value, as calculated at the flush interval of the metric (the default)
292
293 Then for histograms and timers the following types are also supported:
294
295 -- `min`, show the minimum value
296 -- `max`, show the maximum value
297 -- `sum`, show the sum of all values
298 -- `average` (same as `last`)
299 -- `percentile`, show the 95th percentile (or any other percentile, as configured at statsd global config)
300 -- `median`, show the median of all values (i.e. sort all values and get the middle value)
301 -- `stddev`, show the standard deviation of the values
295 +- `min`, show the minimum value
296 +- `max`, show the maximum value
297 +- `sum`, show the sum of all values
298 +- `average` (same as `last`)
299 +- `percentile`, show the 95th percentile (or any other percentile, as configured at statsd global config)
300 +- `median`, show the median of all values (i.e. sort all values and get the middle value)
301 +- `stddev`, show the standard deviation of the values
302
303 #### example synthetic charts
304
@@ -338,16 +338,16 @@ The `[dictionary]` section accepts any number of `name = value` pairs.
338
339 Netdata uses this dictionary as follows:
340
341 -1. When a `dimension` has a non-empty `NAME`, that name is looked up at the dictionary.
341 +1. When a `dimension` has a non-empty `NAME`, that name is looked up at the dictionary.
342
343 -2. If the above lookup gives nothing, or the `dimension` has an empty `NAME`, the original statsd metric name is looked up at the dictionary.
343 +2. If the above lookup gives nothing, or the `dimension` has an empty `NAME`, the original statsd metric name is looked up at the dictionary.
344
345 -3. If any of the above succeeds, Netdata uses the `value` of the dictionary, to set the name of the dimension. The dimensions will have as ID the original statsd metric name, and as name, the dictionary value.
345 +3. If any of the above succeeds, Netdata uses the `value` of the dictionary, to set the name of the dimension. The dimensions will have as ID the original statsd metric name, and as name, the dictionary value.
346
347 So, you can use the dictionary in 2 ways:
348
349 -1. set `dimension = myapp.metric1 ''` and have at the dictionary `myapp.metric1 = metric1 name`
350 -2. set `dimension = myapp.metric1 'm1'` and have at the dictionary `m1 = metric1 name`
349 +1. set `dimension = myapp.metric1 ''` and have at the dictionary `myapp.metric1 = metric1 name`
350 +2. set `dimension = myapp.metric1 'm1'` and have at the dictionary `m1 = metric1 name`
351
352 In both cases, the dimension will be added with ID `myapp.metric1` and will be named `metric1 name`. So, in alarms you can use either of the 2 as `${myapp.metric1}` or `${metric1 name}`.
353
@@ -432,7 +432,6 @@ To automatically rename the methods, use this:
432
433 Using the above, the dimensions will be added as `GET`, `ADD` and `DELETE`.
434
435 -
435 ## interpolation
436
437 ~~If you send just one value to statsd, you will notice that the chart is created but no value is shown. The reason is that Netdata interpolates all values at second boundaries. For incremental values (`counters` and `meters` in statsd terminology), if you send 10 at 00:00:00.500, 20 at 00:00:01.500 and 30 at 00:00:02.500, Netdata will show 15 at 00:00:01 and 25 at 00:00:02.~~
@@ -455,9 +454,9 @@ echo "NAME:VALUE|TYPE" | nc -u --send-only localhost 8125
454
455 Where:
456
458 -- `NAME` is the metric name
459 -- `VALUE` is the value for that metric (**gauges** `|g`, **timers** `|ms` and **histograms** `|h` accept decimal/fractional numbers, **counters** `|c` and **meters** `|m` accept integers, **sets** `|s` accept anything)
460 -- `TYPE` is one of `g`, `ms`, `h`, `c`, `m`, `s` to select the metric type.
457 +- `NAME` is the metric name
458 +- `VALUE` is the value for that metric (**gauges** `|g`, **timers** `|ms` and **histograms** `|h` accept decimal/fractional numbers, **counters** `|c` and **meters** `|m` accept integers, **sets** `|s` accept anything)
459 +- `TYPE` is one of `g`, `ms`, `h`, `c`, `m`, `s` to select the metric type.
460
461 So, to set `metric1` as gauge to value `10`, use:
462
@@ -520,4 +519,4 @@ statsd "metric1:10|g" "metric2:10|c" ...
519
520 The function is smart enough to call `nc` just once and pass all the metrics to it. It will also automatically switch to TCP if the metrics to send are above 1000 bytes.
521
523 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fstatsd.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
522 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fstatsd.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/tc.plugin/README.md
+26 -23
@@ -28,49 +28,51 @@ One of the features the Linux kernel has, but it is rarely used, is its ability
28
29 QoS is about 2 features:
30
31 -1. **Classify traffic**
31 +1. **Classify traffic**
32
33 Classification is the process of organizing traffic in groups, called **classes**. Classification can evaluate every aspect of network packets, like source and destination ports, source and destination IPs, netfilter marks, etc.
34
35 When you classify traffic, you just assign a label to it. Of course classes have some properties themselves (like queuing mechanisms), but let's say it is that simple: **a label**. For example **I call `web server` traffic, the traffic from my server's tcp/80, tcp/443 and to my server's tcp/80, tcp/443, while I call `web surfing` all other tcp/80 and tcp/443 traffic**. You can use any combinations you like. There is no limit.
36
37 -2. **Apply traffic shaping rules to these classes**
37 +2. **Apply traffic shaping rules to these classes**
38
39 Traffic shaping is used to control how network interface bandwidth should be shared among the classes. Normally, you need to do this, when there is not enough bandwidth to satisfy all the demand, or when you want to control the supply of bandwidth to certain services. Of course classification is sufficient for monitoring traffic, but traffic shaping is also quite important, as we will explain in the next section.
40
41 ## Why you want QoS
42
43 -1. **Monitoring the bandwidth used by services**
43 +1. **Monitoring the bandwidth used by services**
44
45 - Netdata provides wonderful real-time charts, like this one (wait to see the orange `rsync` part):
45 + Netdata provides wonderful real-time charts, like this one (wait to see the orange `rsync` part):
46
47 - ![qos3](https://cloud.githubusercontent.com/assets/2662304/14474189/713ede84-0104-11e6-8c9c-8dca5c2abd63.gif)
47 + ![qos3](https://cloud.githubusercontent.com/assets/2662304/14474189/713ede84-0104-11e6-8c9c-8dca5c2abd63.gif)
48
49 -2. **Ensure sensitive administrative tasks will not starve for bandwidth**
49 +2. **Ensure sensitive administrative tasks will not starve for bandwidth**
50
51 - Have you tried to ssh to a server when the network is congested? If you have, you already know it does not work very well. QoS can guarantee that services like ssh, dns, ntp, etc will always have a small supply of bandwidth. So, no matter what happens, you will be able to ssh to your server and DNS will always work.
51 + Have you tried to ssh to a server when the network is congested? If you have, you already know it does not work very well. QoS can guarantee that services like ssh, dns, ntp, etc will always have a small supply of bandwidth. So, no matter what happens, you will be able to ssh to your server and DNS will always work.
52
53 -3. **Ensure administrative tasks will not monopolize all the bandwidth**
53 +3. **Ensure administrative tasks will not monopolize all the bandwidth**
54
55 - Services like backups, file copies, database dumps, etc can easily monopolize all the available bandwidth. It is common for example a nightly backup, or a huge file transfer to negatively influence the end-user experience. QoS can fix that.
55 + Services like backups, file copies, database dumps, etc can easily monopolize all the available bandwidth. It is common for example a nightly backup, or a huge file transfer to negatively influence the end-user experience. QoS can fix that.
56
57 -4. **Ensure each end-user connection will get a fair cut of the available bandwidth.**
57 +4. **Ensure each end-user connection will get a fair cut of the available bandwidth.**
58
59 - Several QoS queuing disciplines in Linux do this automatically, without any configuration from you. The result is that new sockets are favored over older ones, so that users will get a snappier experience, while others are transferring large amounts of traffic.
59 + Several QoS queuing disciplines in Linux do this automatically, without any configuration from you. The result is that new sockets are favored over older ones, so that users will get a snappier experience, while others are transferring large amounts of traffic.
60
61 -5. **Protect the servers from DDoS attacks.**
61 +5. **Protect the servers from DDoS attacks.**
62
63 - When your system is under a DDoS attack, it will get a lot more bandwidth compared to the one it can handle and probably your applications will crash. Setting a limit on the inbound traffic using QoS, will protect your servers (throttle the requests) and depending on the size of the attack may allow your legitimate users to access the server, while the attack is taking place.
63 + When your system is under a DDoS attack, it will get a lot more bandwidth compared to the one it can handle and probably your applications will crash. Setting a limit on the inbound traffic using QoS, will protect your servers (throttle the requests) and depending on the size of the attack may allow your legitimate users to access the server, while the attack is taking place.
64
65 - Using QoS together with a [SYNPROXY](../proc.plugin/README.md#linux-anti-ddos) will provide a great degree of protection against most DDoS attacks. Actually when I wrote that article, a few folks tried to DDoS the Netdata demo site to see in real-time the SYNPROXY operation. They did not do it right, but anyway a great deal of requests reached the Netdata server. What saved Netdata was QoS. The Netdata demo server has QoS installed, so the requests were throttled and the server did not even reach the point of resource starvation. Read about it [here](../proc.plugin/README.md#linux-anti-ddos).
65 + Using QoS together with a [SYNPROXY](../proc.plugin/README.md#linux-anti-ddos) will provide a great degree of protection against most DDoS attacks. Actually when I wrote that article, a few folks tried to DDoS the Netdata demo site to see in real-time the SYNPROXY operation. They did not do it right, but anyway a great deal of requests reached the Netdata server. What saved Netdata was QoS. The Netdata demo server has QoS installed, so the requests were throttled and the server did not even reach the point of resource starvation. Read about it [here](../proc.plugin/README.md#linux-anti-ddos).
66
67 On top of all these, QoS is extremely light. You will configure it once, and this is it. It will not bother you again and it will not use any noticeable CPU resources, especially on application and database servers.
68
69 - - ensure administrative tasks (like ssh, dns, etc) will always have a small but guaranteed bandwidth. So, no matter what happens, I will be able to ssh to my server and DNS will work.
69 +```
70 +- ensure administrative tasks (like ssh, dns, etc) will always have a small but guaranteed bandwidth. So, no matter what happens, I will be able to ssh to my server and DNS will work.
71
71 - - ensure other administrative tasks will not monopolize all the available bandwidth. So, my nightly backup will not hurt my users, a developer that is copying files over the net will not get all the available bandwidth, etc.
72 +- ensure other administrative tasks will not monopolize all the available bandwidth. So, my nightly backup will not hurt my users, a developer that is copying files over the net will not get all the available bandwidth, etc.
73
73 - - ensure each end-user connection will get a fair cut of the available bandwidth.
74 +- ensure each end-user connection will get a fair cut of the available bandwidth.
75 +```
76
77 Once **traffic classification** is applied, we can use **[netdata](https://github.com/netdata/netdata)** to visualize the bandwidth consumption per class in real-time (no configuration is needed for Netdata - it will figure it out).
78
@@ -78,8 +80,8 @@ QoS, is extremely light. You will configure it once, and this is it. It will not
80
81 This is QoS from a home linux router. Check these features:
82
81 -1. It is real-time (per second updates)
82 -2. QoS really works in Linux - check that the `background` traffic is squeezed when `surfing` needs it.
83 +1. It is real-time (per second updates)
84 +2. QoS really works in Linux - check that the `background` traffic is squeezed when `surfing` needs it.
85
86 ![test2](https://cloud.githubusercontent.com/assets/2662304/14093004/68966020-f553-11e5-98fe-ffee2086fafd.gif)
87
@@ -168,6 +170,7 @@ And this is what you are going to get:
170 First, setup the tc rules in rc.local using commands to assign different DSCP markings to different classids. You can see one such example in [github issue #4563](https://github.com/netdata/netdata/issues/4563#issuecomment-455711973).
171
172 Then, map the classids to names by creating `/etc/iproute2/tc_cls`. For example:
173 +
174 ```
175 2:1 Standard
176 2:8 LowPriorityData
@@ -184,14 +187,14 @@ Then, map the classids to names by creating `/etc/iproute2/tc_cls`. For example:
187 ```
188
189 Add the following configuration option in `/etc/netdata.conf`:
187 -```[plugin:tc]
190 +
191 +```\[plugin:tc]
192 enable show all classes and qdiscs for all interfaces = yes
193 ```
194
195 Finally, create `/etc/netdata/tc-qos-helper.conf` with this content:
192 -```tc_show="class"```
196 +`tc_show="class"`
197
198 Please note, that by default Netdata will enable monitoring metrics only when they are not zero. If they are constantly zero they are ignored. Metrics that will start having values, after Netdata is started, will be detected and charts will be automatically added to the dashboard (a refresh of the dashboard is needed for them to appear though). Set `yes` for a chart instead of `auto` to enable it permanently. You can also set the `enable zero metrics` option to `yes` in the `[global]` section which enables charts with zero metrics for all internal Netdata plugins.
199
196 -
197 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ftc.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
200 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Ftc.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
collectors/xenstat.plugin/README.md
+10 -8
@@ -4,9 +4,9 @@
4
5 ## Prerequisites
6
7 -1. install `xen-dom0-libs-devel` and `yajl-devel` using the package manager of your system.
7 +1. install `xen-dom0-libs-devel` and `yajl-devel` using the package manager of your system.
8
9 -2. re-install Netdata from source. The installer will detect that the required libraries are now available and will also build xenstat.plugin.
9 +2. re-install Netdata from source. The installer will detect that the required libraries are now available and will also build xenstat.plugin.
10
11 Keep in mind that `libxenstat` requires root access, so the plugin is setuid to root.
12
@@ -15,13 +15,15 @@ Keep in mind that `libxenstat` requires root access, so the plugin is setuid to
15 The plugin provides XenServer and XCP-ng host and domains statistics:
16
17 Host:
18 -1. Number of domains.
18 +
19 +1. Number of domains.
20
21 Domain:
21 -1. CPU.
22 -2. Memory.
23 -3. Networks.
24 -4. VBDs.
22 +
23 +1. CPU.
24 +2. Memory.
25 +3. Networks.
26 +4. VBDs.
27
28 ## Configuration
29
@@ -42,4 +44,4 @@ sudo /usr/libexec/netdata/plugins.d/xenstat.plugin 1 debug
44
45 You will get verbose output on what the plugin does.
46
45 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnfacct.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
47 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fnfacct.plugin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
contrib/README.md
+22 -17
@@ -11,19 +11,24 @@ To build Netdata for a Debian Jessie system, the debian directory
11 has to be available in the root of the Netdata source. The easiest
12 way to do this is with a symlink:
13
14 - ~/netdata$ ln -s contrib/debian
14 +```
15 +~/netdata$ ln -s contrib/debian
16 +```
17
18 Then build the debian package:
19
18 - ~/netdata$ dpkg-buildpackage -us -uc -rfakeroot
20 +```
21 +~/netdata$ dpkg-buildpackage -us -uc -rfakeroot
22 +```
23
24 This should give a package that can be installed in the parent
25 directory, which you can install manually with dpkg.
26
23 - ~/netdata$ ls ../*.deb
24 - ../netdata_1.0.0_amd64.deb
25 - ~/netdata$ sudo dpkg -i ../netdata_1.0.0_amd64.deb
26 -
27 +```
28 +~/netdata$ ls ../*.deb
29 +../netdata_1.0.0_amd64.deb
30 +~/netdata$ sudo dpkg -i ../netdata_1.0.0_amd64.deb
31 +```
32
33 ### Building for a Debian system without systemd
34
@@ -32,21 +37,21 @@ are based on systemd. To build non-systemd packages (for example,
37 for Debian wheezy), you will need to make a couple of minor
38 updates first.
39
35 -* edit `contrib/debian/rules` and adjust the `dh` rule near the
36 - top to remove systemd (see comments in that file).
40 +- edit `contrib/debian/rules` and adjust the `dh` rule near the
41 + top to remove systemd (see comments in that file).
42
38 -* rename `contrib/debian/control.wheezy` to `contrib/debian/control`.
43 +- rename `contrib/debian/control.wheezy` to `contrib/debian/control`.
44
40 -* change `control.wheezy from contrib/Makefile* to control`.
45 +- change `control.wheezy from contrib/Makefile* to control`.
46
42 -* uncomment `EXTRA_OPTS="-P /var/run/netdata.pid"` in
43 - `contrib/debian/netdata.default`
47 +- uncomment `EXTRA_OPTS="-P /var/run/netdata.pid"` in
48 + `contrib/debian/netdata.default`
49
45 -* edit `contrib/debian/netdata.init` and change `PIDFILE` to
46 - `/var/run/netdata.pid`
50 +- edit `contrib/debian/netdata.init` and change `PIDFILE` to
51 + `/var/run/netdata.pid`
52
48 -* remove `dpkg-statoverride --update --add --force root netdata 0775 /var/lib/netdata/registry` from
49 - `contrib/debian/netdata.postinst.in`. If you are going to handle the unique id file differently.
53 +- remove `dpkg-statoverride --update --add --force root netdata 0775 /var/lib/netdata/registry` from
54 + `contrib/debian/netdata.postinst.in`. If you are going to handle the unique id file differently.
55
56 Then proceed as the main instructions above.
57
@@ -57,4 +62,4 @@ source is to remove the current package from your system, then
62 install the new package. Upgrading on wheezy is known to not
63 work cleanly; Jessie may behave as expected.
64
60 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcontrib%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
65 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcontrib%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
contrib/sles11/README.md
+7 -6
@@ -2,10 +2,11 @@
2
3 Based on [opensuse rpm spec](https://build.opensuse.org/package/show/network/netdata) with some
4 changes and additions for sles 11 backport, namely:
5 -- init.d script
6 -- run-time dependency on python ordereddict backport
7 -- patch for Netdata python.d plugin to work with older python
8 -- crude hack of notification script to work with bash 3 (email and syslog only, one destination,
9 - see comments at the top)
5
11 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcontrib%2Fsles11%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
6 +- init.d script
7 +- run-time dependency on python ordereddict backport
8 +- patch for Netdata python.d plugin to work with older python
9 +- crude hack of notification script to work with bash 3 (email and syslog only, one destination,
10 + see comments at the top)
11 +
12 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcontrib%2Fsles11%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
daemon/README.md
+38 -45
@@ -2,17 +2,17 @@
2
3 ## Starting netdata
4
5 -- You can start Netdata by executing it with `/usr/sbin/netdata` (the installer will also start it).
5 +- You can start Netdata by executing it with `/usr/sbin/netdata` (the installer will also start it).
6
7 -- You can stop Netdata by killing it with `killall netdata`.
8 - You can stop and start Netdata at any point. Netdata saves on exit its round robbin
9 - database to `/var/cache/netdata` so that it will continue from where it stopped the last time.
7 +- You can stop Netdata by killing it with `killall netdata`.
8 + You can stop and start Netdata at any point. Netdata saves on exit its round robbin
9 + database to `/var/cache/netdata` so that it will continue from where it stopped the last time.
10
11 Access to the web site, for all graphs, is by default on port `19999`, so go to:
12
13 - ```
14 - http://127.0.0.1:19999/
15 - ```
13 +```
14 +http://127.0.0.1:19999/
15 +```
16
17 You can get the running config file at any time, by accessing `http://127.0.0.1:19999/netdata.conf`.
18
@@ -77,7 +77,7 @@ chmod +x /etc/init.d/netdata
77 chkconfig --add netdata
78 ```
79
80 -_There have been some recent work on the init script, see PR https://github.com/netdata/netdata/pull/403_
80 +_There have been some recent work on the init script, see PR <https://github.com/netdata/netdata/pull/403>_
81
82 #### other systems
83
@@ -98,8 +98,8 @@ netdata -h
98 The program will print the supported command line parameters.
99
100 The command line options of the Netdata 1.10.0 version are the following:
101 -```
101
102 +```
103 ^
104 |.-. .-. .-. .-. . netdata
105 | '-' '-' '-' '-' real-time performance monitoring, done right!
@@ -184,9 +184,9 @@ The command line options of the Netdata 1.10.0 version are the following:
184
185 Netdata uses 3 log files:
186
187 -1. `error.log`
188 -2. `access.log`
189 -3. `debug.log`
187 +1. `error.log`
188 +2. `access.log`
189 +3. `debug.log`
190
191 Any of them can be disabled by setting it to `/dev/null` or `none` in `netdata.conf`.
192 By default `error.log` and `access.log` are enabled. `debug.log` is only enabled if
@@ -204,11 +204,11 @@ it will appear in `error.log`.
204 For most Netdata programs (including standard external plugins shipped by netdata), the
205 following lines may appear:
206
207 -tag|description
208 -:---:|:----
209 -`INFO`|Something important the user should know.
210 -`ERROR`|Something that might disable a part of netdata.<br/>The log line includes `errno` (if it is not zero).
211 -`FATAL`|Something prevented a program from running.<br/>The log line includes `errno` (if it is not zero) and the program exited.
207 +| tag|description|
208 +|:-:|:----------|
209 +| `INFO`|Something important the user should know.|
210 +| `ERROR`|Something that might disable a part of netdata.<br/>The log line includes `errno` (if it is not zero).|
211 +| `FATAL`|Something prevented a program from running.<br/>The log line includes `errno` (if it is not zero) and the program exited.|
212
213 So, when auto-detection of data collection fail, `ERROR` lines are logged and the relevant modules
214 are disabled, but the program continues to run.
@@ -225,21 +225,19 @@ DATE: ID: (sent/all = SENT_BYTES/ALL_BYTES bytes PERCENT_COMPRESSION%, prep/sent
225
226 where:
227
228 - - `ID` is the client ID. Client IDs are auto-incremented every time a client connects to netdata.
229 - - `SENT_BYTES` is the number of bytes sent to the client, without the HTTP response header.
230 - - `ALL_BYTES` is the number of bytes of the response, before compression.
231 - - `PERCENT_COMPRESSION` is the percentage of traffic saved due to compression.
232 - - `PREP_TIME` is the time in milliseconds needed to prepared the response.
233 - - `SENT_TIME` is the time in milliseconds needed to sent the response to the client.
234 - - `TOTAL_TIME` is the total time the request was inside Netdata (from the first byte of the request to the last byte of the response).
235 - - `ACTION` can be `filecopy`, `options` (used in CORS), `data` (API call).
236 -
228 +- `ID` is the client ID. Client IDs are auto-incremented every time a client connects to netdata.
229 +- `SENT_BYTES` is the number of bytes sent to the client, without the HTTP response header.
230 +- `ALL_BYTES` is the number of bytes of the response, before compression.
231 +- `PERCENT_COMPRESSION` is the percentage of traffic saved due to compression.
232 +- `PREP_TIME` is the time in milliseconds needed to prepared the response.
233 +- `SENT_TIME` is the time in milliseconds needed to sent the response to the client.
234 +- `TOTAL_TIME` is the total time the request was inside Netdata (from the first byte of the request to the last byte of the response).
235 +- `ACTION` can be `filecopy`, `options` (used in CORS), `data` (API call).
236
237 #### debug.log
238
239 See [debugging](#debugging).
240
242 -
241 ## OOM Score
242
243 Netdata runs with `OOMScore = 1000`. This means Netdata will be the first to be killed when your
@@ -290,7 +288,6 @@ If you want to control it entirely via systemd, you can set in `netdata.conf`:
288
289 Using the above, whatever OOM Score you have set at `netdata.service` will be maintained by netdata.
290
293 -
291 ## Netdata process scheduling policy
292
293 By default Netdata runs with the `idle` process scheduling policy, so that it uses CPU resources, only when there is idle CPU to spare. On very busy servers (or weak servers), this can lead to gaps on the charts.
@@ -304,14 +301,14 @@ You can set Netdata scheduling policy in `netdata.conf`, like this:
301
302 You can use the following:
303
307 -policy|description
308 -:-----:|:--------
309 -`idle`|use CPU only when there is spare - this is lower than nice 19 - it is the default for Netdata and it is so low that Netdata will run in "slow motion" under extreme system load, resulting in short (1-2 seconds) gaps at the charts.
310 -`other`<br/>or<br/>`nice`|this is the default policy for all processes under Linux. It provides dynamic priorities based on the `nice` level of each process. Check below for setting this `nice` level for netdata.
311 -`batch`|This policy is similar to `other` in that it schedules the thread according to its dynamic priority (based on the `nice` value). The difference is that this policy will cause the scheduler to always assume that the thread is CPU-intensive. Consequently, the scheduler will apply a small scheduling penalty with respect to wake-up behavior, so that this thread is mildly disfavored in scheduling decisions.
312 -`fifo`|`fifo` can be used only with static priorities higher than 0, which means that when a `fifo` threads becomes runnable, it will always immediately preempt any currently running `other`, `batch`, or `idle` thread. `fifo` is a simple scheduling algorithm without time slicing.
313 -`rr`|a simple enhancement of `fifo`. Everything described above for `fifo` also applies to `rr`, except that each thread is allowed to run only for a maximum time quantum.
314 -`keep`<br/>or<br/>`none`|do not set scheduling policy, priority or nice level - i.e. keep running with whatever it is set already (e.g. by systemd).
304 +| policy|description|
305 +|:----:|:----------|
306 +| `idle`|use CPU only when there is spare - this is lower than nice 19 - it is the default for Netdata and it is so low that Netdata will run in "slow motion" under extreme system load, resulting in short (1-2 seconds) gaps at the charts.|
307 +| `other`<br/>or<br/>`nice`|this is the default policy for all processes under Linux. It provides dynamic priorities based on the `nice` level of each process. Check below for setting this `nice` level for netdata.|
308 +| `batch`|This policy is similar to `other` in that it schedules the thread according to its dynamic priority (based on the `nice` value). The difference is that this policy will cause the scheduler to always assume that the thread is CPU-intensive. Consequently, the scheduler will apply a small scheduling penalty with respect to wake-up behavior, so that this thread is mildly disfavored in scheduling decisions.|
309 +| `fifo`|`fifo` can be used only with static priorities higher than 0, which means that when a `fifo` threads becomes runnable, it will always immediately preempt any currently running `other`, `batch`, or `idle` thread. `fifo` is a simple scheduling algorithm without time slicing.|
310 +| `rr`|a simple enhancement of `fifo`. Everything described above for `fifo` also applies to `rr`, except that each thread is allowed to run only for a maximum time quantum.|
311 +| `keep`<br/>or<br/>`none`|do not set scheduling policy, priority or nice level - i.e. keep running with whatever it is set already (e.g. by systemd).|
312
313 For more information see `man sched`.
314
@@ -369,7 +366,6 @@ Now, tell Netdata to keep these settings, as set by systemd, by editing `netdata
366
367 Using the above, whatever scheduling settings you have set at `netdata.service` will be maintained by netdata.
368
372 -
369 #### Example 1: Netdata with nice -1 on non-systemd systems
370
371 On a system that is not based on systemd, to make Netdata run with nice level -1 (a little bit higher to the default for all programs), edit `netdata.conf` and set:
@@ -386,7 +382,6 @@ then execute this to restart netdata:
382 sudo service netdata restart
383 ```
384
389 -
385 #### Example 2: Netdata with nice -1 on systemd systems
386
387 On a system that is based on systemd, to make Netdata run with nice level -1 (a little bit higher to the default for all programs), edit `netdata.conf` and set:
@@ -454,14 +449,13 @@ only the 4KB pages that are actually used are reserving physical RAM. The **real
449 on Netdata application section, shows the amount of physical memory these pages occupy(it
450 accounts the whole pages, even if parts of them are actually used).
451
457 -
452 ## Debugging
453
454 When you compile Netdata with debugging:
455
462 -1. compiler optimizations for your CPU are disabled (Netdata will run somewhat slower)
456 +1. compiler optimizations for your CPU are disabled (Netdata will run somewhat slower)
457
464 -2. a lot of code is added all over netdata, to log debug messages to `/var/log/netdata/debug.log`. However, nothing is printed by default. Netdata allows you to select which sections of Netdata you want to trace. Tracing is activated via the config option `debug flags`. It accepts a hex number, to enable or disable specific sections. You can find the options supported at [log.h](../libnetdata/log/log.h). They are the `D_*` defines. The value `0xffffffffffffffff` will enable all possible debug flags.
458 +2. a lot of code is added all over netdata, to log debug messages to `/var/log/netdata/debug.log`. However, nothing is printed by default. Netdata allows you to select which sections of Netdata you want to trace. Tracing is activated via the config option `debug flags`. It accepts a hex number, to enable or disable specific sections. You can find the options supported at [log.h](../libnetdata/log/log.h). They are the `D_*` defines. The value `0xffffffffffffffff` will enable all possible debug flags.
459
460 Once Netdata is compiled with debugging and tracing is enabled for a few sections, the file `/var/log/netdata/debug.log` will contain the messages.
461
@@ -489,9 +483,9 @@ To provide stack traces, **you need to have Netdata compiled with debugging**. T
483
484 Then you need to be in one of the following 2 cases:
485
492 -1. Netdata crashes and you have a core dump
486 +1. Netdata crashes and you have a core dump
487
494 -2. you can reproduce the crash
488 +2. you can reproduce the crash
489
490 If you are not on these cases, you need to find a way to be (i.e. if your system does not produce core dumps, check your distro documentation to enable them).
491
@@ -517,5 +511,4 @@ valgrind $(which netdata) -D
511
512 Netdata will start and it will be a lot slower. Now reproduce the crash and `valgrind` will dump on your console the stack trace. Open a new github issue and post the output.
513
520 -
521 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdaemon%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
514 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdaemon%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
daemon/config/README.md
+66 -67
@@ -1,6 +1,5 @@
1 # Daemon configuration
2
3 -
3 <details markdown="1"><summary>The daemon configuration file is read from `/etc/netdata/netdata.conf`.</summary>
4 Depending on your installation method, Netdata will have been installed either directly under `/`, or under `/opt/netdata`. The paths mentioned here and in the documentation in general assume that your installation is under `/`. If it is not, you will find the exact same paths under `/opt/netdata` as well. (i.e. `/etc/netdata` will be `/opt/netdata/etc/netdata`).</details>
5
@@ -8,15 +7,15 @@ This config file **is not needed by default**. Netdata works fine out of the box
7
8 `netdata.conf` has sections stated with `[section]`. You will see the following sections:
9
11 -1. `[global]` to [configure](#global-section-options) the [Netdata daemon](../).
12 -2. `[web]` to [configure the web server](../../web/server).
13 -3. `[plugins]` to [configure](#plugins-section-options) which [collectors](../../collectors) to use and PATH settings.
14 -4. `[health]` to [configure](#health-section-options) general settings for [health monitoring](../../health)
15 -5. `[registry]` for the [Netdata registry](../../registry).
16 -6. `[backend]` to set up [streaming and replication](../../streaming) options.
17 -7. `[statsd]` for the general settings of the [stats.d.plugin](../../collectors/statsd.plugin).
18 -8. `[plugin:NAME]` sections for each collector plugin, under the comment [Per plugin configuration](#per-plugin-configuration).
19 -9. `[CHART_NAME]` sections for each chart defined, under the comment [Per chart configuration](#per-chart-configuration).
10 +1. `[global]` to [configure](#global-section-options) the [Netdata daemon](../).
11 +2. `[web]` to [configure the web server](../../web/server).
12 +3. `[plugins]` to [configure](#plugins-section-options) which [collectors](../../collectors) to use and PATH settings.
13 +4. `[health]` to [configure](#health-section-options) general settings for [health monitoring](../../health)
14 +5. `[registry]` for the [Netdata registry](../../registry).
15 +6. `[backend]` to set up [streaming and replication](../../streaming) options.
16 +7. `[statsd]` for the general settings of the [stats.d.plugin](../../collectors/statsd.plugin).
17 +8. `[plugin:NAME]` sections for each collector plugin, under the comment [Per plugin configuration](#per-plugin-configuration).
18 +9. `[CHART_NAME]` sections for each chart defined, under the comment [Per chart configuration](#per-chart-configuration).
19
20 The configuration file is a `name = value` dictionary. Netdata will not complain if you set options unknown to it. When you check the running configuration by accessing the URL `/netdata.conf` on your Netdata server, Netdata will add a comment on settings it does not currently use.
21
@@ -40,41 +39,41 @@ Please note that your data history will be lost if you have modified `history` p
39
40 ### [global] section options
41
43 -setting | default | info
44 -:------:|:-------:|:----
45 -process scheduling policy | `keep` | See [Netdata process scheduling policy](../#netdata-process-scheduling-policy)
46 -OOM score | `1000` | See [OOM score](../#oom-score)
47 -glibc malloc arena max for plugins | `1` | See [Virtual memory](../#virtual-memory).
48 -glibc malloc arena max for Netdata | `1` | See [Virtual memory](../#virtual-memory).
49 -hostname | auto-detected | The hostname of the computer running Netdata.
50 -history | `3996` | The number of entries the `netdata` daemon will by default keep in memory for each chart dimension. This setting can also be configured per chart. Check [Memory Requirements](../../database/#database) for more information.
51 -update every | `1` | The frequency in seconds, for data collection. For more information see [Performance](../../docs/Performance.md#performance).
52 -config directory | `/etc/netdata` | The directory configuration files are kept.
53 -stock config directory | `/usr/lib/netdata/conf.d` |
54 -log directory | `/var/log/netdata` | The directory in which the [log files](../#log-files) are kept.
55 -web files directory | `/usr/share/netdata/web` | The directory the web static files are kept.
56 -cache directory | `/var/cache/netdata` | The directory the memory database will be stored if and when Netdata exits. Netdata will re-read the database when it will start again, to continue from the same point.
57 -lib directory | `/var/lib/netdata` | Contains the alarm log and the Netdata instance guid.
58 -home directory | `/var/cache/netdata` | Contains the db files for the collected metrics
59 -plugins directory | `"/usr/libexec/netdata/plugins.d" "/etc/netdata/custom-plugins.d"` | The directory plugin programs are kept. This setting supports multiple directories, space separated. If any directory path contains spaces, enclose it in single or double quotes.
60 -memory mode | `save` | When set to `save` Netdata will save its round robin database on exit and load it on startup. When set to `map` the cache files will be updated in real time (check `man mmap` - do not set this on systems with heavy load or slow disks - the disks will continuously sync the in-memory database of Netdata). When set to `dbengine` it behaves similarly to `map` but with much better disk and memory efficiency, however, with higher overhead. When set to `ram` the round robin database will be temporary and it will be lost when Netdata exits. `none` disables the database at this host. This also disables health monitoring (there cannot be health monitoring without a database). host access prefix | | This is used in docker environments where /proc, /sys, etc have to be accessed via another path. You may also have to set SYS_PTRACE capability on the docker for this work. Check [issue 43](https://github.com/netdata/netdata/issues/43).
61 -memory deduplication (ksm) | `yes` | When set to `yes`, Netdata will offer its in-memory round robin database to kernel same page merging (KSM) for deduplication. For more information check [Memory Deduplication - Kernel Same Page Merging - KSM](../../database/#ksm)
62 -TZ environment variable | `:/etc/localtime` | Where to find the timezone
63 -timezone | auto-detected | The timezone retrieved from the environment variable
64 -debug flags | `0x0000000000000000` | Bitmap of debug options to enable. For more information check [Tracing Options](../#debugging).
65 -debug log | `/var/log/netdata/debug.log` | The filename to save debug information. This file will not be created if debugging is not enabled. You can also set it to `syslog` to send the debug messages to syslog, or `none` to disable this log. For more information check [Tracing Options](../#debugging).
66 -error log | `/var/log/netdata/error.log` | The filename to save error messages for Netdata daemon and all plugins (`stderr` is sent here for all Netdata programs, including the plugins). You can also set it to `syslog` to send the errors to syslog, or `none` to disable this log.
67 -access log | `/var/log/netdata/access.log` | The filename to save the log of web clients accessing Netdata charts. You can also set it to `syslog` to send the access log to syslog, or `none` to disable this log.
68 -errors flood protection period | `1200` | UNUSED - Length of period (in sec) during which the number of errors should not exceed the `errors to trigger flood protection`.
69 -errors to trigger flood protection | `200` | UNUSED - Number of errors written to the log in `errors flood protection period` sec before flood protection is activated.
70 -run as user | `netdata` | The user Netdata will run as.
71 -pthread stack size | auto-detected |
72 -cleanup obsolete charts after seconds | `3600` | See [monitoring ephemeral containers](../../collectors/cgroups.plugin/#monitoring-ephemeral-containers), also sets the timeout for cleaning up obsolete dimensions
73 -gap when lost iterations above | `1` |
74 -cleanup orphan hosts after seconds | `3600` | How long to wait until automatically removing from the DB a remote Netdata host (slave) that is no longer sending data.
75 -delete obsolete charts files | `yes` | See [monitoring ephemeral containers](../../collectors/cgroups.plugin/#monitoring-ephemeral-containers), also affects the deletion of files for obsolete dimensions
76 -delete orphan hosts files | `yes` | Set to `no` to disable non-responsive host removal.
77 -enable zero metrics | `no` | Set to `yes` to show charts when all their metrics are zero.
42 +| setting|default|info|||
43 +|:-----:|:-----:|:---|---|---|
44 +| process scheduling policy|`keep`|See [Netdata process scheduling policy](../#netdata-process-scheduling-policy)|||
45 +| OOM score|`1000`|See [OOM score](../#oom-score)|||
46 +| glibc malloc arena max for plugins|`1`|See [Virtual memory](../#virtual-memory).|||
47 +| glibc malloc arena max for Netdata|`1`|See [Virtual memory](../#virtual-memory).|||
48 +| hostname|auto-detected|The hostname of the computer running Netdata.|||
49 +| history|`3996`|The number of entries the `netdata` daemon will by default keep in memory for each chart dimension. This setting can also be configured per chart. Check [Memory Requirements](../../database/#database) for more information.|||
50 +| update every|`1`|The frequency in seconds, for data collection. For more information see [Performance](../../docs/Performance.md#performance).|||
51 +| config directory|`/etc/netdata`|The directory configuration files are kept.|||
52 +| stock config directory|`/usr/lib/netdata/conf.d`||||
53 +| log directory|`/var/log/netdata`|The directory in which the [log files](../#log-files) are kept.|||
54 +| web files directory|`/usr/share/netdata/web`|The directory the web static files are kept.|||
55 +| cache directory|`/var/cache/netdata`|The directory the memory database will be stored if and when Netdata exits. Netdata will re-read the database when it will start again, to continue from the same point.|||
56 +| lib directory|`/var/lib/netdata`|Contains the alarm log and the Netdata instance guid.|||
57 +| home directory|`/var/cache/netdata`|Contains the db files for the collected metrics|||
58 +| plugins directory|`"/usr/libexec/netdata/plugins.d" "/etc/netdata/custom-plugins.d"`|The directory plugin programs are kept. This setting supports multiple directories, space separated. If any directory path contains spaces, enclose it in single or double quotes.|||
59 +| memory mode|`save`|When set to `save` Netdata will save its round robin database on exit and load it on startup. When set to `map` the cache files will be updated in real time (check `man mmap` - do not set this on systems with heavy load or slow disks - the disks will continuously sync the in-memory database of Netdata). When set to `dbengine` it behaves similarly to `map` but with much better disk and memory efficiency, however, with higher overhead. When set to `ram` the round robin database will be temporary and it will be lost when Netdata exits. `none` disables the database at this host. This also disables health monitoring (there cannot be health monitoring without a database). host access prefix||This is used in docker environments where /proc, /sys, etc have to be accessed via another path. You may also have to set SYS_PTRACE capability on the docker for this work. Check [issue 43](https://github.com/netdata/netdata/issues/43).|
60 +| memory deduplication (ksm)|`yes`|When set to `yes`, Netdata will offer its in-memory round robin database to kernel same page merging (KSM) for deduplication. For more information check [Memory Deduplication - Kernel Same Page Merging - KSM](../../database/#ksm)|||
61 +| TZ environment variable|`:/etc/localtime`|Where to find the timezone|||
62 +| timezone|auto-detected|The timezone retrieved from the environment variable|||
63 +| debug flags|`0x0000000000000000`|Bitmap of debug options to enable. For more information check [Tracing Options](../#debugging).|||
64 +| debug log|`/var/log/netdata/debug.log`|The filename to save debug information. This file will not be created if debugging is not enabled. You can also set it to `syslog` to send the debug messages to syslog, or `none` to disable this log. For more information check [Tracing Options](../#debugging).|||
65 +| error log|`/var/log/netdata/error.log`|The filename to save error messages for Netdata daemon and all plugins (`stderr` is sent here for all Netdata programs, including the plugins). You can also set it to `syslog` to send the errors to syslog, or `none` to disable this log.|||
66 +| access log|`/var/log/netdata/access.log`|The filename to save the log of web clients accessing Netdata charts. You can also set it to `syslog` to send the access log to syslog, or `none` to disable this log.|||
67 +| errors flood protection period|`1200`|UNUSED - Length of period (in sec) during which the number of errors should not exceed the `errors to trigger flood protection`.|||
68 +| errors to trigger flood protection|`200`|UNUSED - Number of errors written to the log in `errors flood protection period` sec before flood protection is activated.|||
69 +| run as user|`netdata`|The user Netdata will run as.|||
70 +| pthread stack size|auto-detected||||
71 +| cleanup obsolete charts after seconds|`3600`|See [monitoring ephemeral containers](../../collectors/cgroups.plugin/#monitoring-ephemeral-containers), also sets the timeout for cleaning up obsolete dimensions|||
72 +| gap when lost iterations above|`1`||||
73 +| cleanup orphan hosts after seconds|`3600`|How long to wait until automatically removing from the DB a remote Netdata host (slave) that is no longer sending data.|||
74 +| delete obsolete charts files|`yes`|See [monitoring ephemeral containers](../../collectors/cgroups.plugin/#monitoring-ephemeral-containers), also affects the deletion of files for obsolete dimensions|||
75 +| delete orphan hosts files|`yes`|Set to `no` to disable non-responsive host removal.|||
76 +| enable zero metrics|`no`|Set to `yes` to show charts when all their metrics are zero.|||
77
78 ### [web] section options
79
@@ -86,13 +85,13 @@ In this section you will see be a boolean (`yes`/`no`) option for each plugin (e
85
86 Additionally, there will be the following options:
87
89 -setting | default | info
90 -:------:|:-------:|:----
91 -PATH environment variable | `auto-detected` |
92 -PYTHONPATH environment variable | | Used to set a custom python path
93 -enable running new plugins | `yes` | When set to `yes`, Netdata will enable detected plugins, even if they are not configured explicitly. Setting this to `no` will only enable plugins explicitly configirued in this file with a `yes`
94 -check for new plugins every | 60 | The time in seconds to check for new plugins in the plugins directory. This allows having other applications dynamically creating plugins for Netdata.
95 -checks | `no` | This is a debugging plugin for the internal latency
88 +| setting|default|info|
89 +|:-----:|:-----:|:---|
90 +| PATH environment variable|`auto-detected`||
91 +| PYTHONPATH environment variable||Used to set a custom python path|
92 +| enable running new plugins|`yes`|When set to `yes`, Netdata will enable detected plugins, even if they are not configured explicitly. Setting this to `no` will only enable plugins explicitly configirued in this file with a `yes`|
93 +| check for new plugins every|60|The time in seconds to check for new plugins in the plugins directory. This allows having other applications dynamically creating plugins for Netdata.|
94 +| checks|`no`|This is a debugging plugin for the internal latency|
95
96 ### [health] section options
97
@@ -102,16 +101,16 @@ Specific alarms are configured in per-collector config files under the `health.d
101
102 [Alarm notifications](../../health/notifications/#netdata-alarm-notifications) are configured in `health_alarm_notify.conf`.
103
105 -setting | default | info
106 -:------:|:-------:|:----
107 -enabled | `yes` | Set to `no` to disable all alarms and notifications
108 -in memory max health log entries | 1000 | Size of the alarm history held in RAM
109 -script to execute on alarm | `/usr/libexec/netdata/plugins.d/alarm-notify.sh` | The script that sends alarm notifications. Note that in versions before 1.16, the plugins.d directory may be installed in a different location in certain OSs (e.g. under `/usr/lib/netdata`).
110 -stock health configuration directory | `/usr/lib/netdata/conf.d/health.d` | Contains the stock alarm configuration files for each collector
111 -health configuration directory | `/etc/netdata/health.d` | The directory containing the user alarm configuration files, to override the stock configurations
112 -run at least every seconds | `10` | Controls how often all alarm conditions should be evaluated.
113 -postpone alarms during hibernation for seconds | `60` | Prevents false alarms. May need to be increased if you get alarms during hibernation.
114 -rotate log every lines | 2000 | Controls the number of alarm log entries stored in `<lib directory>/health-log.db`, where `<lib directory>` is the one configured in the [[global] section](#global-section-options)
104 +| setting|default|info|
105 +|:-----:|:-----:|:---|
106 +| enabled|`yes`|Set to `no` to disable all alarms and notifications|
107 +| in memory max health log entries|1000|Size of the alarm history held in RAM|
108 +| script to execute on alarm|`/usr/libexec/netdata/plugins.d/alarm-notify.sh`|The script that sends alarm notifications. Note that in versions before 1.16, the plugins.d directory may be installed in a different location in certain OSs (e.g. under `/usr/lib/netdata`).|
109 +| stock health configuration directory|`/usr/lib/netdata/conf.d/health.d`|Contains the stock alarm configuration files for each collector|
110 +| health configuration directory|`/etc/netdata/health.d`|The directory containing the user alarm configuration files, to override the stock configurations|
111 +| run at least every seconds|`10`|Controls how often all alarm conditions should be evaluated.|
112 +| postpone alarms during hibernation for seconds|`60`|Prevents false alarms. May need to be increased if you get alarms during hibernation.|
113 +| rotate log every lines|2000|Controls the number of alarm log entries stored in `<lib directory>/health-log.db`, where `<lib directory>` is the one configured in the [\[global\] section](#global-section-options)|
114
115 ### [registry] section options
116
@@ -135,10 +134,10 @@ Please note, that by default Netdata will enable monitoring metrics for disks, m
134
135 External plugins will have only 2 options at `netdata.conf`:
136
138 -setting | default | info
139 -:------:|:-------:|:----
140 -update every|the value of `[global].update every` setting|The frequency in seconds the plugin should collect values. For more information check [Performance](../../docs/Performance.md#performance).
141 -command options|*empty*|Additional command line options to pass to the plugin.
137 +| setting | default | info |
138 +| :-----:|:-----:|:---|
139 +| update every | the value of `[global].update every` setting|The frequency in seconds the plugin should collect values. For more information check [Performance](../../docs/Performance.md#performance).|
140 +| command options | _empty_ | Additional command line options to pass to the plugin.|
141
142 External plugins that need additional configuration may support a dedicated file in `/etc/netdata`. Check their documentation.
143
@@ -146,4 +145,4 @@ External plugins that need additional configuration may support a dedicated file
145
146 In this section you will find a separate subsection for each chart shown on the dashboard. You can control all aspects of a specific chart here. You can understand what each option does by reading [how charts are defined](../../collectors/plugins.d/#chart). If you don't know how to find the name of a chart, you can learn about it [here](../../docs/Charts.md).
147
149 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdaemon%2Fconfig%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
148 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdaemon%2Fconfig%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
database/README.md
+34 -35
@@ -25,29 +25,29 @@ use the **[Database Engine](engine/)**.
25
26 Currently Netdata supports 6 memory modes:
27
28 -1. `ram`, data are purely in memory. Data are never saved on disk. This mode uses `mmap()` and
29 - supports [KSM](#ksm).
28 +1. `ram`, data are purely in memory. Data are never saved on disk. This mode uses `mmap()` and
29 + supports [KSM](#ksm).
30
31 -2. `save`, (the default) data are only in RAM while Netdata runs and are saved to / loaded from
32 - disk on Netdata restart. It also uses `mmap()` and supports [KSM](#ksm).
31 +2. `save`, (the default) data are only in RAM while Netdata runs and are saved to / loaded from
32 + disk on Netdata restart. It also uses `mmap()` and supports [KSM](#ksm).
33
34 -3. `map`, data are in memory mapped files. This works like the swap. Keep in mind though, this
35 - will have a constant write on your disk. When Netdata writes data on its memory, the Linux kernel
36 - marks the related memory pages as dirty and automatically starts updating them on disk.
37 - Unfortunately we cannot control how frequently this works. The Linux kernel uses exactly the
38 - same algorithm it uses for its swap memory. Check below for additional information on running a
39 - dedicated central Netdata server. This mode uses `mmap()` but does not support [KSM](#ksm).
34 +3. `map`, data are in memory mapped files. This works like the swap. Keep in mind though, this
35 + will have a constant write on your disk. When Netdata writes data on its memory, the Linux kernel
36 + marks the related memory pages as dirty and automatically starts updating them on disk.
37 + Unfortunately we cannot control how frequently this works. The Linux kernel uses exactly the
38 + same algorithm it uses for its swap memory. Check below for additional information on running a
39 + dedicated central Netdata server. This mode uses `mmap()` but does not support [KSM](#ksm).
40
41 -4. `none`, without a database (collected metrics can only be streamed to another Netdata).
41 +4. `none`, without a database (collected metrics can only be streamed to another Netdata).
42
43 -5. `alloc`, like `ram` but it uses `calloc()` and does not support [KSM](#ksm). This mode is the
44 - fallback for all others except `none`.
43 +5. `alloc`, like `ram` but it uses `calloc()` and does not support [KSM](#ksm). This mode is the
44 + fallback for all others except `none`.
45
46 -6. `dbengine`, data are in database files. The [Database Engine](engine/) works like a traditional
47 - database. There is some amount of RAM dedicated to data caching and indexing and the rest of
48 - the data reside compressed on disk. The number of history entries is not fixed in this case,
49 - but depends on the configured disk space and the effective compression ratio of the data stored.
50 - For more details see [here](engine/).
46 +6. `dbengine`, data are in database files. The [Database Engine](engine/) works like a traditional
47 + database. There is some amount of RAM dedicated to data caching and indexing and the rest of
48 + the data reside compressed on disk. The number of history entries is not fixed in this case,
49 + but depends on the configured disk space and the effective compression ratio of the data stored.
50 + For more details see [here](engine/).
51
52 You can select the memory mode by editing `netdata.conf` and setting:
53
@@ -66,8 +66,8 @@ Embedded devices usually have very limited RAM resources available.
66
67 There are 2 settings for you to tweak:
68
69 -1. `update every`, which controls the data collection frequency
70 -2. `history`, which controls the size of the database in RAM
69 +1. `update every`, which controls the data collection frequency
70 +2. `history`, which controls the size of the database in RAM
71
72 By default `update every = 1` and `history = 3600`. This gives you an hour of data with per
73 second updates.
@@ -105,18 +105,17 @@ explaining them, a brief introduction of how Netdata database works is needed.
105
106 For each chart, Netdata maps the following files:
107
108 -1. `chart/main.db`, this is the file that maintains chart information. Every time data are collected
109 - for a chart, this is updated.
110 -
111 -2. `chart/dimension_name.db`, this is the file for each dimension. At its beginning there is a
112 - header, followed by the round robin database where metrics are stored.
108 +1. `chart/main.db`, this is the file that maintains chart information. Every time data are collected
109 + for a chart, this is updated.
110 +2. `chart/dimension_name.db`, this is the file for each dimension. At its beginning there is a
111 + header, followed by the round robin database where metrics are stored.
112
113 So, every time Netdata collects data, the following pages will become dirty:
114
116 -1. the chart file
117 -2. the header part of all dimension files
118 -3. if the collected metrics are stored far enough in the dimension file, another page will
119 - become dirty, for each dimension
115 +1. the chart file
116 +2. the header part of all dimension files
117 +3. if the collected metrics are stored far enough in the dimension file, another page will
118 + become dirty, for each dimension
119
120 Each page in Linux is 4KB. So, with 200 charts and 1000 dimensions, there will be 1200 to 2200 4KB
121 pages dirty pages every second. Of course 1200 of them will always be dirty (the chart header and
@@ -143,8 +142,8 @@ get an abnormal shutdown.
142
143 There are 2 more options to tweak:
144
146 -1. `dirty_background_ratio`, by default `10`.
147 -2. `dirty_ratio`, by default `20`.
145 +1. `dirty_background_ratio`, by default `10`.
146 +2. `dirty_ratio`, by default `20`.
147
148 These control the amount of memory that should be dirty for disk syncing to be triggered.
149 On dedicated Netdata servers, you can use: `80` and `90` respectively, so that all RAM is given
@@ -206,9 +205,9 @@ So, if you build a kernel with `CONFIG_KSM=y` you will just get a few files in `
205
206 The files that `CONFIG_KSM=y` offers include:
207
209 -- `/sys/kernel/mm/ksm/run` by default `0`. You have to set this to `1` for the kernel to spawn `ksmd`.
210 -- `/sys/kernel/mm/ksm/sleep_millisecs`, by default `20`. The frequency ksmd should evaluate memory for deduplication.
211 -- `/sys/kernel/mm/ksm/pages_to_scan`, by default `100`. The amount of pages ksmd will evaluate on each run.
208 +- `/sys/kernel/mm/ksm/run` by default `0`. You have to set this to `1` for the kernel to spawn `ksmd`.
209 +- `/sys/kernel/mm/ksm/sleep_millisecs`, by default `20`. The frequency ksmd should evaluate memory for deduplication.
210 +- `/sys/kernel/mm/ksm/pages_to_scan`, by default `100`. The amount of pages ksmd will evaluate on each run.
211
212 So, by default `ksmd` is just disabled. It will not harm performance and the user/admin can control the CPU resources he/she is willing `ksmd` to use.
213
@@ -231,4 +230,4 @@ Netdata will create charts for kernel memory de-duplication performance, like th
230
231 ![image](https://cloud.githubusercontent.com/assets/2662304/11998786/eb23ae54-aab6-11e5-94d4-e848e8a5c56a.png)
232
234 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdatabase%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
233 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdatabase%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
database/engine/README.md
+14 -8
@@ -18,14 +18,14 @@ journalfile-1-0000000002.njf
18 datafile-1-0000000003.ndf
19 journalfile-1-0000000003.njf
20 ...
21 -```
21 +```
22
23 They are located under their host's cache directory in the directory `./dbengine`
24 (e.g. for localhost the default location is `/var/cache/netdata/dbengine/*`). The higher
25 numbered filenames contain more recent metric data. The user can safely delete some pairs
26 of files when Netdata is stopped to manually free up some space.
27
28 -*Users should* **back up** *their `./dbengine` folders if they consider this data to be important.*
28 +_Users should_ **back up** _their `./dbengine` folders if they consider this data to be important._
29
30 ## Configuration
31
@@ -94,14 +94,14 @@ is much larger than the available memory.
94 There are explicit memory requirements **per** DB engine **instance**, meaning **per** Netdata
95 **node** (e.g. localhost and streaming recipient nodes):
96
97 -- `page cache size` must be at least `#dimensions-being-collected x 4096 x 2` bytes.
97 +- `page cache size` must be at least `#dimensions-being-collected x 4096 x 2` bytes.
98
99 -- an additional `#pages-on-disk x 4096 x 0.03` bytes of RAM are allocated for metadata.
99 +- an additional `#pages-on-disk x 4096 x 0.03` bytes of RAM are allocated for metadata.
100
101 - - roughly speaking this is 3% of the uncompressed disk space taken by the DB files.
101 + - roughly speaking this is 3% of the uncompressed disk space taken by the DB files.
102
103 - - for very highly compressible data (compression ratio > 90%) this RAM overhead
104 - is comparable to the disk space footprint.
103 + - for very highly compressible data (compression ratio > 90%) this RAM overhead
104 + is comparable to the disk space footprint.
105
106 An important observation is that RAM usage depends on both the `page cache size` and the
107 `dbengine disk space` options.
@@ -128,18 +128,24 @@ LimitNOFILE=65536
128 ```
129
130 For other types of services one can add the line:
131 +
132 ```
133 ulimit -n 65536
134 ```
135 +
136 at the beginning of the service file. Alternatively you can change the system-wide limits of the kernel by changing `/etc/sysctl.conf`. For linux that would be:
137 +
138 ```
139 fs.file-max = 65536
140 ```
141 +
142 In FreeBSD and OS X you change the lines like this:
143 +
144 ```
145 kern.maxfilesperproc=65536
146 kern.maxfiles=65536
147 ```
148 +
149 You can apply the settings by running `sysctl -p` or by rebooting.
150
145 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdatabase%2Fengine%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
151 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdatabase%2Fengine%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
diagrams/data_structures/README.md
+13 -13
@@ -1,13 +1,13 @@
1 -# Data structures
2 -
3 -These are the main internal data structures of `netdata`. Created with `draw.io`.
4 -
5 -![Config](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/netdata_config.svg?sanitize=true)
6 -
7 -![Registry](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/registry.svg?sanitize=true)
8 -
9 -![RRD](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/rrd.svg?sanitize=true)
10 -
11 -![Web](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/web.svg?sanitize=true)
12 -
13 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdiagrams%2Fdata_structures%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +# Data structures
2 +
3 +These are the main internal data structures of `netdata`. Created with `draw.io`.
4 +
5 +![Config](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/netdata_config.svg?sanitize=true)
6 +
7 +![Registry](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/registry.svg?sanitize=true)
8 +
9 +![RRD](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/rrd.svg?sanitize=true)
10 +
11 +![Web](https://raw.githubusercontent.com/netdata/netdata/master/diagrams/data_structures/web.svg?sanitize=true)
12 +
13 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdiagrams%2Fdata_structures%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Add-more-charts-to-netdata.md
+199 -221
@@ -4,36 +4,36 @@ Netdata collects system metrics by itself. It has many [internal plugins](../col
4
5 To collect non-system metrics, Netdata supports a plugin architecture. The following are the currently available external plugins:
6
7 -- **[Web Servers](#web-servers)**, such as apache, nginx, nginx_plus, tomcat, litespeed
8 -- **[Web Logs](#web-log-parsers)**, such as apache, nginx, lighttpd, gunicorn, squid access logs, apache cache.log
9 -- **[Load Balancers](#load-balancers)**, like haproxy
10 -- **[Message Brokers](#message-brokers)**, like rabbitmq, beanstalkd
11 -- **[Database Servers](#database-servers)**, such as mysql, mariadb, postgres, couchdb, mongodb, rethinkdb
12 -- **[Social Sharing Servers](#social-sharing-servers)**, like retroshare
13 -- **[Proxy Servers](#proxy-servers)**, like squid
14 -- **[HTTP accelerators](#http-accelerators)**, like varnish cache
15 -- **[Search engines](#search-engines)**, like elasticsearch
16 -- **[Name Servers](#name-servers)** (DNS), like bind, nsd, powerdns, dnsdist
17 -- **[DHCP Servers](#dhcp-servers)**, like ISC DHCP
18 -- **[UPS](#ups)**, such as APC UPS, NUT
19 -- **[RAID](#raid)**, such as MegaRAID
20 -- **[Mail Servers](#mail-servers)**, like postfix, exim, dovecot
21 -- **[File Servers](#file-servers)**, like samba, NFS, ftp, sftp, WebDAV
22 -- **[Print Servers](#print-servers)**, like CUPS
23 -- **[Hypervisors](#hypervisors)**, like XenServer, XCP-ng
24 -- **[System](#system)**, for processes and other system metrics
25 -- **[Sensors](#sensors)**, like temperature, fans speed, voltage, humidity, HDD/SSD S.M.A.R.T attributes
26 -- **[Network](#network)**, such as SNMP devices, `fping`, access points, dns_query_time, nfacct
27 -- **[Time Servers](#time-servers)**, like chrony
28 -- **[Security](#security)**, like FreeRADIUS, OpenVPN, Fail2ban
29 -- **[Telephony Servers](#telephony-servers)**, like openSIPS
30 -- **[Go applications](#go-applications)**
31 -- **[Household appliances](#household-appliances)**, like SMA WebBox (solar power), Fronius Symo solar power, Stiebel Eltron heating
32 -- **[Java Processes](#java-processes)**, via JMX or Spring Boot Actuator
33 -- **[Provisioning Systems](#provisioning-systems)**, like Puppet
34 -- **[Game Servers](#game-servers)**, like SpigotMC
35 -- **[Distributed Computing Clients](#distributed-computing-clients)**, like BOINC
36 -- **[Skeleton Plugins](#skeleton-plugins)**, for writing your own data collectors
7 +- **[Web Servers](#web-servers)**, such as apache, nginx, nginx_plus, tomcat, litespeed
8 +- **[Web Logs](#web-log-parsers)**, such as apache, nginx, lighttpd, gunicorn, squid access logs, apache cache.log
9 +- **[Load Balancers](#load-balancers)**, like haproxy
10 +- **[Message Brokers](#message-brokers)**, like rabbitmq, beanstalkd
11 +- **[Database Servers](#database-servers)**, such as mysql, mariadb, postgres, couchdb, mongodb, rethinkdb
12 +- **[Social Sharing Servers](#social-sharing-servers)**, like retroshare
13 +- **[Proxy Servers](#proxy-servers)**, like squid
14 +- **[HTTP accelerators](#http-accelerators)**, like varnish cache
15 +- **[Search engines](#search-engines)**, like elasticsearch
16 +- **[Name Servers](#name-servers)** (DNS), like bind, nsd, powerdns, dnsdist
17 +- **[DHCP Servers](#dhcp-servers)**, like ISC DHCP
18 +- **[UPS](#ups)**, such as APC UPS, NUT
19 +- **[RAID](#raid)**, such as MegaRAID
20 +- **[Mail Servers](#mail-servers)**, like postfix, exim, dovecot
21 +- **[File Servers](#file-servers)**, like samba, NFS, ftp, sftp, WebDAV
22 +- **[Print Servers](#print-servers)**, like CUPS
23 +- **[Hypervisors](#hypervisors)**, like XenServer, XCP-ng
24 +- **[System](#system)**, for processes and other system metrics
25 +- **[Sensors](#sensors)**, like temperature, fans speed, voltage, humidity, HDD/SSD S.M.A.R.T attributes
26 +- **[Network](#network)**, such as SNMP devices, `fping`, access points, dns_query_time, nfacct
27 +- **[Time Servers](#time-servers)**, like chrony
28 +- **[Security](#security)**, like FreeRADIUS, OpenVPN, Fail2ban
29 +- **[Telephony Servers](#telephony-servers)**, like openSIPS
30 +- **[Go applications](#go-applications)**
31 +- **[Household appliances](#household-appliances)**, like SMA WebBox (solar power), Fronius Symo solar power, Stiebel Eltron heating
32 +- **[Java Processes](#java-processes)**, via JMX or Spring Boot Actuator
33 +- **[Provisioning Systems](#provisioning-systems)**, like Puppet
34 +- **[Game Servers](#game-servers)**, like SpigotMC
35 +- **[Distributed Computing Clients](#distributed-computing-clients)**, like BOINC
36 +- **[Skeleton Plugins](#skeleton-plugins)**, for writing your own data collectors
37
38 Check also [Third Party Plugins](Third-Party-Plugins.md) for a list of plugins distributed by third parties.
39
@@ -41,8 +41,8 @@ Check also [Third Party Plugins](Third-Party-Plugins.md) for a list of plugins d
41
42 Netdata comes with **internal** and **external** plugins:
43
44 -1. The **internal** ones are written in `C` and run as threads within the Netdata daemon.
45 -2. The **external** ones can be written in any computer language. The Netdata daemon spawns these as processes (shown with `ps fax`) and reads their metrics using pipes (so the `stdout` of external plugins is connected to Netdata for metrics collection and the `stderr` of external plugins is connected to `/var/log/netdata/error.log`).
44 +1. The **internal** ones are written in `C` and run as threads within the Netdata daemon.
45 +2. The **external** ones can be written in any computer language. The Netdata daemon spawns these as processes (shown with `ps fax`) and reads their metrics using pipes (so the `stdout` of external plugins is connected to Netdata for metrics collection and the `stderr` of external plugins is connected to `/var/log/netdata/error.log`).
46
47 To make it easier to develop plugins, and minimize the number of threads and processes running, Netdata supports **plugin orchestrators**, each of them supporting one or more data collection **modules**. Currently we ship plugin orchestrators for 4 languages: `C`, `python`, `node.js` and `bash` and 2 more are under development (`go` and `java`).
48
@@ -107,27 +107,26 @@ This is a map of the all supported configuration options:
107
108 #### map of configuration files
109
110 -plugin | language | plugin<br/>configuration | modules<br/>configuration |
111 ----:|:---:|:---:|:---|
112 -`apps.plugin`<br/>(external plugin for monitoring the process tree on Linux and FreeBSD)|`C`|`netdata.conf` section `[plugin:apps]`|Custom configuration for the processes to be monitored at `apps_groups.conf`
113 -`freebsd.plugin`<br/>(internal plugin for monitoring FreeBSD system resources)|`C`|`netdata.conf` section `[plugin:freebsd]`|one section for each module `[plugin:freebsd:MODULE]`. Each module may provide additional sections in the form of `[plugin:freebsd:MODULE:SUBSECTION]`.
114 -`cgroups.plugin`<br/>(internal plugin for monitoring Linux containers, VMs and systemd services)|`C`|`netdata.conf` section `[plugin:cgroups]`|N/A
115 -`charts.d.plugin`<br/>(external plugin orchestrator for BASH modules)|`BASH`|`charts.d.conf`|a file for each module in `/etc/netdata/charts.d/`
116 -`diskspace.plugin`<br/>(internal plugin for collecting Linux mount points usage)|`C`|`netdata.conf` section `[plugin:diskspace]`|N/A
117 -`fping.plugin`<br/>(external plugin for collecting network latencies)|`C`|`fping.conf`|This plugin is a wrapper for the `fping` command.
118 -`ioping.plugin`<br/>(external plugin for collecting disk latencies)|`C`|`ioping.conf`|This plugin is a wrapper for the `ioping` command.
119 -`freeipmi.plugin`<br/>(external plugin for collecting IPMI h/w sensors)|`C`|`netdata.conf` section `[plugin:freeipmi]`
120 -`nfacct.plugin`<br/>(external plugin for monitoring netfilter firewall and connection tracker)|`C`|`netdata.conf` section `[plugin:nfacct]`|N/A
121 -`xenstat.plugin`<br/>(external plugin for monitoring XCP-ng and XenServer)|`C`|`netdata.conf` section `[plugin:xenstat]`|N/A
122 -`perf.plugin`<br/>(external plugin for monitoring CPU performance on Linux)|`C`|`netdata.conf` section `[plugin:perf]`|N/A
123 -`idlejitter.plugin`<br/>(internal plugin for monitoring CPU jitter)|`C`|N/A|N/A
124 -`macos.plugin`<br/>(internal plugin for monitoring MacOS system resources)|`C`|`netdata.conf` section `[plugin:macos]`|one section for each module `[plugin:macos:MODULE]`. Each module may provide additional sections in the form of `[plugin:macos:MODULE:SUBSECTION]`.
125 -`node.d.plugin`<br/>(external plugin orchestrator of node.js modules)|`node.js`|`node.d.conf`|a file for each module in `/etc/netdata/node.d/`.
126 -`proc.plugin`<br/>(internal plugin for monitoring Linux system resources)|`C`|`netdata.conf` section `[plugin:proc]`|one section for each module `[plugin:proc:MODULE]`. Each module may provide additional sections in the form of `[plugin:proc:MODULE:SUBSECTION]`.
127 -`python.d.plugin`<br/>(external plugin orchestrator for running python modules)|`python`<br/>v2 or v3<br/>both are supported|`python.d.conf`|a file for each module in `/etc/netdata/python.d/`.
128 -`statsd.plugin`<br/>(internal plugin for collecting statsd metrics)|`C`|`netdata.conf` section `[statsd]`|Synthetic statsd charts can be configured with files in `/etc/netdata/statsd.d/`.
129 -`tc.plugin`<br/>(internal plugin for collecting Linux traffic QoS)|`C`|`netdata.conf` section `[plugin:tc]`|The plugin runs an external helper called `tc-qos-helper.sh` to interface with the `tc` command. This helper supports a few additional options using `tc-qos-helper.conf`.
130 -
110 +| plugin | language | plugin<br/>configuration | modules<br/>configuration |
111 +|-----:|:------:|:----------------------:|:------------------------|
112 +| `apps.plugin`<br/>(external plugin for monitoring the process tree on Linux and FreeBSD)|`C`|`netdata.conf` section `[plugin:apps]`|Custom configuration for the processes to be monitored at `apps_groups.conf`|
113 +| `freebsd.plugin`<br/>(internal plugin for monitoring FreeBSD system resources)|`C`|`netdata.conf` section `[plugin:freebsd]`|one section for each module `[plugin:freebsd:MODULE]`. Each module may provide additional sections in the form of `[plugin:freebsd:MODULE:SUBSECTION]`.|
114 +| `cgroups.plugin`<br/>(internal plugin for monitoring Linux containers, VMs and systemd services)|`C`|`netdata.conf` section `[plugin:cgroups]`|N/A|
115 +| `charts.d.plugin`<br/>(external plugin orchestrator for BASH modules)|`BASH`|`charts.d.conf`|a file for each module in `/etc/netdata/charts.d/`|
116 +| `diskspace.plugin`<br/>(internal plugin for collecting Linux mount points usage)|`C`|`netdata.conf` section `[plugin:diskspace]`|N/A|
117 +| `fping.plugin`<br/>(external plugin for collecting network latencies)|`C`|`fping.conf`|This plugin is a wrapper for the `fping` command.|
118 +| `ioping.plugin`<br/>(external plugin for collecting disk latencies)|`C`|`ioping.conf`|This plugin is a wrapper for the `ioping` command.|
119 +| `freeipmi.plugin`<br/>(external plugin for collecting IPMI h/w sensors)|`C`|`netdata.conf` section `[plugin:freeipmi]`||
120 +| `nfacct.plugin`<br/>(external plugin for monitoring netfilter firewall and connection tracker)|`C`|`netdata.conf` section `[plugin:nfacct]`|N/A|
121 +| `xenstat.plugin`<br/>(external plugin for monitoring XCP-ng and XenServer)|`C`|`netdata.conf` section `[plugin:xenstat]`|N/A|
122 +| `perf.plugin`<br/>(external plugin for monitoring CPU performance on Linux)|`C`|`netdata.conf` section `[plugin:perf]`|N/A|
123 +| `idlejitter.plugin`<br/>(internal plugin for monitoring CPU jitter)|`C`|N/A|N/A|
124 +| `macos.plugin`<br/>(internal plugin for monitoring MacOS system resources)|`C`|`netdata.conf` section `[plugin:macos]`|one section for each module `[plugin:macos:MODULE]`. Each module may provide additional sections in the form of `[plugin:macos:MODULE:SUBSECTION]`.|
125 +| `node.d.plugin`<br/>(external plugin orchestrator of node.js modules)|`node.js`|`node.d.conf`|a file for each module in `/etc/netdata/node.d/`.|
126 +| `proc.plugin`<br/>(internal plugin for monitoring Linux system resources)|`C`|`netdata.conf` section `[plugin:proc]`|one section for each module `[plugin:proc:MODULE]`. Each module may provide additional sections in the form of `[plugin:proc:MODULE:SUBSECTION]`.|
127 +| `python.d.plugin`<br/>(external plugin orchestrator for running python modules)|`python`<br/>v2 or v3<br/>both are supported|`python.d.conf`|a file for each module in `/etc/netdata/python.d/`.|
128 +| `statsd.plugin`<br/>(internal plugin for collecting statsd metrics)|`C`|`netdata.conf` section `[statsd]`|Synthetic statsd charts can be configured with files in `/etc/netdata/statsd.d/`.|
129 +| `tc.plugin`<br/>(internal plugin for collecting Linux traffic QoS)|`C`|`netdata.conf` section `[plugin:tc]`|The plugin runs an external helper called `tc-qos-helper.sh` to interface with the `tc` command. This helper supports a few additional options using `tc-qos-helper.conf`.|
130
131 ## writing data collection modules
132
@@ -141,317 +140,296 @@ These are all the data collection plugins currently available.
140
141 ### Web Servers
142
144 -application|language|notes|
145 -:---------:|:------:|:----|
146 -apache|python<br/>v2 or v3|Connects to multiple apache servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [apache.chart.py](../collectors/python.d.plugin/apache)<br/>configuration file: [python.d/apache.conf](../collectors/python.d.plugin/apache)|
147 -apache|BASH<br/>Shell Script|Connects to an apache server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [apache.chart.sh](../collectors/charts.d.plugin/apache)<br/>configuration file: [charts.d/apache.conf](../collectors/charts.d.plugin/apache)|
148 -ipfs|python<br/>v2 or v3|Connects to multiple ipfs servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [ipfs.chart.py](../collectors/python.d.plugin/ipfs)<br/>configuration file: [python.d/ipfs.conf](../collectors/python.d.plugin/ipfs)|
149 -litespeed|python<br/>v2 or v3|reads the litespeed `rtreport` files to collect metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [litespeed.chart.py](../collectors/python.d.plugin/litespeed)<br/>configuration file: [python.d/litespeed.conf](../collectors/python.d.plugin/litespeed)
150 -nginx|python<br/>v2 or v3|Connects to multiple nginx servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [nginx.chart.py](../collectors/python.d.plugin/nginx)<br/>configuration file: [python.d/nginx.conf](../collectors/python.d.plugin/nginx)|
151 -nginx_plus|python<br/>v2 or v3|Connects to multiple nginx_plus servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [nginx_plus.chart.py](../collectors/python.d.plugin/nginx_plus)<br/>configuration file: [python.d/nginx_plus.conf](../collectors/python.d.plugin/nginx_plus)|
152 -nginx|BASH<br/>Shell Script|Connects to an nginx server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [nginx.chart.sh](../collectors/charts.d.plugin/nginx)<br/>configuration file: [charts.d/nginx.conf](../collectors/charts.d.plugin/nginx)|
153 -phpfpm|python<br/>v2 or v3|Connects to multiple phpfpm servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [phpfpm.chart.py](../collectors/python.d.plugin/phpfpm)<br/>configuration file: [python.d/phpfpm.conf](../collectors/python.d.plugin/phpfpm)|
154 -phpfpm|BASH<br/>Shell Script|Connects to one or more phpfpm servers (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [phpfpm.chart.sh](../collectors/charts.d.plugin/phpfpm)<br/>configuration file: [charts.d/phpfpm.conf](../collectors/charts.d.plugin/phpfpm)|
155 -tomcat|python<br/>v2 or v3|Connects to multiple tomcat servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [tomcat.chart.py](../collectors/python.d.plugin/tomcat)<br/>configuration file: [python.d/tomcat.conf](../collectors/python.d.plugin/tomcat)|
156 -tomcat|BASH<br/>Shell Script|Connects to a tomcat server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [tomcat.chart.sh](../collectors/charts.d.plugin/tomcat)<br/>configuration file: [charts.d/tomcat.conf](../collectors/charts.d.plugin/tomcat)|
157 -
143 +| application | language | notes |
144 +|:---------:|:------:|:----|
145 +| apache|python<br/>v2 or v3|Connects to multiple apache servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [apache.chart.py](../collectors/python.d.plugin/apache)<br/>configuration file: [python.d/apache.conf](../collectors/python.d.plugin/apache)|
146 +| apache|BASH<br/>Shell Script|Connects to an apache server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [apache.chart.sh](../collectors/charts.d.plugin/apache)<br/>configuration file: [charts.d/apache.conf](../collectors/charts.d.plugin/apache)|
147 +| ipfs|python<br/>v2 or v3|Connects to multiple ipfs servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [ipfs.chart.py](../collectors/python.d.plugin/ipfs)<br/>configuration file: [python.d/ipfs.conf](../collectors/python.d.plugin/ipfs)|
148 +| litespeed|python<br/>v2 or v3|reads the litespeed `rtreport` files to collect metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [litespeed.chart.py](../collectors/python.d.plugin/litespeed)<br/>configuration file: [python.d/litespeed.conf](../collectors/python.d.plugin/litespeed)|
149 +| nginx|python<br/>v2 or v3|Connects to multiple nginx servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [nginx.chart.py](../collectors/python.d.plugin/nginx)<br/>configuration file: [python.d/nginx.conf](../collectors/python.d.plugin/nginx)|
150 +| nginx_plus|python<br/>v2 or v3|Connects to multiple nginx_plus servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [nginx_plus.chart.py](../collectors/python.d.plugin/nginx_plus)<br/>configuration file: [python.d/nginx_plus.conf](../collectors/python.d.plugin/nginx_plus)|
151 +| nginx|BASH<br/>Shell Script|Connects to an nginx server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [nginx.chart.sh](../collectors/charts.d.plugin/nginx)<br/>configuration file: [charts.d/nginx.conf](../collectors/charts.d.plugin/nginx)|
152 +| phpfpm|python<br/>v2 or v3|Connects to multiple phpfpm servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [phpfpm.chart.py](../collectors/python.d.plugin/phpfpm)<br/>configuration file: [python.d/phpfpm.conf](../collectors/python.d.plugin/phpfpm)|
153 +| phpfpm|BASH<br/>Shell Script|Connects to one or more phpfpm servers (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [phpfpm.chart.sh](../collectors/charts.d.plugin/phpfpm)<br/>configuration file: [charts.d/phpfpm.conf](../collectors/charts.d.plugin/phpfpm)|
154 +| tomcat|python<br/>v2 or v3|Connects to multiple tomcat servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [tomcat.chart.py](../collectors/python.d.plugin/tomcat)<br/>configuration file: [python.d/tomcat.conf](../collectors/python.d.plugin/tomcat)|
155 +| tomcat|BASH<br/>Shell Script|Connects to a tomcat server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [tomcat.chart.sh](../collectors/charts.d.plugin/tomcat)<br/>configuration file: [charts.d/tomcat.conf](../collectors/charts.d.plugin/tomcat)|
156
157 ---
158
159 ### Web Log Parsers
160
163 -application|language|notes|
164 -:---------:|:------:|:----|
165 -web_log|python<br/>v2 or v3|powerful plugin, capable of incrementally parsing any number of web server log files <br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [web_log.chart.py](../collectors/python.d.plugin/web_log)<br/>configuration file: [python.d/web_log.conf](../collectors/python.d.plugin/web_log)|
166 -
161 +| application|language|notes|
162 +|:---------:|:------:|:----|
163 +| web_log|python<br/>v2 or v3|powerful plugin, capable of incrementally parsing any number of web server log files <br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [web_log.chart.py](../collectors/python.d.plugin/web_log)<br/>configuration file: [python.d/web_log.conf](../collectors/python.d.plugin/web_log)|
164
165 ---
166
167 ### Database Servers
168
172 -application|language|notes|
173 -:---------:|:------:|:----|
174 -couchdb|python<br/>v2 or v3|Connects to multiple couchdb servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [couchdb.chart.py](../collectors/python.d.plugin/couchdb)<br/>configuration file: [python.d/couchdb.conf](../collectors/python.d.plugin/couchdb)|
175 -memcached|python<br/>v2 or v3|Connects to multiple memcached servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [memcached.chart.py](../collectors/python.d.plugin/memcached)<br/>configuration file: [python.d/memcached.conf](../collectors/python.d.plugin/memcached)|
176 -mongodb|python<br/>v2 or v3|Connects to multiple `mongodb` servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Requires package `python-pymongo`.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [mongodb.chart.py](../collectors/python.d.plugin/mongodb)<br/>configuration file: [python.d/mongodb.conf](../collectors/python.d.plugin/mongodb)|
177 -mysql<br/>mariadb|python<br/>v2 or v3|Connects to multiple mysql or mariadb servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Requires package `python-mysqldb` (faster and preferred), or `python-pymysql`. <br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [mysql.chart.py](../collectors/python.d.plugin/mysql)<br/>configuration file: [python.d/mysql.conf](../collectors/python.d.plugin/mysql)|
178 -mysql<br/>mariadb|BASH<br/>Shell Script|Connects to multiple mysql or mariadb servers (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [mysql.chart.sh](../collectors/charts.d.plugin/mysql)<br/>configuration file: [charts.d/mysql.conf](../collectors/charts.d.plugin/mysql)|
179 -postgres|python<br/>v2 or v3|Connects to multiple postgres servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Requires package `python-psycopg2`.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [postgres.chart.py](../collectors/python.d.plugin/postgres)<br/>configuration file: [python.d/postgres.conf](../collectors/python.d.plugin/postgres)|
180 -redis|python<br/>v2 or v3|Connects to multiple redis servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [redis.chart.py](../collectors/python.d.plugin/redis)<br/>configuration file: [python.d/redis.conf](../collectors/python.d.plugin/redis)|
181 -rethinkdb|python<br/>v2 or v3|Connects to multiple rethinkdb servers (local or remote) to collect real-time metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [rethinkdb.chart.py](../collectors/python.d.plugin/rethinkdbs)<br/>configuration file: [python.d/rethinkdb.conf](../collectors/python.d.plugin/rethinkdbs)|
182 -
169 +| application|language|notes|
170 +|:---------:|:------:|:----|
171 +| couchdb|python<br/>v2 or v3|Connects to multiple couchdb servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [couchdb.chart.py](../collectors/python.d.plugin/couchdb)<br/>configuration file: [python.d/couchdb.conf](../collectors/python.d.plugin/couchdb)|
172 +| memcached|python<br/>v2 or v3|Connects to multiple memcached servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [memcached.chart.py](../collectors/python.d.plugin/memcached)<br/>configuration file: [python.d/memcached.conf](../collectors/python.d.plugin/memcached)|
173 +| mongodb|python<br/>v2 or v3|Connects to multiple `mongodb` servers (local or remote) to collect real-time performance metrics.<br/> <br/>Requires package `python-pymongo`.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [mongodb.chart.py](../collectors/python.d.plugin/mongodb)<br/>configuration file: [python.d/mongodb.conf](../collectors/python.d.plugin/mongodb)|
174 +| mysql<br/>mariadb|python<br/>v2 or v3|Connects to multiple mysql or mariadb servers (local or remote) to collect real-time performance metrics.<br/> <br/>Requires package `python-mysqldb` (faster and preferred), or `python-pymysql`. <br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [mysql.chart.py](../collectors/python.d.plugin/mysql)<br/>configuration file: [python.d/mysql.conf](../collectors/python.d.plugin/mysql)|
175 +| mysql<br/>mariadb|BASH<br/>Shell Script|Connects to multiple mysql or mariadb servers (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [mysql.chart.sh](../collectors/charts.d.plugin/mysql)<br/>configuration file: [charts.d/mysql.conf](../collectors/charts.d.plugin/mysql)|
176 +| postgres|python<br/>v2 or v3|Connects to multiple postgres servers (local or remote) to collect real-time performance metrics.<br/> <br/>Requires package `python-psycopg2`.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [postgres.chart.py](../collectors/python.d.plugin/postgres)<br/>configuration file: [python.d/postgres.conf](../collectors/python.d.plugin/postgres)|
177 +| redis|python<br/>v2 or v3|Connects to multiple redis servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [redis.chart.py](../collectors/python.d.plugin/redis)<br/>configuration file: [python.d/redis.conf](../collectors/python.d.plugin/redis)|
178 +| rethinkdb|python<br/>v2 or v3|Connects to multiple rethinkdb servers (local or remote) to collect real-time metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [rethinkdb.chart.py](../collectors/python.d.plugin/rethinkdbs)<br/>configuration file: [python.d/rethinkdb.conf](../collectors/python.d.plugin/rethinkdbs)|
179
180 ---
181
182 ### Social Sharing Servers
183
188 -application|language|notes|
189 -:---------:|:------:|:----|
190 -retroshare|python<br/>v2 or v3|Connects to multiple retroshare servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [retroshare.chart.py](../collectors/python.d.plugin/retroshare)<br/>configuration file: [python.d/retroshare.conf](../collectors/python.d.plugin/retroshare)|
191 -
184 +| application | language | notes |
185 +|:---------:|:------:|:----|
186 +| retroshare | python<br/>v2 or v3|Connects to multiple retroshare servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [retroshare.chart.py](../collectors/python.d.plugin/retroshare)<br/>configuration file: [python.d/retroshare.conf](../collectors/python.d.plugin/retroshare)|
187
188 ---
189
190 ### Proxy Servers
191
197 -application|language|notes|
198 -:---------:|:------:|:----|
199 -squid|python<br/>v2 or v3|Connects to multiple squid servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [squid.chart.py](../collectors/python.d.plugin/squid)<br/>configuration file: [python.d/squid.conf](../collectors/python.d.plugin/squid)|
200 -squid|BASH<br/>Shell Script|Connects to a squid server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [squid.chart.sh](../collectors/charts.d.plugin/squid)<br/>configuration file: [charts.d/squid.conf](../collectors/charts.d.plugin/squid)|
201 -
192 +|application|language|notes|
193 +|:---------:|:------:|:----|
194 +|squid|python<br/>v2 or v3|Connects to multiple squid servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [squid.chart.py](../collectors/python.d.plugin/squid)<br/>configuration file: [python.d/squid.conf](../collectors/python.d.plugin/squid)|
195 +|squid|BASH<br/>Shell Script|Connects to a squid server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [squid.chart.sh](../collectors/charts.d.plugin/squid)<br/>configuration file: [charts.d/squid.conf](../collectors/charts.d.plugin/squid)|
196
197 ---
198
199 ### HTTP Accelerators
200
207 -application|language|notes|
208 -:---------:|:------:|:----|
209 -varnish|python<br/>v2 or v3|Uses the varnishstat command to provide varnish cache statistics (client metrics, cache perfomance, thread-related metrics, backend health, memory usage etc.).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [varnish.chart.py](../collectors/python.d.plugin/varnish)<br/>configuration file: [python.d/varnish.conf](../collectors/python.d.plugin/varnish)|
210 -
201 +| application|language|notes|
202 +|:---------:|:------:|:----|
203 +| varnish|python<br/>v2 or v3|Uses the varnishstat command to provide varnish cache statistics (client metrics, cache perfomance, thread-related metrics, backend health, memory usage etc.).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [varnish.chart.py](../collectors/python.d.plugin/varnish)<br/>configuration file: [python.d/varnish.conf](../collectors/python.d.plugin/varnish)|
204
205 ---
206
207 ### Search Engines
208
216 -application|language|notes|
217 -:---------:|:------:|:----|
218 -elasticsearch|python<br/>v2 or v3|Monitor elasticsearch performance and health metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [elasticsearch.chart.py](../collectors/python.d.plugin/elasticsearch)<br/>configuration file: [python.d/elasticsearch.conf](../collectors/python.d.plugin/elasticsearch)|
219 -
209 +| application|language|notes|
210 +|:---------:|:------:|:----|
211 +| elasticsearch|python<br/>v2 or v3|Monitor elasticsearch performance and health metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [elasticsearch.chart.py](../collectors/python.d.plugin/elasticsearch)<br/>configuration file: [python.d/elasticsearch.conf](../collectors/python.d.plugin/elasticsearch)|
212
213 ---
214
215 ### Name Servers
216
225 -application|language|notes|
226 -:---------:|:------:|:----|
227 -named|node.js|Connects to multiple named (ISC-Bind) servers (local or remote) to collect real-time performance metrics. All versions of bind after 9.9.10 are supported.<br/>&nbsp;<br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [named.node.js](../collectors/node.d.plugin/named)<br/>configuration file: [node.d/named.conf](../collectors/node.d.plugin/named)|
228 -bind_rndc|python<br/>v2 or v3|Parses named.stats dump file to collect real-time performance metrics. All versions of bind after 9.6 are supported.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [bind_rndc.chart.py](../collectors/python.d.plugin/bind_rndc)<br/>configuration file: [python.d/bind_rndc.conf](../collectors/python.d.plugin/bind_rndc)|
229 -nsd|python<br/>v2 or v3|Charts the nsd received queries and zones.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [nsd.chart.py](../collectors/python.d.plugin/nsd)<br/>configuration file: [python.d/nsd.conf](../collectors/python.d.plugin/nsd)
230 -powerdns|python<br/>v2 or v3|Monitors powerdns performance and health metrics <br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [powerdns.chart.py](../collectors/python.d.plugin/powerdns)<br/>configuration file: [python.d/powerdns.conf](../collectors/python.d.plugin/powerdns)|
231 -dnsdist|python<br/>v2 or v3|Monitors dnsdist performance and health metrics <br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [dnsdist.chart.py](../collectors/python.d.plugin/dnsdist)<br/>configuration file: [python.d/dnsdist.conf](../collectors/python.d.plugin/dnsdist)|
232 -unbound|python<br/>v2 or v3|Monitors Unbound performance and resource usage metrics <br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [unbound.chart.py](../collectors/python.d.plugin/unbound)<br/>configuration file: [python.d/unbound.conf](../collectors/python.d.plugin/unbound)|
233 -
217 +| application|language|notes|
218 +|:---------:|:------:|:----|
219 +| named|node.js|Connects to multiple named (ISC-Bind) servers (local or remote) to collect real-time performance metrics. All versions of bind after 9.9.10 are supported.<br/> <br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [named.node.js](../collectors/node.d.plugin/named)<br/>configuration file: [node.d/named.conf](../collectors/node.d.plugin/named)|
220 +| bind_rndc|python<br/>v2 or v3|Parses named.stats dump file to collect real-time performance metrics. All versions of bind after 9.6 are supported.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [bind_rndc.chart.py](../collectors/python.d.plugin/bind_rndc)<br/>configuration file: [python.d/bind_rndc.conf](../collectors/python.d.plugin/bind_rndc)|
221 +| nsd|python<br/>v2 or v3|Charts the nsd received queries and zones.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [nsd.chart.py](../collectors/python.d.plugin/nsd)<br/>configuration file: [python.d/nsd.conf](../collectors/python.d.plugin/nsd)|
222 +| powerdns|python<br/>v2 or v3|Monitors powerdns performance and health metrics <br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [powerdns.chart.py](../collectors/python.d.plugin/powerdns)<br/>configuration file: [python.d/powerdns.conf](../collectors/python.d.plugin/powerdns)|
223 +| dnsdist|python<br/>v2 or v3|Monitors dnsdist performance and health metrics <br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [dnsdist.chart.py](../collectors/python.d.plugin/dnsdist)<br/>configuration file: [python.d/dnsdist.conf](../collectors/python.d.plugin/dnsdist)|
224 +| unbound|python<br/>v2 or v3|Monitors Unbound performance and resource usage metrics <br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [unbound.chart.py](../collectors/python.d.plugin/unbound)<br/>configuration file: [python.d/unbound.conf](../collectors/python.d.plugin/unbound)|
225
226 ---
227
228 ### DHCP Servers
229
239 -application|language|notes|
240 -:---------:|:------:|:----|
241 -isc dhcp|python<br/>v2 or v3|Monitor lease database to show all active leases.<br/>&nbsp;<br/>Python v2 requires package `python-ipaddress`.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [isc-dhcpd.chart.py](../collectors/python.d.plugin/isc_dhcpd)<br/>configuration file: [python.d/isc-dhcpd.conf](../collectors/python.d.plugin/isc_dhcpd)|
242 -
230 +| application|language|notes|
231 +|:---------:|:------:|:----|
232 +| isc dhcp|python<br/>v2 or v3|Monitor lease database to show all active leases.<br/> <br/>Python v2 requires package `python-ipaddress`.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [isc-dhcpd.chart.py](../collectors/python.d.plugin/isc_dhcpd)<br/>configuration file: [python.d/isc-dhcpd.conf](../collectors/python.d.plugin/isc_dhcpd)|
233
234 ---
235
236 ### Load Balancers
237
248 -application|language|notes|
249 -:---------:|:------:|:----|
250 -haproxy|python<br/>v2 or v3|Monitor frontend, backend and health metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [haproxy.chart.py](../collectors/python.d.plugin/haproxy)<br/>configuration file: [python.d/haproxy.conf](../collectors/python.d.plugin/haproxy)|
251 -traefik|python<br/>v2 or v3|Connects to multiple traefik instances (local or remote) to collect API metrics (response status code, response time, average response time and server uptime).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [traefik.chart.py](../collectors/python.d.plugin/traefik)<br/>configuration file: [python.d/traefik.conf](../collectors/python.d.plugin/traefik)|
238 +| application|language|notes|
239 +|:---------:|:------:|:----|
240 +| haproxy|python<br/>v2 or v3|Monitor frontend, backend and health metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [haproxy.chart.py](../collectors/python.d.plugin/haproxy)<br/>configuration file: [python.d/haproxy.conf](../collectors/python.d.plugin/haproxy)|
241 +| traefik|python<br/>v2 or v3|Connects to multiple traefik instances (local or remote) to collect API metrics (response status code, response time, average response time and server uptime).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [traefik.chart.py](../collectors/python.d.plugin/traefik)<br/>configuration file: [python.d/traefik.conf](../collectors/python.d.plugin/traefik)|
242
243 ---
244
245 ### Message Brokers
246
257 -application|language|notes|
258 -:---------:|:------:|:----|
259 -rabbitmq|python<br/>v2 or v3|Monitor rabbitmq performance and health metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [rabbitmq.chart.py](../collectors/python.d.plugin/rabbitmq)<br/>configuration file: [python.d/rabbitmq.conf](../collectors/python.d.plugin/rabbitmq)|
260 -beanstalkd|python<br/>v2 or v3|Provides server and tube level statistics.<br/>&nbsp;<br/>Requires beanstalkc python package (`pip install beanstalkc` or install package `python-beanstalkc`, which also installs `python-yaml`).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [beanstalk.chart.py](../collectors/python.d.plugin/beanstalk)<br/>configuration file: [python.d/beanstalk.conf](../collectors/python.d.plugin/beanstalk)|
261 -
247 +| application | language|notes|
248 +|:---------:|:------:|:----|
249 +| rabbitmq | python<br/>v2 or v3|Monitor rabbitmq performance and health metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [rabbitmq.chart.py](../collectors/python.d.plugin/rabbitmq)<br/>configuration file: [python.d/rabbitmq.conf](../collectors/python.d.plugin/rabbitmq)|
250 +| beanstalkd | python<br/>v2 or v3|Provides server and tube level statistics.<br/> <br/>Requires beanstalkc python package (`pip install beanstalkc` or install package `python-beanstalkc`, which also installs `python-yaml`).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [beanstalk.chart.py](../collectors/python.d.plugin/beanstalk)<br/>configuration file: [python.d/beanstalk.conf](../collectors/python.d.plugin/beanstalk)|
251
252 ---
253
254 ### UPS
255
267 -application|language|notes|
268 -:---------:|:------:|:----|
269 -apcupsd|BASH<br/>Shell Script|Connects to an apcupsd server to collect real-time statistics of an APC UPS.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [apcupsd.chart.sh](../collectors/charts.d.plugin/apcupsd)<br/>configuration file: [charts.d/apcupsd.conf](../collectors/charts.d.plugin/apcupsd)|
270 -nut|BASH<br/>Shell Script|Connects to a nut server (upsd) to collect real-time UPS statistics.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [nut.chart.sh](../collectors/charts.d.plugin/nut)<br/>configuration file: [charts.d/nut.conf](../collectors/charts.d.plugin/nut)|
271 -
256 +| application|language|notes|
257 +|:---------:|:------:|:----|
258 +| apcupsd|BASH<br/>Shell Script|Connects to an apcupsd server to collect real-time statistics of an APC UPS.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [apcupsd.chart.sh](../collectors/charts.d.plugin/apcupsd)<br/>configuration file: [charts.d/apcupsd.conf](../collectors/charts.d.plugin/apcupsd)|
259 +| nut|BASH<br/>Shell Script|Connects to a nut server (upsd) to collect real-time UPS statistics.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [nut.chart.sh](../collectors/charts.d.plugin/nut)<br/>configuration file: [charts.d/nut.conf](../collectors/charts.d.plugin/nut)|
260
261 ---
262
263 ### RAID
264
277 -application|language|notes|
278 -:---------:|:------:|:----|
279 -megacli|python<br/>v2 or v3|Collects adapter, physical drives and battery stats..<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [megacli.chart.py](../collectors/python.d.plugin/megacli)<br/>configuration file: [python.d/megacli.conf](../collectors/python.d.plugin/megacli)|
265 +|application|language|notes|
266 +|:---------:|:------:|:----|
267 +|megacli|python<br/>v2 or v3|Collects adapter, physical drives and battery stats..<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [megacli.chart.py](../collectors/python.d.plugin/megacli)<br/>configuration file: [python.d/megacli.conf](../collectors/python.d.plugin/megacli)|
268
269 ---
270
271 ### Mail Servers
272
285 -application|language|notes|
286 -:---------:|:------:|:----|
287 -dovecot|python<br/>v2 or v3|Connects to multiple dovecot servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [dovecot.chart.py](../collectors/python.d.plugin/dovecot)<br/>configuration file: [python.d/dovecot.conf](../collectors/python.d.plugin/dovecot)|
288 -exim|python<br/>v2 or v3|Charts the exim queue size.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [exim.chart.py](../collectors/python.d.plugin/exim)<br/>configuration file: [python.d/exim.conf](../collectors/python.d.plugin/exim)|
289 -exim|BASH<br/>Shell Script|Charts the exim queue size.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [exim.chart.sh](../collectors/charts.d.plugin/exim)<br/>configuration file: [charts.d/exim.conf](../collectors/charts.d.plugin/exim)|
290 -postfix|python<br/>v2 or v3|Charts the postfix queue size (supports multiple queues).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [postfix.chart.py](../collectors/python.d.plugin/postfix)<br/>configuration file: [python.d/postfix.conf](../collectors/python.d.plugin/postfix)|
291 -postfix|BASH<br/>Shell Script|Charts the postfix queue size.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [postfix.chart.sh](../collectors/charts.d.plugin/postfix)<br/>configuration file: [charts.d/postfix.conf](../collectors/charts.d.plugin/postfix)|
292 -
273 +| application|language|notes|
274 +|:---------:|:------:|:----|
275 +| dovecot|python<br/>v2 or v3|Connects to multiple dovecot servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [dovecot.chart.py](../collectors/python.d.plugin/dovecot)<br/>configuration file: [python.d/dovecot.conf](../collectors/python.d.plugin/dovecot)|
276 +| exim|python<br/>v2 or v3|Charts the exim queue size.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [exim.chart.py](../collectors/python.d.plugin/exim)<br/>configuration file: [python.d/exim.conf](../collectors/python.d.plugin/exim)|
277 +| exim|BASH<br/>Shell Script|Charts the exim queue size.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [exim.chart.sh](../collectors/charts.d.plugin/exim)<br/>configuration file: [charts.d/exim.conf](../collectors/charts.d.plugin/exim)|
278 +| postfix|python<br/>v2 or v3|Charts the postfix queue size (supports multiple queues).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [postfix.chart.py](../collectors/python.d.plugin/postfix)<br/>configuration file: [python.d/postfix.conf](../collectors/python.d.plugin/postfix)|
279 +| postfix|BASH<br/>Shell Script|Charts the postfix queue size.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [postfix.chart.sh](../collectors/charts.d.plugin/postfix)<br/>configuration file: [charts.d/postfix.conf](../collectors/charts.d.plugin/postfix)|
280
281 ---
282
283 ### File Servers
284
298 -application|language|notes|
299 -:---------:|:------:|:----|
300 -NFS Client|`C`|This is handled entirely by the Netdata daemon.<br/>&nbsp;<br/>Configuration: `netdata.conf`, section `[plugin:proc:/proc/net/rpc/nfs]`.
301 -NFS Server|`C`|This is handled entirely by the `netdata` daemon.<br/>&nbsp;<br/>Configuration: `netdata.conf`, section `[plugin:proc:/proc/net/rpc/nfsd]`.
302 -samba|python<br/>v2 or v3|Performance metrics of Samba SMB2 file sharing.<br/>&nbsp;<br/>documentation page: [python.d.plugin module samba](../collectors/python.d.plugin/samba)<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [samba.chart.py](../collectors/python.d.plugin/samba)<br/>configuration file: [python.d/samba.conf](../collectors/python.d.plugin/samba)|
285 +| application|language|notes|
286 +|:---------:|:------:|:----|
287 +| NFS Client|`C`|This is handled entirely by the Netdata daemon.<br/> <br/>Configuration: `netdata.conf`, section `[plugin:proc:/proc/net/rpc/nfs]`.|
288 +| NFS Server|`C`|This is handled entirely by the `netdata` daemon.<br/> <br/>Configuration: `netdata.conf`, section `[plugin:proc:/proc/net/rpc/nfsd]`.|
289 +| samba|python<br/>v2 or v3|Performance metrics of Samba SMB2 file sharing.<br/> <br/>documentation page: [python.d.plugin module samba](../collectors/python.d.plugin/samba)<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [samba.chart.py](../collectors/python.d.plugin/samba)<br/>configuration file: [python.d/samba.conf](../collectors/python.d.plugin/samba)|
290
291 ---
292
293 ### Print Servers
294
308 -application|language|notes|
309 -:---------:|:------:|:----|
310 -CUPS|C|Charts metrics of printers, jobs and other cups destinations.<br/>&nbsp;<br/>Netdata plugin: [cups.plugin](../collectors/cups.plugin)
295 +| application|language|notes|
296 +|:---------:|:------:|:----|
297 +| CUPS|C|Charts metrics of printers, jobs and other cups destinations.<br/> <br/>Netdata plugin: [cups.plugin](../collectors/cups.plugin)|
298
299 ---
300
301 ### Hypervisors
302
316 -application|language|notes|
317 -:---------:|:------:|:----|
318 -xenstat|C|Collects host and domain statistics for XenServer or XCP-ng hypervisors.<br/>&nbsp;<br/>Netdata plugin: [xenstat.plugin](../collectors/xenstat.plugin)
303 +| application|language|notes|
304 +|:---------:|:------:|:----|
305 +| xenstat|C|Collects host and domain statistics for XenServer or XCP-ng hypervisors.<br/> <br/>Netdata plugin: [xenstat.plugin](../collectors/xenstat.plugin)|
306
307 ---
308
309 ### System
310
324 -application|language|notes|
325 -:---------:|:------:|:----|
326 -apps|C|`apps.plugin` collects resource usage statistics for all processes running in the system. It groups the entire process tree and reports dozens of metrics for CPU utilization, memory footprint, disk I/O, swap memory, network connections, open files and sockets, etc. It reports metrics for application groups, users and user groups.<br/>&nbsp;<br/>[Documentation of `apps.plugin`](../collectors/apps.plugin/).<br/>&nbsp;<br/>Netdata plugin: [`apps_plugin.c`](../collectors/apps.plugin)<br/>configuration file: [`apps_groups.conf`](../collectors/apps.plugin)|
327 -ioping|C|Charts disk latency statistics for a directory/file/device, using the `ioping` command. A recent (probably unreleased) version of ioping is required. The plugin supplied can install it in `/usr/local`.<br/>&nbsp;<br/>Netdata plugin: [ioping.plugin](../collectors/ioping.plugin) (this is a shell wrapper to start ioping - once ioping is started, Netdata and ioping communicate directly - it can also install the right version of ioping)<br/>configuration file: [ioping.conf](../collectors/ioping.plugin)|
328 -perf|C|`perf.plugin` collects CPU performance metrics using hardware performance monitoring units (PMU).<br/>&nbsp;<br/>[Documentation of `perf.plugin`](../collectors/perf.plugin/).<br/>&nbsp;<br/>Netdata plugin: [`perf_plugin.c`](../collectors/perf.plugin)|
329 -cpu_apps|BASH<br/>Shell Script|Collects the CPU utilization of select apps.<br/><br/>DEPRECATED IN FAVOR OF `apps.plugin`. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [cpu_apps.chart.sh](../collectors/charts.d.plugin/cpu_apps)<br/>configuration file: [charts.d/cpu_apps.conf](../collectors/charts.d.plugin/cpu_apps)|
330 -load_average|BASH<br/>Shell Script|Collects the current system load average.<br/><br/>DEPRECATED IN FAVOR OF THE NETDATA INTERNAL ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [load_average.chart.sh](../collectors/charts.d.plugin/load_average)<br/>configuration file: [charts.d/load_average.conf](../collectors/charts.d.plugin/load_average)|
331 -mem_apps|BASH<br/>Shell Script|Collects the memory footprint of select applications.<br/><br/>DEPRECATED IN FAVOR OF `apps.plugin`. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [mem_apps.chart.sh](../collectors/charts.d.plugin/mem_apps)<br/>configuration file: [charts.d/mem_apps.conf](../collectors/charts.d.plugin/mem_apps)|
332 -
311 +| application|language|notes|
312 +|:---------:|:------:|:----|
313 +| apps|C|`apps.plugin` collects resource usage statistics for all processes running in the system. It groups the entire process tree and reports dozens of metrics for CPU utilization, memory footprint, disk I/O, swap memory, network connections, open files and sockets, etc. It reports metrics for application groups, users and user groups.<br/> <br/>[Documentation of `apps.plugin`](../collectors/apps.plugin/).<br/> <br/>Netdata plugin: [`apps_plugin.c`](../collectors/apps.plugin)<br/>configuration file: [`apps_groups.conf`](../collectors/apps.plugin)|
314 +| ioping|C|Charts disk latency statistics for a directory/file/device, using the `ioping` command. A recent (probably unreleased) version of ioping is required. The plugin supplied can install it in `/usr/local`.<br/> <br/>Netdata plugin: [ioping.plugin](../collectors/ioping.plugin) (this is a shell wrapper to start ioping - once ioping is started, Netdata and ioping communicate directly - it can also install the right version of ioping)<br/>configuration file: [ioping.conf](../collectors/ioping.plugin)|
315 +| perf|C|`perf.plugin` collects CPU performance metrics using hardware performance monitoring units (PMU).<br/> <br/>[Documentation of `perf.plugin`](../collectors/perf.plugin/).<br/> <br/>Netdata plugin: [`perf_plugin.c`](../collectors/perf.plugin)|
316 +| cpu_apps|BASH<br/>Shell Script|Collects the CPU utilization of select apps.<br/><br/>DEPRECATED IN FAVOR OF `apps.plugin`. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [cpu_apps.chart.sh](../collectors/charts.d.plugin/cpu_apps)<br/>configuration file: [charts.d/cpu_apps.conf](../collectors/charts.d.plugin/cpu_apps)|
317 +| load_average|BASH<br/>Shell Script|Collects the current system load average.<br/><br/>DEPRECATED IN FAVOR OF THE NETDATA INTERNAL ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [load_average.chart.sh](../collectors/charts.d.plugin/load_average)<br/>configuration file: [charts.d/load_average.conf](../collectors/charts.d.plugin/load_average)|
318 +| mem_apps|BASH<br/>Shell Script|Collects the memory footprint of select applications.<br/><br/>DEPRECATED IN FAVOR OF `apps.plugin`. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [mem_apps.chart.sh](../collectors/charts.d.plugin/mem_apps)<br/>configuration file: [charts.d/mem_apps.conf](../collectors/charts.d.plugin/mem_apps)|
319
320 ---
321
322 ### Sensors
323
338 -application|language|notes|
339 -:---------:|:------:|:----|
340 -cpufreq|BASH<br/>Shell Script|Collects current CPU frequency from `/sys/devices`.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [cpufreq.chart.sh](../collectors/charts.d.plugin/cpufreq)<br/>configuration file: [charts.d/cpufreq.conf](../collectors/charts.d.plugin/cpufreq)|
341 -IPMI|C|Collects temperatures, voltages, currents, power, fans and `SEL` events from IPMI using `libipmimonitoring`.<br/>Check [Monitoring IPMI](../collectors/freeipmi.plugin/) for more information<br/>&nbsp;<br/>Netdata plugin: [freeipmi.plugin](../collectors/freeipmi.plugin)<br/>configuration file: none required - to enable it, compile/install Netdata with `--enable-plugin-freeipmi`|
342 -hddtemp|python<br/>v2 or v3|Connects to multiple hddtemp servers (local or remote) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [hddtemp.chart.py](../collectors/python.d.plugin/hddtemp)<br/>configuration file: [python.d/hddtemp.conf](../collectors/python.d.plugin/hddtemp)|
343 -hddtemp|BASH<br/>Shell Script|Connects to a hddtemp server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [hddtemp.chart.sh](../collectors/charts.d.plugin/hddtemp)<br/>configuration file: [charts.d/hddtemp.conf](../collectors/charts.d.plugin/hddtemp)|
344 -sensors|BASH<br/>Shell Script|Collects sensors values from files in `/sys`.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [sensors.chart.sh](../collectors/charts.d.plugin/sensors)<br/>configuration file: [charts.d/sensors.conf](../collectors/charts.d.plugin/sensors)|
345 -sensors|python<br/>v2 or v3|Uses `lm-sensors` to collect sensor data.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [sensors.chart.py](../collectors/python.d.plugin/sensors)<br/>configuration file: [python.d/sensors.conf](../collectors/python.d.plugin/sensors)|
346 -smartd_log|python<br/>v2 or v3|Collects the S.M.A.R.T attributes from `smartd` log files.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [smartd_log.chart.py](../collectors/python.d.plugin/smartd_log)<br/>configuration file: [python.d/smartd_log.conf](../collectors/python.d.plugin/smartd_log)|
347 -w1sensor|python<br/>v2 or v3|Collects data from connected 1-Wire sensors.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [w1sensor.chart.py](../collectors/python.d.plugin/w1sensor)<br/>configuration file: [python.d/w1sensor.conf](../collectors/python.d.plugin/w1sensor)|
348 -
324 +| application|language|notes|
325 +|:---------:|:------:|:----|
326 +| cpufreq|BASH<br/>Shell Script|Collects current CPU frequency from `/sys/devices`.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [cpufreq.chart.sh](../collectors/charts.d.plugin/cpufreq)<br/>configuration file: [charts.d/cpufreq.conf](../collectors/charts.d.plugin/cpufreq)|
327 +| IPMI|C|Collects temperatures, voltages, currents, power, fans and `SEL` events from IPMI using `libipmimonitoring`.<br/>Check [Monitoring IPMI](../collectors/freeipmi.plugin/) for more information<br/> <br/>Netdata plugin: [freeipmi.plugin](../collectors/freeipmi.plugin)<br/>configuration file: none required - to enable it, compile/install Netdata with `--enable-plugin-freeipmi`|
328 +| hddtemp|python<br/>v2 or v3|Connects to multiple hddtemp servers (local or remote) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [hddtemp.chart.py](../collectors/python.d.plugin/hddtemp)<br/>configuration file: [python.d/hddtemp.conf](../collectors/python.d.plugin/hddtemp)|
329 +| hddtemp|BASH<br/>Shell Script|Connects to a hddtemp server (local or remote) to collect real-time performance metrics.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [hddtemp.chart.sh](../collectors/charts.d.plugin/hddtemp)<br/>configuration file: [charts.d/hddtemp.conf](../collectors/charts.d.plugin/hddtemp)|
330 +| sensors|BASH<br/>Shell Script|Collects sensors values from files in `/sys`.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [sensors.chart.sh](../collectors/charts.d.plugin/sensors)<br/>configuration file: [charts.d/sensors.conf](../collectors/charts.d.plugin/sensors)|
331 +| sensors|python<br/>v2 or v3|Uses `lm-sensors` to collect sensor data.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [sensors.chart.py](../collectors/python.d.plugin/sensors)<br/>configuration file: [python.d/sensors.conf](../collectors/python.d.plugin/sensors)|
332 +| smartd_log|python<br/>v2 or v3|Collects the S.M.A.R.T attributes from `smartd` log files.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [smartd_log.chart.py](../collectors/python.d.plugin/smartd_log)<br/>configuration file: [python.d/smartd_log.conf](../collectors/python.d.plugin/smartd_log)|
333 +| w1sensor|python<br/>v2 or v3|Collects data from connected 1-Wire sensors.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [w1sensor.chart.py](../collectors/python.d.plugin/w1sensor)<br/>configuration file: [python.d/w1sensor.conf](../collectors/python.d.plugin/w1sensor)|
334
335 ---
336
337 ### Network
338
354 -application|language|notes|
355 -:---------:|:------:|:----|
356 -ap|BASH<br/>Shell Script|Uses the `iw` command to provide statistics of wireless clients connected to a wireless access point running on this host (works well with `hostapd`).<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [ap.chart.sh](../collectors/charts.d.plugin/ap)<br/>configuration file: [charts.d/ap.conf](../collectors/charts.d.plugin/ap)|
357 -fping|C|Charts network latency statistics for any number of nodes, using the `fping` command. A recent (probably unreleased) version of fping is required. The plugin supplied can install it in `/usr/local`.<br/>&nbsp;<br/>Netdata plugin: [fping.plugin](../collectors/fping.plugin) (this is a shell wrapper to start fping - once fping is started, Netdata and fping communicate directly - it can also install the right version of fping)<br/>configuration file: [fping.conf](../collectors/fping.plugin)|
358 -snmp|node.js|Connects to multiple snmp servers to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [snmp.node.js](../collectors/node.d.plugin/snmp)<br/>configuration file: [node.d/snmp.conf](../collectors/node.d.plugin/snmp)|
359 -nfacct|C|collects netfilter firewall, connection tracker and accounting metrics using `libmnl` and `libnetfilter_acct`|
360 -dns_query_time|python<br/>v2 or v3|Provides DNS query time statistics.<br/>&nbsp;<br/>Requires package `dnspython` (`pip install dnspython` or install package `python-dnspython`).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [dns_query_time.chart.py](../collectors/python.d.plugin/dns_query_time)<br/>configuration file: [python.d/dns_query_time.conf](../collectors/python.d.plugin/dns_query_time)|
361 -http|python<br />v2 or v3|Monitors a generic web page for status code and returned content in HTML
362 -port|ptyhon<br />v2 or v3|Checks if a generic TCP port for its availability and response time
363 -
339 +| application|language|notes|
340 +|:---------:|:------:|:----|
341 +| ap|BASH<br/>Shell Script|Uses the `iw` command to provide statistics of wireless clients connected to a wireless access point running on this host (works well with `hostapd`).<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [ap.chart.sh](../collectors/charts.d.plugin/ap)<br/>configuration file: [charts.d/ap.conf](../collectors/charts.d.plugin/ap)|
342 +| fping|C|Charts network latency statistics for any number of nodes, using the `fping` command. A recent (probably unreleased) version of fping is required. The plugin supplied can install it in `/usr/local`.<br/> <br/>Netdata plugin: [fping.plugin](../collectors/fping.plugin) (this is a shell wrapper to start fping - once fping is started, Netdata and fping communicate directly - it can also install the right version of fping)<br/>configuration file: [fping.conf](../collectors/fping.plugin)|
343 +| snmp|node.js|Connects to multiple snmp servers to collect real-time performance metrics.<br/> <br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [snmp.node.js](../collectors/node.d.plugin/snmp)<br/>configuration file: [node.d/snmp.conf](../collectors/node.d.plugin/snmp)|
344 +| nfacct|C|collects netfilter firewall, connection tracker and accounting metrics using `libmnl` and `libnetfilter_acct`|
345 +| dns_query_time|python<br/>v2 or v3|Provides DNS query time statistics.<br/> <br/>Requires package `dnspython` (`pip install dnspython` or install package `python-dnspython`).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [dns_query_time.chart.py](../collectors/python.d.plugin/dns_query_time)<br/>configuration file: [python.d/dns_query_time.conf](../collectors/python.d.plugin/dns_query_time)|
346 +| http|python<br />v2 or v3|Monitors a generic web page for status code and returned content in HTML|
347 +| port|ptyhon<br />v2 or v3|Checks if a generic TCP port for its availability and response time|
348
349 ---
350
351 ### Time Servers
352
369 -application|language|notes|
370 -:---------:|:------:|:----|
371 -chrony|python<br/>v2 or v3|Uses the chronyc command to provide chrony statistics (Frequency, Last offset, RMS offset, Residual freq, Root delay, Root dispersion, Skew, System time).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [chrony.chart.py](../collectors/python.d.plugin/chrony)<br/>configuration file: [python.d/chrony.conf](../collectors/python.d.plugin/chrony)|
372 -ntpd|python<br/>v2 or v3|Connects to multiple ntpd servers (local or remote) to provide statistics of system variables and optional also peer variables (if enabled in the configuration).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [ntpd.chart.py](../collectors/python.d.plugin/ntpd)<br/>configuration file: [python.d/ntpd.conf](../collectors/python.d.plugin/ntpd)|
373 -
353 +| application|language|notes|
354 +|:---------:|:------:|:----|
355 +| chrony|python<br/>v2 or v3|Uses the chronyc command to provide chrony statistics (Frequency, Last offset, RMS offset, Residual freq, Root delay, Root dispersion, Skew, System time).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [chrony.chart.py](../collectors/python.d.plugin/chrony)<br/>configuration file: [python.d/chrony.conf](../collectors/python.d.plugin/chrony)|
356 +| ntpd|python<br/>v2 or v3|Connects to multiple ntpd servers (local or remote) to provide statistics of system variables and optional also peer variables (if enabled in the configuration).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [ntpd.chart.py](../collectors/python.d.plugin/ntpd)<br/>configuration file: [python.d/ntpd.conf](../collectors/python.d.plugin/ntpd)|
357
358 ---
359
360 ### Security
361
379 -application|language|notes|
380 -:---------:|:------:|:----|
381 -freeradius|python<br/>v2 or v3|Uses the radclient command to provide freeradius statistics (authentication, accounting, proxy-authentication, proxy-accounting).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [freeradius.chart.py](../collectors/python.d.plugin/freeradius)<br/>configuration file: [python.d/freeradius.conf](../collectors/python.d.plugin/freeradius)|
382 -openvpn|python<br/>v2 or v3|All data from openvpn-status.log in your dashboard! <br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [ovpn_status_log.chart.py](../collectors/python.d.plugin/ovpn_status_log)<br/>configuration file: [python.d/ovpn_status_log.conf](../collectors/python.d.plugin/ovpn_status_log)|
383 -fail2ban|python<br/>v2 or v3|Monitor fail2ban log file to show all bans for all active jails <br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [fail2ban.chart.py](../collectors/python.d.plugin/fail2ban)<br/>configuration file: [python.d/fail2ban.conf](../collectors/python.d.plugin/fail2ban)|
384 -
362 +| application|language|notes|
363 +|:---------:|:------:|:----|
364 +| freeradius|python<br/>v2 or v3|Uses the radclient command to provide freeradius statistics (authentication, accounting, proxy-authentication, proxy-accounting).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [freeradius.chart.py](../collectors/python.d.plugin/freeradius)<br/>configuration file: [python.d/freeradius.conf](../collectors/python.d.plugin/freeradius)|
365 +| openvpn|python<br/>v2 or v3|All data from openvpn-status.log in your dashboard! <br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [ovpn_status_log.chart.py](../collectors/python.d.plugin/ovpn_status_log)<br/>configuration file: [python.d/ovpn_status_log.conf](../collectors/python.d.plugin/ovpn_status_log)|
366 +| fail2ban|python<br/>v2 or v3|Monitor fail2ban log file to show all bans for all active jails <br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [fail2ban.chart.py](../collectors/python.d.plugin/fail2ban)<br/>configuration file: [python.d/fail2ban.conf](../collectors/python.d.plugin/fail2ban)|
367
368 ---
369
370 ### Telephony Servers
371
390 -application|language|notes|
391 -:---------:|:------:|:----|
392 -opensips|BASH<br/>Shell Script|Connects to an opensips server (local only) to collect real-time performance metrics.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [opensips.chart.sh](../collectors/charts.d.plugin/opensips)<br/>configuration file: [charts.d/opensips.conf](../collectors/charts.d.plugin/opensips)|
393 -
372 +| application|language|notes|
373 +|:---------:|:------:|:----|
374 +| opensips|BASH<br/>Shell Script|Connects to an opensips server (local only) to collect real-time performance metrics.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [opensips.chart.sh](../collectors/charts.d.plugin/opensips)<br/>configuration file: [charts.d/opensips.conf](../collectors/charts.d.plugin/opensips)|
375
376 ---
377
378 ### Go applications
379
399 -application|language|notes|
400 -:---------:|:------:|:----|
401 -go_expvar|python<br/>v2 or v3|Parses metrics exposed by applications written in the Go programming language using the [expvar package](https://golang.org/pkg/expvar/).<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [go_expvar.chart.py](../collectors/python.d.plugin/go_expvar)<br/>configuration file: [python.d/go_expvar.conf](../collectors/python.d.plugin/go_expvar)<br/>documentation: [Monitoring Go Applications](../collectors/python.d.plugin/go_expvar/)|
402 -
380 +| application|language|notes|
381 +|:---------:|:------:|:----|
382 +| go_expvar|python<br/>v2 or v3|Parses metrics exposed by applications written in the Go programming language using the [expvar package](https://golang.org/pkg/expvar/).<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [go_expvar.chart.py](../collectors/python.d.plugin/go_expvar)<br/>configuration file: [python.d/go_expvar.conf](../collectors/python.d.plugin/go_expvar)<br/>documentation: [Monitoring Go Applications](../collectors/python.d.plugin/go_expvar/)|
383
384 ---
385
386 ### Household Appliances
387
408 -application|language|notes|
409 -:---------:|:------:|:----|
410 -sma_webbox|node.js|Connects to multiple remote SMA webboxes to collect real-time performance metrics of the photovoltaic (solar) power generation.<br/>&nbsp;<br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [sma_webbox.node.js](../collectors/node.d.plugin/sma_webbox)<br/>configuration file: [node.d/sma_webbox.conf](../collectors/node.d.plugin/sma_webbox)|
411 -fronius|node.js|Connects to multiple remote Fronius Symo servers to collect real-time performance metrics of the photovoltaic (solar) power generation.<br/>&nbsp;<br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [fronius.node.js](../collectors/node.d.plugin/fronius)<br/>configuration file: [node.d/fronius.conf](../collectors/node.d.plugin/fronius)|
412 -stiebeleltron|node.js|Collects the temperatures and other metrics from your Stiebel Eltron heating system using their Internet Service Gateway (ISG web).<br/>&nbsp;<br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [stiebeleltron.node.js](../collectors/node.d.plugin/stiebeleltron)<br/>configuration file: [node.d/stiebeleltron.conf](../collectors/node.d.plugin/stiebeleltron)|
413 -
388 +| application|language|notes|
389 +|:---------:|:------:|:----|
390 +| sma_webbox|node.js|Connects to multiple remote SMA webboxes to collect real-time performance metrics of the photovoltaic (solar) power generation.<br/> <br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [sma_webbox.node.js](../collectors/node.d.plugin/sma_webbox)<br/>configuration file: [node.d/sma_webbox.conf](../collectors/node.d.plugin/sma_webbox)|
391 +| fronius|node.js|Connects to multiple remote Fronius Symo servers to collect real-time performance metrics of the photovoltaic (solar) power generation.<br/> <br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [fronius.node.js](../collectors/node.d.plugin/fronius)<br/>configuration file: [node.d/fronius.conf](../collectors/node.d.plugin/fronius)|
392 +| stiebeleltron|node.js|Collects the temperatures and other metrics from your Stiebel Eltron heating system using their Internet Service Gateway (ISG web).<br/> <br/>Netdata plugin: [node.d.plugin](../collectors/node.d.plugin#nodedplugin)<br/>plugin module: [stiebeleltron.node.js](../collectors/node.d.plugin/stiebeleltron)<br/>configuration file: [node.d/stiebeleltron.conf](../collectors/node.d.plugin/stiebeleltron)|
393
394 ---
395
396 ### Java Processes
397
419 -application|language|notes|
420 -:---------:|:------:|:----|
421 -Spring Boot Application|java|Monitors running Java [Spring Boot](https://spring.io/) applications that expose their metrics with the use of the **Spring Boot Actuator** included in Spring Boot library.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [springboot](../collectors/python.d.plugin/springboot)<br/>configuration file: [python.d/springboot.conf](../collectors/python.d.plugin/springboot)
422 -
398 +| application|language|notes|
399 +|:---------:|:------:|:----|
400 +| Spring Boot Application|java|Monitors running Java [Spring Boot](https://spring.io/) applications that expose their metrics with the use of the **Spring Boot Actuator** included in Spring Boot library.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [springboot](../collectors/python.d.plugin/springboot)<br/>configuration file: [python.d/springboot.conf](../collectors/python.d.plugin/springboot)|
401
402 ---
403
404 ### Provisioning Systems
405
428 -application|language|notes|
429 -:---------:|:------:|:----|
430 -puppet|python<br/>v2 or v3|Connects to multiple Puppet Server and Puppet DB instances (local or remote) to collect real-time status metrics.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [puppet.chart.py](../collectors/python.d.plugin/puppet)<br/>configuration file: [python.d/puppet.conf](../collectors/python.d.plugin/puppet)|
406 +| application|language|notes|
407 +|:---------:|:------:|:----|
408 +| puppet|python<br/>v2 or v3|Connects to multiple Puppet Server and Puppet DB instances (local or remote) to collect real-time status metrics.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [puppet.chart.py](../collectors/python.d.plugin/puppet)<br/>configuration file: [python.d/puppet.conf](../collectors/python.d.plugin/puppet)|
409
410 ---
411
412 ### Game Servers
413
436 -application|language|notes|
437 -:---------:|:------:|:----|
438 -SpigotMC|Python<br/>v2 or v3|Monitors Spigot Minecraft server ticks per second and number of online players using the Minecraft remote console.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [spigotmc.chart.py](../collectors/python.d.plugin/spigotmc)<br/>configuration file: [python.d/spigotmc.conf](../collectors/python.d.plugin/spigotmc)|
414 +| application|language|notes|
415 +|:---------:|:------:|:----|
416 +| SpigotMC|Python<br/>v2 or v3|Monitors Spigot Minecraft server ticks per second and number of online players using the Minecraft remote console.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [spigotmc.chart.py](../collectors/python.d.plugin/spigotmc)<br/>configuration file: [python.d/spigotmc.conf](../collectors/python.d.plugin/spigotmc)|
417
418 ---
419
420 ### Distributed Computing Clients
421
444 -application|language|notes|
445 -:---------:|:------:|:----|
446 -BOINC|Python<br/>v2 or v3|Monitors task states for local and remote BOINC client software using the remote GUI RPC interface. Also provides alarms for a handful of error conditions. Requires manual configuration<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [boinc.chart.py](../collectors/python.d.plugin/boinc)<br/>configuration file: [python.d/boinc.conf](../collectors/python.d.plugin/boinc)|
422 +| application|language|notes|
423 +|:---------:|:------:|:----|
424 +| BOINC|Python<br/>v2 or v3|Monitors task states for local and remote BOINC client software using the remote GUI RPC interface. Also provides alarms for a handful of error conditions. Requires manual configuration<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [boinc.chart.py](../collectors/python.d.plugin/boinc)<br/>configuration file: [python.d/boinc.conf](../collectors/python.d.plugin/boinc)|
425
426 ---
427
428 ### Skeleton Plugins
429
452 -application|language|notes|
453 -:---------:|:------:|:----|
454 -example|BASH<br/>Shell Script|Skeleton plugin in BASH.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/>&nbsp;<br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [example.chart.sh](../collectors/charts.d.plugin/example)<br/>configuration file: [charts.d/example.conf](../collectors/charts.d.plugin/example)|
455 -example|python<br/>v2 or v3|Skeleton plugin in Python.<br/>&nbsp;<br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [example.chart.py](../collectors/python.d.plugin/example)<br/>configuration file: [python.d/example.conf](../collectors/python.d.plugin/example)|
430 +| application|language|notes|
431 +|:---------:|:------:|:----|
432 +| example|BASH<br/>Shell Script|Skeleton plugin in BASH.<br/><br/>DEPRECATED IN FAVOR OF THE PYTHON ONE. It is still supplied only as an example module to shell scripting plugins.<br/> <br/>Netdata plugin: [charts.d.plugin](../collectors/charts.d.plugin#chartsdplugin)<br/>plugin module: [example.chart.sh](../collectors/charts.d.plugin/example)<br/>configuration file: [charts.d/example.conf](../collectors/charts.d.plugin/example)|
433 +| example|python<br/>v2 or v3|Skeleton plugin in Python.<br/> <br/>Netdata plugin: [python.d.plugin](../collectors/python.d.plugin)<br/>plugin module: [example.chart.py](../collectors/python.d.plugin/example)<br/>configuration file: [python.d/example.conf](../collectors/python.d.plugin/example)|
434
457 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FAdd-more-charts-to-netdata&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
435 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FAdd-more-charts-to-netdata&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Charts.md
+1 -1
@@ -24,4 +24,4 @@ A context is a grouping of identical charts, for each instance of the hardware o
24
25 For example, let's take the `net.packets` context. You will see on the dashboard as many charts with context net.packets as you have network interfaces (families). These charts will be named `net_packets.[family]`. For the example of the two interfaces `eth0` and `eth1`, you will see charts named `net_packets.eth0` and `net_packets.eth1`. Both of these charts show the exact same dimensions, but for different instances of a network interface.
26
27 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FCharts&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
27 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FCharts&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Demo-Sites.md
+14 -14
@@ -2,19 +2,19 @@
2
3 Live demo installations of Netdata are available at **[https://www.netdata.cloud](https://www.netdata.cloud/#live-demo)**:
4
5 -Location | Netdata demo URL | 60&nbsp;mins&nbsp;reqs | VM Donated by
6 -:-------:|:-----------------:|:----------:|:-------------
7 -London (UK)|**[london.my-netdata.io](https://london.my-netdata.io)**<br/>(this is the global Netdata **registry** and has **named** and **mysql** charts)|[![Requests Per Second](https://london.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://london.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)
8 -Atlanta (USA)|**[cdn77.my-netdata.io](https://cdn77.my-netdata.io)**<br/>(with **named** and **mysql** charts)|[![Requests Per Second](https://cdn77.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://cdn77.my-netdata.io)|[CDN77.com](https://www.cdn77.com/)
9 -Israel|**[octopuscs.my-netdata.io](https://octopuscs.my-netdata.io)**|[![Requests Per Second](https://octopuscs.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://octopuscs.my-netdata.io)|[OctopusCS.com](https://www.octopuscs.com)
10 -Madrid (Spain)|**[stackscale.my-netdata.io](https://stackscale.my-netdata.io)**|[![Requests Per Second](https://stackscale.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://stackscale.my-netdata.io)|[StackScale Spain](https://www.stackscale.es/)
11 -Bangalore (India)|**[bangalore.my-netdata.io](https://bangalore.my-netdata.io)**|[![Requests Per Second](https://bangalore.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://bangalore.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)
12 -Frankfurt (Germany)|**[frankfurt.my-netdata.io](https://frankfurt.my-netdata.io)**|[![Requests Per Second](https://frankfurt.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://frankfurt.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)
13 -New York (USA)|**[newyork.my-netdata.io](https://newyork.my-netdata.io)**|[![Requests Per Second](https://newyork.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://newyork.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)
14 -San Francisco (USA)|**[sanfrancisco.my-netdata.io](https://sanfrancisco.my-netdata.io)**|[![Requests Per Second](https://sanfrancisco.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://sanfrancisco.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)
15 -Singapore|**[singapore.my-netdata.io](https://singapore.my-netdata.io)**|[![Requests Per Second](https://singapore.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://singapore.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)
16 -Toronto (Canada)|**[toronto.my-netdata.io](https://toronto.my-netdata.io)**|[![Requests Per Second](https://toronto.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://toronto.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)
5 +| Location|Netdata demo URL|60 mins reqs|VM Donated by|
6 +|:------:|:--------------:|:----------:|:------------|
7 +| London (UK)|**[london.my-netdata.io](https://london.my-netdata.io)**<br/>(this is the global Netdata **registry** and has **named** and **mysql** charts)|[![Requests Per Second](https://london.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://london.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)|
8 +| Atlanta (USA)|**[cdn77.my-netdata.io](https://cdn77.my-netdata.io)**<br/>(with **named** and **mysql** charts)|[![Requests Per Second](https://cdn77.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://cdn77.my-netdata.io)|[CDN77.com](https://www.cdn77.com/)|
9 +| Israel|**[octopuscs.my-netdata.io](https://octopuscs.my-netdata.io)**|[![Requests Per Second](https://octopuscs.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://octopuscs.my-netdata.io)|[OctopusCS.com](https://www.octopuscs.com)|
10 +| Madrid (Spain)|**[stackscale.my-netdata.io](https://stackscale.my-netdata.io)**|[![Requests Per Second](https://stackscale.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://stackscale.my-netdata.io)|[StackScale Spain](https://www.stackscale.es/)|
11 +| Bangalore (India)|**[bangalore.my-netdata.io](https://bangalore.my-netdata.io)**|[![Requests Per Second](https://bangalore.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://bangalore.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)|
12 +| Frankfurt (Germany)|**[frankfurt.my-netdata.io](https://frankfurt.my-netdata.io)**|[![Requests Per Second](https://frankfurt.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://frankfurt.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)|
13 +| New York (USA)|**[newyork.my-netdata.io](https://newyork.my-netdata.io)**|[![Requests Per Second](https://newyork.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://newyork.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)|
14 +| San Francisco (USA)|**[sanfrancisco.my-netdata.io](https://sanfrancisco.my-netdata.io)**|[![Requests Per Second](https://sanfrancisco.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://sanfrancisco.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)|
15 +| Singapore|**[singapore.my-netdata.io](https://singapore.my-netdata.io)**|[![Requests Per Second](https://singapore.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://singapore.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)|
16 +| Toronto (Canada)|**[toronto.my-netdata.io](https://toronto.my-netdata.io)**|[![Requests Per Second](https://toronto.my-netdata.io/api/v1/badge.svg?chart=netdata.requests&dimensions=requests&after=-3600&options=unaligned&group=sum&label=reqs&units=empty&value_color=blue&precision=0&v42)](https://toronto.my-netdata.io)|[DigitalOcean.com](https://m.do.co/c/83dc9f941745)|
17
18 -*Netdata dashboards are mobile and touch friendly.*
18 +_Netdata dashboards are mobile and touch friendly._
19
20 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FDemo-Sites&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
20 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FDemo-Sites&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Donations-netdata-has-received.md
+12 -12
@@ -2,17 +2,17 @@
2
3 This is a list of the donations we have received for Netdata (sorted alphabetically on their name):
4
5 -what donated|related links|who donated|description of the donation
6 -----:|:-----:|:---:|:-----------
7 -Packages Distribution|-|**[PackageCloud.io](https://packagecloud.io/)**|**PackageCloud.io** donated to a free open-source subscription to their awesome Package Distribution services.
8 -Cross Browser Testing|-|**[BrowserStack.com](https://www.browserstack.com/)**|**BrowserStack.com** donated a free subscription to their awesome Browser Testing services (all three of them: Live, Screenshots, Responsive).
9 -Cloud VM|[cdn77.my-netdata.io](http://cdn77.my-netdata.io)|**[CDN77.com](https://www.cdn77.com/)**|**CDN77.com** donated a VM with 2 CPU cores, 4GB RAM and 20GB HD, on their excellent CDN network.
10 -Localization Management|[Netdata localization project](https://crowdin.com/project/netdata) (check issue [#279](https://github.com/netdata/netdata/issues/279))|**[Crowdin.com](https://crowdin.com/)**|**Crowdin.com** donated an open source license to their Localization Management Platform.
11 -Cloud VMs|[london.my-netdata.io](https://london.my-netdata.io) (Several VMs)|**[DigitalOcean.com](https://www.digitalocean.com/)**|**DigitalOcean.com** donated 1000 USD to be used in their excellent Cloud Computing services. Many thanks to [Justin Paine](https://github.com/xxdesmus) for making this happen.
12 -Development IDE|-|**[JetBrains.com](https://www.jetbrains.com/)**|**JetBrains.com** donated an open source license for 4 developers for 1 year, to their excellent IDEs.
13 -Cloud VM|[octopuscs.my-netdata.io](https://octopuscs.my-netdata.io)|**[OctopusCS.com](https://octopuscs.com/)**|**OctopusCS.com** donated a VM with 4 CPU cores, 16GB RAM and 50GB HD in their excellent Cloud Computing services.
14 -Cloud VM|[ventureer.my-netdata.io](https://ventureer.my-netdata.io)|**[Ventureer.com](https://ventureer.com/)**|**Ventureer.com** donated a VM with 4 CPU cores, 8GB RAM and 50GB HD in their excellent Cloud Computing services.
15 -Cloud VM|[stackscale.my-netdata.io](https://stackscale.my-netdata.io)|**[stackscale.com](https://www.stackscale.com/)**|**StackScale.com** donated a VM with 4 CPU cores, 16GB RAM and 100GB HD in their excellent Cloud Computing services.
5 +| what donated|related links|who donated|description of the donation|
6 +|-----------:|:-----------:|:---------:|:--------------------------|
7 +| Packages Distribution|-|**[PackageCloud.io](https://packagecloud.io/)**|**PackageCloud.io** donated to a free open-source subscription to their awesome Package Distribution services.|
8 +| Cross Browser Testing|-|**[BrowserStack.com](https://www.browserstack.com/)**|**BrowserStack.com** donated a free subscription to their awesome Browser Testing services (all three of them: Live, Screenshots, Responsive).|
9 +| Cloud VM|[cdn77.my-netdata.io](http://cdn77.my-netdata.io)|**[CDN77.com](https://www.cdn77.com/)**|**CDN77.com** donated a VM with 2 CPU cores, 4GB RAM and 20GB HD, on their excellent CDN network.|
10 +| Localization Management|[Netdata localization project](https://crowdin.com/project/netdata) (check issue [#279](https://github.com/netdata/netdata/issues/279))|**[Crowdin.com](https://crowdin.com/)**|**Crowdin.com** donated an open source license to their Localization Management Platform.|
11 +| Cloud VMs|[london.my-netdata.io](https://london.my-netdata.io) (Several VMs)|**[DigitalOcean.com](https://www.digitalocean.com/)**|**DigitalOcean.com** donated 1000 USD to be used in their excellent Cloud Computing services. Many thanks to [Justin Paine](https://github.com/xxdesmus) for making this happen.|
12 +| Development IDE|-|**[JetBrains.com](https://www.jetbrains.com/)**|**JetBrains.com** donated an open source license for 4 developers for 1 year, to their excellent IDEs.|
13 +| Cloud VM|[octopuscs.my-netdata.io](https://octopuscs.my-netdata.io)|**[OctopusCS.com](https://octopuscs.com/)**|**OctopusCS.com** donated a VM with 4 CPU cores, 16GB RAM and 50GB HD in their excellent Cloud Computing services.|
14 +| Cloud VM|[ventureer.my-netdata.io](https://ventureer.my-netdata.io)|**[Ventureer.com](https://ventureer.com/)**|**Ventureer.com** donated a VM with 4 CPU cores, 8GB RAM and 50GB HD in their excellent Cloud Computing services.|
15 +| Cloud VM|[stackscale.my-netdata.io](https://stackscale.my-netdata.io)|**[stackscale.com](https://www.stackscale.com/)**|**StackScale.com** donated a VM with 4 CPU cores, 16GB RAM and 100GB HD in their excellent Cloud Computing services.|
16
17 Thank you!
18
@@ -22,4 +22,4 @@ Thank you!
22
23 Please contact me at costa@tsaousis.gr.
24
25 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FDonations-netdata-has-received&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
25 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FDonations-netdata-has-received&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/GettingStarted.md
+22 -22
@@ -36,12 +36,12 @@ When you install multiple Netdata servers, all your servers will appear at the n
36
37 The node menu is more than just browser bookmarks. When switching Netdata servers from that menu, any settings of the current view are propagated to the other Netdata server:
38
39 -- the current charts panning (drag the charts left or right),
40 -- the current charts zooming (`SHIFT` + mouse wheel over a chart),
41 -- the highlighted time-frame (`ALT` + select an area on a chart),
42 -- the scrolling position of the dashboard,
43 -- the theme you use,
44 -- etc.
39 +- the current charts panning (drag the charts left or right),
40 +- the current charts zooming (`SHIFT` + mouse wheel over a chart),
41 +- the highlighted time-frame (`ALT` + select an area on a chart),
42 +- the scrolling position of the dashboard,
43 +- the theme you use,
44 +- etc.
45
46 are all sent over to other Netdata server, to allow you troubleshoot cross-server performance issues easily.
47
@@ -51,9 +51,9 @@ Netdata installer integrates Netdata to your init / systemd environment.
51
52 To start/stop Netdata, depending on your environment, you should use:
53
54 -- `systemctl start netdata` and `systemctl stop netdata`
55 -- `service netdata start` and `service netdata stop`
56 -- `/etc/init.d/netdata start` and `/etc/init.d/netdata stop`
54 +- `systemctl start netdata` and `systemctl stop netdata`
55 +- `service netdata start` and `service netdata stop`
56 +- `/etc/init.d/netdata start` and `/etc/init.d/netdata stop`
57
58 Once Netdata is installed, the installer configures it to start at boot and stop at shutdown.
59
@@ -89,10 +89,10 @@ Netdata supports auto-detection of data collection sources. It auto-detects almo
89
90 This auto-detection process happens **only once**, when Netdata starts. To have Netdata re-discover data sources, you need to restart it. There are a few exceptions to this:
91
92 -- containers and VMs are auto-detected forever (when Netdata is running at the host).
93 -- many data sources are collected but are silenced by default, until there is useful information to collect (for example network interface dropped packet, will appear after a packet has been dropped).
94 -- services that are not optimal to collect on all systems, are disabled by default.
95 -- services we received feedback from users that caused issues when monitored, are also disabled by default (for example, `chrony` is disabled by default, because CentOS ships a version of it that uses 100% CPU when queried for statistics).
92 +- containers and VMs are auto-detected forever (when Netdata is running at the host).
93 +- many data sources are collected but are silenced by default, until there is useful information to collect (for example network interface dropped packet, will appear after a packet has been dropped).
94 +- services that are not optimal to collect on all systems, are disabled by default.
95 +- services we received feedback from users that caused issues when monitored, are also disabled by default (for example, `chrony` is disabled by default, because CentOS ships a version of it that uses 100% CPU when queried for statistics).
96
97 Once a data collection source is detected, Netdata will never quit trying to collect data from it, until Netdata is restarted. So, if you stop your web server, Netdata will pick it up automatically when it is started again.
98
@@ -100,15 +100,15 @@ Since Netdata is installed on all your systems (even inside containers), auto-de
100
101 A few well known data collection sources that commonly need to be configured are:
102
103 -- [systemd services utilization](../collectors/cgroups.plugin/#monitoring-systemd-services) are not exposed by default on most systems, so `systemd` has to be configured to expose those metrics.
103 +- [systemd services utilization](../collectors/cgroups.plugin/#monitoring-systemd-services) are not exposed by default on most systems, so `systemd` has to be configured to expose those metrics.
104
105 ## Configuration quick start
106
107 In Netdata we have:
108
109 -- **internal** data collection plugins (running inside the Netdata daemon)
110 -- **external** data collection plugins (independent processes, sending data to Netdata over pipes)
111 -- modular plugin **orchestrators** (external plugins that have multiple data collection modules)
109 +- **internal** data collection plugins (running inside the Netdata daemon)
110 +- **external** data collection plugins (independent processes, sending data to Netdata over pipes)
111 +- modular plugin **orchestrators** (external plugins that have multiple data collection modules)
112
113 You can enable and disable plugins (internal and external) via `netdata.conf` at the section `[plugins]`.
114
@@ -174,9 +174,9 @@ and set `SEND_EMAIL="NO"`.
174
175 ## What is next?
176
177 -- Check [Data Collection](../collectors) for configuring data collection plugins.
178 -- Check [Health Monitoring](../health) for configuring your own alarms, or setting up alarm notifications.
179 -- Check [Streaming](../streaming) for centralizing Netdata metrics.
180 -- Check [Backends](../backends) for long term archiving of Netdata metrics to time-series databases.
177 +- Check [Data Collection](../collectors) for configuring data collection plugins.
178 +- Check [Health Monitoring](../health) for configuring your own alarms, or setting up alarm notifications.
179 +- Check [Streaming](../streaming) for centralizing Netdata metrics.
180 +- Check [Backends](../backends) for long term archiving of Netdata metrics to time-series databases.
181
182 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FGettingStarted&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
182 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FGettingStarted&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Performance.md
+27 -25
@@ -3,19 +3,21 @@
3 Netdata performance is affected by:
4
5 **Data collection**
6 -- the number of charts for which data are collected
7 -- the number of plugins running
8 -- the technology of the plugins (i.e. BASH plugins are slower than binary plugins)
9 -- the frequency of data collection
6 +
7 +- the number of charts for which data are collected
8 +- the number of plugins running
9 +- the technology of the plugins (i.e. BASH plugins are slower than binary plugins)
10 +- the frequency of data collection
11
12 You can control all the above.
13
14 **Web clients accessing the data**
14 -- the duration of the charts in the dashboard
15 -- the number of charts refreshes requested
16 -- the compression level of the web responses
15
18 ----
16 +- the duration of the charts in the dashboard
17 +- the number of charts refreshes requested
18 +- the compression level of the web responses
19 +
20 +- - -
21
22 ## Netdata Daemon
23
@@ -24,9 +26,10 @@ For most server systems, with a few hundred charts and a few thousand dimensions
26 To prove Netdata scalability, check issue [#1323](https://github.com/netdata/netdata/issues/1323#issuecomment-265501668) where Netdata collects 95.000 metrics per second, with 12% CPU utilization of a single core!
27
28 In embedded systems, if the Netdata daemon is using a lot of CPU without any web clients accessing it, you should lower the data collection frequency. To set the data collection frequency, edit `/etc/netdata/netdata.conf` and set `update_every` to a higher number (this is the frequency in seconds data are collected for all charts: higher number of seconds = lower frequency, the default is 1 for per second data collection). You can also set this frequency per module or chart. Check the [daemon configuration](../daemon/config) for plugins and charts. For specific modules, the configuration needs to be changed in:
27 -- `python.d.conf` for [python](../collectors/python.d.plugin/#pythondplugin)
28 -- `node.d.conf` for [nodejs](../collectors/node.d.plugin/#nodedplugin)
29 -- `charts.d.conf` for [bash](../collectors/charts.d.plugin/#chartsdplugin)
29 +
30 +- `python.d.conf` for [python](../collectors/python.d.plugin/#pythondplugin)
31 +- `node.d.conf` for [nodejs](../collectors/node.d.plugin/#nodedplugin)
32 +- `charts.d.conf` for [bash](../collectors/charts.d.plugin/#chartsdplugin)
33
34 ## Plugins
35
@@ -42,7 +45,6 @@ Netdata runs with the lowest possible process priority, so even if 1000 users ar
45
46 To lower the CPU utilization of Netdata when clients are accessing the dashboard, set `web compression level = 1`, or disable web compression completely by setting `enable web responses gzip compression = no`. Both settings are in the `[web]` section.
47
45 -
48 ## Monitoring a heavy loaded system
49
50 Netdata, while running, does not depend on disk I/O (apart its log files and `access.log` is written with buffering enabled and can be disabled). Some plugins that need disk may stop and show gaps during heavy system load, but the Netdata daemon itself should be able to work and collect values from `/proc` and `/sys` and serve web clients accessing it.
@@ -119,17 +121,17 @@ Edit `/etc/netdata/netdata.conf`, find the `[plugins]` section:
121
122 In detail:
123
122 -plugin|description
123 -:---:|:---------
124 -`proc`|the internal plugin used to monitor the system. Normally, you don't want to disable this. You can disable individual functions of it at the next section.
125 -`tc`|monitoring network interfaces QoS (tc classes)
126 -`idlejitter`|internal plugin (written in C) that attempts show if the systems starved for CPU. Disabling it will eliminate a thread.
127 -`cgroups`|monitoring linux containers. Most probably you are not going to need it. This will also eliminate another thread.
128 -`checks`|a debugging plugin, which is disabled by default.
129 -`apps`|a plugin that monitors system processes. It is very complex and heavy (consumes twice the CPU resources of the Netdata daemon), so if you don't need to monitor the process tree, you can disable it.
130 -`charts.d`|BASH plugins (squid, nginx, mysql, etc). This is a heavy plugin, that consumes twice the CPU resources of the Netdata daemon.
131 -`node.d`|node.js plugin, currently used for SNMP data collection and monitoring named (the name server).
132 -`python.d`|has many modules and can use over 20MB of memory.
124 +| plugin|description|
125 +|:----:|:----------|
126 +| `proc`|the internal plugin used to monitor the system. Normally, you don't want to disable this. You can disable individual functions of it at the next section.|
127 +| `tc`|monitoring network interfaces QoS (tc classes)|
128 +| `idlejitter`|internal plugin (written in C) that attempts show if the systems starved for CPU. Disabling it will eliminate a thread.|
129 +| `cgroups`|monitoring linux containers. Most probably you are not going to need it. This will also eliminate another thread.|
130 +| `checks`|a debugging plugin, which is disabled by default.|
131 +| `apps`|a plugin that monitors system processes. It is very complex and heavy (consumes twice the CPU resources of the Netdata daemon), so if you don't need to monitor the process tree, you can disable it.|
132 +| `charts.d`|BASH plugins (squid, nginx, mysql, etc). This is a heavy plugin, that consumes twice the CPU resources of the Netdata daemon.|
133 +| `node.d`|node.js plugin, currently used for SNMP data collection and monitoring named (the name server).|
134 +| `python.d`|has many modules and can use over 20MB of memory.|
135
136 For most IoT devices, you can disable all plugins except `proc`. For `proc` there is another section that controls which functions of it you need. Check the next section.
137
@@ -170,6 +172,7 @@ Normally, you will not need them. To disable them, set:
172 error log = none
173 access log = none
174 ```
175 +
176 ### 5. Set memory mode to RAM
177
178 Setting the memory mode to `ram` will disable loading and saving the round robin database. This will not affect anything while running Netdata, but it might be required if you have very limited storage available.
@@ -192,7 +195,6 @@ The units for history is `[global].update every` seconds. So if `[global].update
195
196 Check also [Database](../database) for directions on calculating the size of the round robin database.
197
195 -
198 ### 7. Disable gzip compression of responses
199
200 Gzip compression of the web responses is using more CPU that the rest of Netdata. You can lower the compression level or disable gzip compression completely. You can disable it, like this:
@@ -217,4 +219,4 @@ Finally, if no web server is installed on your device, you can use port tcp/80 f
219 port = 80
220 ```
221
220 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FPerformance&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
222 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FPerformance&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/README.md
+2 -2
@@ -1,7 +1,7 @@
1 -# Read documentation on https://docs.netdata.cloud
1 +# Read documentation on <https://docs.netdata.cloud>
2
3 Welcome to the Netdata documentation! While you can read Netdata documentation here, or throughout the Netdata repository, our intention is that these pages are read on [docs.netdata.cloud](https://docs.netdata.cloud).
4
5 Links between documentation pages will work fine here, but the formatting may not be perfect, as our documentation site uses a few extra Markdown features that GitHub doesn't support natively. Other things might be missing or look less than perfect.
6
7 -Now get out there and build an exceptional infrastructure.
\ No newline at end of file
7 +Now get out there and build an exceptional infrastructure.
docs/Running-behind-apache.md
+27 -24
@@ -2,11 +2,10 @@
2
3 Below you can find instructions for configuring an apache server to:
4
5 -1. proxy a single Netdata via an HTTP and HTTPS virtual host
6 -2. dynamically proxy any number of Netdata servers
7 -3. add user authentication
8 -4. adjust Netdata settings to get optimal results
9 -
5 +1. proxy a single Netdata via an HTTP and HTTPS virtual host
6 +2. dynamically proxy any number of Netdata servers
7 +3. add user authentication
8 +4. adjust Netdata settings to get optimal results
9
10 ## Requirements
11
@@ -20,14 +19,14 @@ sudo apt-get install apache2-bin
19
20 Also make sure they are enabled:
21
23 -```
22 +```sh
23 sudo a2enmod proxy
24 sudo a2enmod proxy_http
25 ```
26
27 Ensure your rewrite module is enabled:
28
30 -```
29 +```sh
30 sudo a2enmod rewrite
31 ```
32
@@ -41,7 +40,7 @@ On any **existing** and already **working** apache virtual host, you can redirec
40
41 Add the following on top of any existing virtual host. It will allow you to access Netdata as `http://virtual.host/netdata/`.
42
44 -```
43 +```conf
44 <VirtualHost *:80>
45
46 RewriteEngine On
@@ -71,7 +70,7 @@ Add the following on top of any existing virtual host. It will allow you to acce
70
71 Add the following on top of any existing virtual host. It will allow you to access multiple Netdata as `http://virtual.host/netdata/HOSTNAME/`, where `HOSTNAME` is the hostname of any other Netdata server you have (to access the `localhost` Netdata, use `http://virtual.host/netdata/localhost/`).
72
74 -```
73 +```conf
74 <VirtualHost *:80>
75
76 RewriteEngine On
@@ -117,7 +116,7 @@ nano /etc/apache2/sites-available/netdata.conf
116
117 with this content:
118
120 -```
119 +```conf
120 <VirtualHost *:80>
121 RewriteEngine On
122 ProxyRequests Off
@@ -144,19 +143,20 @@ sudo a2ensite netdata.conf && service apache2 reload
143 ```
144
145 ## Netdata proxy in Plesk
146 +
147 _Assuming the main goal is to make Netdata running in HTTPS._
148
149 -1. Make a subdomain for Netdata on which you enable and force HTTPS - You can use a free Let's Encrypt certificate
150 -2. Go to "Apache & nginx Settings", and in the following section, add:
149 +1. Make a subdomain for Netdata on which you enable and force HTTPS - You can use a free Let's Encrypt certificate
150 +2. Go to "Apache & nginx Settings", and in the following section, add:
151
152 -```
152 +```conf
153 RewriteEngine on
154 RewriteRule (.*) http://localhost:19999/$1 [P,L]
155 ```
156 -3. Optional: If your server is remote, then just replace "localhost" with your actual hostname or IP, it just works.
156
158 -Repeat the operation for as many servers as you need.
157 +3. Optional: If your server is remote, then just replace "localhost" with your actual hostname or IP, it just works.
158
159 +Repeat the operation for as many servers as you need.
160
161 ## Enable Basic Auth
162
@@ -166,10 +166,10 @@ Install the package `apache2-utils`. On debian / ubuntu run `sudo apt-get instal
166
167 Then, generate password for user `netdata`, using `htpasswd -c /etc/apache2/.htpasswd netdata`
168
169 -**Apache 2.2 Example:**
169 +**Apache 2.2 Example:**\
170 Modify the virtual host with these:
171
172 -```
172 +```conf
173 # replace the <Proxy *> section
174 <Proxy *>
175 Order deny,allow
@@ -189,11 +189,9 @@ Modify the virtual host with these:
189
190 Specify `Location /` if Netdata is running on dedicated virtual host.
191
192 -
193 -
192 **Apache 2.4 (dedicated virtual host) Example:**
193
196 -```
194 +```conf
195 <VirtualHost *:80>
196 RewriteEngine On
197 ProxyRequests Off
@@ -242,12 +240,16 @@ You would also need to instruct Netdata to listen only on `localhost`, `127.0.0.
240 [web]
241 bind to = localhost
242 ```
243 +
244 or
245 +
246 ```
247 [web]
248 bind to = 127.0.0.1
249 ```
250 +
251 or
252 +
253 ```
254 [web]
255 bind to = ::1
@@ -286,7 +288,8 @@ If your apache server is not on localhost, you can set:
288 bind to = *
289 allow connections from = IP_OF_APACHE_SERVER
290 ```
289 -_note: Netdata v1.9+ support `allow connections from`_
291 +
292 +*note: Netdata v1.9+ support `allow connections from`*
293
294 `allow connections from` accepts [Netdata simple patterns](../libnetdata/simple_pattern/) to match against the connection IP address.
295
@@ -303,7 +306,7 @@ apache logs accesses and Netdata logs them too. You can prevent Netdata from gen
306
307 Make sure the requests reach Netdata, by examing `/var/log/netdata/access.log`.
308
306 -1. if the requests do not reach Netdata, your apache does not forward them.
307 -2. if the requests reach Netdata but the URLs are wrong, you have not re-written them properly.
309 +1. if the requests do not reach Netdata, your apache does not forward them.
310 +2. if the requests reach Netdata but the URLs are wrong, you have not re-written them properly.
311
309 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-apache&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
312 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-apache&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Running-behind-caddy.md
+3 -3
@@ -2,7 +2,7 @@
2
3 To run Netdata via [Caddy's proxying,](https://caddyserver.com/docs/proxy) set your Caddyfile up like this:
4
5 -```
5 +```caddyfile
6 netdata.domain.tld {
7 proxy / localhost:19999
8 }
@@ -12,7 +12,7 @@ Other directives can be added between the curly brackets as needed.
12
13 To run Netdata in a subfolder:
14
15 -```
15 +```caddyfile
16 netdata.domain.tld {
17 proxy /netdata/ localhost:19999 {
18 without /netdata
@@ -26,4 +26,4 @@ You would also need to instruct Netdata to listen only to `127.0.0.1` or `::1`.
26
27 To limit access to Netdata only from localhost, set `bind socket to IP = 127.0.0.1` or `bind socket to IP = ::1` in `/etc/netdata/netdata.conf`.
28
29 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-caddy&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
29 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-caddy&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Running-behind-haproxy.md
+3 -3
@@ -2,7 +2,7 @@
2
3 > HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic web sites and powers quite a number of the world's most visited ones.
4
5 -If Netdata is running on a host running HAProxy, rather than connecting to Netdata from a port number, a domain name can be pointed at HAProxy, and HAProxy can redirect connections to the Netdata port. This can make it possible to connect to Netdata at https://example.com or https://example.com/netdata/, which is a much nicer experience then http://example.com:19999.
5 +If Netdata is running on a host running HAProxy, rather than connecting to Netdata from a port number, a domain name can be pointed at HAProxy, and HAProxy can redirect connections to the Netdata port. This can make it possible to connect to Netdata at <https://example.com> or <https://example.com/netdata/>, which is a much nicer experience then <http://example.com:19999>.
6
7 To proxy requests from [HAProxy](https://github.com/haproxy/haproxy) to Netdata, the following configuration can be used:
8
@@ -17,7 +17,7 @@ defaults
17
18 ## Simple Configuration
19
20 -A simple example where the base URL, say http://example.com, is used with no subpath:
20 +A simple example where the base URL, say <http://example.com>, is used with no subpath:
21
22 ### Frontend
23
@@ -277,4 +277,4 @@ backend netdata_backend
277 http-request set-header Connection "keep-alive"
278 ```
279
280 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-haproxy&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
280 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-haproxy&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Running-behind-lighttpd.md
+6 -2
@@ -26,11 +26,14 @@ $SERVER["socket"] == ":19998" {
26
27 If the only thing the server is exposing via the web is Netdata (and thus no suburl rewriting required),
28 then you can get away with just
29 +
30 ```
31 proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 19999 )))
32 ```
33 +
34 Though if it's public facing you might then want to put some authentication on it. htdigest support
35 looks like:
36 +
37 ```
38 auth.backend = "htdigest"
39 auth.backend.htdigest.userfile = "/etc/lighttpd/lighttpd.htdigest"
@@ -40,6 +43,7 @@ auth.require = ( "" => ( "method" => "digest",
43 )
44 )
45 ```
46 +
47 other auth methods, and more info on htdigest, can be found in lighttpd's [mod_auth docs](http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth).
48
49 ---
@@ -47,7 +51,7 @@ other auth methods, and more info on htdigest, can be found in lighttpd's [mod_a
51 It seems that lighttpd (or some versions of it), fail to proxy compressed web responses.
52 To solve this issue, disable web response compression in Netdata.
53
50 -Open /etc/netdata/netdata.conf and set in [global]:
54 +Open `/etc/netdata/netdata.conf` and set in [global]\:
55
56 ```
57 enable web responses gzip compression = no
@@ -59,4 +63,4 @@ You would also need to instruct Netdata to listen only to `127.0.0.1` or `::1`.
63
64 To limit access to Netdata only from localhost, set `bind socket to IP = 127.0.0.1` or `bind socket to IP = ::1` in `/etc/netdata/netdata.conf`.
65
62 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-lighttpd&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
66 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-lighttpd&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Running-behind-nginx.md
+20 -19
@@ -8,13 +8,13 @@ The software is known for its low impact on memory resources, high scalability,
8
9 ## Why Nginx
10
11 -- By default, Nginx is fast and lightweight out of the box.
11 +- By default, Nginx is fast and lightweight out of the box.
12
13 -- Nginx is used and useful in cases when you want to access different instances of Netdata from a single server.
13 +- Nginx is used and useful in cases when you want to access different instances of Netdata from a single server.
14
15 -- Password-protect access to Netdata, until distributed authentication is implemented via the Netdata cloud Sign In mechanism.
15 +- Password-protect access to Netdata, until distributed authentication is implemented via the Netdata cloud Sign In mechanism.
16
17 -- A proxy was necessary to encrypt the communication to Netdata, until v1.16.0, which provided TLS (HTTPS) support.
17 +- A proxy was necessary to encrypt the communication to Netdata, until v1.16.0, which provided TLS (HTTPS) support.
18
19 ## Nginx configuration file
20
@@ -28,9 +28,9 @@ You can edit the Nginx configuration file with Nano, Vim or any other text edito
28
29 After making changes to the configuration files:
30
31 -- Test Nginx configuration with `nginx -t`.
31 +- Test Nginx configuration with `nginx -t`.
32
33 -- Restart Nginx to effect the change with `/etc/init.d/nginx restart` or `service nginx restart`.
33 +- Restart Nginx to effect the change with `/etc/init.d/nginx restart` or `service nginx restart`.
34
35 ## Ways to access Netdata via Nginx
36
@@ -38,7 +38,7 @@ After making changes to the configuration files:
38
39 With this method instead of `SERVER_IP_ADDRESS:19999`, the Netdata dashboard can be accessed via a human-readable URL such as `netdata.example.com` used in the configuration below.
40
41 -```
41 +```conf
42 upstream backend {
43 # the Netdata server
44 server 127.0.0.1:19999;
@@ -64,12 +64,13 @@ server {
64 }
65 }
66 ```
67 +
68 ### As a subfolder to an existing virtual host
69
70 This method is recommended when Netdata is to be served from a subfolder (or directory).
71 In this case, the virtual host `netdata.example.com` already exists and Netdata has to be accessed via `netdata.example.com/netdata/`.
72
72 -```
73 +```conf
74 upstream netdata {
75 server 127.0.0.1:19999;
76 keepalive 64;
@@ -109,7 +110,7 @@ server {
110
111 This is the recommended configuration when one Nginx will be used to manage multiple Netdata servers via subfolders.
112
112 -```
113 +```conf
114 upstream backend-server1 {
115 server 10.1.1.103:19999;
116 keepalive 64;
@@ -152,14 +153,14 @@ Of course you can add as many backend servers as you like.
153
154 Using the above, you access Netdata on the backend servers, like this:
155
155 -- `http://netdata.example.com/netdata/server1/` to reach `backend-server1`
156 -- `http://netdata.example.com/netdata/server2/` to reach `backend-server2`
156 +- `http://netdata.example.com/netdata/server1/` to reach `backend-server1`
157 +- `http://netdata.example.com/netdata/server2/` to reach `backend-server2`
158
159 ### Encrypt the communication between Nginx and Netdata
160
161 In case Netdata's web server has been [configured to use TLS](../web/server/#enabling-tls-support), it is necessary to specify inside the Nginx configuration that the final destination is using TLS. To do this, please, append the following parameters in your `nginx.conf`
162
162 -```
163 +```conf
164 proxy_set_header X-Forwarded-Proto https;
165 proxy_pass https://localhost:19999;
166 ```
@@ -174,13 +175,13 @@ Create an authentication file to enable basic authentication via Nginx, this sec
175
176 If you don't have an authentication file, you can use the following command:
177
177 -```
178 +```sh
179 printf "yourusername:$(openssl passwd -apr1)" > /etc/nginx/passwords
180 ```
181
182 And then enable the authentication inside your server directive:
183
183 -```
184 +```conf
185 server {
186 # ...
187 auth_basic "Protected";
@@ -206,11 +207,12 @@ You can also use a unix domain socket. This will also provide a faster route bet
207 [web]
208 bind to = unix:/tmp/netdata.sock
209 ```
209 -_note: Netdata v1.8+ support unix domain sockets_
210 +
211 +*note: Netdata v1.8+ support unix domain sockets*
212
213 At the Nginx side, use something like this to use the same unix domain socket:
214
213 -```
215 +```conf
216 upstream backend {
217 server unix:/tmp/netdata.sock;
218 keepalive 64;
@@ -227,7 +229,7 @@ If your Nginx server is not on localhost, you can set:
229 allow connections from = IP_OF_NGINX_SERVER
230 ```
231
230 -_note: Netdata v1.9+ support `allow connections from`_
232 +*note: Netdata v1.9+ support `allow connections from`*
233
234 `allow connections from` accepts [Netdata simple patterns](../libnetdata/simple_pattern/) to match against the connection IP address.
235
@@ -251,5 +253,4 @@ If you get an 502 Bad Gateway error you might check your Nginx error log:
253
254 If you see something like the above, chances are high that SELinux prevents nginx from connecting to the backend server. To fix that, just use this policy: `setsebool -P httpd_can_network_connect true`.
255
254 -
255 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-nginx&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
\ No newline at end of file
256 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FRunning-behind-nginx&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/Third-Party-Plugins.md
+1 -1
@@ -28,4 +28,4 @@ Collect [number of currently logged-on users](https://github.com/veksh/netdata-n
28
29 There is an unofficial [nim plugin helper](https://github.com/FedericoCeratto/nim-netdata-plugin)
30
31 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FThird-Party-Plugins&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
31 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FThird-Party-Plugins&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/a-github-star-is-important.md
+1 -1
@@ -12,4 +12,4 @@ Thank you!
12
13 Costa Tsaousis
14
15 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fa-github-star-is-important&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
15 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fa-github-star-is-important&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/anonymous-statistics.md
+29 -26
@@ -3,13 +3,14 @@
3 From Netdata v1.12 and above, anonymous usage information is collected by default and sent to Google Analytics.
4 The statistics calculated from this information will be used for:
5
6 -1. **Quality assurance**, to help us understand if Netdata behaves as expected and help us identify repeating issues for certain distributions or environment.
6 +1. **Quality assurance**, to help us understand if Netdata behaves as expected and help us identify repeating issues for certain distributions or environment.
7
8 -2. **Usage statistics**, to help us focus on the parts of Netdata that are used the most, or help us identify the extend our development decisions influence the community.
8 +2. **Usage statistics**, to help us focus on the parts of Netdata that are used the most, or help us identify the extend our development decisions influence the community.
9
10 Information is sent to Netdata via two different channels:
11 -- Google Tag Manager is used when an agent's dashboard is accessed.
12 -- The script `anonymous-statistics.sh` is executed by the Netdata daemon, when Netdata starts, stops cleanly, or fails.
11 +
12 +- Google Tag Manager is used when an agent's dashboard is accessed.
13 +- The script `anonymous-statistics.sh` is executed by the Netdata daemon, when Netdata starts, stops cleanly, or fails.
14
15 Both methods are controlled via the same [opt-out mechanism](#opt-out)
16
@@ -21,19 +22,19 @@ We have configured GTM to trigger the tag only when the variable `anonymous_stat
22
23 To ensure anonymity of the stored information, we have configured GTM's GA variable "Fields to set" as follows:
24
24 -|Field Name|Value
25 -|---|---
26 -|page|netdata-dashboard
27 -|hostname|dashboard.my-netdata.io
28 -|anonymizeIp|true
29 -|title|Netdata dashboard
30 -|campaignSource|{{machine_guid}}
31 -|campaignMedium|web
32 -|referrer|http://dashboard.my-netdata.io
33 -|Page URL|http://dashboard.my-netdata.io/netdata-dashboard
34 -|Page Hostname|http://dashboard.my-netdata.io
35 -|Page Path|/netdata-dashboard
36 -|location|http://dashboard.my-netdata.io
25 +| Field Name|Value|
26 +|----------|-----|
27 +| page|netdata-dashboard|
28 +| hostname|dashboard.my-netdata.io|
29 +| anonymizeIp|true|
30 +| title|Netdata dashboard|
31 +| campaignSource|{{machine_guid}}|
32 +| campaignMedium|web|
33 +| referrer|<http://dashboard.my-netdata.io>|
34 +| Page URL|<http://dashboard.my-netdata.io/netdata-dashboard>|
35 +| Page Hostname|<http://dashboard.my-netdata.io>|
36 +| Page Path|/netdata-dashboard|
37 +| location|<http://dashboard.my-netdata.io>|
38
39 In addition, the Netdata-generated unique machine guid is sent to GA via a custom dimension.
40 You can verify the effect of these settings by examining the GA `collect` request parameters.
@@ -43,21 +44,23 @@ The only thing that's impossible for us to prevent from being **sent** is the UR
44 ## Anonymous Statistics Script
45
46 Every time the daemon is started or stopped and every time a fatal condition is encountered, Netdata uses the anonymous statistics script to collect system information and send it to GA via an http call. The information collected for all events is:
46 - - Netdata version
47 - - OS name, version, id, id_like
48 - - Kernel name, version, architecture
49 - - Virtualization technology
50 - - Containerization technology
47 +
48 +- Netdata version
49 +- OS name, version, id, id_like
50 +- Kernel name, version, architecture
51 +- Virtualization technology
52 +- Containerization technology
53
54 Furthermore, the FATAL event sends the Netdata process & thread name, along with the source code function, source code filename and source code line number of the fatal error.
53 -
55 +
56 To see exactly what and how is collected, you can review the script template `daemon/anonymous-statistics.sh.in`. The template is converted to a bash script called `anonymous-statistics.sh`, installed under the Netdata `plugins directory`, which is usually `/usr/libexec/netdata/plugins.d`.
57
58 ## Opt-Out
59
60 To opt-out from sending anonymous statistics, you can create a file called `.opt-out-from-anonymous-statistics` under the user configuration directory (usually `/etc/netdata`). The effect of creating the file is the following:
59 - - The daemon will never execute the anonymous statistics script
60 - - The anonymous statistics script will exit immediately if called via any other way (e.g. shell)
61 - - The Google Tag Manager Javascript snippet will remain in the page, but the linked tag will not be fired. The effect is that no data will ever be sent to GA.
61 +
62 +- The daemon will never execute the anonymous statistics script
63 +- The anonymous statistics script will exit immediately if called via any other way (e.g. shell)
64 +- The Google Tag Manager Javascript snippet will remain in the page, but the linked tag will not be fired. The effect is that no data will ever be sent to GA.
65
66 You can also disable telemetry by passing the option `--disable-telemetry` to any of the installers.
docs/configuration-guide.md
+26 -27
@@ -7,27 +7,26 @@ Depending on your installation method, Netdata will have been installed either d
7
8 Under that directory you will see the following:
9
10 -- `netdata.conf` is [the main configuration file](../daemon/config/#daemon-configuration)
11 -- `edit-config` is an sh script that you can use to easily and safely edit the configuration. Just run it to see its usage.
12 -- Other directories, initially empty, where your custom configurations for alarms and collector plugins/modules will be copied from the stock configuration, if and when you customize them using `edit-config`.
13 -- `orig` is a symbolic link to the directory `/usr/lib/netdata/conf.d`, which contains the stock configurations for everything not included in `netdata.conf`:
14 - - `health_alarm_notify.conf` is where you configure how and to who Netdata will send [alarm notifications](../health/notifications/#netdata-alarm-notifications).
15 - - `health.d` is the directory that contains the alarm triggers for [health monitoring](../health/#health-monitoring). It contains one .conf file per collector.
16 - - The [modular plugin orchestrators](../collectors/plugins.d/#external-plugins-overview) have:
17 - - One config file each, mainly to turn their modules on and off: `python.d.conf` for [python](../collectors/python.d.plugin/#pythondplugin), `node.d.conf` for [nodejs](../collectors/node.d.plugin/#nodedplugin) and `charts.d.conf` for [bash](../collectors/charts.d.plugin/#chartsdplugin) modules.
18 - - One directory each, where the module-specific configuration files can be found.
19 - - `stream.conf` is where you configure [streaming and replication](../streaming/#streaming-and-replication)
20 - - `stats.d` is a directory under which you can add .conf files to add [synthetic charts](../collectors/statsd.plugin/#synthetic-statsd-charts).
21 - - Individual collector plugin config files, such as `fping.conf` for the [fping plugin](../collectors/fping.plugin/) and `apps_groups.conf` for the [apps plugin](../collectors/apps.plugin/)
10 +- `netdata.conf` is [the main configuration file](../daemon/config/#daemon-configuration)
11 +- `edit-config` is an sh script that you can use to easily and safely edit the configuration. Just run it to see its usage.
12 +- Other directories, initially empty, where your custom configurations for alarms and collector plugins/modules will be copied from the stock configuration, if and when you customize them using `edit-config`.
13 +- `orig` is a symbolic link to the directory `/usr/lib/netdata/conf.d`, which contains the stock configurations for everything not included in `netdata.conf`:
14 + - `health_alarm_notify.conf` is where you configure how and to who Netdata will send [alarm notifications](../health/notifications/#netdata-alarm-notifications).
15 + - `health.d` is the directory that contains the alarm triggers for [health monitoring](../health/#health-monitoring). It contains one .conf file per collector.
16 + - The [modular plugin orchestrators](../collectors/plugins.d/#external-plugins-overview) have:
17 + - One config file each, mainly to turn their modules on and off: `python.d.conf` for [python](../collectors/python.d.plugin/#pythondplugin), `node.d.conf` for [nodejs](../collectors/node.d.plugin/#nodedplugin) and `charts.d.conf` for [bash](../collectors/charts.d.plugin/#chartsdplugin) modules.
18 + - One directory each, where the module-specific configuration files can be found.
19 + - `stream.conf` is where you configure [streaming and replication](../streaming/#streaming-and-replication)
20 + - `stats.d` is a directory under which you can add .conf files to add [synthetic charts](../collectors/statsd.plugin/#synthetic-statsd-charts).
21 + - Individual collector plugin config files, such as `fping.conf` for the [fping plugin](../collectors/fping.plugin/) and `apps_groups.conf` for the [apps plugin](../collectors/apps.plugin/)
22
23 So there are many configuration files to control every aspect of Netdata's behavior. It can be overwhelming at first, but you won't have to deal with any of them, unless you have specific things you need to change. The following HOWTO will guide you on how to customize your Netdata, based on what you want to do.
24
25 -
25 ## How to
26
27 ### Persist my configuration
28
30 -In http://localhost:19999/netdata.conf, you will see the following two parameters:
29 +In <http://localhost:19999/netdata.conf>, you will see the following two parameters:
30
31 ```bash
32 # config directory = /etc/netdata
@@ -40,22 +39,23 @@ To persist your configurations, don't edit the files under the `stock config dir
39
40 ##### Increase the metrics retention period
41
43 -Increase `history` in [netdata.conf [global]](../daemon/config/#global-section-options). Just ensure you understand [how much memory will be required](../database/)
42 +Increase `history` in [netdata.conf \[global\]](../daemon/config/#global-section-options). Just ensure you understand [how much memory will be required](../database/)
43
44 ##### Reduce the data collection frequency
45
47 -Increase `update every` in [netdata.conf [global]](../daemon/config/#global-section-options). This is another way to increase your metrics retention period, but at a lower resolution than the default 1s.
46 +Increase `update every` in [netdata.conf \[global\]](../daemon/config/#global-section-options). This is another way to increase your metrics retention period, but at a lower resolution than the default 1s.
47
48 ##### Modify how a chart is displayed
49
51 -In `netdata.conf` under `# Per chart configuration` you will find several [[CHART_NAME] sections](../daemon/config/#per-chart-configuration), where you can control all aspects of a specific chart.
50 +In `netdata.conf` under `# Per chart configuration` you will find several [\[CHART_NAME\] sections](../daemon/config/#per-chart-configuration), where you can control all aspects of a specific chart.
51
52 ##### Disable a collector
53
55 -Entire plugins can be turned off from the [netdata.conf [plugins]](../daemon/config/#plugins-section-options) section. To disable specific modules of a plugin orchestrator, you need to edit one of the following:
56 -- `python.d.conf` for [python](../collectors/python.d.plugin/#pythondplugin)
57 -- `node.d.conf` for [nodejs](../collectors/node.d.plugin/#nodedplugin)
58 -- `charts.d.conf` for [bash](../collectors/charts.d.plugin/#chartsdplugin)
54 +Entire plugins can be turned off from the [netdata.conf \[plugins\]](../daemon/config/#plugins-section-options) section. To disable specific modules of a plugin orchestrator, you need to edit one of the following:
55 +
56 +- `python.d.conf` for [python](../collectors/python.d.plugin/#pythondplugin)
57 +- `node.d.conf` for [nodejs](../collectors/node.d.plugin/#nodedplugin)
58 +- `charts.d.conf` for [bash](../collectors/charts.d.plugin/#chartsdplugin)
59
60 ##### Show charts with zero metrics
61
@@ -69,7 +69,7 @@ You can add a new alarm definition either by editing an existing stock alarm con
69
70 ##### Turn off all alarms and notifications
71
72 -Just set `enabled = no` in the [netdata.conf [health]](../daemon/config/#health-section-options) section
72 +Just set `enabled = no` in the [netdata.conf \[health\]](../daemon/config/#health-section-options) section
73
74 ##### Modify or disable a specific alarm
75
@@ -88,7 +88,7 @@ You only need to configure `health_alarm_notify.conf`. To learn how to do it, re
88
89 ##### Change the Netdata web server access lists
90
91 -You have several options under the [netdata.conf [web]](../web/server/#access-lists) section.
91 +You have several options under the [netdata.conf \[web\]](../web/server/#access-lists) section.
92
93 ##### Stop sending info to registry.my-netdata.io
94
@@ -106,7 +106,7 @@ The page on [Netdata performance](Performance.md) has an excellent guide on how
106
107 ##### Change when Netdata saves metrics to disk
108
109 -[netdata.conf [global]](../daemon/config/#global-section-options) : `memory mode`</details>
109 +[netdata.conf \[global\]](../daemon/config/#global-section-options) : `memory mode`</details>
110
111 ##### Prevent Netdata from getting immediately killed when my server runs out of memory
112
@@ -116,8 +116,7 @@ You can change the Netdata [OOM score](../daemon/#oom-score) in `netdata.conf` [
116
117 ##### Move Netdata directories
118
119 -The various directory paths are in [netdata.conf [global]](../daemon/config/#global-section-options).
120 -
119 +The various directory paths are in [netdata.conf \[global\]](../daemon/config/#global-section-options).
120
121 ## How Netdata configuration works
122
@@ -135,4 +134,4 @@ Unix prefers regular expressions. But they are just too hard, too cryptic to use
134
135 So, Netdata supports [simple patterns](../libnetdata/simple_pattern/).
136
138 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fconfiguration-guide&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
137 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fconfiguration-guide&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/contributing/contributing-documentation.md
+7 -16
@@ -8,13 +8,12 @@ We also ask you to read our [documentation style guide](style-guide.md), which,
8
9 All our documentation uses the Markdown syntax. If you're not familiar with how it works, please read the [Markdown introduction post](https://daringfireball.net/projects/markdown/) by its creator, followed by [Mastering Markdown](https://guides.github.com/features/mastering-markdown/) guide from GitHub.
10
11 -
11 ## How contributing to the documentation works
12
13 There are two ways to contribute to Netdata's documentation:
14
16 -1. Edit documentation [directly in GitHub](#edit-documentation-directly-on-gitHub).
17 -2. Download the repository and [edit documentation locally](#edit-documentation-locally).
15 +1. Edit documentation [directly in GitHub](#edit-documentation-directly-on-gitHub).
16 +2. Download the repository and [edit documentation locally](#edit-documentation-locally).
17
18 Editing in GitHub is a simpler process and is perfect for quick edits to a single document, such as fixing a typo or clarifying a confusing sentence.
19
@@ -24,9 +23,8 @@ In both cases, you'll finish by submitting a pull request (PR). Once you submit
23
24 To continue, follow one of the paths below:
25
27 -- [Edit documentation directly in GitHub](#edit-documentation-directly-on-github)
28 -- [Edit documentation locally](#edit-documentation-locally)
29 -
26 +- [Edit documentation directly in GitHub](#edit-documentation-directly-on-github)
27 +- [Edit documentation locally](#edit-documentation-locally)
28
29 ## Edit documentation directly on GitHub
30
@@ -47,7 +45,6 @@ After you've hit that button, jump down to our instructions on [pull requests an
45 !!! note
46 This process will create a branch directly on the `netdata/netdata` repository, which then requires manual cleanup. If you're going to make significant documentation contributions, or contribute often, we recommend the local editing process just below.
47
50 -
48 ## Edit documentation locally
49
50 Editing documentation locally is the preferred method for complex changes, PRs that span across multiple documents, or those that change the styling or underlying functionality of the documentation.
@@ -64,7 +61,6 @@ $ git clone https://github.com/YOUR-GITHUB-USERNAME/netdata.git
61
62 You can now jump into the directory and explore Netdata's structure for yourself.
63
67 -
64 ### Understanding the structure of Netdata's documentation
65
66 All of Netdata's documentation is stored within the repository itself, as close as possible to the code it corresponds to. Many sub-folders contain a `README.md` file, which is then used to populate the documentation about that feature/component of Netdata.
@@ -81,7 +77,6 @@ At the root of the Netdata repository is a `docs/` folder. Inside this folder we
77
78 If the documentation you're working on doesn't have a direct relaionship to a component of Netdata, it can be placed in this `docs/` folder.
79
84 -
80 ### Make your edits
81
82 Now that you're set up and understand where to find or create your `.md` file, you can now begin to make your edits. Just use your favorite editor and keep in mind our [style guide](style-guide.md) as you work.
@@ -90,7 +85,6 @@ If you add a new file to the documentation, you may need to modify the `buildyam
85
86 Be sure to periodically add/commit your edits so that you don't lose your work! We use version control software for a reason.
87
93 -
88 ### Build the documentation
89
90 Building the documentation periodically gives you a glimpse into the final product, and is generally required if you're making changes to the table of contents.
@@ -104,7 +98,7 @@ Follow the [Python installation instructions](https://www.python.org/downloads/)
98
99 Use `pip`, which was installed alongside Python, to install `mkdocs` and `mkdocs-material`. Your operating system might force you to use `pip2` or `pip3` instead, dependin on which version of Python you have installed.
100
107 -``` bash
101 +```bash
102 $ pip install mkdocs mkdocs-material
103 ```
104
@@ -113,13 +107,12 @@ $ pip install mkdocs mkdocs-material
107
108 When `pip` is finished installing, navigate to the root directory of the Netdata repository and run the documentation generator script.
109
116 -``` bash
110 +```bash
111 $ sh docs/generator/buildhtml.sh
112 ```
113
114 This process will take some time. Once finished, the built documentation site will be located at `docs/generator/build/`.
115
122 -
116 ### Run a local web server to test documentation
117
118 The best way to view the documentation site you just built is to run a simple web server from the `docs/generator/build/` directory. So, navigate there and run a Python-based web server:
@@ -133,14 +126,12 @@ Feel free to replace the port number you want this web server to listen on (port
126
127 Open your web browser and navigate to `http://localhost:20000`. If you replaced the port earlier, change it here as well. You can now navigate through the documentation as you would on the live site!
128
136 -
129 ## Pull requests and final steps
130
131 When you're finished with your changes, add and commit them to your fork of the Netdata repository. Head over to GitHub to create your pull request (PR).
132
133 Once we receive your pull request (PR), we'll take time to read through it and assess it for correctness, conciseness, and overall quality. We may point to specific sections and ask for additional information or other fixes.
134
143 -
135 ## What's next
136
146 -- Read up on the Netdata documentation [style guide](style-guide.md).
\ No newline at end of file
137 +- Read up on the Netdata documentation [style guide](style-guide.md).
docs/contributing/style-guide.md
+35 -38
@@ -4,14 +4,13 @@ This in-progress style guide establishes editorial guidelines for anyone who wan
4
5 ## Table of contents
6
7 -- [Welcome!](#welcome)
8 -- [Goals of the Netdata style guide](#goals-of-the-Netdata-style-guide)
9 -- [General principles](#general-principles)
10 -- [Tone and content](#tone-and-content)
11 -- [Language and grammar](#language-and-grammar)
12 -- [Markdown syntax](#markdown-syntax)
13 -- [Accessibility](#accessibility)
14 -
7 +- [Welcome!](#welcome)
8 +- [Goals of the Netdata style guide](#goals-of-the-Netdata-style-guide)
9 +- [General principles](#general-principles)
10 +- [Tone and content](#tone-and-content)
11 +- [Language and grammar](#language-and-grammar)
12 +- [Markdown syntax](#markdown-syntax)
13 +- [Accessibility](#accessibility)
14
15 ## Welcome
16
@@ -21,15 +20,14 @@ We’re here to make developers, sysadmins, and DevOps engineers better at their
20
21 We welcome contributions to Netdata's documentation. Begin with the [contributing to documentation guide](contributing-documentation.md), followed by this style guide.
22
24 -
23 ## Goals of the Netdata style guide
24
25 An editorial style guide establishes standards for writing and maintaining documentation. At Netdata, we focus on the following principles:
26
29 -- Consistency
30 -- High-quality writing
31 -- Conciseness
32 -- Accessibility
27 +- Consistency
28 +- High-quality writing
29 +- Conciseness
30 +- Accessibility
31
32 These principles will make documentation better for everyone who wants to use Netdata, whether they're a beginner or an expert.
33
@@ -47,26 +45,26 @@ Here's a few key points to start with. Where relevant, they link to more in-dept
45
46 **[Tone and content](#tone-and-content)**:
47
50 -- Be [conversational and friendly](#conversational-and-friendly-tone).
51 -- Write [concisely](#write-concisely).
52 -- Don't use words like **here** when [creating hyperlinks](#use-informational-hyperlinks).
53 -- Don't mention [future releases or features](#mentioning-future-releases-or-features) in documentation.
48 +- Be [conversational and friendly](#conversational-and-friendly-tone).
49 +- Write [concisely](#write-concisely).
50 +- Don't use words like **here** when [creating hyperlinks](#use-informational-hyperlinks).
51 +- Don't mention [future releases or features](#mentioning-future-releases-or-features) in documentation.
52
53 **[Language and grammar](#language-and-grammar)**:
54
57 -- [Capitalize words](#capitalization) at the beginning of sentences, for proper nouns, and at the beginning of document titles and section headers.
58 -- Use [second person](#second-person)—"you" rather than "we"—when giving instructions.
59 -- Use [active voice](#active-voice) to make clear who or what is performing an action.
60 -- Always employ an [Oxford comma](#oxford-comma) on lists.
55 +- [Capitalize words](#capitalization) at the beginning of sentences, for proper nouns, and at the beginning of document titles and section headers.
56 +- Use [second person](#second-person)—"you" rather than "we"—when giving instructions.
57 +- Use [active voice](#active-voice) to make clear who or what is performing an action.
58 +- Always employ an [Oxford comma](#oxford-comma) on lists.
59
60 **[Markdown syntax](#markdown-syntax)**:
61
64 -- [Reference UI elements](#references-to-ui-elements) with bold text.
65 -- Use our [built-in syntax highlighter](#language-specific-syntax-highlighting-in-code-blocks) to improve the readability and usefulness of code blocks.
62 +- [Reference UI elements](#references-to-ui-elements) with bold text.
63 +- Use our [built-in syntax highlighter](#language-specific-syntax-highlighting-in-code-blocks) to improve the readability and usefulness of code blocks.
64
65 **[Accessibility](#accessibility)**:
66
69 -- Include [alt tags on images](#images).
67 +- Include [alt tags on images](#images).
68
69 ---
70
@@ -134,10 +132,10 @@ Netdata's documentation should be consistent in the way it uses certain words, p
132
133 In text, follow the general [English standards](https://owl.purdue.edu/owl/general_writing/mechanics/help_with_capitals.html) for capitalization. In summary:
134
137 -- Capitalize the first word of every new sentence.
138 -- Don't use uppercase for emphasis. (Netdata is the BEST!)
139 -- Capitalize the names of brands, software, products, and companies according to their official guidelines. (Netdata, Docker, Apache, Nginx)
140 -- Avoid camel case (NetData) or all caps (NETDATA).
135 +- Capitalize the first word of every new sentence.
136 +- Don't use uppercase for emphasis. (Netdata is the BEST!)
137 +- Capitalize the names of brands, software, products, and companies according to their official guidelines. (Netdata, Docker, Apache, Nginx)
138 +- Avoid camel case (NetData) or all caps (NETDATA).
139
140 #### Capitalization of 'Netdata' and 'netdata'
141
@@ -163,11 +161,11 @@ Also, don't put a period (`.`) or colon (`:`) at the end of a title or header.
161
162 **Document titles**:
163
166 -| Capitalization | Not recommended | Recommended
164 +| Capitalization | Not recommended | Recommended
165 | --- | --- | ---
166 | Document titles | Getting Started Guide | Getting started guide
169 -| Page headings | Service Discovery and Auto-Detection: | Service discovery and auto-detection
170 -| Proper nouns | Install netdata with docker | Install Netdata with Docker
167 +| Page headings | Service Discovery and Auto-Detection: | Service discovery and auto-detection
168 +| Proper nouns | Install netdata with docker | Install Netdata with Docker
169
170 ### Second person
171
@@ -234,7 +232,6 @@ Netdata can monitor RAM, disk I/O, MySQL queries per second and lm-sensors.
232 Netdata can monitor RAM, disk I/O, MySQL queries per second, and lm-sensors.
233 ```
234
237 -
235 ## Markdown syntax
236
237 The Netdata documentation uses the Markdown syntax for styling and formatting. If you're not familiar with how it works, please read the [Markdown introduction post](https://daringfireball.net/projects/markdown/) by its creator, followed by [Mastering Markdown](https://guides.github.com/features/mastering-markdown/) guide from GitHub.
@@ -254,10 +251,11 @@ Click on the **Sign in** button.
251 !!! note
252 Whenever possible, avoid using directional language to orient readers, because not every reader can use instructions like "look at the top-left corner" to find their way around an interface.
253
257 - If you feel that you must use directional language, perhaps use an [image](#images) (with proper alt text) instead.
258 -
259 - We're also working to establish standards for how we refer to certain elements of the Netdata's web interface. We'll include that in this style guide as soon as it's complete.
254 +```
255 +If you feel that you must use directional language, perhaps use an [image](#images) (with proper alt text) instead.
256
257 +We're also working to establish standards for how we refer to certain elements of the Netdata's web interface. We'll include that in this style guide as soon as it's complete.
258 +```
259
260 ### Language-specific syntax highlighting in code blocks
261
@@ -265,7 +263,7 @@ Our documentation uses the [Highlight extension](https://facelessuser.github.io/
263
264 For a full list of languages, see [Pygment's supported languages](http://pygments.org/languages/). Netdata documentation will use the following for the most part: `c`, `python`, `js`, `shell`, `markdown`, `bash`, `css`, `html`, and `go`. If no language is specified, the Highlight extension doesn't apply syntax highlighting.
265
268 -Include the language directly after the three backticks (`` ``` ``) that start the code block. For highlighting C code, for example:
266 +Include the language directly after the three backticks (```` ``` ````) that start the code block. For highlighting C code, for example:
267
268 ````
269 ```c
@@ -298,7 +296,6 @@ Display line numbers by appending `linenums="1"` after the language declaration,
296
297 Netdata's documentation should be as accessible as possible to as many people as possible. While the rules about [tone and content](#tone-and-content) and [language and grammar](#language-and-grammar) are helpful to an extent, we also need some additional rules to improve the reading experience for all readers.
298
301 -
299 ### Images
300
301 Images are an important component to documentation, which is why we have a few rules around their usage.
@@ -317,4 +314,4 @@ In Markdown, use the standard image syntax, `![]()`, and place the alt text betw
314
315 #### Images of text
316
320 -Don't use images of text, code samples, or terminal output. Instead, put that text content in a code block so that all devices can render it clearly and screen readers can parse it.
\ No newline at end of file
317 +Don't use images of text, code samples, or terminal output. Instead, put that text content in a code block so that all devices can render it clearly and screen readers can parse it.
docs/high-performance-netdata.md
+20 -21
@@ -10,13 +10,13 @@ If you plan to have your Netdata public on the internet, this strategy wastes re
10
11 In the following nginx configuration we do the following:
12
13 -- allow nginx to maintain up to 1024 idle connections to Netdata (so Netdata will have up to 1024 threads waiting for requests)
13 +- allow nginx to maintain up to 1024 idle connections to Netdata (so Netdata will have up to 1024 threads waiting for requests)
14
15 -- allow nginx to compress the responses of Netdata (later we will disable gzip compression at Netdata)
15 +- allow nginx to compress the responses of Netdata (later we will disable gzip compression at Netdata)
16
17 -- we disable wordpress pingback attacks and allow only GET, HEAD and OPTIONS requests.
17 +- we disable wordpress pingback attacks and allow only GET, HEAD and OPTIONS requests.
18
19 -```
19 +```conf
20 upstream backend {
21 server 127.0.0.1:19999;
22 keepalive 1024;
@@ -65,25 +65,25 @@ Then edit `/etc/netdata/netdata.conf` and set these config options:
65
66 These options:
67
68 -- `[global].bind socket to IP = 127.0.0.1` makes Netdata listen only for requests from localhost (nginx).
69 -- `[global].access log = none` disables the access.log of Netdata. It is not needed since Netdata only listens for requests on 127.0.0.1 and thus only nginx can access it. nginx has its own access.log for your record.
70 -- `[global].disconnect idle web clients after seconds = 3600` will kill inactive web threads after an hour of inactivity.
71 -- `[global].enable web responses gzip compression = no` disables gzip compression at Netdata (nginx will compress the responses).
68 +- `[global].bind socket to IP = 127.0.0.1` makes Netdata listen only for requests from localhost (nginx).
69 +- `[global].access log = none` disables the access.log of Netdata. It is not needed since Netdata only listens for requests on 127.0.0.1 and thus only nginx can access it. nginx has its own access.log for your record.
70 +- `[global].disconnect idle web clients after seconds = 3600` will kill inactive web threads after an hour of inactivity.
71 +- `[global].enable web responses gzip compression = no` disables gzip compression at Netdata (nginx will compress the responses).
72
73 ## 2. increase open files limit (non-systemd)
74
75 By default Linux limits open file descriptors per process to 1024. This means that less than half of this number of client connections can be accepted by both nginx and Netdata. To increase them, create 2 new files:
76
77 -1. `/etc/security/limits.d/nginx.conf`, with these contents:
77 +1. `/etc/security/limits.d/nginx.conf`, with these contents:
78
79 - ```
79 +```
80 nginx soft nofile 10000
81 nginx hard nofile 30000
82 ```
83
84 -2. `/etc/security/limits.d/netdata.conf`, with these contents:
84 +2. `/etc/security/limits.d/netdata.conf`, with these contents:
85
86 - ```
86 +```
87 netdata soft nofile 10000
88 netdata hard nofile 30000
89 ```
@@ -98,25 +98,25 @@ sysctl -p
98
99 Thanks to [@leleobhz](https://github.com/netdata/netdata/issues/655#issue-163932584), this is what you need to raise the limits using systemd:
100
101 -This is based on https://ma.ttias.be/increase-open-files-limit-in-mariadb-on-centos-7-with-systemd/ and here worked as following:
101 +This is based on <https://ma.ttias.be/increase-open-files-limit-in-mariadb-on-centos-7-with-systemd/> and here worked as following:
102
103 -1. Create the folders in /etc:
103 +1. Create the folders in /etc:
104
105 - ```
105 +```
106 mkdir -p /etc/systemd/system/netdata.service.d
107 mkdir -p /etc/systemd/system/nginx.service.d
108 ```
109
110 -2. Create limits.conf in each folder as following:
110 +2. Create limits.conf in each folder as following:
111
112 - ```
112 +```
113 [Service]
114 LimitNOFILE=30000
115 ```
116
117 -3. Reload systemd daemon list and restart services:
117 +3. Reload systemd daemon list and restart services:
118
119 - ```sh
119 +```sh
120 systemctl daemon-reload
121 systemctl restart netdata.service
122 systemctl restart nginx.service
@@ -145,7 +145,6 @@ Max open files 30000 30000 files
145
146 # cat /proc/$(ps aux | grep "netdata" | head -n1 | grep -v grep | awk '{print $2}')/limits | grep "Max open files"
147 Max open files 30000 30000 files
148 -
148 ```
149
151 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fhigh-performance-netdata&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
150 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fhigh-performance-netdata&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/netdata-cloud/README.md
+7 -12
@@ -6,7 +6,6 @@ Netdata Cloud is also the next iteration of our global Netdata registry. For tec
6
7 Learn more about the future of Netdata Cloud on our [announcement post](https://blog.netdata.cloud/posts/netdata-cloud-announcement/).
8
9 -
9 ## Registering for or signing in to Netdata Cloud
10
11 **If you're ready to register for a new Netdata Cloud account, or sign in to your existing Netdata Cloud account, visit our [signing in guide](signing-in.md) for details.**
@@ -14,36 +13,32 @@ Learn more about the future of Netdata Cloud on our [announcement post](https://
13 !!! attention "Private registries and Netdata Cloud"
14 If you're running a private registry and are interested in trying out Netdata Cloud as a replacement for your private registry, read [our notice](signing-in.md#private-registries-and-netdata-cloud) about transitioning from a private registry to our Netdata Cloud registry.
15
17 -
16 ## Netdata Cloud features
17
18 Netdata Cloud currently enables two features: the **My nodes** in the top-left corner of the Netdata dashboard, and the [**Nodes View**](nodes-view.md).
19
20 We have an aggressive roadmap of new features, such as Workspaces for different parts of your infrastructure, Rooms to collaborate with colleagues, and the ability to receive alarms from any number of distributed Netdata agents in a single place. Read more about our proposed features [here](https://blog.netdata.cloud/posts/netdata-cloud-announcement/#what-features-will-netdata-cloud-offer).
21
24 -
22 ### Planned enterprise features (paid)
23
24 Large enterprises have unique real-time monitoring needs. They have thousands of servers and applications running concurrently, and are willing to pay for the complex features that help them make smarter, faster decisions about their infrastructure. We expect to create a paid tier of Netdata Cloud with a recurring, per-user pricing model that will unlock enterprise-focused features.
25
26 A few of these planned features include:
27
31 -- Long-term storage of Netdata UI snapshots
32 -- Active Directory integration for single sign-on
33 -- Private service status pages
34 -- Extended retention of alarms timelines
35 -- Incident response toolkits
36 -- Additional enterprise plugins and integrations
37 -- Extended retention of chat messages
28 +- Long-term storage of Netdata UI snapshots
29 +- Active Directory integration for single sign-on
30 +- Private service status pages
31 +- Extended retention of alarms timelines
32 +- Incident response toolkits
33 +- Additional enterprise plugins and integrations
34 +- Extended retention of chat messages
35
36 Again, we expect that the vast majority of Netdata's users won't need these features. Creating these two tiers will help us further fund the company's efforts to deploy Netdata's open-source agent on a massive scale and entirely for free.
37
41 -
38 ## Running Netdata without Netdata Cloud
39
40 Netdata Cloud is entirely optional. The application will never force you to create a Netdata Cloud account or associate nodes with the public registries. But, if you choose not to use Netdata Cloud, you will be missing out on the [Nodes View](nodes-view.md) and other upcoming features.
41
46 -
42 ## Running Netdata Cloud on-premises or as a hosted instance
43
44 We plan on making both on-premises and hosted instances of Netdata Cloud available to enterprises. Until then, we are creating a list of people and businesses interested in either of these options. To add yourself or your organization to this list, email us at [info@netdata.cloud](mailto:info@netdata.cloud).
docs/netdata-cloud/nodes-view.md
+60 -66
@@ -1,6 +1,5 @@
1 # Using the Nodes View
2
3 -
3 ## Introduction
4
5 As of v1.15.0 of Netdata, and in conjunction with our announcement post about the [future of Netdata](https://blog.netdata.cloud/posts/netdata-cloud-announcement/), we have enabled an entirely new way to view your infrastructure using the open-source Netdata agent in conjunction with Netdata Cloud: the **Nodes View**.
@@ -10,8 +9,9 @@ This view, powered by Netdata Cloud, provides an aggregated view of the Netdata
9 !!! attention "Nodes View is beta software!"
10 The Nodes View is currently in beta, so all typical warnings about beta software apply. You may come across bugs or inconsistencies.
11
13 - The current version of Nodes uses the API available on each Netdata agent to check for new alarms and the machine's overall health/availability. In the future, we will offer both polling via the API and real-time streaming of health status/metrics.
14 -
12 +```
13 +The current version of Nodes uses the API available on each Netdata agent to check for new alarms and the machine's overall health/availability. In the future, we will offer both polling via the API and real-time streaming of health status/metrics.
14 +```
15
16 ## The Nodes View
17
@@ -21,7 +21,6 @@ Once you're signed in to Netdata Cloud, clicking on any of the **Nodes Beta** bu
21
22 ![Annotated screenshot showing where to access Nodes View](https://user-images.githubusercontent.com/1153921/60359236-4fd04b00-998d-11e9-9e4c-f35ad2551a54.png)
23
24 -
24 ### Nodes
25
26 The primary component of the Nodes View is a list of all the nodes with Netdata agents you have associated with your Netdata Cloud account via the Netdata Cloud registry.
@@ -41,23 +40,22 @@ The background color of each Node entry is an indication of its health status:
40 | **Red** | 1 or more active critical alerts |
41 | **Grey** | Node is unreachable (server unreachable [due to network conditions], server down, or changed URL) |
42
44 -
43 ### Node overview
44
45 When you click on any of the Nodes, an overview sidebar will appear on the right-hand side of the Nodes View.
46
47 This overview contains the following:
48
51 -- An icon (`1`) representing the operating system installed on that machine
52 -- The hostname (`2`) of the machine
53 -- A link (`3`) to the URL at which the web dashboard is available
54 -- Three tabs (`4`) for **System** metrics, **Services** metrics, and **Alarms**
55 -- A number of selectors (`5`) to choose which metrics/alarms are shown in the overview
56 - - **System** tab: *Overview*, *Disks*, and *Network* selectors
57 - - **Services** tab: *Databases*, *Web*, and *Messaging* selectors
58 - - **Alarms** tab: *Critical* and *Warning* selectors
59 -- The visualizations and/or alarms (`6`) supported under the chosen tab and selector
60 -- Any other available URLS (`7`) associated with that node under the **Node URLs** header.
49 +- An icon (`1`) representing the operating system installed on that machine
50 +- The hostname (`2`) of the machine
51 +- A link (`3`) to the URL at which the web dashboard is available
52 +- Three tabs (`4`) for **System** metrics, **Services** metrics, and **Alarms**
53 +- A number of selectors (`5`) to choose which metrics/alarms are shown in the overview
54 + - **System** tab: _Overview_, _Disks_, and _Network_ selectors
55 + - **Services** tab: _Databases_, _Web_, and _Messaging_ selectors
56 + - **Alarms** tab: _Critical_ and _Warning_ selectors
57 +- The visualizations and/or alarms (`6`) supported under the chosen tab and selector
58 +- Any other available URLS (`7`) associated with that node under the **Node URLs** header.
59
60 ![A screenshot of the system overview area in the Netdata Cloud web interface](https://user-images.githubusercontent.com/1153921/60361418-f834de00-9992-11e9-9998-ab3da4b8b559.png)
61
@@ -69,25 +67,24 @@ By default, clicking on a Node will display the sidebar with the **System** tab
67
68 The **System** tab has three sections: *Overview*, *Disks*, and *Network*.
69
72 -*Overview* displays visualizations for `CPU`, `System Load Average` `Disk I/O`, `System RAM`, `System Swap`, `Physical Network Interfaces Aggregated Bandwidth`, and the URL of the node.
70 +_Overview_ displays visualizations for `CPU`, `System Load Average` `Disk I/O`, `System RAM`, `System Swap`, `Physical Network Interfaces Aggregated Bandwidth`, and the URL of the node.
71
74 -*Disks* displays visualizations for `Disk Utilization Time`, and `Disk Space Usage` for every available disk.
72 +_Disks_ displays visualizations for `Disk Utilization Time`, and `Disk Space Usage` for every available disk.
73
76 -*Network* displays visualizations for `Bandwidth` for every available networking device.
74 +_Network_ displays visualizations for `Bandwidth` for every available networking device.
75
76 #### Services tab
77
80 -The **Services** tab will show visualizations for any [supported services](#Services-available-in-the-Nodes-View) that are running on that node. Three selectors are available: *Databases*, *Web*, and *Messaging*. If there are no services under any of these categories, the selector will not be clickable.
78 +The **Services** tab will show visualizations for any [supported services](#Services-available-in-the-Nodes-View) that are running on that node. Three selectors are available: _Databases_, _Web_, and _Messaging_. If there are no services under any of these categories, the selector will not be clickable.
79
80 #### Alarms tab
81
84 -The **Alarms** tab contains two selectors: *Critical* and *Warning*. If there are no alarms under either of these categories, the selector will not be clickable.
82 +The **Alarms** tab contains two selectors: _Critical_ and _Warning_. If there are no alarms under either of these categories, the selector will not be clickable.
83
84 Both of these tabs will display alarms information when available, along with the relevant visualization with metrics from your Netdata agent. The `view` link redirects you to the web dashboard for the selected node and automatically shows the appropriate visualization and timeframe.
85
86 ![A screenshot of the alarms area in the Netdata Cloud web interface](https://user-images.githubusercontent.com/1153921/59883273-55180f00-9369-11e9-8895-f74f6c66e038.png)
87
90 -
88 ### Filtering field
89
90 The search field will be useful for Netdata Cloud users with dozens or hundreds of Nodes. You can filter for the hostname of the Node you're interested in, the operating system it's running, or even for the services installed.
@@ -98,7 +95,6 @@ The filtering field will offer you autocomplete suggestions. For example, the op
95
96 If you select multiple filters, results will display according to an `OR` operator.
97
101 -
98 ### View modes
99
100 To the right of the filtering field is three functions that will help you organize your Visited Nodes according to your preferences.
@@ -107,40 +103,39 @@ To the right of the filtering field is three functions that will help you organi
103
104 The view mode button lets you switch between three view modes:
105
110 -- **Full** mode, which displays the following information in a large squares for each connected Node:
111 - - Operating system
112 - - Critical/warning alerts in two separate indicators
113 - - Hostname
114 - - Icons for [supported services](#services-available-in-the-nodes-view)
106 +- **Full** mode, which displays the following information in a large squares for each connected Node:
107 + - Operating system
108 + - Critical/warning alerts in two separate indicators
109 + - Hostname
110 + - Icons for [supported services](#services-available-in-the-nodes-view)
111
112 ![Annotated screenshot of the full view mode](https://user-images.githubusercontent.com/1153921/60219885-15e63400-9829-11e9-8654-b49f119efb9a.png)
113
118 -- **Compact** mode, which displays the following information in small squares for each connected Node:
119 - - Operating system
114 +- **Compact** mode, which displays the following information in small squares for each connected Node:
115 + - Operating system
116
117 ![Annotated screenshot of the compact view mode](https://user-images.githubusercontent.com/1153921/60220570-547cee00-982b-11e9-9caf-9dd449184f3a.png)
118
123 -- **Detailed** mode, which displays the following information in large horizontal rectangles for each connected Node:
124 - - Operating system
125 - - Critical/warning alerts in two separate indicators
126 - - Hostname
127 - - Icons for [supported services](#services-available-in-the-nodes-view)
119 +- **Detailed** mode, which displays the following information in large horizontal rectangles for each connected Node:
120 + - Operating system
121 + - Critical/warning alerts in two separate indicators
122 + - Hostname
123 + - Icons for [supported services](#services-available-in-the-nodes-view)
124
125 ![Annotated screenshot of the detailed view mode](https://user-images.githubusercontent.com/1153921/60220574-56df4800-982b-11e9-8300-aa9190bbf09f.png)
126
127 ## Sorting, and grouping
128
133 -The **Sort by** dropdown allows you to choose between sorting *alphabetically by hostname*, most *recently-viewed* nodes, and most *frequently-view* nodes.
129 +The **Sort by** dropdown allows you to choose between sorting _alphabetically by hostname_, most _recently-viewed_ nodes, and most _frequently-view_ nodes.
130
135 -The **Group by** dropdown lets you switch between *alarm status*, *running services*, or *online status*.
131 +The **Group by** dropdown lets you switch between _alarm status_, _running services_, or _online status_.
132
137 -For example, the following screenshot represents the Nodes list with the following options: *detailed list*, *frequently visited*, and *alarm status*.
133 +For example, the following screenshot represents the Nodes list with the following options: _detailed list_, _frequently visited_, and _alarm status_.
134
135 ![A screenshot of sorting, grouping, and view modes in the Netdata Cloud web interface](https://user-images.githubusercontent.com/1153921/59883300-68c37580-9369-11e9-8d6e-ce0a8147fc1d.png)
136
137 Play around with the options until you find a setup that works for you.
138
143 -
139 ## Adding more agents to the Nodes View
140
141 There is currently only one way to associate additional Netdata nodes with your Netdata Cloud account. You must visit the web dashboard for each node and click the **Sign in** button and complete the [sign in process](signing-in.md#signing-in-to-your-netdata-cloud-account).
@@ -148,35 +143,36 @@ There is currently only one way to associate additional Netdata nodes with your
143 !!! note ""
144 We are aware that the process of registering each node individually is cumbersome for those who want to implement Netdata Cloud's features across a large infrastructure.
145
151 - Please view [this comment on issue #6318](https://github.com/netdata/netdata/issues/6318#issuecomment-504106329) for how we plan on improving the process for adding additional nodes to your Netdata Cloud account.
152 -
146 +```
147 +Please view [this comment on issue #6318](https://github.com/netdata/netdata/issues/6318#issuecomment-504106329) for how we plan on improving the process for adding additional nodes to your Netdata Cloud account.
148 +```
149
150 ## Services available in the Nodes View
151
156 -The following tables elaborate on which services will appear in the Nodes View. Alerts from [other collectors](../../collectors/README.md), when entered an alarm status, will show up in the *Alarms* tab despite not appearing
152 +The following tables elaborate on which services will appear in the Nodes View. Alerts from [other collectors](../../collectors/README.md), when entered an alarm status, will show up in the _Alarms_ tab despite not appearing
153
154 ### Databases
155
160 -These services will appear under the *Databases* selector beneath the *Services* tab.
156 +These services will appear under the _Databases_ selector beneath the _Services_ tab.
157
162 -| Service | Collectors | Context #1 | Context #2 | Context #3 |
158 +| Service | Collectors | Context #1 | Context #2 | Context #3 |
159 |--- |--- |--- |--- |--- |
164 -| MySQL | `python.d.plugin:mysql`, `go.d.plugin:mysql` | `mysql.queries` | `mysql.net` | `mysql.connections` |
165 -| MariaDB | `python.d.plugin:mysql`, `go.d.plugin:mysql` | `mysql.queries` | `mysql.net` | `mysql.connections` |
166 -| Oracle Database | `python.d.plugin:oracledb` | `oracledb.session_count` | `oracledb.physical_disk_read_writes ` | `oracledb.tablespace_usage_in_percent` |
167 -| PostgreSQL | `python.d.plugin:postgres` | `postgres.checkpointer` | `postgres.archive_wal` | `postgres.db_size` |
168 -| MongoDB | `python.d.plugin:mongodb` | `mongodb.active_clients` | `mongodb.read_operations` | `mongodb.write_operations` |
169 -| ElasticSearch | `python.d.plugin:elasticsearch` | `elastic.search_performance_total` | `elastic.index_performance_total` | `elastic.index_segments_memory` |
170 -| CouchDB | `python.d.plugin:couchdb` | `couchdb.activity` | `couchdb.response_codes` | |
171 -| Proxy SQL | `python.d.plugin:proxysql` | `proxysql.questions` | `proxysql.pool_status` | `proxysql.pool_overall_net` |
172 -| Redis | `python.d.plugin:redis` | `redis.operations` | `redis.net` | `redis.connections` |
173 -| MemCached | `python.d.plugin:memcached` | `memcached.cache` | `memcached.net` | `memcached.connections` |
174 -| RethinkDB | `python.d.plugin:rethinkdbs` | `rethinkdb.cluster_queries` | `rethinkdb.cluster_clients_active` | `rethinkdb.cluster_connected_servers` |
175 -| Solr | `go.d.plugin:solr` | `solr.search_requests` | `solr.update_requests` | |
160 +| MySQL | `python.d.plugin:mysql`, `go.d.plugin:mysql` | `mysql.queries` | `mysql.net` | `mysql.connections` |
161 +| MariaDB | `python.d.plugin:mysql`, `go.d.plugin:mysql` | `mysql.queries` | `mysql.net` | `mysql.connections` |
162 +| Oracle Database | `python.d.plugin:oracledb` | `oracledb.session_count` | `oracledb.physical_disk_read_writes ` | `oracledb.tablespace_usage_in_percent` |
163 +| PostgreSQL | `python.d.plugin:postgres` | `postgres.checkpointer` | `postgres.archive_wal` | `postgres.db_size` |
164 +| MongoDB | `python.d.plugin:mongodb` | `mongodb.active_clients` | `mongodb.read_operations` | `mongodb.write_operations` |
165 +| ElasticSearch | `python.d.plugin:elasticsearch` | `elastic.search_performance_total` | `elastic.index_performance_total` | `elastic.index_segments_memory` |
166 +| CouchDB | `python.d.plugin:couchdb` | `couchdb.activity` | `couchdb.response_codes` | |
167 +| Proxy SQL | `python.d.plugin:proxysql` | `proxysql.questions` | `proxysql.pool_status` | `proxysql.pool_overall_net` |
168 +| Redis | `python.d.plugin:redis` | `redis.operations` | `redis.net` | `redis.connections` |
169 +| MemCached | `python.d.plugin:memcached` | `memcached.cache` | `memcached.net` | `memcached.connections` |
170 +| RethinkDB | `python.d.plugin:rethinkdbs` | `rethinkdb.cluster_queries` | `rethinkdb.cluster_clients_active` | `rethinkdb.cluster_connected_servers` |
171 +| Solr | `go.d.plugin:solr` | `solr.search_requests` | `solr.update_requests` | |
172
173 ### Web services
174
179 -These services will appear under the *Web* selector beneath the *Services* tab. These also include proxies, load balancers (LB), and streaming services.
175 +These services will appear under the _Web_ selector beneath the _Services_ tab. These also include proxies, load balancers (LB), and streaming services.
176
177 | Service | Collectors | Context #1 | Context #2 | Context #3 |
178 |--- |--- |--- |--- |--- |
@@ -195,18 +191,16 @@ These services will appear under the *Web* selector beneath the *Services* tab.
191 | IPVS | `proc.plugin:/proc/net/ip_vs_stats` | `ipvs.sockets` | `ipvs.packets` | |
192 | Web Log | `python.d.plugin:web_log`, `go.d.plugin:web_log` | `web_log.response_codes` | `web_log.bandwidth` | |
193 | IPFS | `python.d.plugin:ipfs` | `ipfs.bandwidth` | `ipfs.peers` | |
198 -| IceCast Media Streaming | `python.d.plugin:icecast` | `icecast.listeners` | | |
199 -| RetroShare | `python.d.plugin:retroshare` | `retroshare.bandwidth` | `retroshare.peers` | |
200 -| HTTP Check | `python.d.plugin:httpcheck`, `go.d.plugin:httpcheck` | `httpcheck.responsetime` | `httpcheck.status` | |
201 -| x509 Check | `go.d.plugin:x509check` | `x509check.time_until_expiration` | | |
194 +| IceCast Media Streaming | `python.d.plugin:icecast` | `icecast.listeners` | | |
195 +| RetroShare | `python.d.plugin:retroshare` | `retroshare.bandwidth` | `retroshare.peers` | |
196 +| HTTP Check | `python.d.plugin:httpcheck`, `go.d.plugin:httpcheck` | `httpcheck.responsetime` | `httpcheck.status` | |
197 +| x509 Check | `go.d.plugin:x509check` | `x509check.time_until_expiration` | | |
198
199 ### Messaging
200
205 -These services will appear under the *Messaging* selector beneath the *Services* tab.
201 +These services will appear under the _Messaging_ selector beneath the _Services_ tab.
202
207 -| Service | Collectors | Context #1 | Context #2 | Context #3 |
203 +| Service | Collectors | Context #1 | Context #2 | Context #3 |
204 | --- | --- | --- | --- | --- |
209 -| RabbitMQ | `python.d.plugin:rabbitmq`, `go.d.plugin:rabbitmq` | `rabbitmq.queued_messages` | `rabbitmq.erlang_run_queue` |
210 -| Beanstalkd | `python.d.plugin:beanstalk` | `beanstalk.total_jobs_rate` | `beanstalk.connections_rate` | `beanstalk.current_tubes` |
211 -
212 -
205 +| RabbitMQ | `python.d.plugin:rabbitmq`, `go.d.plugin:rabbitmq` | `rabbitmq.queued_messages` | `rabbitmq.erlang_run_queue` |
206 +| Beanstalkd | `python.d.plugin:beanstalk` | `beanstalk.total_jobs_rate` | `beanstalk.connections_rate` | `beanstalk.current_tubes` |
docs/netdata-cloud/signing-in.md
+18 -23
@@ -1,12 +1,10 @@
1 # Registration and signing in
2
3 -
3 To use the features of [Netdata Cloud](README.md), you must first register an account with Netdata Cloud and associate your first Netdata node with the Netdata Cloud [registry](../../registry/README.md). **Netdata Cloud is entirely free for all Netdata users**, and does not store any metrics created by your machines. You keep your data—Netdata Cloud just connects it all together.
4
5 !!! attention "Opting-in to Netdata Cloud"
6 By [signing in](signing-in.md) to Netdata Cloud, you opt-in to let Netdata Cloud receive and store the information described [here](../../registry/README.md#what-data-does-the-registry-store). We never store the metrics collected by Netdata agents, just machine GUIDs, person GUID, URLs, and account information.
7
9 -
8 ## Registering a Netdata Cloud account
9
10 There is only one prerequisite to using Netdata Cloud: A working Netdata agent. If you don't have a running Netdata agent yet, check out the [installation guides](../../packaging/installer/) for more information.
@@ -22,28 +20,30 @@ From here, you need to register for a Netdata Cloud account. Click on the **Sign
20 ??? note "Alternative registration routes"
21 While we recommend the **Sign in** button, the Netdata dashboard has one other direct route registering for or signing in to a Netdata Cloud account.
22
25 - The text **Please sign in to netdata.cloud to view your nodes!** contains a link to access Netdata Cloud.
26 -
27 - ![A screenshot of the Netdata Cloud sign in link](https://user-images.githubusercontent.com/1153921/59644958-2f4df880-9124-11e9-946c-bb30c8735e0a.png)
23 +```
24 +The text **Please sign in to netdata.cloud to view your nodes!** contains a link to access Netdata Cloud.
25
29 - Two other routes exist, but they are more directly related to accessing the Nodes View. They will, however, require either registration or sign in and thus are valid routes to access Netdata Cloud.
26 +![A screenshot of the Netdata Cloud sign in link](https://user-images.githubusercontent.com/1153921/59644958-2f4df880-9124-11e9-946c-bb30c8735e0a.png)
27
31 - One route can be found in the **Nodes Beta** button the left side of the navigation menu:
28 +Two other routes exist, but they are more directly related to accessing the Nodes View. They will, however, require either registration or sign in and thus are valid routes to access Netdata Cloud.
29
33 - ![A screenshot of a link to the Nodes View in Netdata Cloud](https://user-images.githubusercontent.com/1153921/59644663-c1ed9800-9122-11e9-9ebc-d67e7db229a7.png)
30 +One route can be found in the **Nodes Beta** button the left side of the navigation menu:
31
35 - A second route can be found in the Nodes List—the drop-down menu in the top-left corner of the Netdata dashboard:
32 +![A screenshot of a link to the Nodes View in Netdata Cloud](https://user-images.githubusercontent.com/1153921/59644663-c1ed9800-9122-11e9-9ebc-d67e7db229a7.png)
33
37 - ![A screenshot of a second link to the Nodes View in Netdata Cloud](https://user-images.githubusercontent.com/1153921/59644973-3d9c1480-9124-11e9-9a1d-33c412578a9f.png)
34 +A second route can be found in the Nodes List—the drop-down menu in the top-left corner of the Netdata dashboard:
35
36 + ![A screenshot of a second link to the Nodes View in Netdata Cloud](https://user-images.githubusercontent.com/1153921/59644973-3d9c1480-9124-11e9-9a1d-33c412578a9f.png)
37 +```
38
39 ??? note "Registration route when using a private registry"
40 If you're using a private registry, clicking the **Sign in** button will display a modal window warning you about the process of migrating away from your private registry and to Netdata Cloud's registry.
41
43 - ![A screenshot of the private registry warning modal](https://user-images.githubusercontent.com/1153921/59782901-ca091d00-9273-11e9-9f9a-0cb18f78ca26.png)
42 +```
43 +![A screenshot of the private registry warning modal](https://user-images.githubusercontent.com/1153921/59782901-ca091d00-9273-11e9-9f9a-0cb18f78ca26.png)
44
45 - If you agree to use Netdata Cloud over your private registry, and opt-in to let Netdata Cloud receive and store the information described [here](../../registry/README.md#what-data-does-the-registry-store), you should click the **Sign in** button again. If not, click the **Cancel** button to continue using your private registry.
46 -
45 +If you agree to use Netdata Cloud over your private registry, and opt-in to let Netdata Cloud receive and store the information described [here](../../registry/README.md#what-data-does-the-registry-store), you should click the **Sign in** button again. If not, click the **Cancel** button to continue using your private registry.
46 +```
47
48 ### Choosing your registration or sign in method
49
@@ -80,21 +80,18 @@ When the email arrives, open it and click on the green **Sign in** button and th
80
81 ![Screenshot of the verification email](https://user-images.githubusercontent.com/1153921/59783969-338a2b00-9276-11e9-84b8-a4f678de1242.png)
82
83 -
83 ## Visiting the Nodes View for the first time
84
85 Regardless of which sign in method you used, you'll now be redirected back to your Netdata agent's dashboard. This node has now been associated with your Netdata Cloud account. Netdata Cloud uses a list of nodes associated with your account to populate the Nodes List dropdown in the dashboard and the Nodes View feature of Netdata Cloud.
86
87 **For more information on how to use the Nodes View, visit the [Nodes View guide](nodes-view.md).**
88
90 -
89 ## Signing in to your Netdata Cloud account
90
91 The process of signing in to an existing Netdata Cloud account the same as [registering for a new account](#registering-a-netdata-cloud-account). The recommended method is to use the **Sign in** button at the top-right corner of a Netdata nodes's dashboard. Choose the method you used to register for your Netdata Cloud account and complete the process.
92
93 ![A screenshot of the Sign in button in the Netdata dashboard](https://user-images.githubusercontent.com/1153921/59782688-6252d200-9273-11e9-9975-52be0d6714bf.png)
94
97 -
95 ## Adding additional nodes to your Netdata Cloud account
96
97 There is currently only one way to associate additional Netdata nodes with your Netdata Cloud account: You must visit the web dashboard for each node and click the **Sign in** button and complete the [sign in process](#signing-in-to-your-netdata-cloud-account).
@@ -102,8 +99,9 @@ There is currently only one way to associate additional Netdata nodes with your
99 !!! note ""
100 We are aware that the process of registering each node individually is cumbersome for those who want to implement Netdata Cloud's features across a large infrastructure.
101
105 - Please view [this comment on issue #6318](https://github.com/netdata/netdata/issues/6318#issuecomment-504106329) for how we plan on improving the process for adding additional nodes to your Netdata Cloud account.
106 -
102 +```
103 +Please view [this comment on issue #6318](https://github.com/netdata/netdata/issues/6318#issuecomment-504106329) for how we plan on improving the process for adding additional nodes to your Netdata Cloud account.
104 +```
105
106 ## Private registries and Netdata Cloud
107
@@ -117,21 +115,19 @@ If your company's data policies don't allow storing information about your nodes
115
116 If you agree to use Netdata Cloud over your private registry, and opt-in to let Netdata Cloud receive and store the information described [here](../../registry/README.md#what-data-does-the-registry-store), you should click the **Sign in** button again to continue the registration/sign in process.
117
120 -
118 ### Returning to your private registry
119
120 If you register for or sign in to Netdata Cloud from a node previously associated with a private registry, you can easily return to your private registry by signing out.
121
122 You can sign out in two ways:
123
127 -1. **From a node's dashboard**: In the top-right corner you will find a dropdown menu with your email address. Click that and then click the **Sign Out** button.
128 -2. **From Netdata Cloud**: Click on your profile picture in the top-right corner and then click on the **Sign Out** button.
124 +1. **From a node's dashboard**: In the top-right corner you will find a dropdown menu with your email address. Click that and then click the **Sign Out** button.
125 +2. **From Netdata Cloud**: Click on your profile picture in the top-right corner and then click on the **Sign Out** button.
126
127 Signing out from Netdata Cloud and returning to your private registry *does not remove* the [information stored](../../registry/README.md#what-data-does-the-registry-store) about your nodes or account details.
128
129 But, upon signout, your Nodes List on all dashboards will once more be populated by your private registry and not Netdata Cloud.
130
134 -
131 <!-- ## The 'Synchronize with Netdata Cloud' button
132
133 Once signed in to Netdata Cloud, the Nodes List dropdown will now show a button labeled `Synchronize with netdata.cloud`.
@@ -154,7 +150,6 @@ If you do, click `Synchronize`. This will push GUIDs, hostnames, and URLs to Net
150
151 Now, when you visit the Nodes View, you will be able to see all the nodes that were once associated with the public/private registry you were using previously. -->
152
157 -
153 ## What's next?
154
155 Learn how to use the [Nodes View](nodes-view.md) to monitor many nodes concurrently.
docs/netdata-for-IoT.md
+3 -3
@@ -2,10 +2,10 @@
2
3 ![image1](https://cloud.githubusercontent.com/assets/2662304/14252446/11ae13c4-fa90-11e5-9d03-d93a3eb3317a.gif)
4
5 -> New to Netdata? Check its demo: **[https://my-netdata.io/](https://my-netdata.io/)**
5 +> New to Netdata? Check its demo: **<https://my-netdata.io/>**
6 >
7 > [![User Base](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&label=user%20base&units=null&value_color=blue&precision=0&v41)](https://registry.my-netdata.io/#netdata_registry) [![Monitored Servers](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&label=servers%20monitored&units=null&value_color=orange&precision=0&v41)](https://registry.my-netdata.io/#netdata_registry) [![Sessions Served](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&label=sessions%20served&units=null&value_color=yellowgreen&precision=0&v41)](https://registry.my-netdata.io/#netdata_registry)
8 ->
8 +>
9 > [![New Users Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&after=-86400&options=unaligned&group=incremental-sum&label=new%20users%20today&units=null&value_color=blue&precision=0&v40)](https://registry.my-netdata.io/#netdata_registry) [![New Machines Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&group=incremental-sum&after=-86400&options=unaligned&label=servers%20added%20today&units=null&value_color=orange&precision=0&v40)](https://registry.my-netdata.io/#netdata_registry) [![Sessions Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&after=-86400&group=incremental-sum&options=unaligned&label=sessions%20served%20today&units=null&value_color=yellowgreen&precision=0&v40)](https://registry.my-netdata.io/#netdata_registry)
10
11 ---
@@ -38,4 +38,4 @@ Then restart Netdata. You will get this:
38
39 ![image](https://user-images.githubusercontent.com/2662304/29658868-23aa65ae-88c5-11e7-9dad-c159600db5cc.png)
40
41 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fnetdata-for-IoT&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
41 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fnetdata-for-IoT&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/netdata-security.md
+30 -28
@@ -4,16 +4,16 @@ We have given special attention to all aspects of Netdata, ensuring that everyth
4
5 **Table of Contents**
6
7 -1. [Your data are safe with Netdata](#your-data-are-safe-with-netdata)
8 -2. [Your systems are safe with Netdata](#your-systems-are-safe-with-netdata)
9 -3. [Netdata is read-only](#netdata-is-read-only)
10 -4. [Netdata viewers authentication](#netdata-viewers-authentication)
11 - - [Why Netdata should be protected](#why-netdata-should-be-protected)
12 - - [Protect Netdata from the internet](#protect-netdata-from-the-internet)
13 - - [Expose Netdata only in a private LAN](#expose-netdata-only-in-a-private-lan)
14 - - [Use an authenticating web server in proxy mode](#use-an-authenticating-web-server-in-proxy-mode)
15 - - [Other methods](#other-methods)
16 -5. [Registry or how to not send any information to a third party server](#registry-or-how-to-not-send-any-information-to-a-third-party-server)
7 +1. [Your data are safe with Netdata](#your-data-are-safe-with-netdata)
8 +2. [Your systems are safe with Netdata](#your-systems-are-safe-with-netdata)
9 +3. [Netdata is read-only](#netdata-is-read-only)
10 +4. [Netdata viewers authentication](#netdata-viewers-authentication)
11 + - [Why Netdata should be protected](#why-netdata-should-be-protected)
12 + - [Protect Netdata from the internet](#protect-netdata-from-the-internet)
13 + \- [Expose Netdata only in a private LAN](#expose-netdata-only-in-a-private-lan)
14 + \- [Use an authenticating web server in proxy mode](#use-an-authenticating-web-server-in-proxy-mode)
15 + \- [Other methods](#other-methods)
16 +5. [Registry or how to not send any information to a third party server](#registry-or-how-to-not-send-any-information-to-a-third-party-server)
17
18 ## Your data are safe with Netdata
19
@@ -86,7 +86,6 @@ In Netdata v1.9+ there is also access list support, like this:
86 allow connections from = localhost 10.* 192.168.*
87 ```
88
89 -
89 #### Use an authenticating web server in proxy mode
90
91 Use one web server to provide authentication in front of **all your Netdata servers**. So, you will be accessing all your Netdata with URLs like `http://{HOST}/netdata/{NETDATA_HOSTNAME}/` and authentication will be shared among all of them (you will sign-in once for all your servers). Instructions are provided on how to set the proxy configuration to have Netdata run behind [nginx](Running-behind-nginx.md), [Apache](Running-behind-apache.md), [lighthttpd](Running-behind-lighttpd.md#netdata-via-lighttpd-v14x) and [Caddy](Running-behind-caddy.md#netdata-via-caddy).
@@ -97,7 +96,8 @@ To use this method, you should firewall protect all your Netdata servers, so tha
96 PROXY_IP="1.2.3.4"
97 iptables -t filter -I INPUT -p tcp --dport 19999 \! -s ${PROXY_IP} -m conntrack --ctstate NEW -j DROP
98 ```
100 -_commands to allow direct access to Netdata from a web server proxy_
99 +
100 +*commands to allow direct access to Netdata from a web server proxy*
101
102 The above will prevent anyone except your web server to access a Netdata dashboard running on the host.
103
@@ -135,6 +135,7 @@ iptables -t filter -D INPUT -p tcp --dport ${NETDATA_PORT} -m conntrack --ctstat
135 # to send all new Netdata connections to our filtering chain
136 iptables -t filter -I INPUT -p tcp --dport ${NETDATA_PORT} -m conntrack --ctstate NEW -j netdata
137 ```
138 +
139 _script to allow access to Netdata only from a number of hosts_
140
141 You can run the above any number of times. Each time it runs it refreshes the list of allowed hosts.
@@ -143,19 +144,20 @@ You can run the above any number of times. Each time it runs it refreshes the li
144
145 Of course, there are many more methods you could use to protect Netdata:
146
146 -- bind Netdata to localhost and use `ssh -L 19998:127.0.0.1:19999 remote.netdata.ip` to forward connections of local port 19998 to remote port 19999. This way you can ssh to a Netdata server and then use `http://127.0.0.1:19998/` on your computer to access the remote Netdata dashboard.
147 +- bind Netdata to localhost and use `ssh -L 19998:127.0.0.1:19999 remote.netdata.ip` to forward connections of local port 19998 to remote port 19999. This way you can ssh to a Netdata server and then use `http://127.0.0.1:19998/` on your computer to access the remote Netdata dashboard.
148
148 -- If you are always under a static IP, you can use the script given above to allow direct access to your Netdata servers without authentication, from all your static IPs.
149 +- If you are always under a static IP, you can use the script given above to allow direct access to your Netdata servers without authentication, from all your static IPs.
150
150 -- install all your Netdata in **headless data collector** mode, forwarding all metrics in real-time to a master Netdata server, which will be protected with authentication using an nginx server running locally at the master Netdata server. This requires more resources (you will need a bigger master Netdata server), but does not require any firewall changes, since all the slave Netdata servers will not be listening for incoming connections.
151 +- install all your Netdata in **headless data collector** mode, forwarding all metrics in real-time to a master Netdata server, which will be protected with authentication using an nginx server running locally at the master Netdata server. This requires more resources (you will need a bigger master Netdata server), but does not require any firewall changes, since all the slave Netdata servers will not be listening for incoming connections.
152
153 ## Anonymous Statistics
154
155 ### Registry or how to not send any information to a third party server
156
157 The default configuration uses a public registry under registry.my-netdata.io (more information about the registry here: [mynetdata-menu-item](../registry/) ). Please be aware that if you use that public registry, you submit the following information to a third party server:
157 -- The url where you open the web-ui in the browser (via http request referer)
158 -- The hostnames of the Netdata servers
158 +
159 +- The url where you open the web-ui in the browser (via http request referer)
160 +- The hostnames of the Netdata servers
161
162 If sending this information to the central Netdata registry violates your security policies, you can configure Netdat to [run your own registry](../registry/#run-your-own-registry).
163
@@ -163,21 +165,21 @@ If sending this information to the central Netdata registry violates your securi
165
166 Starting with v1.12 Netdata also collects [anonymous statistics](anonymous-statistics.md) on certain events for:
167
166 -1. **Quality assurance**, to help us understand if Netdata behaves as expected and help us identify repeating issues for certain distributions or environments.
168 +1. **Quality assurance**, to help us understand if Netdata behaves as expected and help us identify repeating issues for certain distributions or environments.
169
168 -2. **Usage statistics**, to help us focus on the parts of Netdata that are used the most, or help us identify the extent our development decisions influence the community.
170 +2. **Usage statistics**, to help us focus on the parts of Netdata that are used the most, or help us identify the extent our development decisions influence the community.
171
172 To opt-out from sending anonymous statistics, you can create a file called `.opt-out-from-anonymous-statistics` under the user configuration directory (usually `/etc/netdata`).
173
174 ## Netdata directories
175
174 -path|owner|permissions| Netdata |comments|
175 -:---|:----|:----------|:--------|:-------|
176 -`/etc/netdata`|user&nbsp;`root`<br/>group&nbsp;`netdata`|dirs `0755`<br/>files `0640`|reads|**Netdata config files**<br/>may contain sensitive information, so group `netdata` is allowed to read them.
177 -`/usr/libexec/netdata`|user&nbsp;`root`<br/>group&nbsp;`root`|executable by anyone<br/>dirs `0755`<br/>files `0644` or `0755`|executes|**Netdata plugins**<br/>permissions depend on the file - not all of them should have the executable flag.<br/>there are a few plugins that run with escalated privileges (Linux capabilities or `setuid`) - these plugins should be executable only by group `netdata`.
178 -`/usr/share/netdata`|user&nbsp;`root`<br/>group&nbsp;`netdata`|readable by anyone<br/>dirs `0755`<br/>files `0644`|reads and sends over the network|**Netdata web static files**<br/>these files are sent over the network to anyone that has access to the Netdata web server. Netdata checks the ownership of these files (using settings at the `[web]` section of `netdata.conf`) and refuses to serve them if they are not properly owned. Symbolic links are not supported. Netdata also refuses to serve URLs with `..` in their name.
179 -`/var/cache/netdata`|user&nbsp;`netdata`<br/>group&nbsp;`netdata`|dirs `0750`<br/>files `0660`|reads, writes, creates, deletes|**Netdata ephemeral database files**<br/>Netdata stores its ephemeral real-time database here.
180 -`/var/lib/netdata`|user&nbsp;`netdata`<br/>group&nbsp;`netdata`|dirs `0750`<br/>files `0660`|reads, writes, creates, deletes|**Netdata permanent database files**<br/>Netdata stores here the registry data, health alarm log db, etc.
181 -`/var/log/netdata`|user&nbsp;`netdata`<br/>group&nbsp;`root`|dirs `0755`<br/>files `0644`|writes, creates|**Netdata log files**<br/>all the Netdata applications, logs their errors or other informational messages to files in this directory. These files should be log rotated.
176 +| path|owner|permissions|Netdata|comments|
177 +|:---|:----|:----------|:------|:-------|
178 +| `/etc/netdata`|user `root`<br/>group `netdata`|dirs `0755`<br/>files `0640`|reads|**Netdata config files**<br/>may contain sensitive information, so group `netdata` is allowed to read them.|
179 +| `/usr/libexec/netdata`|user `root`<br/>group `root`|executable by anyone<br/>dirs `0755`<br/>files `0644` or `0755`|executes|**Netdata plugins**<br/>permissions depend on the file - not all of them should have the executable flag.<br/>there are a few plugins that run with escalated privileges (Linux capabilities or `setuid`) - these plugins should be executable only by group `netdata`.|
180 +| `/usr/share/netdata`|user `root`<br/>group `netdata`|readable by anyone<br/>dirs `0755`<br/>files `0644`|reads and sends over the network|**Netdata web static files**<br/>these files are sent over the network to anyone that has access to the Netdata web server. Netdata checks the ownership of these files (using settings at the `[web]` section of `netdata.conf`) and refuses to serve them if they are not properly owned. Symbolic links are not supported. Netdata also refuses to serve URLs with `..` in their name.|
181 +| `/var/cache/netdata`|user `netdata`<br/>group `netdata`|dirs `0750`<br/>files `0660`|reads, writes, creates, deletes|**Netdata ephemeral database files**<br/>Netdata stores its ephemeral real-time database here.|
182 +| `/var/lib/netdata`|user `netdata`<br/>group `netdata`|dirs `0750`<br/>files `0660`|reads, writes, creates, deletes|**Netdata permanent database files**<br/>Netdata stores here the registry data, health alarm log db, etc.|
183 +| `/var/log/netdata`|user `netdata`<br/>group `root`|dirs `0755`<br/>files `0644`|writes, creates|**Netdata log files**<br/>all the Netdata applications, logs their errors or other informational messages to files in this directory. These files should be log rotated.|
184
183 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fnetdata-security&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
185 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fnetdata-security&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/privacy-policy.md
+19 -18
@@ -6,7 +6,7 @@ This Privacy Policy explains the collection, use, processing, transferring and d
6
7 This Privacy Policy is incorporated into and made part of the Netdata Master Terms of Use (“Master Terms”) located [here](terms-of-use.md).
8
9 -Unless otherwise noted on a particular website or service hosted by Netdata, this Privacy Policy applies to your use of all websites that Netdata operates. These include https://my-netdata.io and https://netdata.cloud, together with all other subdomains thereof, (collectively, the “Websites”). This Privacy Policy also applies to all products, information, and services provided through the Websites, including without limitation the ND agent, the ND registry, the ND hub and the ND cloud website (together with the Websites, the “Services”).
9 +Unless otherwise noted on a particular website or service hosted by Netdata, this Privacy Policy applies to your use of all websites that Netdata operates. These include <https://my-netdata.io> and <https://netdata.cloud>, together with all other subdomains thereof, (collectively, the “Websites”). This Privacy Policy also applies to all products, information, and services provided through the Websites, including without limitation the ND agent, the ND registry, the ND hub and the ND cloud website (together with the Websites, the “Services”).
10
11 In addition, supplemental Privacy Policy terms (“Supplemental Privacy Policy Terms”) may apply to a particular Service. All such Supplemental Privacy Policy Terms will be accessible for you to read either within, or through your use of, that particular Service.
12
@@ -28,7 +28,7 @@ ND collects and uses personal information in the following ways:
28
29 Website and Analytics: When you visit our Websites and use our Services, ND collects some information about your activities through tools such as Google Analytics. The type of information that we collect focuses on general information such as country or city where you are located, pages visited, time spent on pages, heat-map of visitors’ activity on the site, information about the browser you are using, etc. ND collects and uses this information pursuant to our legitimate interest in enhancing the security and utility of our Services. The information we gather and process is used in the aggregate to spot trends without deliberately identifying individuals.
30
31 -Note that you can learn about Google’s practices in connection with its analytics services and how to opt out of it by downloading the Google Analytics opt-out browser add-on, available at https://tools.google.com/dlpage/gaoptout.
31 +Note that you can learn about Google’s practices in connection with its analytics services and how to opt out of it by downloading the Google Analytics opt-out browser add-on, available at <https://tools.google.com/dlpage/gaoptout>.
32
33 Information from Cookies: We and our service providers (for example, Google Analytics as described above) may collect information using cookies or similar technologies for the purposes described above and below. Cookies are pieces of information that are stored by your browser on the hard drive or memory of your computer or other Internet access device. Cookies may enable us to personalize your experience on the Services, maintain a persistent session, passively collect demographic information about your computer, and monitor advertisements and other activities. The Websites may use different kinds of cookies and other types of local storage (such as browser-based or plugin-based local storage).
34
@@ -37,22 +37,22 @@ The menu lists the Netdata servers you have visited. For example, when you jump
37 (like the currently viewed charts, the current zoom and pan operations on the charts, etc.) are propagated to the new server, so that the new dashboard will come with exactly the
38 same view. The global registry keeps track of 4 entities:
39
40 -1. **machines**: i.e. the Netdata installations (a random GUID generated by each Netdata the first time it starts; we call this **machine_guid**)
40 +1. **machines**: i.e. the Netdata installations (a random GUID generated by each Netdata the first time it starts; we call this **machine_guid**)
41
42 For each Netdata installation (each `machine_guid`) the registry keeps track of the different URLs it is accessed.
43
44 -2. **persons**: i.e. the web browsers accessing the Netdata installations (a random GUID generated by the registry the first time it sees a new web browser; we call this **person_guid**)
44 +2. **persons**: i.e. the web browsers accessing the Netdata installations (a random GUID generated by the registry the first time it sees a new web browser; we call this **person_guid**)
45
46 For each person, the registry keeps track of the Netdata installations it has accessed and their URLs.
47
48 -3. **URLs** of Netdata installations (as seen by the web browsers)
48 +3. **URLs** of Netdata installations (as seen by the web browsers)
49
50 - For each URL, the registry keeps the URL and nothing more. Each URL is linked to *persons* and *machines*. The only way to find a URL is to know its **machine_guid** or have a **person_guid** it is linked to it.
50 + For each URL, the registry keeps the URL and nothing more. Each URL is linked to _persons_ and _machines_. The only way to find a URL is to know its **machine_guid** or have a **person_guid** it is linked to it.
51
52 -4. **accounts**: i.e. the information used to sign-in via one of the available sign-in methods. Depending on the method, this may include an email, an email and a profile picture.
52 +4. **accounts**: i.e. the information used to sign-in via one of the available sign-in methods. Depending on the method, this may include an email, an email and a profile picture.
53
54 -For *persons*/*accounts* and *machines*, the registry keeps links to *URLs*, each link with 2 timestamps (first time seen, last time seen) and a counter (number of times it has been seen).
55 -*machines*, *persons*, and timestamps are stored in the Netdata registry regardless of whether you sign in or not.
54 +For _persons/accounts_ and _machines_, the registry keeps links to _URLs_, each link with 2 timestamps (first time seen, last time seen) and a counter (number of times it has been seen).
55 +_machines_, _persons_, and timestamps are stored in the Netdata registry regardless of whether you sign in or not.
56
57 If sending this information is against your policies, you can [run your own registry](../registry/#run-your-own-registry).
58 Note that ND versions with the 'Sign in' feature of the ND Cloud do not use the global registry.
@@ -60,18 +60,19 @@ Note that ND versions with the 'Sign in' feature of the ND Cloud do not use the
60 ND Cloud: When you sign up to obtain a user account via the 'Sign in' link on the ND agent user interface, ND is granted access to personal information in the user profile of the authentication provider you choose (e.g. GitHub or Google). ND collects and uses this personal information pursuant to its legitimate interest in establishing and maintaining your account providing you with the features we provide Registered Users. We may use your email address to contact you regarding changes to this policy or other applicable policies. The login name or email address of your profile may be used to attribute you in connection with any content you submit to any Service.
61
62 Anonymous Usage Statistics: From Netdata v1.12 and above, anonymous usage information is collected by default on certain events of the ND daemon and send to Google Analytics. Every time the daemon is started or stopped and every time a fatal condition is encountered, Netdata collects system information and sends it to GA via an http call. The information collected for all events is:
63 - - Netdata version
64 - - OS name, version, id, id_like
65 - - Kernel name, version, architecture
66 - - Virtualization technology
67 - - Containerization technology
68 -Furthermore, the FATAL event sends the Netdata process & thread info, along with the file, function and line of the fatal error.
63 +
64 +- Netdata version
65 +- OS name, version, id, id_like
66 +- Kernel name, version, architecture
67 +- Virtualization technology
68 +- Containerization technology
69 + Furthermore, the FATAL event sends the Netdata process & thread info, along with the file, function and line of the fatal error.
70
71 The statistics calculated from this information are used for:
72
72 -1. **Quality assurance**, to help us understand if Netdata behaves as expected and help us identify repeating issues for certain distributions or environment.
73 +1. **Quality assurance**, to help us understand if Netdata behaves as expected and help us identify repeating issues for certain distributions or environment.
74
74 -2. **Usage statistics**, to help us focus on the parts of Netdata that are used the most, or help us identify the extend our development decisions influence the community.
75 +2. **Usage statistics**, to help us focus on the parts of Netdata that are used the most, or help us identify the extend our development decisions influence the community.
76
77 To opt-out from sending anonymous statistics, you can create reate a file called `.opt-out-from-anonymous-statistics` under the user configuration directory (usually `/etc/netdata`).
78
@@ -125,4 +126,4 @@ We may occasionally update this Privacy Policy. When we do, we will provide you
126
127 Effective Date: 8 January 2019.
128
128 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fprivacy-policy&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
129 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fprivacy-policy&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/terms-of-use.md
+2 -2
@@ -5,7 +5,7 @@ Effective as of 09 Aug 2019
5
6 ## 1. General Information Regarding These Terms of Use
7
8 -Master terms: Welcome, and thank you for your interest in Netdata (“Netdata, Inc.” “ND,” “we,” “our,” or “us”). Unless otherwise noted on a particular site or service, these master terms of use (“Master Terms”) apply to your use of all of the websites that Netdata Corporation operates. These include https://my-netdata.io and https://netdata.cloud, together with all other subdomains thereof, (collectively, the “Websites”). The Master Terms also apply to all products, information, and services provided through the Websites, such as the NDID Login Service.
8 +Master terms: Welcome, and thank you for your interest in Netdata (“Netdata, Inc.” “ND,” “we,” “our,” or “us”). Unless otherwise noted on a particular site or service, these master terms of use (“Master Terms”) apply to your use of all of the websites that Netdata Corporation operates. These include <https://my-netdata.io> and <https://netdata.cloud>, together with all other subdomains thereof, (collectively, the “Websites”). The Master Terms also apply to all products, information, and services provided through the Websites, such as the NDID Login Service.
9
10 Additional terms: In addition to the Master Terms, your use of any Services may also be subject to specific terms applicable to a particular Service (“Additional Terms”). If there is any conflict between the Additional Terms and the Master Terms, then the Additional Terms apply in relation to the relevant Service.
11
@@ -158,4 +158,4 @@ Integration: These Master Terms and any applicable Additional Terms constitute t
158
159 Human-readable summary of Sec 15: If there is a lawsuit arising from these terms, it should be in Delaware and governed by Delaware law. We are glad you use our sites, but this agreement does not mean we are partners.
160
161 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fterms-of-use&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
161 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fterms-of-use&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/what-is-netdata.md
+209 -176
@@ -1,8 +1,8 @@
1 -# What is Netdata?
1 +# What is Netdata?
2
3 -[![Build Status](https://travis-ci.com/netdata/netdata.svg?branch=master)](https://travis-ci.com/netdata/netdata) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2231/badge)](https://bestpractices.coreinfrastructure.org/projects/2231) [![License: GPL v3+](https://img.shields.io/badge/License-GPL%20v3%2B-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Freadme&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
3 +[![Build Status](https://travis-ci.com/netdata/netdata.svg?branch=master)](https://travis-ci.com/netdata/netdata) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2231/badge)](https://bestpractices.coreinfrastructure.org/projects/2231) [![License: GPL v3+](https://img.shields.io/badge/License-GPL%20v3%2B-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Freadme&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
4
5 -[![Code Climate](https://codeclimate.com/github/netdata/netdata/badges/gpa.svg)](https://codeclimate.com/github/netdata/netdata) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a994873f30d045b9b4b83606c3eb3498)](https://www.codacy.com/app/netdata/netdata?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=netdata/netdata&amp;utm_campaign=Badge_Grade) [![LGTM C](https://img.shields.io/lgtm/grade/cpp/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:cpp) [![LGTM JS](https://img.shields.io/lgtm/grade/javascript/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:javascript) [![LGTM PYTHON](https://img.shields.io/lgtm/grade/python/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:python)
5 +[![Code Climate](https://codeclimate.com/github/netdata/netdata/badges/gpa.svg)](https://codeclimate.com/github/netdata/netdata) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a994873f30d045b9b4b83606c3eb3498)](https://www.codacy.com/app/netdata/netdata?utm_source=github.com&utm_medium=referral&utm_content=netdata/netdata&utm_campaign=Badge_Grade) [![LGTM C](https://img.shields.io/lgtm/grade/cpp/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:cpp) [![LGTM JS](https://img.shields.io/lgtm/grade/javascript/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:javascript) [![LGTM PYTHON](https://img.shields.io/lgtm/grade/python/g/netdata/netdata.svg?logo=lgtm)](https://lgtm.com/projects/g/netdata/netdata/context:python)
6
7 ---
8
@@ -22,9 +22,9 @@ The following animated image, shows the top part of a typical Netdata dashboard.
22
23 ![peek 2018-11-11 02-40](https://user-images.githubusercontent.com/2662304/48307727-9175c800-e55b-11e8-92d8-a581d60a4889.gif)
24
25 -*A typical Netdata dashboard, in 1:1 timing. Charts can be panned by dragging them, zoomed in/out with `SHIFT` + `mouse wheel`, an area can be selected for zoom-in with `SHIFT` + `mouse selection`. Netdata is highly interactive and **real-time**, optimized to get the work done!*
25 +_A typical Netdata dashboard, in 1:1 timing. Charts can be panned by dragging them, zoomed in/out with `SHIFT` + `mouse wheel`, an area can be selected for zoom-in with `SHIFT` + `mouse selection`. Netdata is highly interactive and **real-time**, optimized to get the work done!_
26
27 -> *We have a few online demos to experience it live: [https://www.netdata.cloud](https://www.netdata.cloud/#live-demo)*
27 +> _We have a few online demos to experience it live: [https://www.netdata.cloud](https://www.netdata.cloud/#live-demo)_
28
29 ## User base
30
@@ -36,16 +36,18 @@ You will find people working for **Amazon**, **Atos**, **Baidu**, **Cisco System
36 **Vimeo**, and many more!
37
38 ### Docker pulls
39 +
40 We provide docker images for the most common architectures. These are statistics reported by docker hub:
41
42 [![netdata/netdata (official)](https://img.shields.io/docker/pulls/netdata/netdata.svg?label=netdata/netdata+%28official%29)](https://hub.docker.com/r/netdata/netdata/) [![firehol/netdata (deprecated)](https://img.shields.io/docker/pulls/firehol/netdata.svg?label=firehol/netdata+%28deprecated%29)](https://hub.docker.com/r/firehol/netdata/) [![titpetric/netdata (donated)](https://img.shields.io/docker/pulls/titpetric/netdata.svg?label=titpetric/netdata+%28third+party%29)](https://hub.docker.com/r/titpetric/netdata/)
43
44 ### Registry
45 +
46 When you install multiple Netdata, they are integrated into **one distributed application**, via a [Netdata registry](../registry/#registry). This is a web browser feature and it allows us to count the number of unique users and unique Netdata servers installed. The following information comes from the global public Netdata registry we run:
47
48 [![User Base](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&label=user%20base&units=M&value_color=blue&precision=2&divide=1000000&v43)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![Monitored Servers](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&label=servers%20monitored&units=k&divide=1000&value_color=orange&precision=2&v43)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![Sessions Served](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&label=sessions%20served&units=M&value_color=yellowgreen&precision=2&divide=1000000&v43)](https://registry.my-netdata.io/#menu_netdata_submenu_registry)
49
48 -*in the last 24 hours:*<br/> [![New Users Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&after=-86400&options=unaligned&group=incremental-sum&label=new%20users%20today&units=null&value_color=blue&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![New Machines Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&group=incremental-sum&after=-86400&options=unaligned&label=servers%20added%20today&units=null&value_color=orange&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![Sessions Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&after=-86400&group=incremental-sum&options=unaligned&label=sessions%20served%20today&units=null&value_color=yellowgreen&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry)
50 +_in the last 24 hours:_<br/> [![New Users Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=persons&after=-86400&options=unaligned&group=incremental-sum&label=new%20users%20today&units=null&value_color=blue&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![New Machines Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_entries&dimensions=machines&group=incremental-sum&after=-86400&options=unaligned&label=servers%20added%20today&units=null&value_color=orange&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry) [![Sessions Today](https://registry.my-netdata.io/api/v1/badge.svg?chart=netdata.registry_sessions&after=-86400&group=incremental-sum&options=unaligned&label=sessions%20served%20today&units=null&value_color=yellowgreen&precision=0&v42)](https://registry.my-netdata.io/#menu_netdata_submenu_registry)
51
52 ## Why Netdata
53
@@ -53,25 +55,25 @@ Netdata has a quite different approach to monitoring.
55
56 Netdata is a monitoring agent you install on all your systems. It is:
57
56 -- a **metrics collector** - for system and application metrics (including web servers, databases, containers, etc)
57 -- a **time-series database** - all stored in memory (does not touch the disks while it runs)
58 -- a **metrics visualizer** - super fast, interactive, modern, optimized for anomaly detection
59 -- an **alarms notification engine** - an advanced watchdog for detecting performance and availability issues
58 +- a **metrics collector** - for system and application metrics (including web servers, databases, containers, etc)
59 +- a **time-series database** - all stored in memory (does not touch the disks while it runs)
60 +- a **metrics visualizer** - super fast, interactive, modern, optimized for anomaly detection
61 +- an **alarms notification engine** - an advanced watchdog for detecting performance and availability issues
62
63 All the above, are packaged together in a very flexible, extremely modular, distributed application.
64
65 This is how Netdata compares to other monitoring solutions:
66
65 -Netdata|others (open-source and commercial)
66 -:---:|:---:
67 -**High resolution metrics** (1s granularity)|Low resolution metrics (10s granularity at best)
68 -Monitors everything, **thousands of metrics per node**|Monitor just a few metrics
69 -UI is super fast, optimized for **anomaly detection**|UI is good for just an abstract view
70 -**Meaningful presentation**, to help you understand the metrics|You have to know the metrics before you start
71 -Install and get results **immediately**|Long preparation is required to get any useful results
72 -Use it for **troubleshooting** performance problems|Use them to get *statistics of past performance*
73 -**Kills the console** for tracing performance issues|The console is always required for troubleshooting
74 -Requires **zero dedicated resources**|Require large dedicated resources
67 +| Netdata | others (open-source and commercial)|
68 +|:-----:|:---------------------------------:|
69 +| **High resolution metrics** (1s granularity)|Low resolution metrics (10s granularity at best)|
70 +| Monitors everything, **thousands of metrics per node**|Monitor just a few metrics|
71 +| UI is super fast, optimized for **anomaly detection**|UI is good for just an abstract view|
72 +| **Meaningful presentation**, to help you understand the metrics|You have to know the metrics before you start|
73 +| Install and get results **immediately**|Long preparation is required to get any useful results|
74 +| Use it for **troubleshooting** performance problems|Use them to get *statistics of past performance*|
75 +| **Kills the console** for tracing performance issues|The console is always required for troubleshooting|
76 +| Requires **zero dedicated resources**|Require large dedicated resources|
77
78 Netdata is **open-source**, **free**, super **fast**, very **easy**, completely **open**, extremely **efficient**,
79 **flexible** and integrate-able.
@@ -87,14 +89,14 @@ Netdata is a highly efficient, highly modular, metrics management engine. Its lo
89
90 This is how it works:
91
90 -Function|Description|Documentation
91 -:---:|:---|:---:
92 -**Collect**|Multiple independent data collection workers are collecting metrics from their sources using the optimal protocol for each application and push the metrics to the database. Each data collection worker has lockless write access to the metrics it collects.|[`collectors`](../collectors/#data-collection-plugins)
93 -**Store**|Metrics are stored in RAM in a round robin database (ring buffer), using a custom made floating point number for minimal footprint.|[`database`](../database/#database)
94 -**Check**|A lockless independent watchdog is evaluating **health checks** on the collected metrics, triggers alarms, maintains a health transaction log and dispatches alarm notifications.|[`health`](../health/#health-monitoring)
95 -**Stream**|An lockless independent worker is streaming metrics, in full detail and in real-time, to remote Netdata servers, as soon as they are collected.|[`streaming`](../streaming/#streaming-and-replication)
96 -**Archive**|A lockless independent worker is down-sampling the metrics and pushes them to **backend** time-series databases.|[`backends`](../backends/)
97 -**Query**|Multiple independent workers are attached to the [internal web server](../web/server/#web-server), servicing API requests, including [data queries](../web/api/queries/#database-queries).|[`web/api`](../web/api/#api)
92 +|Function|Description|Documentation|
93 +|:------:|:----------|:-----------:|
94 +|**Collect**|Multiple independent data collection workers are collecting metrics from their sources using the optimal protocol for each application and push the metrics to the database. Each data collection worker has lockless write access to the metrics it collects.|[`collectors`](../collectors/#data-collection-plugins)|
95 +|**Store**|Metrics are stored in RAM in a round robin database (ring buffer), using a custom made floating point number for minimal footprint.|[`database`](../database/#database)|
96 +|**Check**|A lockless independent watchdog is evaluating **health checks** on the collected metrics, triggers alarms, maintains a health transaction log and dispatches alarm notifications.|[`health`](../health/#health-monitoring)|
97 +|**Stream**|An lockless independent worker is streaming metrics, in full detail and in real-time, to remote Netdata servers, as soon as they are collected.|[`streaming`](../streaming/#streaming-and-replication)|
98 +|**Archive**|A lockless independent worker is down-sampling the metrics and pushes them to **backend** time-series databases.|[`backends`](../backends/)|
99 +|**Query**|Multiple independent workers are attached to the [internal web server](../web/server/#web-server), servicing API requests, including [data queries](../web/api/queries/#database-queries).|[`web/api`](../web/api/#api)|
100
101 The result is a highly efficient, low latency system, supporting multiple readers and one writer on each metric.
102
@@ -105,7 +107,6 @@ Click it to to interact with it (it has direct links to documentation).
107
108 [![image](https://user-images.githubusercontent.com/43294513/60951037-8ba5d180-a2f8-11e9-906e-e27356f168bc.png)](https://my-netdata.io/infographic.html)
109
108 -
110 ## Features
111
112 ![finger-video](https://user-images.githubusercontent.com/2662304/48346998-96cf3180-e685-11e8-9f4e-059d23aa3aa5.gif)
@@ -113,31 +114,34 @@ Click it to to interact with it (it has direct links to documentation).
114 This is what you should expect from Netdata:
115
116 ### General
116 -- **1s granularity** - the highest possible resolution for all metrics.
117 -- **Unlimited metrics** - collects all the available metrics, the more the better.
118 -- **1% CPU utilization of a single core** - it is super fast, unbelievably optimized.
119 -- **A few MB of RAM** - by default it uses 25MB RAM. [You size it](../database).
120 -- **Zero disk I/O** - while it runs, it does not load or save anything (except `error` and `access` logs).
121 -- **Zero configuration** - auto-detects everything, it can collect up to 10000 metrics per server out of the box.
122 -- **Zero maintenance** - You just run it, it does the rest.
123 -- **Zero dependencies** - it is even its own web server, for its static web files and its web API (though its plugins may require additional libraries, depending on the applications monitored).
124 -- **Scales to infinity** - you can install it on all your servers, containers, VMs and IoTs. Metrics are not centralized by default, so there is no limit.
125 -- **Several operating modes** - Autonomous host monitoring (the default), headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations. Each node may have different metrics retention policy and run with or without health monitoring.
117 +
118 +- **1s granularity** - the highest possible resolution for all metrics.
119 +- **Unlimited metrics** - collects all the available metrics, the more the better.
120 +- **1% CPU utilization of a single core** - it is super fast, unbelievably optimized.
121 +- **A few MB of RAM** - by default it uses 25MB RAM. [You size it](../database).
122 +- **Zero disk I/O** - while it runs, it does not load or save anything (except `error` and `access` logs).
123 +- **Zero configuration** - auto-detects everything, it can collect up to 10000 metrics per server out of the box.
124 +- **Zero maintenance** - You just run it, it does the rest.
125 +- **Zero dependencies** - it is even its own web server, for its static web files and its web API (though its plugins may require additional libraries, depending on the applications monitored).
126 +- **Scales to infinity** - you can install it on all your servers, containers, VMs and IoTs. Metrics are not centralized by default, so there is no limit.
127 +- **Several operating modes** - Autonomous host monitoring (the default), headless data collector, forwarding proxy, store and forward proxy, central multi-host monitoring, in all possible configurations. Each node may have different metrics retention policy and run with or without health monitoring.
128
129 ### Health Monitoring & Alarms
128 -- **Sophisticated alerting** - comes with hundreds of alarms, **out of the box**! Supports dynamic thresholds, hysteresis, alarm templates, multiple role-based notification methods.
129 -- **Notifications**: [alerta.io](../health/notifications/alerta/), [amazon sns](../health/notifications/awssns/), [discordapp.com](../health/notifications/discord/), [email](../health/notifications/email/), [flock.com](../health/notifications/flock/), [irc](../health/notifications/irc/), [kavenegar.com](../health/notifications/kavenegar/), [messagebird.com](../health/notifications/messagebird/), [pagerduty.com](../health/notifications/pagerduty/), [prowl](../health/notifications/prowl/), [pushbullet.com](../health/notifications/pushbullet/), [pushover.net](../health/notifications/pushover/), [rocket.chat](../health/notifications/rocketchat/), [slack.com](../health/notifications/slack/), [smstools3](../health/notifications/smstools3/), [syslog](../health/notifications/syslog/), [telegram.org](../health/notifications/telegram/), [twilio.com](../health/notifications/twilio/), [web](../health/notifications/web/) and [custom notifications](../health/notifications/custom/).
130 +
131 +- **Sophisticated alerting** - comes with hundreds of alarms, **out of the box**! Supports dynamic thresholds, hysteresis, alarm templates, multiple role-based notification methods.
132 +- **Notifications**: [alerta.io](../health/notifications/alerta/), [amazon sns](../health/notifications/awssns/), [discordapp.com](../health/notifications/discord/), [email](../health/notifications/email/), [flock.com](../health/notifications/flock/), [irc](../health/notifications/irc/), [kavenegar.com](../health/notifications/kavenegar/), [messagebird.com](../health/notifications/messagebird/), [pagerduty.com](../health/notifications/pagerduty/), [prowl](../health/notifications/prowl/), [pushbullet.com](../health/notifications/pushbullet/), [pushover.net](../health/notifications/pushover/), [rocket.chat](../health/notifications/rocketchat/), [slack.com](../health/notifications/slack/), [smstools3](../health/notifications/smstools3/), [syslog](../health/notifications/syslog/), [telegram.org](../health/notifications/telegram/), [twilio.com](../health/notifications/twilio/), [web](../health/notifications/web/) and [custom notifications](../health/notifications/custom/).
133
134 ### Integrations
132 -- **time-series dbs** - can archive its metrics to **Graphite**, **OpenTSDB**, **Prometheus**, **AWS Kinesis**, **JSON document DBs**, in the same or lower resolution (lower: to prevent it from congesting these servers due to the amount of data collected). Netdata also supports **Prometheus remote write API** which allows storing metrics to **Elasticsearch**, **Gnocchi**, **InfluxDB**, **Kafka**, **PostgreSQL/TimescaleDB**, **Splunk**, **VictoriaMetrics** and a lot of other [storage providers](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage).
135 +
136 +- **time-series dbs** - can archive its metrics to **Graphite**, **OpenTSDB**, **Prometheus**, **AWS Kinesis**, **JSON document DBs**, in the same or lower resolution (lower: to prevent it from congesting these servers due to the amount of data collected). Netdata also supports **Prometheus remote write API** which allows storing metrics to **Elasticsearch**, **Gnocchi**, **InfluxDB**, **Kafka**, **PostgreSQL/TimescaleDB**, **Splunk**, **VictoriaMetrics** and a lot of other [storage providers](https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage).
137
138 ## Visualization
139
136 -- **Stunning interactive dashboards** - mouse, touchpad and touch-screen friendly in 2 themes: `slate` (dark) and `white`.
137 -- **Amazingly fast visualization** - responds to all queries in less than 1 ms per metric, even on low-end hardware.
138 -- **Visual anomaly detection** - the dashboards are optimized for detecting anomalies visually.
139 -- **Embeddable** - its charts can be embedded on your web pages, wikis and blogs. You can even use [Atlassian's Confluence as a monitoring dashboard](../web/gui/confluence/).
140 -- **Customizable** - custom dashboards can be built using simple HTML (no javascript necessary).
140 +- **Stunning interactive dashboards** - mouse, touchpad and touch-screen friendly in 2 themes: `slate` (dark) and `white`.
141 +- **Amazingly fast visualization** - responds to all queries in less than 1 ms per metric, even on low-end hardware.
142 +- **Visual anomaly detection** - the dashboards are optimized for detecting anomalies visually.
143 +- **Embeddable** - its charts can be embedded on your web pages, wikis and blogs. You can even use [Atlassian's Confluence as a monitoring dashboard](../web/gui/confluence/).
144 +- **Customizable** - custom dashboards can be built using simple HTML (no javascript necessary).
145
146 ### Positive and negative values
147
@@ -161,7 +165,7 @@ Charts on Netdata dashboards are synchronized to each other. There is no master
165
166 ![charts-are-synchronized](https://user-images.githubusercontent.com/2662304/48309003-b4fb3b80-e578-11e8-86f6-f505c7059c15.gif)
167
164 -*Charts are panned by dragging them with the mouse. Charts can be zoomed in/out with`SHIFT` + `mouse wheel` while the mouse pointer is over a chart.*
168 +_Charts are panned by dragging them with the mouse. Charts can be zoomed in/out with`SHIFT` + `mouse wheel` while the mouse pointer is over a chart._
169
170 > The visible time-frame (pan and zoom) is propagated from Netdata server to Netdata server, when navigating via the [node menu](../registry#registry).
171
@@ -171,196 +175,225 @@ To improve visual anomaly detection across charts, the user can highlight a time
175
176 ![highlighted-timeframe](https://user-images.githubusercontent.com/2662304/48311876-f9093300-e5ae-11e8-9c74-e3e291741990.gif)
177
174 -*A highlighted time-frame can be given by pressing `ALT` + `mouse selection` on any chart. Netdata will highlight the same range on all charts.*
178 +_A highlighted time-frame can be given by pressing `ALT` + `mouse selection` on any chart. Netdata will highlight the same range on all charts._
179
180 > Highlighted ranges are propagated from Netdata server to Netdata server, when navigating via the [node menu](../registry#registry).
181
178 -
182 ## What does it monitor
183
184 Netdata data collection is **extensible** - you can monitor anything you can get a metric for.
185 Its [Plugin API](../collectors/plugins.d/) supports all programing languages (anything can be a Netdata plugin, BASH, python, perl, node.js, java, Go, ruby, etc).
186
184 -- For better performance, most system related plugins (cpu, memory, disks, filesystems, networking, etc) have been written in `C`.
185 -- For faster development and easier contributions, most application related plugins (databases, web servers, etc) have been written in `python`.
187 +- For better performance, most system related plugins (cpu, memory, disks, filesystems, networking, etc) have been written in `C`.
188 +- For faster development and easier contributions, most application related plugins (databases, web servers, etc) have been written in `python`.
189
190 #### APM (Application Performance Monitoring)
188 -- **[statsd](../collectors/statsd.plugin/)** - Netdata is a fully featured statsd server.
189 -- **[Go expvar](../collectors/python.d.plugin/go_expvar/)** - collects metrics exposed by applications written in the Go programming language using the expvar package.
190 -- **[Spring Boot](../collectors/python.d.plugin/springboot/)** - monitors running Java Spring Boot applications that expose their metrics with the use of the Spring Boot Actuator included in Spring Boot library.
191 -- **[uWSGI](../collectors/python.d.plugin/uwsgi/)** - collects performance metrics from uWSGI applications.
191 +
192 +- **[statsd](../collectors/statsd.plugin/)** - Netdata is a fully featured statsd server.
193 +- **[Go expvar](../collectors/python.d.plugin/go_expvar/)** - collects metrics exposed by applications written in the Go programming language using the expvar package.
194 +- **[Spring Boot](../collectors/python.d.plugin/springboot/)** - monitors running Java Spring Boot applications that expose their metrics with the use of the Spring Boot Actuator included in Spring Boot library.
195 +- **[uWSGI](../collectors/python.d.plugin/uwsgi/)** - collects performance metrics from uWSGI applications.
196
197 #### System Resources
194 -- **[CPU Utilization](../collectors/proc.plugin/)** - total and per core CPU usage.
195 -- **[Interrupts](../collectors/proc.plugin/)** - total and per core CPU interrupts.
196 -- **[SoftIRQs](../collectors/proc.plugin/)** - total and per core SoftIRQs.
197 -- **[SoftNet](../collectors/proc.plugin/)** - total and per core SoftIRQs related to network activity.
198 -- **[CPU Throttling](../collectors/proc.plugin/)** - collects per core CPU throttling.
199 -- **[CPU Frequency](../collectors/proc.plugin/)** - collects the current CPU frequency.
200 -- **[CPU Idle](../collectors/proc.plugin/)** - collects the time spent per processor state.
201 -- **[IdleJitter](../collectors/idlejitter.plugin/)** - measures CPU latency.
202 -- **[Entropy](../collectors/proc.plugin/)** - random numbers pool, using in cryptography.
203 -- **[Interprocess Communication - IPC](../collectors/proc.plugin/)** - such as semaphores and semaphores arrays.
198 +
199 +- **[CPU Utilization](../collectors/proc.plugin/)** - total and per core CPU usage.
200 +- **[Interrupts](../collectors/proc.plugin/)** - total and per core CPU interrupts.
201 +- **[SoftIRQs](../collectors/proc.plugin/)** - total and per core SoftIRQs.
202 +- **[SoftNet](../collectors/proc.plugin/)** - total and per core SoftIRQs related to network activity.
203 +- **[CPU Throttling](../collectors/proc.plugin/)** - collects per core CPU throttling.
204 +- **[CPU Frequency](../collectors/proc.plugin/)** - collects the current CPU frequency.
205 +- **[CPU Idle](../collectors/proc.plugin/)** - collects the time spent per processor state.
206 +- **[IdleJitter](../collectors/idlejitter.plugin/)** - measures CPU latency.
207 +- **[Entropy](../collectors/proc.plugin/)** - random numbers pool, using in cryptography.
208 +- **[Interprocess Communication - IPC](../collectors/proc.plugin/)** - such as semaphores and semaphores arrays.
209
210 #### Memory
206 -- **[ram](../collectors/proc.plugin/)** - collects info about RAM usage.
207 -- **[swap](../collectors/proc.plugin/)** - collects info about swap memory usage.
208 -- **[available memory](../collectors/proc.plugin/)** - collects the amount of RAM available for userspace processes.
209 -- **[committed memory](../collectors/proc.plugin/)** - collects the amount of RAM committed to userspace processes.
210 -- **[Page Faults](../collectors/proc.plugin/)** - collects the system page faults (major and minor).
211 -- **[writeback memory](../collectors/proc.plugin/)** - collects the system dirty memory and writeback activity.
212 -- **[huge pages](../collectors/proc.plugin/)** - collects the amount of RAM used for huge pages.
213 -- **[KSM](../collectors/proc.plugin/)** - collects info about Kernel Same Merging (memory dedupper).
214 -- **[Numa](../collectors/proc.plugin/)** - collects Numa info on systems that support it.
215 -- **[slab](../collectors/proc.plugin/)** - collects info about the Linux kernel memory usage.
211 +
212 +- **[ram](../collectors/proc.plugin/)** - collects info about RAM usage.
213 +- **[swap](../collectors/proc.plugin/)** - collects info about swap memory usage.
214 +- **[available memory](../collectors/proc.plugin/)** - collects the amount of RAM available for userspace processes.
215 +- **[committed memory](../collectors/proc.plugin/)** - collects the amount of RAM committed to userspace processes.
216 +- **[Page Faults](../collectors/proc.plugin/)** - collects the system page faults (major and minor).
217 +- **[writeback memory](../collectors/proc.plugin/)** - collects the system dirty memory and writeback activity.
218 +- **[huge pages](../collectors/proc.plugin/)** - collects the amount of RAM used for huge pages.
219 +- **[KSM](../collectors/proc.plugin/)** - collects info about Kernel Same Merging (memory dedupper).
220 +- **[Numa](../collectors/proc.plugin/)** - collects Numa info on systems that support it.
221 +- **[slab](../collectors/proc.plugin/)** - collects info about the Linux kernel memory usage.
222
223 #### Disks
218 -- **[block devices](../collectors/proc.plugin/)** - per disk: I/O, operations, backlog, utilization, space, etc.
219 -- **[BCACHE](../collectors/proc.plugin/)** - detailed performance of SSD caching devices.
220 -- **[DiskSpace](../collectors/proc.plugin/)** - monitors disk space usage.
221 -- **[mdstat](../collectors/proc.plugin/)** - software RAID.
222 -- **[hddtemp](../collectors/python.d.plugin/hddtemp/)** - disk temperatures.
223 -- **[smartd](../collectors/python.d.plugin/smartd_log/)** - disk S.M.A.R.T. values.
224 -- **[device mapper](../collectors/proc.plugin/)** - naming disks.
225 -- **[Veritas Volume Manager](../collectors/proc.plugin/)** - naming disks.
226 -- **[megacli](../collectors/python.d.plugin/megacli/)** - adapter, physical drives and battery stats.
227 -- **[adaptec_raid](../collectors/python.d.plugin/adaptec_raid/)** - logical and physical devices health metrics.
228 -- **[ioping](../collectors/ioping.plugin/)** - to measure disk read/write latency.
224 +
225 +- **[block devices](../collectors/proc.plugin/)** - per disk: I/O, operations, backlog, utilization, space, etc.
226 +- **[BCACHE](../collectors/proc.plugin/)** - detailed performance of SSD caching devices.
227 +- **[DiskSpace](../collectors/proc.plugin/)** - monitors disk space usage.
228 +- **[mdstat](../collectors/proc.plugin/)** - software RAID.
229 +- **[hddtemp](../collectors/python.d.plugin/hddtemp/)** - disk temperatures.
230 +- **[smartd](../collectors/python.d.plugin/smartd_log/)** - disk S.M.A.R.T. values.
231 +- **[device mapper](../collectors/proc.plugin/)** - naming disks.
232 +- **[Veritas Volume Manager](../collectors/proc.plugin/)** - naming disks.
233 +- **[megacli](../collectors/python.d.plugin/megacli/)** - adapter, physical drives and battery stats.
234 +- **[adaptec_raid](../collectors/python.d.plugin/adaptec_raid/)** - logical and physical devices health metrics.
235 +- **[ioping](../collectors/ioping.plugin/)** - to measure disk read/write latency.
236
237 #### Filesystems
231 -- **[BTRFS](../collectors/proc.plugin/)** - detailed disk space allocation and usage.
232 -- **[Ceph](../collectors/python.d.plugin/ceph/)** - OSD usage, Pool usage, number of objects, etc.
233 -- **[NFS file servers and clients](../collectors/proc.plugin/)** - NFS v2, v3, v4: I/O, cache, read ahead, RPC calls
234 -- **[Samba](../collectors/python.d.plugin/samba/)** - performance metrics of Samba SMB2 file sharing.
235 -- **[ZFS](../collectors/proc.plugin/)** - detailed performance and resource usage.
238 +
239 +- **[BTRFS](../collectors/proc.plugin/)** - detailed disk space allocation and usage.
240 +- **[Ceph](../collectors/python.d.plugin/ceph/)** - OSD usage, Pool usage, number of objects, etc.
241 +- **[NFS file servers and clients](../collectors/proc.plugin/)** - NFS v2, v3, v4: I/O, cache, read ahead, RPC calls
242 +- **[Samba](../collectors/python.d.plugin/samba/)** - performance metrics of Samba SMB2 file sharing.
243 +- **[ZFS](../collectors/proc.plugin/)** - detailed performance and resource usage.
244
245 #### Networking
238 -- **[Network Stack](../collectors/proc.plugin/)** - everything about the networking stack (both IPv4 and IPv6 for all protocols: TCP, UDP, SCTP, UDPLite, ICMP, Multicast, Broadcast, etc), and all network interfaces (per interface: bandwidth, packets, errors, drops).
239 -- **[Netfilter](../collectors/proc.plugin/)** - everything about the netfilter connection tracker.
240 -- **[SynProxy](../collectors/proc.plugin/)** - collects performance data about the linux SYNPROXY (DDoS).
241 -- **[NFacct](../collectors/nfacct.plugin/)** - collects accounting data from iptables.
242 -- **[Network QoS](../collectors/tc.plugin/)** - the only tool that visualizes network `tc` classes in real-time
243 -- **[FPing](../collectors/fping.plugin/)** - to measure latency and packet loss between any number of hosts.
244 -- **[ISC dhcpd](../collectors/python.d.plugin/isc_dhcpd/)** - pools utilization, leases, etc.
245 -- **[AP](../collectors/charts.d.plugin/ap/)** - collects Linux access point performance data (`hostapd`).
246 -- **[SNMP](../collectors/node.d.plugin/snmp/)** - SNMP devices can be monitored too (although you will need to configure these).
247 -- **[port_check](../collectors/python.d.plugin/portcheck/)** - checks TCP ports for availability and response time.
246 +
247 +- **[Network Stack](../collectors/proc.plugin/)** - everything about the networking stack (both IPv4 and IPv6 for all protocols: TCP, UDP, SCTP, UDPLite, ICMP, Multicast, Broadcast, etc), and all network interfaces (per interface: bandwidth, packets, errors, drops).
248 +- **[Netfilter](../collectors/proc.plugin/)** - everything about the netfilter connection tracker.
249 +- **[SynProxy](../collectors/proc.plugin/)** - collects performance data about the linux SYNPROXY (DDoS).
250 +- **[NFacct](../collectors/nfacct.plugin/)** - collects accounting data from iptables.
251 +- **[Network QoS](../collectors/tc.plugin/)** - the only tool that visualizes network `tc` classes in real-time
252 +- **[FPing](../collectors/fping.plugin/)** - to measure latency and packet loss between any number of hosts.
253 +- **[ISC dhcpd](../collectors/python.d.plugin/isc_dhcpd/)** - pools utilization, leases, etc.
254 +- **[AP](../collectors/charts.d.plugin/ap/)** - collects Linux access point performance data (`hostapd`).
255 +- **[SNMP](../collectors/node.d.plugin/snmp/)** - SNMP devices can be monitored too (although you will need to configure these).
256 +- **[port_check](../collectors/python.d.plugin/portcheck/)** - checks TCP ports for availability and response time.
257
258 #### Virtual Private Networks
250 -- **[OpenVPN](../collectors/python.d.plugin/ovpn_status_log/)** - collects status per tunnel.
251 -- **[LibreSwan](../collectors/charts.d.plugin/libreswan/)** - collects metrics per IPSEC tunnel.
252 -- **[Tor](../collectors/python.d.plugin/tor/)** - collects Tor traffic statistics.
259 +
260 +- **[OpenVPN](../collectors/python.d.plugin/ovpn_status_log/)** - collects status per tunnel.
261 +- **[LibreSwan](../collectors/charts.d.plugin/libreswan/)** - collects metrics per IPSEC tunnel.
262 +- **[Tor](../collectors/python.d.plugin/tor/)** - collects Tor traffic statistics.
263
264 #### Processes
255 -- **[System Processes](../collectors/proc.plugin/)** - running, blocked, forks, active.
256 -- **[Applications](../collectors/apps.plugin/)** - by grouping the process tree and reporting CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets - per process group.
257 -- **[systemd](../collectors/cgroups.plugin/)** - monitors systemd services using CGROUPS.
265 +
266 +- **[System Processes](../collectors/proc.plugin/)** - running, blocked, forks, active.
267 +- **[Applications](../collectors/apps.plugin/)** - by grouping the process tree and reporting CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets - per process group.
268 +- **[systemd](../collectors/cgroups.plugin/)** - monitors systemd services using CGROUPS.
269
270 #### Users
260 -- **[Users and User Groups resource usage](../collectors/apps.plugin/)** - by summarizing the process tree per user and group, reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets
261 -- **[logind](../collectors/python.d.plugin/logind/)** - collects sessions, users and seats connected.
271 +
272 +- **[Users and User Groups resource usage](../collectors/apps.plugin/)** - by summarizing the process tree per user and group, reporting: CPU, memory, disk reads, disk writes, swap, threads, pipes, sockets
273 +- **[logind](../collectors/python.d.plugin/logind/)** - collects sessions, users and seats connected.
274
275 #### Containers and VMs
264 -- **[Containers](../collectors/cgroups.plugin/)** - collects resource usage for all kinds of containers, using CGROUPS (systemd-nspawn, lxc, lxd, docker, kubernetes, etc).
265 -- **[libvirt VMs](../collectors/cgroups.plugin/)** - collects resource usage for all kinds of VMs, using CGROUPS.
266 -- **[dockerd](../collectors/python.d.plugin/dockerd/)** - collects docker health metrics.
276 +
277 +- **[Containers](../collectors/cgroups.plugin/)** - collects resource usage for all kinds of containers, using CGROUPS (systemd-nspawn, lxc, lxd, docker, kubernetes, etc).
278 +- **[libvirt VMs](../collectors/cgroups.plugin/)** - collects resource usage for all kinds of VMs, using CGROUPS.
279 +- **[dockerd](../collectors/python.d.plugin/dockerd/)** - collects docker health metrics.
280
281 #### Web Servers
269 -- **[Apache and lighttpd](../collectors/python.d.plugin/apache/)** - `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers.
270 -- **[IPFS](../collectors/python.d.plugin/ipfs/)** - bandwidth, peers.
271 -- **[LiteSpeed](../collectors/python.d.plugin/litespeed/)** - reads the litespeed rtreport files to collect metrics.
272 -- **[Nginx](../collectors/python.d.plugin/nginx/)** - `stub-status`, for multiple servers.
273 -- **[Nginx+](../collectors/python.d.plugin/nginx_plus/)** - connects to multiple nginx_plus servers (local or remote) to collect real-time performance metrics.
274 -- **[PHP-FPM](../collectors/python.d.plugin/phpfpm/)** - multiple instances, each reporting connections, requests, performance, etc.
275 -- **[Tomcat](../collectors/python.d.plugin/tomcat/)** - accesses, threads, free memory, volume, etc.
276 -- **[web server `access.log` files](../collectors/python.d.plugin/web_log/)** - extracting in real-time, web server and proxy performance metrics and applying several health checks, etc.
277 -- **[HTTP check](../collectors/python.d.plugin/httpcheck/)** - checks one or more web servers for HTTP status code and returned content.
282 +
283 +- **[Apache and lighttpd](../collectors/python.d.plugin/apache/)** - `mod-status` (v2.2, v2.4) and cache log statistics, for multiple servers.
284 +- **[IPFS](../collectors/python.d.plugin/ipfs/)** - bandwidth, peers.
285 +- **[LiteSpeed](../collectors/python.d.plugin/litespeed/)** - reads the litespeed rtreport files to collect metrics.
286 +- **[Nginx](../collectors/python.d.plugin/nginx/)** - `stub-status`, for multiple servers.
287 +- **[Nginx+](../collectors/python.d.plugin/nginx_plus/)** - connects to multiple nginx_plus servers (local or remote) to collect real-time performance metrics.
288 +- **[PHP-FPM](../collectors/python.d.plugin/phpfpm/)** - multiple instances, each reporting connections, requests, performance, etc.
289 +- **[Tomcat](../collectors/python.d.plugin/tomcat/)** - accesses, threads, free memory, volume, etc.
290 +- **[web server `access.log` files](../collectors/python.d.plugin/web_log/)** - extracting in real-time, web server and proxy performance metrics and applying several health checks, etc.
291 +- **[HTTP check](../collectors/python.d.plugin/httpcheck/)** - checks one or more web servers for HTTP status code and returned content.
292
293 #### Proxies, Balancers, Accelerators
280 -- **[HAproxy](../collectors/python.d.plugin/haproxy/)** - bandwidth, sessions, backends, etc.
281 -- **[Squid](../collectors/python.d.plugin/squid/)** - multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests.
282 -- **[Traefik](../collectors/python.d.plugin/traefik/)** - connects to multiple traefik instances (local or remote) to collect API metrics (response status code, response time, average response time and server uptime).
283 -- **[Varnish](../collectors/python.d.plugin/varnish/)** - threads, sessions, hits, objects, backends, etc.
284 -- **[IPVS](../collectors/proc.plugin/)** - collects metrics from the Linux IPVS load balancer.
294 +
295 +- **[HAproxy](../collectors/python.d.plugin/haproxy/)** - bandwidth, sessions, backends, etc.
296 +- **[Squid](../collectors/python.d.plugin/squid/)** - multiple servers, each showing: clients bandwidth and requests, servers bandwidth and requests.
297 +- **[Traefik](../collectors/python.d.plugin/traefik/)** - connects to multiple traefik instances (local or remote) to collect API metrics (response status code, response time, average response time and server uptime).
298 +- **[Varnish](../collectors/python.d.plugin/varnish/)** - threads, sessions, hits, objects, backends, etc.
299 +- **[IPVS](../collectors/proc.plugin/)** - collects metrics from the Linux IPVS load balancer.
300
301 #### Database Servers
287 -- **[CouchDB](../collectors/python.d.plugin/couchdb/)** - reads/writes, request methods, status codes, tasks, replication, per-db, etc.
288 -- **[MemCached](../collectors/python.d.plugin/memcached/)** - multiple servers, each showing: bandwidth, connections, items, etc.
289 -- **[MongoDB](../collectors/python.d.plugin/mongodb/)** - operations, clients, transactions, cursors, connections, asserts, locks, etc.
290 -- **[MySQL and mariadb](../collectors/python.d.plugin/mysql/)** - multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues, tmp operations, connections, binlog metrics, threads, innodb metrics, and more.
291 -- **[PostgreSQL](../collectors/python.d.plugin/postgres/)** - multiple servers, each showing: per database statistics (connections, tuples read - written - returned, transactions, locks), backend processes, indexes, tables, write ahead, background writer and more.
292 -- **[Proxy SQL](../collectors/python.d.plugin/proxysql/)** - collects Proxy SQL backend and frontend performance metrics.
293 -- **[Redis](../collectors/python.d.plugin/redis/)** - multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves.
294 -- **[RethinkDB](../collectors/python.d.plugin/rethinkdbs/)** - connects to multiple rethinkdb servers (local or remote) to collect real-time metrics.
302 +
303 +- **[CouchDB](../collectors/python.d.plugin/couchdb/)** - reads/writes, request methods, status codes, tasks, replication, per-db, etc.
304 +- **[MemCached](../collectors/python.d.plugin/memcached/)** - multiple servers, each showing: bandwidth, connections, items, etc.
305 +- **[MongoDB](../collectors/python.d.plugin/mongodb/)** - operations, clients, transactions, cursors, connections, asserts, locks, etc.
306 +- **[MySQL and mariadb](../collectors/python.d.plugin/mysql/)** - multiple servers, each showing: bandwidth, queries/s, handlers, locks, issues, tmp operations, connections, binlog metrics, threads, innodb metrics, and more.
307 +- **[PostgreSQL](../collectors/python.d.plugin/postgres/)** - multiple servers, each showing: per database statistics (connections, tuples read - written - returned, transactions, locks), backend processes, indexes, tables, write ahead, background writer and more.
308 +- **[Proxy SQL](../collectors/python.d.plugin/proxysql/)** - collects Proxy SQL backend and frontend performance metrics.
309 +- **[Redis](../collectors/python.d.plugin/redis/)** - multiple servers, each showing: operations, hit rate, memory, keys, clients, slaves.
310 +- **[RethinkDB](../collectors/python.d.plugin/rethinkdbs/)** - connects to multiple rethinkdb servers (local or remote) to collect real-time metrics.
311
312 #### Message Brokers
297 -- **[beanstalkd](../collectors/python.d.plugin/beanstalk/)** - global and per tube monitoring.
298 -- **[RabbitMQ](../collectors/python.d.plugin/rabbitmq/)** - performance and health metrics.
313 +
314 +- **[beanstalkd](../collectors/python.d.plugin/beanstalk/)** - global and per tube monitoring.
315 +- **[RabbitMQ](../collectors/python.d.plugin/rabbitmq/)** - performance and health metrics.
316
317 #### Search and Indexing
301 -- **[ElasticSearch](../collectors/python.d.plugin/elasticsearch/)** - search and index performance, latency, timings, cluster statistics, threads statistics, etc.
318 +
319 +- **[ElasticSearch](../collectors/python.d.plugin/elasticsearch/)** - search and index performance, latency, timings, cluster statistics, threads statistics, etc.
320
321 #### DNS Servers
304 -- **[bind_rndc](../collectors/python.d.plugin/bind_rndc/)** - parses `named.stats` dump file to collect real-time performance metrics. All versions of bind after 9.6 are supported.
305 -- **[dnsdist](../collectors/python.d.plugin/dnsdist/)** - performance and health metrics.
306 -- **[ISC Bind (named)](../collectors/node.d.plugin/named/)** - multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics. All versions of bind after 9.9.10 are supported.
307 -- **[NSD](../collectors/python.d.plugin/nsd/)** - queries, zones, protocols, query types, transfers, etc.
308 -- **[PowerDNS](../collectors/python.d.plugin/powerdns/)** - queries, answers, cache, latency, etc.
309 -- **[unbound](../collectors/python.d.plugin/unbound/)** - performance and resource usage metrics.
310 -- **[dns_query_time](../collectors/python.d.plugin/dns_query_time/)** - DNS query time statistics.
322 +
323 +- **[bind_rndc](../collectors/python.d.plugin/bind_rndc/)** - parses `named.stats` dump file to collect real-time performance metrics. All versions of bind after 9.6 are supported.
324 +- **[dnsdist](../collectors/python.d.plugin/dnsdist/)** - performance and health metrics.
325 +- **[ISC Bind (named)](../collectors/node.d.plugin/named/)** - multiple servers, each showing: clients, requests, queries, updates, failures and several per view metrics. All versions of bind after 9.9.10 are supported.
326 +- **[NSD](../collectors/python.d.plugin/nsd/)** - queries, zones, protocols, query types, transfers, etc.
327 +- **[PowerDNS](../collectors/python.d.plugin/powerdns/)** - queries, answers, cache, latency, etc.
328 +- **[unbound](../collectors/python.d.plugin/unbound/)** - performance and resource usage metrics.
329 +- **[dns_query_time](../collectors/python.d.plugin/dns_query_time/)** - DNS query time statistics.
330
331 #### Time Servers
313 -- **[chrony](../collectors/python.d.plugin/chrony/)** - uses the `chronyc` command to collect chrony statistics (Frequency, Last offset, RMS offset, Residual freq, Root delay, Root dispersion, Skew, System time).
314 -- **[ntpd](../collectors/python.d.plugin/ntpd/)** - connects to multiple ntpd servers (local or remote) to provide statistics of system variables and optional also peer variables.
332 +
333 +- **[chrony](../collectors/python.d.plugin/chrony/)** - uses the `chronyc` command to collect chrony statistics (Frequency, Last offset, RMS offset, Residual freq, Root delay, Root dispersion, Skew, System time).
334 +- **[ntpd](../collectors/python.d.plugin/ntpd/)** - connects to multiple ntpd servers (local or remote) to provide statistics of system variables and optional also peer variables.
335
336 #### Mail Servers
317 -- **[Dovecot](../collectors/python.d.plugin/dovecot/)** - POP3/IMAP servers.
318 -- **[Exim](../collectors/python.d.plugin/exim/)** - message queue (emails queued).
319 -- **[Postfix](../collectors/python.d.plugin/postfix/)** - message queue (entries, size).
337 +
338 +- **[Dovecot](../collectors/python.d.plugin/dovecot/)** - POP3/IMAP servers.
339 +- **[Exim](../collectors/python.d.plugin/exim/)** - message queue (emails queued).
340 +- **[Postfix](../collectors/python.d.plugin/postfix/)** - message queue (entries, size).
341
342 #### Hardware Sensors
322 -- **[IPMI](../collectors/freeipmi.plugin/)** - enterprise hardware sensors and events.
323 -- **[lm-sensors](../collectors/python.d.plugin/sensors/)** - temperature, voltage, fans, power, humidity, etc.
324 -- **[Nvidia](../collectors/python.d.plugin/nvidia_smi/)** - collects information for Nvidia GPUs.
325 -- **[RPi](../collectors/charts.d.plugin/sensors/)** - Raspberry Pi temperature sensors.
326 -- **[w1sensor](../collectors/python.d.plugin/w1sensor/)** - collects data from connected 1-Wire sensors.
343 +
344 +- **[IPMI](../collectors/freeipmi.plugin/)** - enterprise hardware sensors and events.
345 +- **[lm-sensors](../collectors/python.d.plugin/sensors/)** - temperature, voltage, fans, power, humidity, etc.
346 +- **[Nvidia](../collectors/python.d.plugin/nvidia_smi/)** - collects information for Nvidia GPUs.
347 +- **[RPi](../collectors/charts.d.plugin/sensors/)** - Raspberry Pi temperature sensors.
348 +- **[w1sensor](../collectors/python.d.plugin/w1sensor/)** - collects data from connected 1-Wire sensors.
349
350 #### UPSes
329 -- **[apcupsd](../collectors/charts.d.plugin/apcupsd/)** - load, charge, battery voltage, temperature, utility metrics, output metrics
330 -- **[NUT](../collectors/charts.d.plugin/nut/)** - load, charge, battery voltage, temperature, utility metrics, output metrics
331 -- **[Linux Power Supply](../collectors/proc.plugin/)** - collects metrics reported by power supply drivers on Linux.
351 +
352 +- **[apcupsd](../collectors/charts.d.plugin/apcupsd/)** - load, charge, battery voltage, temperature, utility metrics, output metrics
353 +- **[NUT](../collectors/charts.d.plugin/nut/)** - load, charge, battery voltage, temperature, utility metrics, output metrics
354 +- **[Linux Power Supply](../collectors/proc.plugin/)** - collects metrics reported by power supply drivers on Linux.
355
356 #### Social Sharing Servers
334 -- **[RetroShare](../collectors/python.d.plugin/retroshare/)** - connects to multiple retroshare servers (local or remote) to collect real-time performance metrics.
357 +
358 +- **[RetroShare](../collectors/python.d.plugin/retroshare/)** - connects to multiple retroshare servers (local or remote) to collect real-time performance metrics.
359
360 #### Security
337 -- **[Fail2Ban](../collectors/python.d.plugin/fail2ban/)** - monitors the fail2ban log file to check all bans for all active jails.
361 +
362 +- **[Fail2Ban](../collectors/python.d.plugin/fail2ban/)** - monitors the fail2ban log file to check all bans for all active jails.
363
364 #### Authentication, Authorization, Accounting (AAA, RADIUS, LDAP) Servers
340 -- **[FreeRadius](../collectors/python.d.plugin/freeradius/)** - uses the `radclient` command to provide freeradius statistics (authentication, accounting, proxy-authentication, proxy-accounting).
365 +
366 +- **[FreeRadius](../collectors/python.d.plugin/freeradius/)** - uses the `radclient` command to provide freeradius statistics (authentication, accounting, proxy-authentication, proxy-accounting).
367
368 #### Telephony Servers
343 -- **[opensips](../collectors/charts.d.plugin/opensips/)** - connects to an opensips server (localhost only) to collect real-time performance metrics.
369 +
370 +- **[opensips](../collectors/charts.d.plugin/opensips/)** - connects to an opensips server (localhost only) to collect real-time performance metrics.
371
372 #### Household Appliances
346 -- **[SMA webbox](../collectors/node.d.plugin/sma_webbox/)** - connects to multiple remote SMA webboxes to collect real-time performance metrics of the photovoltaic (solar) power generation.
347 -- **[Fronius](../collectors/node.d.plugin/fronius/)** - connects to multiple remote Fronius Symo servers to collect real-time performance metrics of the photovoltaic (solar) power generation.
348 -- **[StiebelEltron](../collectors/node.d.plugin/stiebeleltron/)** - collects the temperatures and other metrics from your Stiebel Eltron heating system using their Internet Service Gateway (ISG web).
373 +
374 +- **[SMA webbox](../collectors/node.d.plugin/sma_webbox/)** - connects to multiple remote SMA webboxes to collect real-time performance metrics of the photovoltaic (solar) power generation.
375 +- **[Fronius](../collectors/node.d.plugin/fronius/)** - connects to multiple remote Fronius Symo servers to collect real-time performance metrics of the photovoltaic (solar) power generation.
376 +- **[StiebelEltron](../collectors/node.d.plugin/stiebeleltron/)** - collects the temperatures and other metrics from your Stiebel Eltron heating system using their Internet Service Gateway (ISG web).
377
378 #### Game Servers
351 -- **[SpigotMC](../collectors/python.d.plugin/spigotmc/)** - monitors Spigot Minecraft server ticks per second and number of online players using the Minecraft remote console.
379 +
380 +- **[SpigotMC](../collectors/python.d.plugin/spigotmc/)** - monitors Spigot Minecraft server ticks per second and number of online players using the Minecraft remote console.
381
382 #### Distributed Computing
354 -- **[BOINC](../collectors/python.d.plugin/boinc/)** - monitors task states for local and remote BOINC client software using the remote GUI RPC interface. Also provides alarms for a handful of error conditions.
383 +
384 +- **[BOINC](../collectors/python.d.plugin/boinc/)** - monitors task states for local and remote BOINC client software using the remote GUI RPC interface. Also provides alarms for a handful of error conditions.
385
386 #### Media Streaming Servers
357 -- **[IceCast](../collectors/python.d.plugin/icecast/)** - collects the number of listeners for active sources.
387 +
388 +- **[IceCast](../collectors/python.d.plugin/icecast/)** - collects the number of listeners for active sources.
389
390 ### Monitoring Systems
360 -- **[Monit](../collectors/python.d.plugin/monit/)** - collects metrics about monit targets (filesystems, applications, networks).
391 +
392 +- **[Monit](../collectors/python.d.plugin/monit/)** - collects metrics about monit targets (filesystems, applications, networks).
393
394 #### Provisioning Systems
363 -- **[Puppet](../collectors/python.d.plugin/puppet/)** - connects to multiple Puppet Server and Puppet DB instances (local or remote) to collect real-time status metrics.
395 +
396 +- **[Puppet](../collectors/python.d.plugin/puppet/)** - connects to multiple Puppet Server and Puppet DB instances (local or remote) to collect real-time status metrics.
397
398 You can easily extend Netdata, by writing plugins that collect data from any source, using any computer language.
399
@@ -372,14 +405,14 @@ To report bugs, or get help, use [GitHub Issues](https://github.com/netdata/netd
405
406 You can also find Netdata on:
407
375 -- [Facebook](https://www.facebook.com/linuxnetdata/)
376 -- [Twitter](https://twitter.com/linuxnetdata)
377 -- [OpenHub](https://www.openhub.net/p/netdata)
378 -- [Repology](https://repology.org/metapackage/netdata/versions)
379 -- [StackShare](https://stackshare.io/netdata)
408 +- [Facebook](https://www.facebook.com/linuxnetdata/)
409 +- [Twitter](https://twitter.com/linuxnetdata)
410 +- [OpenHub](https://www.openhub.net/p/netdata)
411 +- [Repology](https://repology.org/metapackage/netdata/versions)
412 +- [StackShare](https://stackshare.io/netdata)
413
414 ## License
415
416 Netdata is [GPLv3+](../LICENSE).
417
385 -Netdata re-distributes other open-source tools and libraries. Please check the [third party licenses](../REDISTRIBUTED.md).
\ No newline at end of file
418 +Netdata re-distributes other open-source tools and libraries. Please check the [third party licenses](../REDISTRIBUTED.md).
docs/why-netdata/1s-granularity.md
+11 -10
@@ -4,9 +4,9 @@ High resolution metrics are required to effectively monitor and troubleshoot sys
4
5 ## Why?
6
7 -- The world is going real-time. Today, customer experience is significantly affected by response time, so SLAs are tighter than ever before. It is just not practical to monitor a 2-second SLA with 10-second metrics.
7 +- The world is going real-time. Today, customer experience is significantly affected by response time, so SLAs are tighter than ever before. It is just not practical to monitor a 2-second SLA with 10-second metrics.
8
9 -- IT goes virtual. Unlike real hardware, virtual environments are not linear, nor predictable. You cannot expect resources to be available when your applications need them. They will eventually be, but not exactly at the time they are needed. The latency of virtual environments is affected by many factors, most of which are outside our control, like: the maintenance policy of the hosting provider, the work load of third party virtual machines running on the same physical servers combined with the resource allocation and throttling policy among virtual machines, the provisioning system of the hosting provider, etc.
9 +- IT goes virtual. Unlike real hardware, virtual environments are not linear, nor predictable. You cannot expect resources to be available when your applications need them. They will eventually be, but not exactly at the time they are needed. The latency of virtual environments is affected by many factors, most of which are outside our control, like: the maintenance policy of the hosting provider, the work load of third party virtual machines running on the same physical servers combined with the resource allocation and throttling policy among virtual machines, the provisioning system of the hosting provider, etc.
10
11 ## What do others do?
12
@@ -16,9 +16,9 @@ They want to, but they can't, at least not massively.
16
17 The reasons lie in their design decisions:
18
19 -1. Time-series databases (prometheus, graphite, opentsdb, influxdb, etc) centralize all the metrics. At scale, these databases can easily become the bottleneck of the whole infrastructure.
19 +1. Time-series databases (prometheus, graphite, opentsdb, influxdb, etc) centralize all the metrics. At scale, these databases can easily become the bottleneck of the whole infrastructure.
20
21 -2. SaaS providers base their business models on centralizing all the metrics. On top of the time-series database bottleneck they also have increased bandwidth costs. So, massively supporting high resolution metrics, destroys their business model.
21 +2. SaaS providers base their business models on centralizing all the metrics. On top of the time-series database bottleneck they also have increased bandwidth costs. So, massively supporting high resolution metrics, destroys their business model.
22
23 Of course, since a couple of decades the world has fixed this kind of scaling problems: instead of scaling up, scale out, horizontally. That is, instead of investing on bigger and bigger central components, decentralize the application so that it can scale by adding more smaller nodes to it.
24
@@ -30,9 +30,9 @@ Finally, per second data collection is a lot harder. Busy virtual environments h
30
31 So, the monitoring industry fails to massively provide high resolution metrics, mainly for 3 reasons:
32
33 -1. Centralization of metrics makes monitoring cost inefficient at that rate.
34 -2. Data collection needs optimization, otherwise it will significantly affect the monitored systems.
35 -3. Data collection is a lot harder, especially on busy virtual environments.
33 +1. Centralization of metrics makes monitoring cost inefficient at that rate.
34 +2. Data collection needs optimization, otherwise it will significantly affect the monitored systems.
35 +3. Data collection is a lot harder, especially on busy virtual environments.
36
37 ## What does Netdata do differently?
38
@@ -45,9 +45,10 @@ To eliminate the error introduced by data collection latencies on busy virtual e
45 Finally, Netdata is really fast. Optimization is a core product feature. On modern hardware, Netdata can collect metrics with a rate of above 1M metrics per second per core (this includes everything, parsing data sources, interpolating data, storing data in the time series database, etc). So, for a few thousands metrics per second per node, Netdata needs negligible CPU resources (just 1-2% of a single core).
46
47 Netdata has been designed to:
48 -- Solve the centralization problem of monitoring
49 -- Replace the console for performance troubleshooting.
48 +
49 +- Solve the centralization problem of monitoring
50 +- Replace the console for performance troubleshooting.
51
52 So, for Netdata 1s granularity is easy, the natural outcome...
53
53 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2F1s-granularity&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
54 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2F1s-granularity&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/why-netdata/README.md
+9 -9
@@ -6,25 +6,25 @@
6
7 Netdata is built around 4 principles:
8
9 -1. **[Per second data collection for all metrics.](1s-granularity.md)**
9 +1. **[Per second data collection for all metrics.](1s-granularity.md)**
10
11 - *It is impossible to monitor a 2 second SLA, with 10 second metrics.*
11 + _It is impossible to monitor a 2 second SLA, with 10 second metrics._
12
13 -2. **[Collect and visualize all the metrics from all possible sources.](unlimited-metrics.md)**
13 +2. **[Collect and visualize all the metrics from all possible sources.](unlimited-metrics.md)**
14
15 - *To troubleshoot slowdowns, we need all the available metrics. The console should not provide more metrics.*
15 + _To troubleshoot slowdowns, we need all the available metrics. The console should not provide more metrics._
16
17 -3. **[Meaningful presentation, optimized for visual anomaly detection.](meaningful-presentation.md)**
17 +3. **[Meaningful presentation, optimized for visual anomaly detection.](meaningful-presentation.md)**
18
19 - *Metrics are a lot more than name-value pairs over time. The monitoring tool should know all the metrics. Users should not!*
19 + _Metrics are a lot more than name-value pairs over time. The monitoring tool should know all the metrics. Users should not!_
20
21 -4. **[Immediate results, just install and use.](immediate-results.md)**
21 +4. **[Immediate results, just install and use.](immediate-results.md)**
22
23 - *Most of our infrastructure is standardized. There is no point to configure everything metric by metric.*
23 + _Most of our infrastructure is standardized. There is no point to configure everything metric by metric._
24
25 Unlike other monitoring solutions that focus on metrics visualization,
26 Netdata's helps us troubleshoot slowdowns without touching the console.
27
28 So, everything is a bit different.
29
30 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FWhy-Netdata&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
30 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2FWhy-Netdata&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/why-netdata/immediate-results.md
+12 -12
@@ -1,7 +1,7 @@
1 # Immediate results
2
3 Most of our infrastructure is based on standardized systems and applications.
4 -
4 +
5 It is a tremendous waste of time and effort, in a global scale, to require from all users to configure their infrastructure dashboards and alarms metric by metric.
6
7 ## Why?
@@ -22,20 +22,20 @@ Monitoring SaaS providers offer a very basic set of pre-configured metrics, dash
22
23 ## What does Netdata do?
24
25 -1. Metrics are auto-detected, so for 99% of the cases data collection works out of the box.
26 -2. Metrics are converted to human readable units, right after data collection, before storing them into the database.
27 -3. Metrics are structured, organized in charts, families and applications, so that they can be browsed.
28 -4. Dashboards are automatically generated, so all metrics are available for exploration immediately after installation.
29 -5. Dashboards are not just visualizing metrics; they are a tool, optimized for visual anomaly detection.
30 -6. Hundreds of pre-configured alarm templates are automatically attached to collected metrics.
25 +1. Metrics are auto-detected, so for 99% of the cases data collection works out of the box.
26 +2. Metrics are converted to human readable units, right after data collection, before storing them into the database.
27 +3. Metrics are structured, organized in charts, families and applications, so that they can be browsed.
28 +4. Dashboards are automatically generated, so all metrics are available for exploration immediately after installation.
29 +5. Dashboards are not just visualizing metrics; they are a tool, optimized for visual anomaly detection.
30 +6. Hundreds of pre-configured alarm templates are automatically attached to collected metrics.
31
32 The result is that Netdata can be used immediately after installation!
33
34 Netdata:
35
36 -- Helps engineers understand and learn what the metrics are.
37 -- Does not require any configuration. Of course there are thousands of options to tweak, but the defaults are pretty good for most systems.
38 -- Does not introduce any query languages or any other technology to be learned. Of course some familiarity with the tool is required, but nothing too complicated.
39 -- Includes all the community expertise and experience for monitoring systems and applications.
36 +- Helps engineers understand and learn what the metrics are.
37 +- Does not require any configuration. Of course there are thousands of options to tweak, but the defaults are pretty good for most systems.
38 +- Does not introduce any query languages or any other technology to be learned. Of course some familiarity with the tool is required, but nothing too complicated.
39 +- Includes all the community expertise and experience for monitoring systems and applications.
40
41 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2Fimmediate-results&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
41 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2Fimmediate-results&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/why-netdata/meaningful-presentation.md
+13 -13
@@ -15,20 +15,20 @@ The result is that for most of the world, monitoring sucks. It is incomplete, in
15 But even if all the metrics are collected, an even bigger challenge is revealed: What to do with them? How to use them?
16
17 The existing monitoring solutions, assume the engineers will:
18 -
19 -- Design dashboards
20 -- Configure alarms
21 -- Use a query language to investigate issues
18 +
19 +- Design dashboards
20 +- Configure alarms
21 +- Use a query language to investigate issues
22
23 However, all these have to be configured metric by metric.
24
25 The monitoring industry believes there is this "IT Operations Hero", a person combining these abilities:
26
27 -1. Has a deep understanding of IT architectures and is a skillful SysAdmin.
28 -2. Is a superb Network Administrator (can even read and understand the Linux kernel networking stack).
29 -3. Is a exceptional database administrator.
30 -4. Is fluent in software engineering, capable of understanding the internal workings of applications.
31 -5. Masters Data Science, statistical algorithms and is fluent in writing advanced mathematical queries to reveal the meaning of metrics.
27 +1. Has a deep understanding of IT architectures and is a skillful SysAdmin.
28 +2. Is a superb Network Administrator (can even read and understand the Linux kernel networking stack).
29 +3. Is a exceptional database administrator.
30 +4. Is fluent in software engineering, capable of understanding the internal workings of applications.
31 +5. Masters Data Science, statistical algorithms and is fluent in writing advanced mathematical queries to reveal the meaning of metrics.
32
33 Of course this person does not exist!
34
@@ -46,11 +46,11 @@ So, they collect very limited metrics. Basic dashboards can be created with thes
46
47 In Netdata, the meaning of metrics is incorporated into the database:
48
49 -1. all metrics are converted and stored to human-friendly units. This is a data-collection process, not a visualization process. For example, cpu utilization in Netdata is stored as percentage, not as kernel ticks.
49 +1. all metrics are converted and stored to human-friendly units. This is a data-collection process, not a visualization process. For example, cpu utilization in Netdata is stored as percentage, not as kernel ticks.
50
51 -2. all metrics are organized into human-friendly charts, sharing the same context and units (similar to what other monitoring solutions call `cardinality`). So, when Netdata developer collect metrics, they configure the correlation of the metrics right in data collection, which is stored in the database too.
51 +2. all metrics are organized into human-friendly charts, sharing the same context and units (similar to what other monitoring solutions call `cardinality`). So, when Netdata developer collect metrics, they configure the correlation of the metrics right in data collection, which is stored in the database too.
52
53 -3. all charts are then organized in families, and chart families are organized in applications. These structures are responsible for providing the menu at the right side of Netdata dashboards for exploring the whole database.
53 +3. all charts are then organized in families, and chart families are organized in applications. These structures are responsible for providing the menu at the right side of Netdata dashboards for exploring the whole database.
54
55 The result is a system that can be browsed by humans, even if the database has 100,000 unique metrics. It is pretty natural for everyone to browse them, understand their meaning and their scope.
56
@@ -60,4 +60,4 @@ But it simplifies everything else. Data collection, metrics database and visuali
60
61 Netdata goes a step further, by enriching the dashboard with information that is useful for most people. So, to improve clarity and help users be more effective, Netdata includes right in the dashboard the community knowledge and expertise about the metrics. So, that Netdata users can focus on solving their infrastructure problem, not on the technicalities of data collection and visualization.
62
63 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2Fmeaningful-presentation&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
63 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2Fmeaningful-presentation&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
docs/why-netdata/unlimited-metrics.md
+6 -6
@@ -10,8 +10,8 @@ Unfortunately, this does not work! Filtering out most metrics is like reading a
10
11 For many people, monitoring is about:
12
13 -- Detecting outages
14 -- Capacity planning
13 +- Detecting outages
14 +- Capacity planning
15
16 However, **slowdowns are 10 times more common** compared to outages (check slide 14 of [Online Performance is Business Performance ](https://www.slideshare.net/KenGodskind/alertsitetrac) reported by Trac Research/AlertSite). Designing a monitoring system targeting only outages and capacity planning solves just a tiny part of the operational problems we face. Check also [Downtime vs. Slowtime: Which Hurts More?](https://dzone.com/articles/downtime-vs-slowtime-which-hurts-more).
17
@@ -29,9 +29,9 @@ So, why do monitoring solutions and SaaS providers filter out metrics?
29
30 They can't do otherwise!
31
32 -1. Centralization of metrics depends on metrics filtering, to control monitoring costs. Time-series databases limit the number of metrics collected, because the number of metrics influences their performance significantly. They get congested at scale.
33 -2. It is a lot easier to provide an illusion of monitoring by using a few basic metrics.
34 -3. Troubleshooting slowdowns is the hardest IT problem to solve, so most solutions just avoid it.
32 +1. Centralization of metrics depends on metrics filtering, to control monitoring costs. Time-series databases limit the number of metrics collected, because the number of metrics influences their performance significantly. They get congested at scale.
33 +2. It is a lot easier to provide an illusion of monitoring by using a few basic metrics.
34 +3. Troubleshooting slowdowns is the hardest IT problem to solve, so most solutions just avoid it.
35
36 ## What does Netdata do?
37
@@ -41,4 +41,4 @@ Due to Netdata's distributed nature, the number of metrics collected does not ha
41
42 Of course, since Netdata is also about [meaningful presentation](meaningful-presentation.md), the number of metrics makes Netdata development slower. We, the Netdata developers, need to have a good understanding of the metrics before adding them into Netdata. We need to organize the metrics, add information related to them, configure alarms for them, so that you, the Netdata users, will have the best out-of-the-box experience and all the information required to kill the console for troubleshooting slowdowns.
43
44 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2Funlimited-metrics&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
44 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fdocs%2Fwhy-netdata%2Funlimited-metrics&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/README.md
+97 -93
@@ -38,11 +38,11 @@ killall -USR2 netdata
38
39 There are 2 entities:
40
41 -1. **alarms**, which are attached to specific charts, and
41 +1. **alarms**, which are attached to specific charts, and
42
43 -1. **templates**, which define rules that should be applied to all charts having a
44 - specific `context`. You can use this feature to apply **alarms** to all disks,
45 - all network interfaces, all mysql databases, all nginx web servers, etc.
43 +2. **templates**, which define rules that should be applied to all charts having a
44 + specific `context`. You can use this feature to apply **alarms** to all disks,
45 + all network interfaces, all mysql databases, all nginx web servers, etc.
46
47 Both of these entities have exactly the same format and feature set.
48 The only difference is the label `alarm` or `template`.
@@ -168,27 +168,27 @@ lookup: METHOD AFTER [at BEFORE] [every DURATION] [OPTIONS] [of DIMENSIONS]
168
169 Everything is the same with [badges](../web/api/badges/). In short:
170
171 -- `METHOD` is one of `average`, `min`, `max`, `sum`, `incremental-sum`.
172 - This is required.
171 +- `METHOD` is one of `average`, `min`, `max`, `sum`, `incremental-sum`.
172 + This is required.
173
174 -- `AFTER` is a relative number of seconds, but it also accepts a single letter for changing
175 - the units, like `-1s` = 1 second in the past, `-1m` = 1 minute in the past, `-1h` = 1 hour
176 - in the past, `-1d` = 1 day in the past. You need a negative number (i.e. how far in the past
177 - to look for the value). **This is required**.
174 +- `AFTER` is a relative number of seconds, but it also accepts a single letter for changing
175 + the units, like `-1s` = 1 second in the past, `-1m` = 1 minute in the past, `-1h` = 1 hour
176 + in the past, `-1d` = 1 day in the past. You need a negative number (i.e. how far in the past
177 + to look for the value). **This is required**.
178
179 -- `at BEFORE` is by default 0 and is not required. Using this you can define the end of the
180 - lookup. So data will be evaluated between `AFTER` and `BEFORE`.
179 +- `at BEFORE` is by default 0 and is not required. Using this you can define the end of the
180 + lookup. So data will be evaluated between `AFTER` and `BEFORE`.
181
182 -- `every DURATION` sets the updated frequency of the lookup (supports single letter units as
183 - above too).
182 +- `every DURATION` sets the updated frequency of the lookup (supports single letter units as
183 + above too).
184
185 -- `OPTIONS` is a space separated list of `percentage`, `absolute`, `min2max`, `unaligned`,
186 - `match-ids`, `match-names`. Check the badges documentation for more info.
185 +- `OPTIONS` is a space separated list of `percentage`, `absolute`, `min2max`, `unaligned`,
186 + `match-ids`, `match-names`. Check the badges documentation for more info.
187
188 -- `of DIMENSIONS` is optional and has to be the last parameter. Dimensions have to be separated
189 - by `,` or `|`. The space characters found in dimensions will be kept as-is (a few dimensions
190 - have spaces in their names). This accepts Netdata simple patterns and the `match-ids` and
191 - `match-names` options affect the searches for dimensions.
188 +- `of DIMENSIONS` is optional and has to be the last parameter. Dimensions have to be separated
189 + by `,` or `|`. The space characters found in dimensions will be kept as-is (a few dimensions
190 + have spaces in their names). This accepts Netdata simple patterns and the `match-ids` and
191 + `match-names` options affect the searches for dimensions.
192
193 The result of the lookup will be available as `$this` and `$NAME` in expressions.
194 The timestamps of the timeframe evaluated by the database lookup is available as variables
@@ -259,6 +259,7 @@ Format:
259 warn: EXPRESSION
260 crit: EXPRESSION
261 ```
262 +
263 Check [Expressions](#expressions) for more information.
264
265 ---
@@ -306,40 +307,41 @@ Format:
307 delay: [[[up U] [down D] multiplier M] max X]
308 ```
309
309 -- `up U` defines the delay to be applied to a notification for an alarm that raised its status
310 - (i.e. CLEAR to WARNING, CLEAR to CRITICAL, WARNING to CRITICAL). For example, `up 10s`, the
311 - notification for this event will be sent 10 seconds after the actual event. This is used in
312 - hope the alarm will get back to its previous state within the duration given. The default `U`
313 - is zero.
310 +- `up U` defines the delay to be applied to a notification for an alarm that raised its status
311 + (i.e. CLEAR to WARNING, CLEAR to CRITICAL, WARNING to CRITICAL). For example, `up 10s`, the
312 + notification for this event will be sent 10 seconds after the actual event. This is used in
313 + hope the alarm will get back to its previous state within the duration given. The default `U`
314 + is zero.
315 +
316 +- `down D` defines the delay to be applied to a notification for an alarm that moves to lower
317 + state (i.e. CRITICAL to WARNING, CRITICAL to CLEAR, WARNING to CLEAR). For example, `down 1m`
318 + will delay the notification by 1 minute. This is used to prevent notifications for flapping
319 + alarms. The default `D` is zero.
320
315 -- `down D` defines the delay to be applied to a notification for an alarm that moves to lower
316 - state (i.e. CRITICAL to WARNING, CRITICAL to CLEAR, WARNING to CLEAR). For example, `down 1m`
317 - will delay the notification by 1 minute. This is used to prevent notifications for flapping
318 - alarms. The default `D` is zero.
321 +- `mutliplier M` multiplies `U` and `D` when an alarm changes state, while a notification is
322 + delayed. The default multiplier is `1.0`.
323
320 -- `mutliplier M` multiplies `U` and `D` when an alarm changes state, while a notification is
321 - delayed. The default multiplier is `1.0`.
324 +- `max X` defines the maximum absolute notification delay an alarm may get. The default `X`
325 + is `max(U * M, D * M)` (i.e. the max duration of `U` or `D` multiplied once with `M`).
326
323 -- `max X` defines the maximum absolute notification delay an alarm may get. The default `X`
324 - is `max(U * M, D * M)` (i.e. the max duration of `U` or `D` multiplied once with `M`).
327 + Example:
328
326 - Example:
329 + `delay: up 10s down 15m multiplier 2 max 1h`
330
328 - `delay: up 10s down 15m multiplier 2 max 1h`
331 + The time is `00:00:00` and the status of the alarm is CLEAR.
332
330 - The time is `00:00:00` and the status of the alarm is CLEAR.
333 + | time of event | new status | delay | notification will be sent|why|
334 + |-------------|----------|:---:|-------------------------|---|
335 + | 00:00:01 | WARNING | `up 10s` | 00:00:11|first state switch|
336 + | 00:00:05 | CLEAR | `down 15m x2` | 00:30:05|the alarm changes state while a notification is delayed, so it was multiplied|
337 + | 00:00:06 | WARNING | `up 10s x2 x2` | 00:00:26|multiplied twice|
338 + | 00:00:07 | CLEAR | `down 15m x2 x2 x2` | 00:45:07|multiplied 3 times.|
339
332 - time of event|new status|delay|notification will be sent|why
333 - -------------|----------|:---:|-------------------------|---
334 - 00:00:01 | WARNING | `up 10s` | 00:00:11 |first state switch
335 - 00:00:05 | CLEAR | `down 15m x2`| 00:30:05 |the alarm changes state while a notification is delayed, so it was multiplied
336 - 00:00:06 | WARNING | `up 10s x2 x2` | 00:00:26 |multiplied twice
337 - 00:00:07|CLEAR|`down 15m x2 x2 x2`|00:45:07|multiplied 3 times.
340 + So:
341
339 - So:
340 - - `U` and `D` are multiplied by `M` every time the alarm changes state (any state, not just
341 - their matching one) and a delay is in place.
342 - - All are reset to their defaults when the alarm switches state without a delay in place.
342 + - `U` and `D` are multiplied by `M` every time the alarm changes state (any state, not just
343 + their matching one) and a delay is in place.
344 + - All are reset to their defaults when the alarm switches state without a delay in place.
345
346 ---
347
@@ -353,9 +355,9 @@ Format:
355 repeat: [off] [warning DURATION] [critical DURATION]
356 ```
357
356 -* `off`: Turns off the repeating feature for the current alarm. This is effective when the default repeat settings has been enabled in health configuration.
357 -* `warning DURATION`: Defines the interval when the alarm is in WARNING state. Use `0s` to turn off the repeating notification for WARNING mode.
358 -* `critical DURATION`: Defines the interval when the alarm is in CRITICAL state. Use `0s` to turn off the repeating notification for CRITICAL mode.
358 +- `off`: Turns off the repeating feature for the current alarm. This is effective when the default repeat settings has been enabled in health configuration.
359 +- `warning DURATION`: Defines the interval when the alarm is in WARNING state. Use `0s` to turn off the repeating notification for WARNING mode.
360 +- `critical DURATION`: Defines the interval when the alarm is in CRITICAL state. Use `0s` to turn off the repeating notification for CRITICAL mode.
361
362 ---
363
@@ -391,9 +393,9 @@ Expressions can have variables. Variables start with `$`. Check below for more i
393
394 There are two special values you can use:
395
394 -- `nan`, for example `$this != nan` will check if the variable `this` is available. A variable can be `nan` if the database lookup failed. All calculations (i.e. addition, multiplication, etc) with a `nan` result in a `nan`.
396 +- `nan`, for example `$this != nan` will check if the variable `this` is available. A variable can be `nan` if the database lookup failed. All calculations (i.e. addition, multiplication, etc) with a `nan` result in a `nan`.
397
396 -- `inf`, for example `$this != inf` will check if `this` is not infinite. A value or variable can be infinite if divided by zero. All calculations (i.e. addition, multiplication, etc) with a `inf` result in a `inf`.
398 +- `inf`, for example `$this != inf` will check if `this` is not infinite. A value or variable can be infinite if divided by zero. All calculations (i.e. addition, multiplication, etc) with a `inf` result in a `inf`.
399
400 ---
401
@@ -413,25 +415,27 @@ crit: $this > (($status == $CRITICAL) ? (85) : (95))
415 ```
416
417 The above say:
416 -* If the alarm is currently a warning, then the threshold for being considered a warning
417 - is 75, otherwise it's 85.
418
419 -* If the alarm is currently critical, then the threshold for being considered critical
420 - is 85, otherwise it's 95.
419 +- If the alarm is currently a warning, then the threshold for being considered a warning
420 + is 75, otherwise it's 85.
421 +
422 +- If the alarm is currently critical, then the threshold for being considered critical
423 + is 85, otherwise it's 95.
424
425 Which in turn, results in the following behavior:
423 -* While the value is rising, it will trigger a warning when it exceeds 85, and a critical
424 - alert when it exceeds 95.
426
426 -* While the value is falling, it will return to a warning state when it goes below 85,
427 - and a normal state when it goes below 75.
427 +- While the value is rising, it will trigger a warning when it exceeds 85, and a critical
428 + alert when it exceeds 95.
429
429 -* If the value is constantly varying between 80 and 90, then it will trigger a warning the
430 - first time it goes above 85, but will remain a warning until it goes below 75 (or goes above 85).
430 +- While the value is falling, it will return to a warning state when it goes below 85,
431 + and a normal state when it goes below 75.
432
432 -* If the value is constantly varying between 90 and 100, then it will trigger a critical alert
433 - the first time it goes above 95, but will remain a critical alert goes below 85 (at which
434 - point it will return to being a warning).
433 +- If the value is constantly varying between 80 and 90, then it will trigger a warning the
434 + first time it goes above 85, but will remain a warning until it goes below 75 (or goes above 85).
435 +
436 +- If the value is constantly varying between 90 and 100, then it will trigger a critical alert
437 + the first time it goes above 95, but will remain a critical alert goes below 85 (at which
438 + point it will return to being a warning).
439
440 ---
441
@@ -443,21 +447,21 @@ Example: [variables for the `system.cpu` chart of the registry](https://registry
447
448 _Hint: If you don't know how to find the CHART_NAME, you can read about it [here](../docs/Charts.md#charts)._
449
446 -
450 Netdata supports 3 internal indexes for variables that will be used in health monitoring.
451 +
452 <details markdown="1"><summary>The variables below can be used in both chart alarms and context templates.</summary>
453 Although the `alarm_variables` link shows you variables for a particular chart, the same variables can also be used in templates for charts belonging to the same [context](../docs/Charts.md#contexts). The reason is that all charts of a given contexts are essentially identical, with the only difference being the [family](../docs/Charts.md#families) that identifies a particular hardware or software instance. Charts and templates do not apply to specific families anyway, unless if you explicitly limit an alarm with the [alarm line `families`](#alarm-line-families).
454 </details>
455
452 - - **chart local variables**. All the dimensions of the chart are exposed as local variables. The value of $this for the other configured alarms of the chart also appears, under the name of each configured alarm.
456 +- **chart local variables**. All the dimensions of the chart are exposed as local variables. The value of $this for the other configured alarms of the chart also appears, under the name of each configured alarm.
457
458 Charts also define a few special variables:
459
456 - - `$last_collected_t` is the unix timestamp of the last data collection
457 - - `$collected_total_raw` is the sum of all the dimensions (their last collected values)
458 - - `$update_every` is the update frequency of the chart
459 - - `$green` and `$red` the threshold defined in alarms (these are per chart - the charts
460 - inherits them from the the first alarm that defined them)
460 + - `$last_collected_t` is the unix timestamp of the last data collection
461 + - `$collected_total_raw` is the sum of all the dimensions (their last collected values)
462 + - `$update_every` is the update frequency of the chart
463 + - `$green` and `$red` the threshold defined in alarms (these are per chart - the charts
464 + inherits them from the the first alarm that defined them)
465
466 Chart dimensions define their last calculated (i.e. interpolated) value, exactly as
467 shown on the charts, but also a variable with their name and suffix `_raw` that resolves
@@ -465,43 +469,43 @@ Although the `alarm_variables` link shows you variables for a particular chart,
469 that resolves to unix timestamp the dimension was last collected (there may be dimensions
470 that fail to be collected while others continue normally).
471
468 - - **family variables**. Families are used to group charts together. For example all `eth0`
472 +- **family variables**. Families are used to group charts together. For example all `eth0`
473 charts, have `family = eth0`. This index includes all local variables, but if there are
474 overlapping variables, only the first are exposed.
475
472 - - **host variables**. All the dimensions of all charts, including all alarms, in fullname.
476 +- **host variables**. All the dimensions of all charts, including all alarms, in fullname.
477 Fullname is `CHART.VARIABLE`, where `CHART` is either the chart id or the chart name (both
478 are supported).
479
476 - - **special variables*** are:
480 +- **special variables\*** are:
481
478 - - `$this`, which is resolved to the value of the current alarm.
482 + - `$this`, which is resolved to the value of the current alarm.
483
480 - - `$status`, which is resolved to the current status of the alarm (the current = the last
481 - status, i.e. before the current database lookup and the evaluation of the `calc` line).
482 - This values can be compared with `$REMOVED`, `$UNINITIALIZED`, `$UNDEFINED`, `$CLEAR`,
483 - `$WARNING`, `$CRITICAL`. These values are incremental, ie. `$status > $CLEAR` works as
484 - expected.
484 + - `$status`, which is resolved to the current status of the alarm (the current = the last
485 + status, i.e. before the current database lookup and the evaluation of the `calc` line).
486 + This values can be compared with `$REMOVED`, `$UNINITIALIZED`, `$UNDEFINED`, `$CLEAR`,
487 + `$WARNING`, `$CRITICAL`. These values are incremental, ie. `$status > $CLEAR` works as
488 + expected.
489
486 - - `$now`, which is resolved to current unix timestamp.
490 + - `$now`, which is resolved to current unix timestamp.
491
492 ## Alarm Statuses
493
494 Alarms can have the following statuses:
495
492 - - `REMOVED` - the alarm has been deleted (this happens when a SIGUSR2 is sent to Netdata
496 +- `REMOVED` - the alarm has been deleted (this happens when a SIGUSR2 is sent to Netdata
497 to reload health configuration)
498
495 - - `UNINITIALIZED` - the alarm is not initialized yet
499 +- `UNINITIALIZED` - the alarm is not initialized yet
500
497 - - `UNDEFINED` - the alarm failed to be calculated (i.e. the database lookup failed,
501 +- `UNDEFINED` - the alarm failed to be calculated (i.e. the database lookup failed,
502 a division by zero occurred, etc)
503
500 - - `CLEAR` - the alarm is not armed / raised (i.e. is OK)
504 +- `CLEAR` - the alarm is not armed / raised (i.e. is OK)
505
502 - - `WARNING` - the warning expression resulted in true or non-zero
506 +- `WARNING` - the warning expression resulted in true or non-zero
507
504 - - `CRITICAL` - the critical expression resulted in true or non-zero
508 +- `CRITICAL` - the critical expression resulted in true or non-zero
509
510 The external script will be called for all status changes.
511
@@ -545,10 +549,10 @@ The above applies the **template** to all charts that have `context = apache.req
549 calc: $now - $last_collected_t
550 ```
551
548 -- `$now` is a standard variable that resolves to the current timestamp.
552 +- `$now` is a standard variable that resolves to the current timestamp.
553
550 -- `$last_collected_t` is the last data collection timestamp of the chart.
551 - So this calculation gives the number of seconds passed since the last data collection.
554 +- `$last_collected_t` is the last data collection timestamp of the chart.
555 + So this calculation gives the number of seconds passed since the last data collection.
556
557 ```
558 every: 10s
@@ -563,8 +567,8 @@ The alarm will be evaluated every 10 seconds.
567
568 If these result in non-zero or true, they trigger the alarm.
569
566 -- `$this` refers to the value of this alarm (i.e. the result of the `calc` line.
567 - We could also use `$apache_last_collected_secs`.
570 +- `$this` refers to the value of this alarm (i.e. the result of the `calc` line.
571 + We could also use `$apache_last_collected_secs`.
572
573 `$update_every` is the update frequency of the chart, in seconds.
574
@@ -675,4 +679,4 @@ You can find how Netdata interpreted the expressions by examining the alarm at `
679
680 It's currently not possible to schedule notifications from within the alarm template. For those scenarios where you need to temporary disable notifications (for instance when running backups triggers a disk alert) you can disable or silence notifications are runtime. The health checks can be controlled at runtime via the [health management api](../web/api/health/#health-management-api).
681
678 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
682 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/README.md
+18 -16
@@ -7,9 +7,9 @@ You can change the default script globally by editing `/etc/netdata/netdata.conf
7
8 `alarm-notify.sh` is capable of sending notifications:
9
10 -- to multiple recipients
11 -- using multiple notification methods
12 -- filtering severity per recipient
10 +- to multiple recipients
11 +- using multiple notification methods
12 +- filtering severity per recipient
13
14 It uses **roles**. For example `sysadmin`, `webmaster`, `dba`, etc.
15
@@ -23,23 +23,23 @@ Each role may have one or more destinations.
23
24 So, for example the `sysadmin` role may send:
25
26 -1. emails to admin1@example.com and admin2@example.com
27 -2. pushover.net notifications to USERTOKENS `A`, `B` and `C`.
28 -3. pushbullet.com push notifications to admin1@example.com and admin2@example.com
29 -4. messages to slack.com channel `#alarms` and `#systems`.
30 -5. messages to Discord channels `#alarms` and `#systems`.
26 +1. emails to admin1@example.com and admin2@example.com
27 +2. pushover.net notifications to USERTOKENS `A`, `B` and `C`.
28 +3. pushbullet.com push notifications to admin1@example.com and admin2@example.com
29 +4. messages to slack.com channel `#alarms` and `#systems`.
30 +5. messages to Discord channels `#alarms` and `#systems`.
31
32 ## Configuration
33
34 Edit [`/etc/netdata/health_alarm_notify.conf`](health_alarm_notify.conf)
35 by running `/etc/netdata/edit-config health_alarm_notify.conf`:
36
37 -- settings per notification method:
37 +- settings per notification method:
38
39 - all notification methods except email, require some configuration
40 - (i.e. API keys, tokens, destination rooms, channels, etc).
39 + all notification methods except email, require some configuration
40 + (i.e. API keys, tokens, destination rooms, channels, etc).
41
42 -2. **recipients** per **role** per **notification method**
42 +2. **recipients** per **role** per **notification method**
43
44 ## Testing Notifications
45
@@ -62,8 +62,10 @@ export NETDATA_ALARM_NOTIFY_DEBUG=1
62 Note that in versions before 1.16, the plugins.d directory may be installed in a different location in certain OSs (e.g. under `/usr/lib/netdata`). You can always find the location of the alarm-notify.sh script in `netdata.conf`.
63
64 If you need to dig even deeper, you can trace the execution with `bash -x`. Note that in test mode, alarm-notify.sh calls itself with many more arguments. So first do
65 - ```sh
66 - bash -x /usr/libexec/netdata/plugins.d/alarm-notify.sh test
67 - ```
65 +
66 +```sh
67 +bash -x /usr/libexec/netdata/plugins.d/alarm-notify.sh test
68 +```
69 +
70 Then look in the output for the alarm-notify.sh calls and run the one you want to trace with `bash -x`.
69 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
71 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/alerta/README.md
+10 -4
@@ -26,7 +26,9 @@ configurations are out os scope of this tutorial but information
26 about different deployment scenaries can be found in the [docs][3].
27
28 [1]: https://hub.docker.com/r/alerta/alerta-web/
29 +
30 [2]: http://alerta.readthedocs.io/en/latest/gettingstarted/tutorial-1-deploy-alerta.html
31 +
32 [3]: http://docs.alerta.io/en/latest/deployment.html
33
34 ## Send alarms to Alerta
@@ -42,7 +44,9 @@ Step 2. configure Netdata to send alarms to Alerta
44
45 On your system run:
46
45 - $ /etc/netdata/edit-config health_alarm_notify.conf
47 +```sh
48 +/etc/netdata/edit-config health_alarm_notify.conf
49 +```
50
51 and modify the file as below:
52
@@ -70,13 +74,15 @@ DEFAULT_RECIPIENT_ALERTA="Production"
74
75 We can test alarms using the standard approach:
76
73 - $ /opt/netdata/netdata-plugins/plugins.d/alarm-notify.sh test
77 +```sh
78 +/opt/netdata/netdata-plugins/plugins.d/alarm-notify.sh test
79 +```
80
81 Note: Netdata will send 3 alarms, and because last alarm is "CLEAR"
82 you will not see them in main Alerta page, you need to select to see
83 "closed" alarma in top-right lookup. A little change in `alarm-notify.sh`
84 that let us test each state one by one will be useful.
85
80 -For more information see [https://docs.alerta.io](https://docs.alerta.io)
86 +For more information see <https://docs.alerta.io>
87
82 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Falerta%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
88 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Falerta%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/awssns/README.md
+17 -15
@@ -2,23 +2,25 @@
2
3 As part of it's AWS suite, Amazon provides a notification broker service called 'Simple Notification Service' or SNS. Amazon SNS works kind of similarly to Netdata's own notification system, allowing dispatch of a single notification to multiple subscribers of different types. Among other things, SNS supports sending notifications to:
4
5 -* Email addresses.
6 -* Mobile Phones via SMS.
7 -* HTTP or HTTPS web hooks.
8 -* AWS Lambda functions.
9 -* AWS SQS queues.
10 -* Mobile applications via push notifications.
5 +- Email addresses.
6 +- Mobile Phones via SMS.
7 +- HTTP or HTTPS web hooks.
8 +- AWS Lambda functions.
9 +- AWS SQS queues.
10 +- Mobile applications via push notifications.
11
12 To get this working, you will need:
13
14 -* The Amazon Web Services CLI tools. Most distributions provide these with the package name `awscli`.
15 -* An actual home directory for the user you run Netdata as, instead of just using `/` as a home directory. Setup of this is distribution specific. `/var/lib/netdata` is the recommended directory (because the permissions will already be correct) if you are using a dedicated user (which is how most distributions work).
16 -* An Amazon SNS topic to send notifications to with one or more subscribers. The [Getting Started](https://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html) section of the Amazon SNS documentation covers the basics of how to set this up. Make note of the Topic ARN when you create the topic.
17 -* While not mandatory, it is highly recommended to create a dedicated IAM user on your account for Netdata to send notifications. This user needs to have programmatic access, and should only allow access to SNS. If you're really paranoid, you can create one for each system or group of systems.
14 +- The Amazon Web Services CLI tools. Most distributions provide these with the package name `awscli`.
15 +- An actual home directory for the user you run Netdata as, instead of just using `/` as a home directory. Setup of this is distribution specific. `/var/lib/netdata` is the recommended directory (because the permissions will already be correct) if you are using a dedicated user (which is how most distributions work).
16 +- An Amazon SNS topic to send notifications to with one or more subscribers. The [Getting Started](https://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html) section of the Amazon SNS documentation covers the basics of how to set this up. Make note of the Topic ARN when you create the topic.
17 +- While not mandatory, it is highly recommended to create a dedicated IAM user on your account for Netdata to send notifications. This user needs to have programmatic access, and should only allow access to SNS. If you're really paranoid, you can create one for each system or group of systems.
18
19 Once you have all the above, run the following command as the user Netdata runs under:
20
21 - aws configure
21 +```
22 +aws configure
23 +```
24
25 THis will prompt you for the access key and secret key for accessing Amazon SNS (as well as the default region and output format, but you can leave those blank because we don't use them).
26
@@ -26,8 +28,8 @@ Once that's done, you're ready to go and can specify the desired topic ARN as a
28
29 Notes:
30
29 - * Netdata's native email notification support is far better in almost all respects than it's support through Amazon SNS. If you want email notifications, use the native support, not SNS.
30 - * If you need to change the notification format for SNS notifications, you can do so by specifying the format in `AWSSNS_MESSAGE_FORMAT` in the configuration. This variable supports all the same vairiables you can use in custom notifications.
31 - * While Amazon SNS supports sending differently formatted messages for different delivery methods, Netdata does not currently support this functionality.
31 +- Netdata's native email notification support is far better in almost all respects than it's support through Amazon SNS. If you want email notifications, use the native support, not SNS.
32 + - If you need to change the notification format for SNS notifications, you can do so by specifying the format in `AWSSNS_MESSAGE_FORMAT` in the configuration. This variable supports all the same vairiables you can use in custom notifications.
33 + - While Amazon SNS supports sending differently formatted messages for different delivery methods, Netdata does not currently support this functionality.
34
33 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fawssns%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
35 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fawssns%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/custom/README.md
+38 -38
@@ -39,45 +39,45 @@ The following is a sample `custom_sender` function in `health_alarm_notify.conf`
39
40 Variables available to the custom_sender:
41
42 - - `${to_custom}` the list of recipients for the alarm
43 - - `${host}` the host generated this event
44 - - `${url_host}` same as `${host}` but URL encoded
45 - - `${unique_id}` the unique id of this event
46 - - `${alarm_id}` the unique id of the alarm that generated this event
47 - - `${event_id}` the incremental id of the event, for this alarm id
48 - - `${when}` the timestamp this event occurred
49 - - `${name}` the name of the alarm, as given in Netdata health.d entries
50 - - `${url_name}` same as `${name}` but URL encoded
51 - - `${chart}` the name of the chart (type.id)
52 - - `${url_chart}` same as `${chart}` but URL encoded
53 - - `${family}` the family of the chart
54 - - `${url_family}` same as `${family}` but URL encoded
55 - - `${status}` the current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL
56 - - `${old_status}` the previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL
57 - - `${value}` the current value of the alarm
58 - - `${old_value}` the previous value of the alarm
59 - - `${src}` the line number and file the alarm has been configured
60 - - `${duration}` the duration in seconds of the previous alarm state
61 - - `${duration_txt}` same as `${duration}` for humans
62 - - `${non_clear_duration}` the total duration in seconds this is/was non-clear
63 - - `${non_clear_duration_txt}` same as `${non_clear_duration}` for humans
64 - - `${units}` the units of the value
65 - - `${info}` a short description of the alarm
66 - - `${value_string}` friendly value (with units)
67 - - `${old_value_string}` friendly old value (with units)
68 - - `${image}` the URL of an image to represent the status of the alarm
69 - - `${color}` a color in #AABBCC format for the alarm
70 - - `${goto_url}` the URL the user can click to see the Netdata dashboard
71 - - `${calc_expression}` the expression evaluated to provide the value for the alarm
72 - - `${calc_param_values}` the value of the variables in the evaluated expression
73 - - `${total_warnings}` the total number of alarms in WARNING state on the host
74 - - `${total_critical}` the total number of alarms in CRITICAL state on the host
42 +- `${to_custom}` the list of recipients for the alarm
43 +- `${host}` the host generated this event
44 +- `${url_host}` same as `${host}` but URL encoded
45 +- `${unique_id}` the unique id of this event
46 +- `${alarm_id}` the unique id of the alarm that generated this event
47 +- `${event_id}` the incremental id of the event, for this alarm id
48 +- `${when}` the timestamp this event occurred
49 +- `${name}` the name of the alarm, as given in Netdata health.d entries
50 +- `${url_name}` same as `${name}` but URL encoded
51 +- `${chart}` the name of the chart (type.id)
52 +- `${url_chart}` same as `${chart}` but URL encoded
53 +- `${family}` the family of the chart
54 +- `${url_family}` same as `${family}` but URL encoded
55 +- `${status}` the current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL
56 +- `${old_status}` the previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL
57 +- `${value}` the current value of the alarm
58 +- `${old_value}` the previous value of the alarm
59 +- `${src}` the line number and file the alarm has been configured
60 +- `${duration}` the duration in seconds of the previous alarm state
61 +- `${duration_txt}` same as `${duration}` for humans
62 +- `${non_clear_duration}` the total duration in seconds this is/was non-clear
63 +- `${non_clear_duration_txt}` same as `${non_clear_duration}` for humans
64 +- `${units}` the units of the value
65 +- `${info}` a short description of the alarm
66 +- `${value_string}` friendly value (with units)
67 +- `${old_value_string}` friendly old value (with units)
68 +- `${image}` the URL of an image to represent the status of the alarm
69 +- `${color}` a color in #AABBCC format for the alarm
70 +- `${goto_url}` the URL the user can click to see the Netdata dashboard
71 +- `${calc_expression}` the expression evaluated to provide the value for the alarm
72 +- `${calc_param_values}` the value of the variables in the evaluated expression
73 +- `${total_warnings}` the total number of alarms in WARNING state on the host
74 +- `${total_critical}` the total number of alarms in CRITICAL state on the host
75
76 The following are more human friendly:
77
78 - - `${alarm}` like "name = value units"
79 - - `${status_message}` like "needs attention", "recovered", "is critical"
80 - - `${severity}` like "Escalated to CRITICAL", "Recovered from WARNING"
81 - - `${raised_for}` like "(alarm was raised for 10 minutes)"
78 +- `${alarm}` like "name = value units"
79 +- `${status_message}` like "needs attention", "recovered", "is critical"
80 +- `${severity}` like "Escalated to CRITICAL", "Recovered from WARNING"
81 +- `${raised_for}` like "(alarm was raised for 10 minutes)"
82
83 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fcustom%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
83 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fcustom%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/discord/README.md
+3 -4
@@ -6,8 +6,8 @@ This is what you will get:
6
7 You need:
8
9 -1. The **incoming webhook URL** as given by Discord. Create a webhook by following the official [Discord documentation](https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks). You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
10 -2. One or more Discord channels to post the messages to.
9 +1. The **incoming webhook URL** as given by Discord. Create a webhook by following the official [Discord documentation](https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks). You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
10 +2. One or more Discord channels to post the messages to.
11
12 Set them in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
13
@@ -29,7 +29,6 @@ DISCORD_WEBHOOK_URL="https://discordapp.com/api/webhooks/XXXXXXXXXXXXX/XXXXXXXXX
29 # this discord channel (empty = do not send a notification for unconfigured
30 # roles):
31 DEFAULT_RECIPIENT_DISCORD="alarms"
32 -
32 ```
33
34 You can define multiple channels like this: `alarms systems`.
@@ -43,4 +42,4 @@ role_recipients_discord[webmaster]="marketing development"
42
43 The keywords `systems`, `databases`, `marketing`, `development` are discordapp.com channels (they should already exist within your discord server).
44
46 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fdiscord%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
45 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fdiscord%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/email/README.md
+3 -2
@@ -30,6 +30,7 @@ sudo su -s /bin/bash netdata
30
31 Where `[ROLE]` is the role you want to test. The default (if you don't give a `[ROLE]`) is `sysadmin`.
32
33 -Note that in versions before 1.16, the plugins.d directory may be installed in a different location in certain OSs (e.g. under `/usr/lib/netdata`). You can always find the location of the alarm-notify.sh script in `netdata.conf`.
33 +Note that in versions before 1.16, the plugins.d directory may be installed in a different location in certain OSs (e.g. under `/usr/lib/netdata`).
34 +You can always find the location of the alarm-notify.sh script in `netdata.conf`.
35
35 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Femail%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
36 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Femail%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/flock/README.md
+4 -5
@@ -2,14 +2,14 @@
2
3 This is what you will get:
4
5 -
5 ![Flock](https://i.imgur.com/ok9bRzw.png)
6
7 You need:
8
10 -The **incoming webhook URL** as given by flock.com. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
9 +The **incoming webhook URL** as given by flock.com.
10 +You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
11
12 -Get them here: https://admin.flock.com/webhooks
12 +Get them here: <https://admin.flock.com/webhooks>
13
14 Set them in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
15
@@ -27,7 +27,6 @@ FLOCK_WEBHOOK_URL="https://api.flock.com/hooks/sendMessage/XXXXXXXXXXXXXXXXXXXXX
27
28 # if a role recipient is not configured, no notification will be sent
29 DEFAULT_RECIPIENT_FLOCK="alarms"
30 -
30 ```
31
33 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fflock%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
32 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fflock%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/irc/README.md
+9 -11
@@ -2,15 +2,15 @@
2
3 This is what you will get:
4
5 -IRCCloud web client:
5 +IRCCloud web client:\
6 ![image](https://user-images.githubusercontent.com/31221999/36793487-3735673e-1ca6-11e8-8880-d1d8b6cd3bc0.png)
7
8 Irssi terminal client:
9 ![image](https://user-images.githubusercontent.com/31221999/36793486-3713ada6-1ca6-11e8-8c12-70d956ad801e.png)
10
11 -
11 You need:
13 -1. The `nc` utility. If you do not set the path, Netdata will search for it in your system `$PATH`.
12 +
13 +1. The `nc` utility. If you do not set the path, Netdata will search for it in your system `$PATH`.
14
15 Set the path for `nc` in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
16
@@ -22,12 +22,11 @@ Set the path for `nc` in `/etc/netdata/health_alarm_notify.conf` (to edit it on
22 # If empty, the system $PATH will be searched for it.
23 # If not found, irc notifications will be silently disabled.
24 nc="/usr/bin/nc"
25 -
25 ```
26
28 -2. Αn `IRC_NETWORK` to which your preffered channels belong to.
29 -3. One or more channels ( `DEFAULT_RECIPIENT_IRC` ) to post the messages to.
30 -4. An `IRC_NICKNAME` and an `IRC_REALNAME` to identify in IRC.
27 +2. Αn `IRC_NETWORK` to which your preffered channels belong to.
28 +3. One or more channels ( `DEFAULT_RECIPIENT_IRC` ) to post the messages to.
29 +4. An `IRC_NICKNAME` and an `IRC_REALNAME` to identify in IRC.
30
31 Set them in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
32
@@ -57,11 +56,10 @@ IRC_NICKNAME="netdata-alarm-user"
56 # The irc realname which is required in order to make the connection and is an
57 # extra identifier.
58 IRC_REALNAME="netdata-user"
60 -
59 ```
60
63 -You can define multiple channels like this: `#system-alarms #networking-alarms`.
64 -You can also filter the notifications like this: `#system-alarms|critical`.
61 +You can define multiple channels like this: `#system-alarms #networking-alarms`.\
62 +You can also filter the notifications like this: `#system-alarms|critical`.\
63 You can give different channels per **role** using these (at the same file):
64
65 ```
@@ -72,4 +70,4 @@ role_recipients_irc[webmaster]="#networking-alarms"
70
71 The keywords `#user-alarms`, `#networking-alarms`, `#system-alarms`, `#databases-alarms` are irc channels which belong to the specified IRC network.
72
75 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Firc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
73 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Firc%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/kavenegar/README.md
+5 -5
@@ -8,10 +8,10 @@ Will look like this on your Android device:
8
9 You will need:
10
11 -1. Signup and Login to kavenegar.com
12 -2. Get your APIKEY and Sender from http://panel.kavenegar.com/client/setting/account
13 -3. Fill in KAVENEGAR_API_KEY="" KAVENEGAR_SENDER=""
14 -4. Add the recipient phone numbers to DEFAULT_RECIPIENT_KAVENEGAR=""
11 +1. Signup and Login to kavenegar.com
12 +2. Get your APIKEY and Sender from <http://panel.kavenegar.com/client/setting/account>
13 +3. Fill in KAVENEGAR_API_KEY="" KAVENEGAR_SENDER=""
14 +4. Add the recipient phone numbers to DEFAULT_RECIPIENT_KAVENEGAR=""
15
16 Set them in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
17
@@ -38,4 +38,4 @@ KAVENEGAR_SENDER=""
38 DEFAULT_RECIPIENT_KAVENEGAR=""
39 ```
40
41 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fkavenegar%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
41 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fkavenegar%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/messagebird/README.md
+7 -8
@@ -6,12 +6,12 @@ The messagebird notifications will look like this on your Android device:
6
7 You will need:
8
9 -1. Signup and Login to messagebird.com
10 -2. Pick an SMS capable number after sign up to get some free credits
11 -3. Go to <https://www.messagebird.com/app/settings/developers/access>
12 -4. Create a new access key under 'API ACCESS (REST)' (you will want a live key)
13 -3. Fill in MESSAGEBIRD_ACCESS_KEY="XXXXXXXX" MESSAGEBIRD_NUMBER="+XXXXXXXXXXX"
14 -4. Add the recipient phone numbers to DEFAULT_RECIPIENT_MESSAGEBIRD="+XXXXXXXXXXX"
9 +1. Signup and Login to messagebird.com
10 +2. Pick an SMS capable number after sign up to get some free credits
11 +3. Go to <https://www.messagebird.com/app/settings/developers/access>
12 +4. Create a new access key under 'API ACCESS (REST)' (you will want a live key)
13 +5. Fill in MESSAGEBIRD_ACCESS_KEY="XXXXXXXX" MESSAGEBIRD_NUMBER="+XXXXXXXXXXX"
14 +6. Add the recipient phone numbers to DEFAULT_RECIPIENT_MESSAGEBIRD="+XXXXXXXXXXX"
15
16 Set them in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
17
@@ -35,7 +35,6 @@ SEND_MESSAGEBIRD="YES"
35 MESSAGEBIRD_ACCESS_KEY="XXXXXXXX"
36 MESSAGEBIRD_NUMBER="XXXXXXX"
37 DEFAULT_RECIPIENT_MESSAGEBIRD="XXXXXXX"
38 -
38 ```
39
41 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fmessagebird%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
40 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fmessagebird%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/pagerduty/README.md
+2 -2
@@ -8,7 +8,7 @@ Here is an example of a PagerDuty dashboard with Netdata notifications:
8
9 To have Netdata send notifications to PagerDuty, you'll first need to set up a PagerDuty `Generic API` service and install the PagerDuty agent on the host running Netdata. See the following guide for details:
10
11 -https://www.pagerduty.com/docs/guides/agent-install-guide/
11 +<https://www.pagerduty.com/docs/guides/agent-install-guide/>
12
13 During the setup of the `Generic API` PagerDuty service, you'll obtain a `pagerduty service key`. Keep this **service key** handy.
14
@@ -34,4 +34,4 @@ SEND_PD="YES"
34 DEFAULT_RECIPIENT_PD="<service key>"
35 ```
36
37 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fpagerduty%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
37 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fpagerduty%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/pushbullet/README.md
+6 -7
@@ -5,16 +5,15 @@ Will look like this on your browser:
5
6 And like this on your Android device:
7
8 -
8 ![image](https://cloud.githubusercontent.com/assets/4300670/19109635/278a1dde-8aee-11e6-9984-0bc87a13312d.png)
9
10 You will need:
11
13 -1. Signup and Login to pushbullet.com
14 -2. Get your Access Token, go to https://www.pushbullet.com/#settings/account and create a new one
15 -3. Fill in the PUSHBULLET_ACCESS_TOKEN with that value
16 -4. Add the recipient emails to DEFAULT_RECIPIENT_PUSHBULLET
17 -!!PLEASE NOTE THAT IF THE RECIPIENT DOES NOT HAVE A PUSHBULLET ACCOUNT, PUSHBULLET SERVICE WILL SEND AN EMAIL!!
12 +1. Signup and Login to pushbullet.com
13 +2. Get your Access Token, go to <https://www.pushbullet.com/#settings/account> and create a new one
14 +3. Fill in the PUSHBULLET_ACCESS_TOKEN with that value
15 +4. Add the recipient emails to DEFAULT_RECIPIENT_PUSHBULLET
16 + !!PLEASE NOTE THAT IF THE RECIPIENT DOES NOT HAVE A PUSHBULLET ACCOUNT, PUSHBULLET SERVICE WILL SEND AN EMAIL!!
17
18 Set them in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
19
@@ -41,4 +40,4 @@ PUSHBULLET_ACCESS_TOKEN="o.Sometokenhere"
40 DEFAULT_RECIPIENT_PUSHBULLET="admin1@example.com admin3@somemail.com"
41 ```
42
44 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fpushbullet%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
43 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fpushbullet%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/pushover/README.md
+3 -3
@@ -6,8 +6,8 @@ Netdata will send warning messages with priority `0` and critical messages with
6
7 You need:
8
9 -1. APP TOKEN. You can use the same on all your Netdata servers.
10 -2. USER TOKEN for each user you are going to send notifications to. This is the actual recipient of the notification.
9 +1. APP TOKEN. You can use the same on all your Netdata servers.
10 +2. USER TOKEN for each user you are going to send notifications to. This is the actual recipient of the notification.
11
12 The configuration is like above (slack messages).
13
@@ -15,4 +15,4 @@ pushover.net notifications look like this:
15
16 ![image](https://cloud.githubusercontent.com/assets/2662304/18407319/839c10c4-7715-11e6-92c0-12f8215128d3.png)
17
18 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fpushover%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
18 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fpushover%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/rocketchat/README.md
+4 -5
@@ -4,10 +4,10 @@ This is what you will get:
4 ![Netdata on RocketChat](https://i.imgur.com/Zu4t3j3.png)
5 You need:
6
7 -1. The **incoming webhook URL** as given by RocketChat. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
8 -2. One or more channels to post the messages to.
7 +1. The **incoming webhook URL** as given by RocketChat. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
8 +2. One or more channels to post the messages to.
9
10 -Get them here: https://rocket.chat/docs/administrator-guides/integrations/index.html#how-to-create-a-new-incoming-webhook
10 +Get them here: <https://rocket.chat/docs/administrator-guides/integrations/index.html#how-to-create-a-new-incoming-webhook>
11
12 Set them in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
13
@@ -30,7 +30,6 @@ ROCKETCHAT_WEBHOOK_URL="<your_incoming_webhook_url>"
30 # this rocketchat channel (empty = do not send a notification for unconfigured
31 # roles).
32 DEFAULT_RECIPIENT_ROCKETCHAT="monitoring_alarms"
33 -
33 ```
34
35 You can define multiple channels like this: `alarms systems`.
@@ -45,4 +44,4 @@ role_recipients_rocketchat[webmaster]="marketing development"
44 The keywords `systems`, `databases`, `marketing`, `development` are RocketChat channels (they should already exist).
45 Both public and private channels can be used, even if they differ from the channel configured in yout RocketChat incomming webhook.
46
48 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Frocketchat%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
47 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Frocketchat%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/slack/README.md
+9 -9
@@ -5,11 +5,11 @@ This is what you will get:
5
6 You need:
7
8 -1. The **incoming webhook URL** as given by slack.com. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
9 -2. One or more channels to post the messages to.
8 +1. The **incoming webhook URL** as given by slack.com. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
9 +2. One or more channels to post the messages to.
10
11 To get a webhook that works on multiple channels, you will need to login to your slack.com workspace and create an incoming webhook using the [Incoming Webhooks App](https://slack.com/apps/A0F7XDUAZ-incoming-webhooks).
12 -Do NOT use the instructions in https://api.slack.com/incoming-webhooks#enable_webhooks, as the particular webhooks work only for a single channel.
12 +Do NOT use the instructions in <https://api.slack.com/incoming-webhooks#enable_webhooks>, as the particular webhooks work only for a single channel.
13
14 Set the webhook and the recipients in `/etc/netdata/health_alarm_notify.conf` (to edit it on your system run `/etc/netdata/edit-config health_alarm_notify.conf`), like this:
15
@@ -24,15 +24,15 @@ SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXX
24 # - The channel or user defined in slack for the webhook (syntax: '#')
25 # empty = do not send a notification for unconfigured roles
26 DEFAULT_RECIPIENT_SLACK="alarms"
27 -
27 ```
28
29 You can define multiple recipients like this: `# #alarms systems @myuser`.
30 This example will send the alarm to:
32 -- The recipient defined in slack for the webhook (not known to Netdata)
33 -- The channel 'alarms'
34 -- The channel 'systems'
35 -- The user @myuser
31 +
32 +- The recipient defined in slack for the webhook (not known to Netdata)
33 +- The channel 'alarms'
34 +- The channel 'systems'
35 +- The user @myuser
36
37 You can give different recipients per **role** using these (at the same file):
38
@@ -42,4 +42,4 @@ role_recipients_slack[dba]="databases systems"
42 role_recipients_slack[webmaster]="marketing development"
43 ```
44
45 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fslack%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
45 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fslack%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/smstools3/README.md
+3 -3
@@ -6,8 +6,8 @@ To have Netdata send notifications via SMS Server Tools 3, you'll first need to
6
7 Ensure that the user `netdata` can execute `sendsms`. Any user executing `sendsms` needs to:
8
9 -* Have write permissions to `/tmp` and `/var/spool/sms/outgoing`
10 -* Be a member of group `smsd`
9 +- Have write permissions to `/tmp` and `/var/spool/sms/outgoing`
10 +- Be a member of group `smsd`
11
12 To ensure that the steps above are successful, just `su netdata` and execute `sendsms phone message`.
13
@@ -36,4 +36,4 @@ Netdata uses the script `sendsms` that is installed by `smstools3` and just pass
36 sendsms=""
37 ```
38
39 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fsmstools3%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
39 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fsmstools3%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/syslog/README.md
+7 -3
@@ -4,7 +4,9 @@ You need a working `logger` command for this to work. This is the case on prett
4
5 Logged messages will look like this:
6
7 - netdata WARNING on hostname at Tue Apr 3 09:00:00 EDT 2018: disk_space._ out of disk space time = 5h
7 +```
8 +netdata WARNING on hostname at Tue Apr 3 09:00:00 EDT 2018: disk_space._ out of disk space time = 5h
9 +```
10
11 ## configuration
12
@@ -14,7 +16,9 @@ You can als configure per-role targets in the same file a bit further down.
16
17 Targets are defined as follows:
18
17 - [[facility.level][@host[:port]]/]prefix
19 +```
20 +[[facility.level][@host[:port]]/]prefix
21 +```
22
23 `prefix` defines what the log messages are prefixed with. By default, all lines are prefixed with 'netdata'.
24
@@ -22,4 +26,4 @@ The `facility` and `level` are the standard syslog facility and level options, f
26
27 You can configure sending directly to remote log servers by specifying a host (and optionally a port). However, this has a somewhat high overhead, so it is much preferred to use your local syslog daemon to handle the forwarding of messages to remote systems (pretty much all of them allow at least simple forwarding, and most of the really popular ones support complex queueing and routing of messages to remote log servers).
28
25 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fsyslog%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
29 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fsyslog%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/telegram/README.md
+4 -4
@@ -8,9 +8,9 @@ Netdata will send warning messages without vibration.
8
9 You need:
10
11 -1. A bot token. To get one, contact the [@BotFather](https://t.me/BotFather) bot and send the command `/newbot`. Follow the instructions.
12 -2. A chat id for every chat you want to send messages to. Contact the [@myidbot](https://t.me/myidbot) bot and send the command `/getid` to get your personal chat id or invite him into a group and issue the same command to get the group chat id.
13 -3. Start a conversation with your bot or invite him into a group you want to sent messages to.
11 +1. A bot token. To get one, contact the [@BotFather](https://t.me/BotFather) bot and send the command `/newbot`. Follow the instructions.
12 +2. A chat id for every chat you want to send messages to. Contact the [@myidbot](https://t.me/myidbot) bot and send the command `/getid` to get your personal chat id or invite him into a group and issue the same command to get the group chat id.
13 +3. Start a conversation with your bot or invite him into a group you want to sent messages to.
14
15 See slack for configuration.
16
@@ -18,4 +18,4 @@ Telegram messages look like this:
18
19 ![image](https://fb.hash.works/ytl/preview.jpg)
20
21 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Ftelegram%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
21 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Ftelegram%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/twilio/README.md
+6 -6
@@ -6,11 +6,11 @@ Will look like this on your Android device:
6
7 You will need:
8
9 -1. Signup and Login to twilio.com
10 -2. Pick an SMS capable number during sign up.
11 -3. Get your SID, and Token from <https://www.twilio.com/console>
12 -3. Fill in TWILIO_ACCOUNT_SID="XXXXXXXX" TWILIO_ACCOUNT_TOKEN="XXXXXXXXX" TWILIO_NUMBER="+XXXXXXXXXXX"
13 -4. Add the recipient phone numbers to DEFAULT_RECIPIENT_TWILIO="+XXXXXXXXXXX"
9 +1. Signup and Login to twilio.com
10 +2. Pick an SMS capable number during sign up.
11 +3. Get your SID, and Token from <https://www.twilio.com/console>
12 +4. Fill in TWILIO_ACCOUNT_SID="XXXXXXXX" TWILIO_ACCOUNT_TOKEN="XXXXXXXXX" TWILIO_NUMBER="+XXXXXXXXXXX"
13 +5. Add the recipient phone numbers to DEFAULT_RECIPIENT_TWILIO="+XXXXXXXXXXX"
14
15 !!PLEASE NOTE THAT IF YOUR ACCOUNT IS A TRIAL ACCOUNT YOU WILL ONLY BE ABLE TO SEND NOTIFICATIONS TO THE NUMBER YOU SIGNED UP WITH
16
@@ -39,4 +39,4 @@ TWILIO_NUMBER="xxxxxxxxxxx"
39 DEFAULT_RECIPIENT_TWILIO="+15555555555"
40 ```
41
42 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Ftwilio%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
42 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Ftwilio%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
health/notifications/web/README.md
+1 -1
@@ -5,4 +5,4 @@ The Netdata dashboard shows HTML notifications, when it is open.
5 Such web notifications look like this:
6 ![image](https://cloud.githubusercontent.com/assets/2662304/18407279/82bac6a6-7714-11e6-847e-c2e84eeacbfb.png)
7
8 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fweb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
8 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fhealth%2Fnotifications%2Fweb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/README.md
+1 -4
@@ -2,7 +2,4 @@
2
3 `libnetdata` is a collection of library code that is used by all Netdata `C` programs.
4
5 -
6 -
7 -
8 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
5 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/adaptive_resortable_list/README.md
+21 -22
@@ -1,4 +1,3 @@
1 -
1 # Adaptive Re-sortable List (ARL)
2
3 This library allows Netdata to read a series of `name - value` pairs
@@ -19,9 +18,9 @@ linked list will adapt at the next iteration.
18
19 During initialization (just once), the caller:
20
22 -- calls `arl_create()` to create the ARL
21 +- calls `arl_create()` to create the ARL
22
24 -- calls `arl_expect()` multiple times to register the expected keywords
23 +- calls `arl_expect()` multiple times to register the expected keywords
24
25 The library will call the `processor()` function (given to
26 `arl_create()`), for each expected keyword found.
@@ -34,16 +33,16 @@ Each `name` keyword may have a different `processor()` (by calling
33
34 For each iteration through the data source, the caller:
35
37 -- calls `arl_begin()` to initiate a data collection iteration.
38 - This is to be called just ONCE every time the source is re-evaluated.
36 +- calls `arl_begin()` to initiate a data collection iteration.
37 + This is to be called just ONCE every time the source is re-evaluated.
38
40 -- calls `arl_check()` for each entry read from the file.
39 +- calls `arl_check()` for each entry read from the file.
40
41 ### Cleanup
42
43 When the caller exits:
44
46 -- calls `arl_free()` to destroy this and free all memory.
45 +- calls `arl_free()` to destroy this and free all memory.
46
47 ### Performance
48
@@ -68,22 +67,22 @@ In the following test we used alternative methods to process, **1M times**,
67 a data source like `/proc/meminfo`, already tokenized, in memory,
68 to extract the same number of expected metrics:
69
71 -test|code|string comparison|number parsing|duration
72 -:---:|:---:|:---:|:---:|:---:|
73 -1|if-else-if-else-if|`strcmp()`|`strtoull()`|4630.337 ms
74 -2|nested loops|inline `simple_hash()` and `strcmp()`|`strtoull()`|1597.481 ms
75 -3|nested loops|inline `simple_hash()` and `strcmp()`|`str2ull()`|923.523 ms
76 -4|if-else-if-else-if|inline `simple_hash()` and `strcmp()`|`strtoull()`| 854.574 ms
77 -5|if-else-if-else-if|statement expression `simple_hash()` and `strcmp()`|`strtoull()`|912.013 ms
78 -6|if-continue|inline `simple_hash()` and `strcmp()`|`strtoull()`|842.279 ms
79 -7|if-else-if-else-if|inline `simple_hash()` and `strcmp()`|`str2ull()`|602.837 ms
80 -8|ARL|ARL|`strtoull()`|350.360 ms
81 -9|ARL|ARL|`str2ull()`|157.237 ms
70 +|test|code|string comparison|number parsing|duration|
71 +|:--:|:--:|:---------------:|:------------:|:------:|
72 +|1|if-else-if-else-if|`strcmp()`|`strtoull()`|4630.337 ms|
73 +|2|nested loops|inline `simple_hash()` and `strcmp()`|`strtoull()`|1597.481 ms|
74 +|3|nested loops|inline `simple_hash()` and `strcmp()`|`str2ull()`|923.523 ms|
75 +|4|if-else-if-else-if|inline `simple_hash()` and `strcmp()`|`strtoull()`|854.574 ms|
76 +|5|if-else-if-else-if|statement expression `simple_hash()` and `strcmp()`|`strtoull()`|912.013 ms|
77 +|6|if-continue|inline `simple_hash()` and `strcmp()`|`strtoull()`|842.279 ms|
78 +|7|if-else-if-else-if|inline `simple_hash()` and `strcmp()`|`str2ull()`|602.837 ms|
79 +|8|ARL|ARL|`strtoull()`|350.360 ms|
80 +|9|ARL|ARL|`str2ull()`|157.237 ms|
81
82 Compared to unoptimized code (test No 1: 4.6sec):
84 -
85 - - before ARL Netdata was using test No **7** with hashing and a custom `str2ull()` to achieve 602ms.
86 - - the current ARL implementation is test No **9** that needs only 157ms (29 times faster vs unoptimized code, about 4 times faster vs optimized code).
83 +
84 +- before ARL Netdata was using test No **7** with hashing and a custom `str2ull()` to achieve 602ms.
85 +- the current ARL implementation is test No **9** that needs only 157ms (29 times faster vs unoptimized code, about 4 times faster vs optimized code).
86
87 [Check the source code of this test](../../tests/profile/benchmark-value-pairs.c).
88
@@ -92,4 +91,4 @@ Compared to unoptimized code (test No 1: 4.6sec):
91 Do not use ARL if the a name/keyword may appear more than once in the
92 source data.
93
95 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fadaptive_resortable_list%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
94 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fadaptive_resortable_list%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/avl/README.md
+1 -1
@@ -9,4 +9,4 @@ use any memory allocations and their memory footprint is optimized
9
10 In addition to the above, this version of AVL, provides versions using locks
11 and traversal functions.
12 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Favl%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
12 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Favl%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/buffer/README.md
+1 -1
@@ -9,4 +9,4 @@ is just a lookup (it does not traverse the string).
9
10 Netdata uses `BUFFER`s for preparing web responses and buffering data to be sent upstream or
11 to backend databases.
12 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fbuffer%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
12 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fbuffer%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/clocks/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fclocks%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fclocks%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/config/README.md
+6 -5
@@ -17,9 +17,9 @@ developers and the users.
17
18 So, we did this:
19
20 -1. No configuration is required to run Netdata
21 -2. There are plenty of options to tweak
22 -3. There is minimal documentation (or no at all)
20 +1. No configuration is required to run Netdata
21 +2. There are plenty of options to tweak
22 +3. There is minimal documentation (or no at all)
23
24 ## Why this works?
25
@@ -33,7 +33,8 @@ In all places, in the code, there are both the `names` and their
33 file, the default is used. The lookup is made using B-Trees and hashes
34 (no string comparisons), so they are super fast. Also the `names` of the
35 settings can be `my super duper setting that once set to yes, will turn the world upside down = no`
36 -- so goodbye to most of the documentation involved.
36 +
37 +- so goodbye to most of the documentation involved.
38
39 Next, Netdata can generate a valid configuration for the user to edit.
40 No need to remember anything or copy and paste settings. Just get the
@@ -45,4 +46,4 @@ When you get the configuration file from the server, there will be a
46 comment above all `name = value` pairs the server does not use.
47 So you know that whatever you wrote there, is not used.
48
48 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fconfig%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
49 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fconfig%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/dictionary/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fdictionary%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fdictionary%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/eval/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Feval%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Feval%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/json/README.md
+2 -2
@@ -1,5 +1,5 @@
1 # json
2
3 -`json` contains a parser for json strings, based on `jsmn` (https://github.com/zserge/jsmn), but case you have installed the JSON-C library, the installation script will prefer it, you can also force its use with `--enable-jsonc` in the compilation time.
3 +`json` contains a parser for json strings, based on `jsmn` (<https://github.com/zserge/jsmn>), but case you have installed the JSON-C library, the installation script will prefer it, you can also force its use with `--enable-jsonc` in the compilation time.
4
5 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fjson%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
5 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fjson%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/locks/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Flocks%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Flocks%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/log/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Flog%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Flog%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/popen/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fpopen%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fpopen%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/procfile/README.md
+23 -24
@@ -1,4 +1,3 @@
1 -
1 # PROCFILE
2
3 procfile is a library for reading text data files (i.e `/proc` files) in the fastest possible way.
@@ -15,49 +14,49 @@ The library also supported quoted words (i.e. strings within of which the separa
14
15 Initially the caller:
16
18 -- calls `procfile_open()` to open the file and allocate the structures needed.
17 +- calls `procfile_open()` to open the file and allocate the structures needed.
18
19 ### Iterations
20
21 For each iteration, the caller:
22
24 -- calls `procfile_readall()` to read updated contents.
25 - This call also rewinds (`lseek()` to 0) before reading it.
23 +- calls `procfile_readall()` to read updated contents.
24 + This call also rewinds (`lseek()` to 0) before reading it.
25 +
26 + For every file, a [BUFFER](../buffer/) is used that is automatically adjusted to fit
27 + the entire file contents of the file. So the file is read with a single `read()` call
28 + (providing atomicity / consistency when the data are read from the kernel).
29 +
30 + Once the data are read, 2 arrays of pointers are updated:
31
27 - For every file, a [BUFFER](../buffer/) is used that is automatically adjusted to fit
28 - the entire file contents of the file. So the file is read with a single `read()` call
29 - (providing atomicity / consistency when the data are read from the kernel).
32 + - a `words` array, pointing to each word in the data read
33 + - a `lines` array, pointing to the first word for each line
34
31 - Once the data are read, 2 arrays of pointers are updated:
35 + This is highly optimized. Both arrays are automatically adjusted to
36 + fit all contents and are updated in a single pass on the data.
37
33 - - a `words` array, pointing to each word in the data read
34 - - a `lines` array, pointing to the first word for each line
38 + The library provides a number of macros:
39
36 - This is highly optimized. Both arrays are automatically adjusted to
37 - fit all contents and are updated in a single pass on the data.
38 -
39 - The library provides a number of macros:
40 -
41 - - `procfile_lines()` returns the # of lines read
42 - - `procfile_linewords()` returns the # of words in the given line
43 - - `procfile_word()` returns a pointer the given word #
44 - - `procfile_line()` returns a pointer to the first word of the given line #
45 - - `procfile_lineword()` returns a pointer to the given word # of the given line #
40 + - `procfile_lines()` returns the # of lines read
41 + - `procfile_linewords()` returns the # of words in the given line
42 + - `procfile_word()` returns a pointer the given word #
43 + - `procfile_line()` returns a pointer to the first word of the given line #
44 + - `procfile_lineword()` returns a pointer to the given word # of the given line #
45
46 ### Cleanup
47
48 When the caller exits:
49
51 -- calls `procfile_free()` to close the file and free all memory used.
50 +- calls `procfile_free()` to close the file and free all memory used.
51
52 ### Performance
53
55 -- a **raspberry Pi 1** (the oldest single core one) can process 5.000+ `/proc` files per second.
56 -- a **J1900 Celeron** processor can process 23.000+ `/proc` files per second per core.
54 +- a **raspberry Pi 1** (the oldest single core one) can process 5.000+ `/proc` files per second.
55 +- a **J1900 Celeron** processor can process 23.000+ `/proc` files per second per core.
56
57 To achieve this kind of performance, the library tries to work in batches so that the code
58 and the data are inside the processor's caches.
59
60 This library is extensively used in Netdata and its plugins.
61
63 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fprocfile%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
62 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fprocfile%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/simple_pattern/README.md
+1 -2
@@ -34,5 +34,4 @@ Netdata stops processing to the first positive or negative match
34 (left to right). If it is not matched by either positive or negative
35 patterns, it is denied at the end.
36
37 -
38 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fsimple_pattern%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
37 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fsimple_pattern%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/socket/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fsocket%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fsocket%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/statistical/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fstatistical%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fstatistical%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/storage_number/README.md
+1 -1
@@ -9,4 +9,4 @@ have less decimal precision) and 3 bits for flags.
9
10 This provides an extremely optimized memory footprint with just 0.0001% max accuracy loss.
11
12 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fstorage_number%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
12 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fstorage_number%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/threads/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fthreads%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Fthreads%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
libnetdata/url/README.md
+1 -2
@@ -1,2 +1 @@
1 -
2 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Furl%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Flibnetdata%2Furl%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
package.json
+1 -1
@@ -52,6 +52,6 @@
52 "scripts": {
53 "lint-md": "remark .",
54 "lint-md-path": "remark",
55 - "fix-md": "remark collectors --output"
55 + "fix-md": "remark . --output"
56 }
57 }
packaging/DISTRIBUTIONS.md
+164 -161
@@ -1,4 +1,5 @@
1 # Netdata distribution support matrix
2 +
3 ![](https://raw.githubusercontent.com/netdata/netdata/master/web/gui/images/packaging-beta-tag.svg?sanitize=true)
4
5 In the following table we've listed Netdata's official supported operating systems. We detail the distributions, flavors, and the level of support Netdata is currently capable to provide.
@@ -9,84 +10,82 @@ have complete visibility over the range of support.
10
11 **Legend**:
12
12 -- **Version**: Operating system version supported
13 -- **Family**: The family that the OS belongs to
14 -- **CI Smoke Testing**: Smoke testing has been implemented on our CI, to prevent broken code reaching our users
15 -- **CI Testing**: Testing has been implemented to prevent broken or problematic code reaching our users
16 -- **CI Integration**: CI Integration has been fully implemented for the particular operating system version
17 -- **CD**: Continious deployment support has been fully enabled for this operating system
18 -- **.DEB**: We provide a `.DEB` package for that particular operating system
19 -- **.RPM**: We provide a `.RPM` package for that particular operating system
20 -- **Installer**: Running netdata from source, using our installer, is working for this operating system
21 -- **Kickstart**: Kickstart installation is working fine for this operating system
22 -- **Kickstart64**: Kickstart static64 installation is working fine for this operating system
23 -- **Community**: This operating system receives community support, such as packaging maintainers, contributors, and so on
24 -
13 +- **Version**: Operating system version supported
14 +- **Family**: The family that the OS belongs to
15 +- **CI Smoke Testing**: Smoke testing has been implemented on our CI, to prevent broken code reaching our users
16 +- **CI Testing**: Testing has been implemented to prevent broken or problematic code reaching our users
17 +- **CI Integration**: CI Integration has been fully implemented for the particular operating system version
18 +- **CD**: Continious deployment support has been fully enabled for this operating system
19 +- **.DEB**: We provide a `.DEB` package for that particular operating system
20 +- **.RPM**: We provide a `.RPM` package for that particular operating system
21 +- **Installer**: Running netdata from source, using our installer, is working for this operating system
22 +- **Kickstart**: Kickstart installation is working fine for this operating system
23 +- **Kickstart64**: Kickstart static64 installation is working fine for this operating system
24 +- **Community**: This operating system receives community support, such as packaging maintainers, contributors, and so on
25
26 ## AMD64 Architecture
27
28 -Version | Family | CI Smoke testing | CI Testing | CD | .DEB | .RPM | Installer | Kickstart | Kickstart64 | Community
28 +| Version | Family | CI Smoke testing | CI Testing | CD | .DEB | .RPM | Installer | Kickstart | Kickstart64 | Community
29 :------------------: | :------------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------:
30 -14.04.6 LTS (Trusty Tahr) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
31 -16.04.6 LTS (Xenial Xerus) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
32 -18.04.2 LTS (Bionic Beaver) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
33 -19.04 (Disco Dingo) Latest | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
34 -Debian 7 (Wheezy) | Debian | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
35 -Debian 8 (Jessie) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
36 -Debian 9 (Stretch) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
37 -Debian 10 (Buster) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
38 -Versions 6.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
39 -Versions 7.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
40 -Versions 8.* | RHEL | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
41 -Fedora 28 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
42 -Fedora 29 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
43 -Fedora 30 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
44 -Fedora 31 | Fedora | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
45 -CentOS 6.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
46 -CentOS 7.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
47 -CentOS 8.* | Cent OS | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
48 -OpenSuSE Leap 15.0 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
49 -OpenSuSE Leap 15.1 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
50 -OpenSuSE Tumbleweed | Open SuSE | &#10004; | &#63; | &#63; | N/A | &#10007; | &#10004; | &#63; | &#10004; | &#63;
51 -SLES 11 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
52 -SLES 12 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
53 -SLES 15 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
54 -Alpine | Alpine | &#10004; | &#63; | &#10007; | N/A | N/A | &#10004; | &#10004; | &#10004; | &#63;
55 -Arch Linux (latest) | Arch | &#10004; | &#63; | &#10007; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
56 -All other linux | Other | &#63; | &#63; | &#63; | &#10007; | &#10007; | &#63; | &#63; | &#10004; | &#63;
30 +| 14.04.6 LTS (Trusty Tahr) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
31 +| 16.04.6 LTS (Xenial Xerus) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
32 +| 18.04.2 LTS (Bionic Beaver) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
33 +| 19.04 (Disco Dingo) Latest | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
34 +| Debian 7 (Wheezy) | Debian | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
35 +| Debian 8 (Jessie) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
36 +| Debian 9 (Stretch) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
37 +| Debian 10 (Buster) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
38 +| Versions 6.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
39 +| Versions 7.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
40 +| Versions 8.* | RHEL | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
41 +| Fedora 28 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
42 +| Fedora 29 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
43 +| Fedora 30 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
44 +| Fedora 31 | Fedora | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
45 +| CentOS 6.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
46 +| CentOS 7.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
47 +| CentOS 8.* | Cent OS | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
48 +| OpenSuSE Leap 15.0 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
49 +| OpenSuSE Leap 15.1 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
50 +| OpenSuSE Tumbleweed | Open SuSE | &#10004; | &#63; | &#63; | N/A | &#10007; | &#10004; | &#63; | &#10004; | &#63;
51 +| SLES 11 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
52 +| SLES 12 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
53 +| SLES 15 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
54 +| Alpine | Alpine | &#10004; | &#63; | &#10007; | N/A | N/A | &#10004; | &#10004; | &#10004; | &#63;
55 +| Arch Linux (latest) | Arch | &#10004; | &#63; | &#10007; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
56 +| All other linux | Other | &#63; | &#63; | &#63; | &#10007; | &#10007; | &#63; | &#63; | &#10004; | &#63;
57
58 ## x86 Architecture
59
60 -Version | Family | CI Smoke testing | CI Testing | CD | .DEB | .RPM | Installer | Kickstart | Kickstart64 | Community
60 +| Version | Family | CI Smoke testing | CI Testing | CD | .DEB | .RPM | Installer | Kickstart | Kickstart64 | Community
61 :------------------: | :------------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------:
62 -14.04.6 LTS (Trusty Tahr) | Ubuntu | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
63 -16.04.6 LTS (Xenial Xerus) | Ubuntu | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
64 -18.04.2 LTS (Bionic Beaver) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
65 -19.04 (Disco Dingo) Latest | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
66 -Debian 7 (Wheezy) | Debian | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
67 -Debian 8 (Jessie) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
68 -Debian 9 (Stretch) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
69 -Debian 10 (Buster) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
70 -Versions 6.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
71 -Versions 7.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
72 -Versions 8.* | RHEL | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
73 -Fedora 28 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
74 -Fedora 29 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
75 -Fedora 30 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
76 -Fedora 31 | Fedora | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
77 -CentOS 6.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
78 -CentOS 7.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
79 -CentOS 8.* | Cent OS | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
80 -OpenSuSE Leap 15.0 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
81 -OpenSuSE Leap 15.1 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
82 -OpenSuSE Tumbleweed | Open SuSE | &#10004; | &#63; | &#63; | N/A | &#10007; | &#10004; | &#63; | &#10004; | &#63;
83 -SLES 11 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
84 -SLES 12 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
85 -SLES 15 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
86 -Alpine | Alpine | &#10004; | &#63; | &#10007; | N/A | N/A | &#10004; | &#10004; | &#10004; | &#63;
87 -Arch Linux (latest) | Arch | &#10004; | &#63; | &#10007; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
88 -All other linux | Other | &#63; | &#63; | &#63; | &#10007; | &#10007; | &#63; | &#63; | &#10004; | &#63;
89 -
62 +| 14.04.6 LTS (Trusty Tahr) | Ubuntu | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
63 +| 16.04.6 LTS (Xenial Xerus) | Ubuntu | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
64 +| 18.04.2 LTS (Bionic Beaver) | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
65 +| 19.04 (Disco Dingo) Latest | Ubuntu | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
66 +| Debian 7 (Wheezy) | Debian | &#10004; | &#63; | &#10004; | &#10007; | N/A | &#10004; | &#10004; | &#10004; | &#63;
67 +| Debian 8 (Jessie) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
68 +| Debian 9 (Stretch) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
69 +| Debian 10 (Buster) | Debian | &#10004; | &#63; | &#10004; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#63;
70 +| Versions 6.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
71 +| Versions 7.* | RHEL | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
72 +| Versions 8.* | RHEL | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
73 +| Fedora 28 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
74 +| Fedora 29 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
75 +| Fedora 30 | Fedora | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
76 +| Fedora 31 | Fedora | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
77 +| CentOS 6.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
78 +| CentOS 7.* | Cent OS | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
79 +| CentOS 8.* | Cent OS | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
80 +| OpenSuSE Leap 15.0 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
81 +| OpenSuSE Leap 15.1 | Open SuSE | &#10004; | &#63; | &#10004; | N/A | &#10004; | &#10004; | &#10004; | &#10004; | &#63;
82 +| OpenSuSE Tumbleweed | Open SuSE | &#10004; | &#63; | &#63; | N/A | &#10007; | &#10004; | &#63; | &#10004; | &#63;
83 +| SLES 11 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
84 +| SLES 12 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
85 +| SLES 15 | SLES | &#63; | &#63; | &#63; | N/A | &#10007; | &#63; | &#63; | &#10004; | &#63;
86 +| Alpine | Alpine | &#10004; | &#63; | &#10007; | N/A | N/A | &#10004; | &#10004; | &#10004; | &#63;
87 +| Arch Linux (latest) | Arch | &#10004; | &#63; | &#10007; | N/A | &#10007; | &#10004; | &#10004; | &#10004; | &#63;
88 +| All other linux | Other | &#63; | &#63; | &#63; | &#10007; | &#10007; | &#63; | &#63; | &#10004; | &#63;
89
90 ## Supported functionalities accross different distribution channels
91
@@ -95,157 +94,161 @@ There are various limitations and problems we try to attend as we evolve and gro
94
95 **Legend**:
96
98 -- **Auto-detect**: Depends on the programs package dependencies. If the required dependencies are covered during compile time, capability is enabled
99 -- **YES**: This flag implies that the functionality is available for that distribution channel
100 -- **NO**: Not available at the moment for that distribution channel at this time, but may be a work-in-progress effort from the Netdata team.
101 -- **At Runtime**: The given module or functionality is available and only requires configuration after install to enable it
97 +- **Auto-detect**: Depends on the programs package dependencies. If the required dependencies are covered during compile time, capability is enabled
98 +- **YES**: This flag implies that the functionality is available for that distribution channel
99 +- **NO**: Not available at the moment for that distribution channel at this time, but may be a work-in-progress effort from the Netdata team.
100 +- **At Runtime**: The given module or functionality is available and only requires configuration after install to enable it
101
102 ### Core functionality
103
104 #### Core
105 +
106 This is the base netdata capability, that includes basic monitoring, embedded web server, and so on.
107
108 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
109 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
110 -| YES | YES | YES | YES | YES | YES | YES |
108 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
109 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
110 +|YES|YES|YES|YES|YES|YES|YES|
111
112 -- **Flags/instructions to enable**: None
113 -- **Flags to disable from source**: None
114 -- **What packages required for auto-detect?**: `install-required-packages.sh netdata`
112 +- **Flags/instructions to enable**: None
113 +- **Flags to disable from source**: None
114 +- **What packages required for auto-detect?**: `install-required-packages.sh netdata`
115
116 #### DB Engine
117 +
118 This is the brand new database engine capability of netdata. It is a mandatory facility required by netdata. Given it's special needs and dependencies though, it remains an optional facility so that users can enjoy netdata even when they cannot cover the dependencies or the H/W requirements.
119
119 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
120 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
121 -| Auto-detect | Auto-detect | YES | YES | YES | YES | YES |
120 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
121 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
122 +|Auto-detect|Auto-detect|YES|YES|YES|YES|YES|
123
123 -- **Flags/instructions to enable**: None
124 -- **Flags to disable from source**: `--disable-dbengine`
125 -- **What packages required for auto-detect?**: `openssl`, `libuv1`, `lz4`, `Judy`
124 +- **Flags/instructions to enable**: None
125 +- **Flags to disable from source**: `--disable-dbengine`
126 +- **What packages required for auto-detect?**: `openssl`, `libuv1`, `lz4`, `Judy`
127
128 #### Encryption Support (HTTPS)
128 -This is Netdata's TLS capability that incorporates encryption on the web server and the APIs between master and slaves. Also a mandatory facility for Netdata, but remains optional for users who are limited or not interested in tight security
129
130 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
131 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
132 -| Auto-detect | Auto-detect | YES | YES | YES | YES | YES |
130 +This is Netdata's TLS capability that incorporates encryption on the web server and the APIs between master and slaves. Also a mandatory facility for Netdata, but remains optional for users who are limited or not interested in tight security
131
134 -- **Flags/instructions to enable**: None
135 -- **Flags to disable from source**: --disable-https
136 -- **What packages required for auto-detect?**: `openssl`
132 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
133 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
134 +|Auto-detect|Auto-detect|YES|YES|YES|YES|YES|
135
136 +- **Flags/instructions to enable**: None
137 +- **Flags to disable from source**: --disable-https
138 +- **What packages required for auto-detect?**: `openssl`
139
140 ### Libraries/optimizations
141
142 #### JSON-C Support
142 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
143 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
144 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | NO | YES | YES |
143
146 -- **Flags/instructions to enable**: None
147 -- **Flags to disable from source**: --disable-jsonc
148 -- **What packages required for auto-detect?**: `json-c`
144 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
145 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
146 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|NO|YES|YES|
147 +
148 +- **Flags/instructions to enable**: None
149 +- **Flags to disable from source**: --disable-jsonc
150 +- **What packages required for auto-detect?**: `json-c`
151
152 #### Link time optimizations
151 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
152 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
153 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | Auto-detect | Auto-detect | Auto-detect |
153
155 -- **Flags/instructions to enable**: None
156 -- **Flags to disable from source**: --disable-lto
157 -- **What packages required for auto-detect?**: No package dependency, depends on GCC version
154 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
155 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
156 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|Auto-detect|Auto-detect|Auto-detect|
157 +
158 +- **Flags/instructions to enable**: None
159 +- **Flags to disable from source**: --disable-lto
160 +- **What packages required for auto-detect?**: No package dependency, depends on GCC version
161
162 ### Collectors
163
164 #### FREEIPMI
162 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
163 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
164 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | No | YES | YES |
165
166 -- **Flags/instructions to enable**: None
167 -- **Flags to disable from source**: --disable-plugin-freeipmi
168 -- **What packages required for auto-detect?**: `freeipmi-dev (or -devel)`
166 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
167 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
168 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|No|YES|YES|
169
170 +- **Flags/instructions to enable**: None
171 +- **Flags to disable from source**: --disable-plugin-freeipmi
172 +- **What packages required for auto-detect?**: `freeipmi-dev (or -devel)`
173
174 #### NFACCT
172 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
173 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
174 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | NO | YES | YES |
175
176 -- **Flags/instructions to enable**: None
177 -- **Flags to disable from source**: --disable-plugin-nfacct
178 -- **What packages required for auto-detect?**: `libmnl-dev`, `libnetfilter_acct-dev`
176 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
177 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
178 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|NO|YES|YES|
179
180 +- **Flags/instructions to enable**: None
181 +- **Flags to disable from source**: --disable-plugin-nfacct
182 +- **What packages required for auto-detect?**: `libmnl-dev`, `libnetfilter_acct-dev`
183
184 #### Xenstat
185
183 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
184 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
185 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | NO | NO | NO |
186 -
187 -- **Flags/instructions to enable**: None
188 -- **Flags to disable from source**: --disable-plugin-xenstat
189 -- **What packages required for auto-detect?**: `xen-dom0-libs-devel`, `yajl-dev`
186 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
187 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
188 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|NO|NO|NO|
189
190 +- **Flags/instructions to enable**: None
191 +- **Flags to disable from source**: --disable-plugin-xenstat
192 +- **What packages required for auto-detect?**: `xen-dom0-libs-devel`, `yajl-dev`
193
194 #### CUPS
193 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
194 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
195 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | NO | YES | YES |
195
197 -- **Flags/instructions to enable**: None
198 -- **Flags to disable from source**: --disable-plugin-cups
199 -- **What packages required for auto-detect?**: `cups-devel`
196 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
197 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
198 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|NO|YES|YES|
199
200 +- **Flags/instructions to enable**: None
201 +- **Flags to disable from source**: --disable-plugin-cups
202 +- **What packages required for auto-detect?**: `cups-devel`
203
204 #### FPING
203 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
204 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
205 -| At Runtime | At Runtime | At Runtime | At Runtime | At Runtime | At Runtime | At Runtime |
205
207 -- **Flags/instructions to enable**: ${INSTALL_PATH}/netdata/plugins.d/fping.plugin install
208 -- **Flags to disable from source**: None -- just dont install
209 -- **What packages required for auto-detect?**: None - only fping installed to start it up
206 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
207 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
208 +|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|
209
210 +- **Flags/instructions to enable**: ${INSTALL_PATH}/netdata/plugins.d/fping.plugin install
211 +- **Flags to disable from source**: None -- just dont install
212 +- **What packages required for auto-detect?**: None - only fping installed to start it up
213
214 #### IOPING
213 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
214 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
215 -| At Runtime | At Runtime | At Runtime | At Runtime | At Runtime | At Runtime | At Runtime |
215
217 -- **Flags/instructions to enable**: ${INSTALL_PATH}/netdata/plugins.d/ioping.plugin install
218 -- **Flags to disable from source**: None -- just dont install
219 -- **What packages required for auto-detect?**: None - only ioping installed to start it up
216 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
217 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
218 +|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|
219
220 +- **Flags/instructions to enable**: ${INSTALL_PATH}/netdata/plugins.d/ioping.plugin install
221 +- **Flags to disable from source**: None -- just dont install
222 +- **What packages required for auto-detect?**: None - only ioping installed to start it up
223
224 #### PERF
223 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
224 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
225 -| At Runtime | At Runtime | At Runtime | At Runtime | At Runtime | At Runtime | At Runtime |
225
227 -- **Flags/instructions to enable**: Inside netdata.conf, section `[Plugins]`, set `"perf = yes"`
228 -- **Flags to disable from source**: --disable-perf
229 -- **What packages required for auto-detect?**: None
226 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
227 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
228 +|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|At Runtime|
229
230 +- **Flags/instructions to enable**: Inside netdata.conf, section `[Plugins]`, set `"perf = yes"`
231 +- **Flags to disable from source**: --disable-perf
232 +- **What packages required for auto-detect?**: None
233
234 ### Backends
235
234 -
236 #### Prometheus remote write
236 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
237 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
238 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | NO | YES | YES |
237
240 -- **Flags/instructions to enable**: None
241 -- **Flags to disable from source**: --disable-backend-prometheus-remote-write
242 -- **What packages required for auto-detect?**: `snappy-devel`, `protobuf`, `protobuf-compiler`
238 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
239 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
240 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|NO|YES|YES|
241 +
242 +- **Flags/instructions to enable**: None
243 +- **Flags to disable from source**: --disable-backend-prometheus-remote-write
244 +- **What packages required for auto-detect?**: `snappy-devel`, `protobuf`, `protobuf-compiler`
245
246 #### AWS Kinesis
245 -| make/make install | netdata-installer.sh | kickstart.sh | kickstart-static64.sh | Docker image | RPM packaging | DEB packaging |
246 -| :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------: |
247 -| Auto-detect | Auto-detect | Auto-detect | Auto-detect | NO | NO | NO |
247
249 -- **Flags/instructions to enable**: [Instructions for AWS Kinesis](https://docs.netdata.cloud/backends/aws_kinesis)
250 -- **Flags to disable from source**: --disable-backend-kinesis
251 -- **What packages required for auto-detect?**: `AWS SDK for C++`, `libcurl`, `libssl`, `libcrypto`
248 +|make/make install|netdata-installer.sh|kickstart.sh|kickstart-static64.sh|Docker image|RPM packaging|DEB packaging|
249 +|:---------------:|:------------------:|:----------:|:-------------------:|:----------:|:-----------:|:-----------:|
250 +|Auto-detect|Auto-detect|Auto-detect|Auto-detect|NO|NO|NO|
251 +
252 +- **Flags/instructions to enable**: [Instructions for AWS Kinesis](https://docs.netdata.cloud/backends/aws_kinesis)
253 +- **Flags to disable from source**: --disable-backend-kinesis
254 +- **What packages required for auto-detect?**: `AWS SDK for C++`, `libcurl`, `libssl`, `libcrypto`
packaging/docker/README.md
+27 -24
@@ -2,7 +2,7 @@
2
3 > :warning: As of Sep 9th, 2018 we ship [new docker builds](https://github.com/netdata/netdata/pull/3995), running Netdata in Docker with an [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) directive, not a COMMAND directive. Please adapt your execution scripts accordingly. You can find more information about ENTRYPOINT vs COMMAND is presented by goinbigdata [here](http://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/) and by docker docs [here](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
4 >
5 -> Also, the `latest` is now based on alpine, so **`alpine` is not updated any more** and `armv7hf` is now replaced with `armhf` (to comply with https://github.com/multiarch naming), so **`armv7hf` is not updated** either.
5 +> Also, the `latest` is now based on alpine, so **`alpine` is not updated any more** and `armv7hf` is now replaced with `armhf` (to comply with <https://github.com/multiarch> naming), so **`armv7hf` is not updated** either.
6
7 ## Limitations
8
@@ -16,7 +16,7 @@ For more information go to [Polyverse site](https://polyverse.io/how-it-works/)
16
17 ## Run Netdata with the docker command
18
19 -Quickly start Netdata with the `docker` command. Netdata is then available at http://host:19999
19 +Quickly start Netdata with the `docker` command. Netdata is then available at <http://host:19999>
20
21 This is good for an internal network or to quickly analyse a host.
22
@@ -99,7 +99,7 @@ services:
99 - DOCKER_USR=root
100 ```
101
102 -### Pass command line options to Netdata
102 +### Pass command line options to Netdata
103
104 Since we use an [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) directive, you can provide [Netdata daemon command line options](https://docs.netdata.cloud/daemon/#command-line-options) such as the IP address Netdata will be running on, using the [command instruction](https://docs.docker.com/engine/reference/builder/#cmd).
105
@@ -110,15 +110,16 @@ For a permanent installation on a public server, you should [secure your Netdata
110 You can use use the following docker-compose.yml and Caddyfile files to run Netdata with docker. Replace the Domains and email address for [Letsencrypt](https://letsencrypt.org/) before starting.
111
112 ### Prerequisites
113 -* [Docker](https://docs.docker.com/install/#server)
114 -* [Docker Compose](https://docs.docker.com/compose/install/)
115 -* Domain configured in DNS pointing to host.
113 +
114 +- [Docker](https://docs.docker.com/install/#server)
115 +- [Docker Compose](https://docs.docker.com/compose/install/)
116 +- Domain configured in DNS pointing to host.
117
118 ### Caddyfile
119
120 This file needs to be placed in /opt with name `Caddyfile`. Here you customize your domain and you need to provide your email address to obtain a Letsencrypt certificate. Certificate renewal will happen automatically and will be executed internally by the caddy server.
121
121 -```
122 +```caddyfile
123 netdata.example.org {
124 proxy / netdata:19999
125 tls admin@example.org
@@ -165,7 +166,7 @@ services:
166
167 You can restrict access by following [official caddy guide](https://caddyserver.com/docs/basicauth) and adding lines to Caddyfile.
168
168 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fpackaging%2Fdocker%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
169 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fpackaging%2Fdocker%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
170
171 ## Publish a test image to your own repository
172
@@ -186,7 +187,7 @@ This is especially useful when testing a Pull Request for Kubernetes, since you
187
188 Example:
189
189 -We get a local copy of the Helm chart at https://github.com/netdata/helmchart. We modify `values.yaml` to have the following:
190 +We get a local copy of the Helm chart at <https://github.com/netdata/helmchart>. We modify `values.yaml` to have the following:
191
192 ```
193 image:
@@ -196,6 +197,7 @@ image:
197 ```
198
199 We check out PR5576 and run the following:
200 +
201 ```
202 ./packaging/docker/build-test.sh -r cakrit/netdata-prs -v PR5576 -u cakrit -p 'XXX'
203 ```
@@ -209,20 +211,21 @@ If we make changes to the code, we execute the same `build-test.sh` command, fol
211 To enable Travis CI integration on your own repositories (Docker and Github), you need to be part of the Netdata organization.
212 Once you have contacted the Netdata owners to setup you up on Github and Travis, execute the following steps
213
212 -- Preparation
213 - - Have Netdata forked on your personal GitHub account
214 - - Get a GITHUB token: Go to GitHub settings -> Developer Settings -> Personal access tokens, generate a new token with full access to repo_hook, read only access to admin:org, public_repo, repo_deployment, repo:status and user:email settings enabled. This will be your GITHUB_TOKEN that is described later in the instructions, so keep it somewhere safe until is needed.
215 - - Contact the Netdata team and seek for permissions on https://scan.coverity.com should you require Travis to be able to push your forked code to coverity for analysis and report. Once you are setup, you should have your email you used in coverity and a token from them. These will be your COVERITY_SCAN_SUBMIT_EMAIL and COVERITY_SCAN_TOKEN that we will refer to later.
216 - - Have a valid Docker hub account, the credentials from this account will be your DOCKER_USERNAME and DOCKER_PWD mentioned later
217 -
218 -- Setting up Travis CI for your own fork (Detailed instructions provided by Travis team [here](https://docs.travis-ci.com/user/tutorial/))
219 - - Login to travis with your own GITHUB credentials (There is Open Auth access)
220 - - Go to your profile settings, under [repositories](https://travis-ci.com/account/repositories) section and setup your Netdata fork to be built by travis
221 - - Once the repository has been setup, go to repository settings within travis (usually under https://travis-ci.com/NETDATA_DEVELOPER/netdata/settings, where "NETDATA_DEVELOPER" is your github handle) and select your desired settings.
222 -- While in Travis settings, under Netdata repository settings in the Environment Variables section, you need to add the following:
223 - - DOCKER_USERNAME and DOCKER_PWD variables so that Travis can login to your docker hub account and publish docker images there.
224 - - REPOSITORY variable to "NETDATA_DEVELOPER/netdata" where NETDATA_DEVELOPER is your github handle again.
225 - - GITHUB_TOKEN variable with the token generated on the preparation step, for travis workflows to function properly
226 - - COVERITY_SCAN_SUBMIT_EMAIL and COVERITY_SCAN_TOKEN variables to enable Travis to submit your code for analysis to Coverity.
214 +- Preparation
215 + - Have Netdata forked on your personal GitHub account
216 + - Get a GITHUB token: Go to GitHub settings -> Developer Settings -> Personal access tokens, generate a new token with full access to repo_hook, read only access to admin:org, public_repo, repo_deployment, repo:status and user:email settings enabled. This will be your GITHUB_TOKEN that is described later in the instructions, so keep it somewhere safe until is needed.
217 + - Contact the Netdata team and seek for permissions on <https://scan.coverity.com> should you require Travis to be able to push your forked code to coverity for analysis and report. Once you are setup, you should have your email you used in coverity and a token from them. These will be your COVERITY_SCAN_SUBMIT_EMAIL and COVERITY_SCAN_TOKEN that we will refer to later.
218 + - Have a valid Docker hub account, the credentials from this account will be your DOCKER_USERNAME and DOCKER_PWD mentioned later
219 +
220 +- Setting up Travis CI for your own fork (Detailed instructions provided by Travis team [here](https://docs.travis-ci.com/user/tutorial/))
221 + - Login to travis with your own GITHUB credentials (There is Open Auth access)
222 + - Go to your profile settings, under [repositories](https://travis-ci.com/account/repositories) section and setup your Netdata fork to be built by travis
223 + - Once the repository has been setup, go to repository settings within travis (usually under <https://travis-ci.com/NETDATA_DEVELOPER/netdata/settings>, where "NETDATA_DEVELOPER" is your github handle) and select your desired settings.
224 +
225 +- While in Travis settings, under Netdata repository settings in the Environment Variables section, you need to add the following:
226 + - DOCKER_USERNAME and DOCKER_PWD variables so that Travis can login to your docker hub account and publish docker images there.
227 + - REPOSITORY variable to "NETDATA_DEVELOPER/netdata" where NETDATA_DEVELOPER is your github handle again.
228 + - GITHUB_TOKEN variable with the token generated on the preparation step, for travis workflows to function properly
229 + - COVERITY_SCAN_SUBMIT_EMAIL and COVERITY_SCAN_TOKEN variables to enable Travis to submit your code for analysis to Coverity.
230
231 Having followed these instructions, your forked repository should be all set up for Travis Integration, happy testing!
packaging/installer/README.md
+122 -113
@@ -7,15 +7,15 @@ The best way to install Netdata is directly from source. Our **automatic install
7 !!! warning
8 You can find Netdata packages distributed by third parties. In many cases, these packages are either too old or broken. So, the suggested ways to install Netdata are the ones in this page.
9
10 -1. [Automatic one line installation](#one-line-installation), easy installation from source, **this is the default**
11 -2. [Install pre-built static binary on any 64bit Linux](#linux-64bit-pre-built-static-binary)
12 -3. [Run Netdata in a docker container](#run-netdata-in-a-docker-container)
13 -4. [Manual installation, step by step](#install-netdata-on-linux-manually)
14 -5. [Install on FreeBSD](#freebsd)
15 -6. [Install on pfSense](#pfsense)
16 -7. [Enable on FreeNAS Corral](#freenas)
17 -8. [Install on macOS (OS X)](#macos)
18 -9. [Install on a Kubernetes cluster](https://github.com/netdata/helmchart#netdata-helm-chart-for-kubernetes-deployments)
10 +1. [Automatic one line installation](#one-line-installation), easy installation from source, **this is the default**
11 +2. [Install pre-built static binary on any 64bit Linux](#linux-64bit-pre-built-static-binary)
12 +3. [Run Netdata in a docker container](#run-netdata-in-a-docker-container)
13 +4. [Manual installation, step by step](#install-netdata-on-linux-manually)
14 +5. [Install on FreeBSD](#freebsd)
15 +6. [Install on pfSense](#pfsense)
16 +7. [Enable on FreeNAS Corral](#freenas)
17 +8. [Install on macOS (OS X)](#macos)
18 +9. [Install on a Kubernetes cluster](https://github.com/netdata/helmchart#netdata-helm-chart-for-kubernetes-deployments)
19 10. [Install using binary packages](#binary-packages)
20
21 See also the list of Netdata [package maintainers](../maintainers) for ASUSTOR NAS, OpenWRT, ReadyNAS, etc.
@@ -25,44 +25,48 @@ Note: From Netdata v1.12 and above, anonymous usage information is collected by
25 ---
26
27 ## One-line installation
28 +
29 ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-3600&label=last+hour&units=installations&value_color=orange&precision=0) ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-86400&label=today&units=installations&precision=0)
30
31 This method is **fully automatic on all Linux distributions**. FreeBSD and MacOS systems need some preparations before installing Netdata for the first time. Check the [FreeBSD](#freebsd) and the [MacOS](#macos) sections for more information.
32
33 To install Netdata from source, and keep it up to date with our **nightly releases** automatically, run the following:
34
34 -``` bash
35 +```bash
36 $ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
37 ```
38
39 !!! note
40 Do not use `sudo` for the one-line installer—it will escalate privileges itself if needed.
41
41 - To learn more about the pros and cons of using *nightly* vs. *stable* releases, see our [notice about the two options](#nightly-vs-stable-releases).
42 +```
43 +To learn more about the pros and cons of using *nightly* vs. *stable* releases, see our [notice about the two options](#nightly-vs-stable-releases).
44 +```
45
46 <details markdown="1"><summary>Click here for more information and advanced use of the one-line installation script.</summary>
47
48 Verify the integrity of the script with this:
49
47 -``` bash
50 +```bash
51 [ "b6d16c171ccad073b86327246151d875" = "$(curl -Ss https://my-netdata.io/kickstart.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
52 ```
50 -*It should print `OK, VALID` if the script is the one we ship.*
53 +
54 +_It should print `OK, VALID` if the script is the one we ship._
55
56 The `kickstart.sh` script:
57
54 -- detects the Linux distro and **installs the required system packages** for building Netdata (will ask for confirmation)
55 -- downloads the latest Netdata source tree to `/usr/src/netdata.git`.
56 -- installs Netdata by running `./netdata-installer.sh` from the source tree.
57 -- installs `netdata-updater.sh` to `cron.daily`, so your Netdata installation will be updated daily (you will get a message from cron only if the update fails).
58 -- For QA purposes, this installation method lets us know if it succeed or failed.
58 +- detects the Linux distro and **installs the required system packages** for building Netdata (will ask for confirmation)
59 +- downloads the latest Netdata source tree to `/usr/src/netdata.git`.
60 +- installs Netdata by running `./netdata-installer.sh` from the source tree.
61 +- installs `netdata-updater.sh` to `cron.daily`, so your Netdata installation will be updated daily (you will get a message from cron only if the update fails).
62 +- For QA purposes, this installation method lets us know if it succeed or failed.
63
64 The `kickstart.sh` script passes all its parameters to `netdata-installer.sh`, so you can add more parameters to customize your installation. Here are a few important parameters:
65
62 -- `--dont-wait`: Enable automated installs by not prompting for permission to install any required packages.
63 -- `--dont-start-it`: Prevent the installer from starting Netdata automatically.
64 -- `--stable-channel`: Automatically update only on the release of new major versions.
65 -- `--no-updates`: Prevent automatic updates of any kind.
66 +- `--dont-wait`: Enable automated installs by not prompting for permission to install any required packages.
67 +- `--dont-start-it`: Prevent the installer from starting Netdata automatically.
68 +- `--stable-channel`: Automatically update only on the release of new major versions.
69 +- `--no-updates`: Prevent automatic updates of any kind.
70
71 Example using all the above parameters:
72
@@ -77,6 +81,7 @@ Once Netdata is installed, see [Getting Started](../../docs/GettingStarted.md).
81 ---
82
83 ## Linux 64bit pre-built static binary
84 +
85 ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart64&group=sum&after=-3600&label=last+hour&units=installations&value_color=orange&precision=0) ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart64&group=sum&after=-86400&label=today&units=installations&precision=0)
86
87 You can install a pre-compiled static binary of Netdata on any Intel/AMD 64bit Linux system (even those that don't have a package manager, like CoreOS, CirrOS, busybox systems, etc). You can also use these packages on systems with broken or unsupported package managers.
@@ -90,11 +95,13 @@ $ bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)
95 !!! note
96 Do not use `sudo` for this installer—it will escalate privileges itself if needed.
97
93 - To learn more about the pros and cons of using *nightly* vs. *stable* releases, see our [notice about the two options](README.md#nightly-vs-stable-releases).
98 +```
99 +To learn more about the pros and cons of using *nightly* vs. *stable* releases, see our [notice about the two options](README.md#nightly-vs-stable-releases).
100
95 - If your system does not have `bash` installed, open the `More information and advanced uses of the kickstart-static64.sh script` dropdown for instructions to run the installer without `bash`.
96 -
97 - This script installs Netdata at `/opt/netdata`.
101 +If your system does not have `bash` installed, open the `More information and advanced uses of the kickstart-static64.sh script` dropdown for instructions to run the installer without `bash`.
102 +
103 +This script installs Netdata at `/opt/netdata`.
104 +```
105
106 <details markdown="1"><summary>Click here for more information and advanced use of this command.</summary>
107
@@ -108,20 +115,20 @@ Verify the integrity of the script with this:
115
116 The `kickstart-static64.sh` script passes all its parameters to `netdata-installer.sh`, so you can add more parameters to customize your installation. Here are a few important parameters:
117
111 -- `--dont-wait`: Enable automated installs by not prompting for permission to install any required packages.
112 -- `--dont-start-it`: Prevent the installer from starting Netdata automatically.
113 -- `--stable-channel`: Automatically update only on the release of new major versions.
114 -- `--no-updates`: Prevent automatic updates of any kind.
118 +- `--dont-wait`: Enable automated installs by not prompting for permission to install any required packages.
119 +- `--dont-start-it`: Prevent the installer from starting Netdata automatically.
120 +- `--stable-channel`: Automatically update only on the release of new major versions.
121 +- `--no-updates`: Prevent automatic updates of any kind.
122
123 Example using all the above parameters:
124
118 -```bash
125 +```sh
126 $ bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh) --dont-wait --dont-start-it --no-updates --stable-channel
127 ```
128
129 If your shell fails to handle the above one liner, do this:
130
124 -```bash
131 +```sh
132 # download the script with curl
133 curl https://my-netdata.io/kickstart-static64.sh >/tmp/kickstart-static64.sh
134
@@ -132,10 +139,10 @@ wget -O /tmp/kickstart-static64.sh https://my-netdata.io/kickstart-static64.sh
139 sh /tmp/kickstart-static64.sh
140 ```
141
135 -- The static binary files are kept in repo [binary-packages](https://github.com/netdata/binary-packages). You can download any of the `.run` files, and run it. These files are self-extracting shell scripts built with [makeself](https://github.com/megastep/makeself).
136 -- The target system does **not** need to have bash installed.
137 -- The same files can be used for updates too.
138 -- For QA purposes, this installation method lets us know if it succeed or failed.
142 +- The static binary files are kept in repo [binary-packages](https://github.com/netdata/binary-packages). You can download any of the `.run` files, and run it. These files are self-extracting shell scripts built with [makeself](https://github.com/megastep/makeself).
143 +- The target system does **not** need to have bash installed.
144 +- The same files can be used for updates too.
145 +- For QA purposes, this installation method lets us know if it succeed or failed.
146
147 </details>
148
@@ -153,13 +160,13 @@ You can [Install Netdata with Docker](../docker/#install-netdata-with-docker).
160
161 To install the latest git version of Netdata, please follow these 2 steps:
162
156 -1. [Prepare your system](#prepare-your-system)
163 +1. [Prepare your system](#prepare-your-system)
164
158 - Install the required packages on your system.
165 + Install the required packages on your system.
166
160 -2. [Install Netdata](#install-netdata)
167 +2. [Install Netdata](#install-netdata)
168
162 - Download and install Netdata. You can also update it the same way.
169 + Download and install Netdata. You can also update it the same way.
170
171 ---
172
@@ -167,25 +174,25 @@ To install the latest git version of Netdata, please follow these 2 steps:
174
175 Try our experimental automatic requirements installer (no need to be root). This will try to find the packages that should be installed on your system to build and run Netdata. It supports most major Linux distributions released after 2010:
176
170 -* **Alpine** Linux and its derivatives
171 - * You have to install `bash` yourself, before using the installer.
177 +- **Alpine** Linux and its derivatives
178 + - You have to install `bash` yourself, before using the installer.
179
173 -* **Arch** Linux and its derivatives
174 - * You need arch/aur for package Judy.
180 +- **Arch** Linux and its derivatives
181 + - You need arch/aur for package Judy.
182
176 -* **Gentoo** Linux and its derivatives
183 +- **Gentoo** Linux and its derivatives
184
178 -* **Debian** Linux and its derivatives (including **Ubuntu**, **Mint**)
185 +- **Debian** Linux and its derivatives (including **Ubuntu**, **Mint**)
186
180 -* **Redhat Enterprise Linux** and its derivatives (including **Fedora**, **CentOS**, **Amazon Machine Image**)
181 - * Please note that for RHEL/CentOS you need
182 - [EPEL](http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/).
183 - In addition, RHEL/CentOS version 6 also need
184 - [OKay](https://okay.com.mx/blog-news/rpm-repositories-for-centos-6-and-7.html) for package libuv version 1.
187 +- **Redhat Enterprise Linux** and its derivatives (including **Fedora**, **CentOS**, **Amazon Machine Image**)
188 + - Please note that for RHEL/CentOS you need
189 + [EPEL](http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/).
190 + In addition, RHEL/CentOS version 6 also need
191 + [OKay](https://okay.com.mx/blog-news/rpm-repositories-for-centos-6-and-7.html) for package libuv version 1.
192
186 -* **SuSe** Linux and its derivatives (including **openSuSe**)
193 +- **SuSe** Linux and its derivatives (including **openSuSe**)
194
188 -* **SLE12** Must have your system registered with Suse Customer Center or have the DVD. See [#1162](https://github.com/netdata/netdata/issues/1162)
195 +- **SLE12** Must have your system registered with Suse Customer Center or have the DVD. See [#1162](https://github.com/netdata/netdata/issues/1162)
196
197 Install the packages for having a **basic Netdata installation** (system monitoring and many applications, without `mysql` / `mariadb`, `postgres`, `named`, hardware sensors and `SNMP`):
198
@@ -217,48 +224,47 @@ yum install autoconf automake curl gcc git libmnl-devel libuuid-devel openssl-de
224
225 # openSUSE
226 zypper install zlib-devel libuuid-devel libuv-devel liblz4-devel judy-devel libopenssl-devel libmnl-devel gcc make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python
220 -
227 ```
228
229 Once Netdata is compiled, to run it the following packages are required (already installed using the above commands):
230
225 -package|description
226 -:-----:|-----------
227 -`libuuid`|part of `util-linux` for GUIDs management
228 -`zlib`|gzip compression for the internal Netdata web server
231 +| package | description|
232 +|:-----:|-----------|
233 +| `libuuid` | part of `util-linux` for GUIDs management|
234 +| `zlib` | gzip compression for the internal Netdata web server|
235
236 *Netdata will fail to start without the above.*
237
238 Netdata plugins and various aspects of Netdata can be enabled or benefit when these are installed (they are optional):
239
234 -package|description
235 -:-----:|-----------
236 -`bash`|for shell plugins and **alarm notifications**
237 -`curl`|for shell plugins and **alarm notifications**
238 -`iproute` or `iproute2`|for monitoring **Linux traffic QoS**<br/>use `iproute2` if `iproute` reports as not available or obsolete
239 -`python`|for most of the external plugins
240 -`python-yaml`|used for monitoring **beanstalkd**
241 -`python-beanstalkc`|used for monitoring **beanstalkd**
242 -`python-dnspython`|used for monitoring DNS query time
243 -`python-ipaddress`|used for monitoring **DHCPd**<br/>this package is required only if the system has python v2. python v3 has this functionality embedded
244 -`python-mysqldb`<br/>or<br/>`python-pymysql`|used for monitoring **mysql** or **mariadb** databases<br/>`python-mysqldb` is a lot faster and thus preferred
245 -`python-psycopg2`|used for monitoring **postgresql** databases
246 -`python-pymongo`|used for monitoring **mongodb** databases
247 -`nodejs`|used for `node.js` plugins for monitoring **named** and **SNMP** devices
248 -`lm-sensors`|for monitoring **hardware sensors**
249 -`libmnl`|for collecting netfilter metrics
250 -`netcat`|for shell plugins to collect metrics from remote systems
240 +| package |description|
241 +|:-----:|-----------|
242 +| `bash`|for shell plugins and **alarm notifications**|
243 +| `curl`|for shell plugins and **alarm notifications**|
244 +| `iproute` or `iproute2`|for monitoring **Linux traffic QoS**<br/>use `iproute2` if `iproute` reports as not available or obsolete|
245 +| `python`|for most of the external plugins|
246 +| `python-yaml`|used for monitoring **beanstalkd**|
247 +| `python-beanstalkc`|used for monitoring **beanstalkd**|
248 +| `python-dnspython`|used for monitoring DNS query time|
249 +| `python-ipaddress`|used for monitoring **DHCPd**<br/>this package is required only if the system has python v2. python v3 has this functionality embedded|
250 +| `python-mysqldb`<br/>or<br/>`python-pymysql`|used for monitoring **mysql** or **mariadb** databases<br/>`python-mysqldb` is a lot faster and thus preferred|
251 +| `python-psycopg2`|used for monitoring **postgresql** databases|
252 +| `python-pymongo`|used for monitoring **mongodb** databases|
253 +| `nodejs`|used for `node.js` plugins for monitoring **named** and **SNMP** devices|
254 +| `lm-sensors`|for monitoring **hardware sensors**|
255 +| `libmnl`|for collecting netfilter metrics|
256 +| `netcat`|for shell plugins to collect metrics from remote systems|
257
258 *Netdata will greatly benefit if you have the above packages installed, but it will still work without them.*
259
260 Netdata DB engine can be enabled when these are installed (they are optional):
261
256 -|package|description|
262 +| package | description|
263 |:-----:|-----------|
258 -|`libuv`|Multi-platform support library with a focus on asynchronous I/O, version 1 or greater|
259 -|`liblz4`|Extremely fast compression algorithm, version r129 or greater|
260 -|`Judy`|General purpose dynamic array|
261 -|`openssl`|Cryptography and SSL/TLS toolkit|
264 +| `libuv` | Multi-platform support library with a focus on asynchronous I/O, version 1 or greater|
265 +| `liblz4` | Extremely fast compression algorithm, version r129 or greater|
266 +| `Judy` | General purpose dynamic array|
267 +| `openssl`| Cryptography and SSL/TLS toolkit|
268
269 *Netdata will greatly benefit if you have the above packages installed, but it will still work without them.*
270
@@ -269,33 +275,32 @@ Netdata DB engine can be enabled when these are installed (they are optional):
275 Do this to install and run Netdata:
276
277 ```sh
272 -
278 # download it - the directory 'netdata' will be created
279 git clone https://github.com/netdata/netdata.git --depth=100
280 cd netdata
281
282 # run script with root privileges to build, install, start Netdata
283 ./netdata-installer.sh
279 -
284 ```
285
282 -* If you don't want to run it straight-away, add `--dont-start-it` option.
286 +- If you don't want to run it straight-away, add `--dont-start-it` option.
287
284 -* You can also append `--stable-channel` to fetch and install only the official releases from GitHub, instead of the nightly builds.
288 +- You can also append `--stable-channel` to fetch and install only the official releases from GitHub, instead of the nightly builds.
289
286 -* If you don't want to install it on the default directories, you can run the installer like this: `./netdata-installer.sh --install /opt`. This one will install Netdata in `/opt/netdata`.
290 +- If you don't want to install it on the default directories, you can run the installer like this: `./netdata-installer.sh --install /opt`. This one will install Netdata in `/opt/netdata`.
291
288 -* If your server does not have access to the internet and you have manually put the installation directory on your server, you will need to pass the option `--disable-go` to the installer. The option will prevent the installer from attempting to download and install `go.d.plugin`.
292 +- If your server does not have access to the internet and you have manually put the installation directory on your server, you will need to pass the option `--disable-go` to the installer. The option will prevent the installer from attempting to download and install `go.d.plugin`.
293
294 Once the installer completes, the file `/etc/netdata/netdata.conf` will be created (if you changed the installation directory, the configuration will appear in that directory too).
295
292 -You can edit this file to set options. One common option to tweak is `history`, which controls the size of the memory database Netdata will use. By default is `3600` seconds (an hour of data at the charts) which makes Netdata use about 10-15MB of RAM (depending on the number of charts detected on your system). Check **[[Memory Requirements]]**.
296 +You can edit this file to set options. One common option to tweak is `history`, which controls the size of the memory database Netdata will use. By default is `3600` seconds (an hour of data at the charts) which makes Netdata use about 10-15MB of RAM (depending on the number of charts detected on your system). Check **\[[Memory Requirements]]**.
297
298 To apply the changes you made, you have to restart Netdata.
299
300 ---
301
302 ### Binary Packages
303 +
304 ![](https://raw.githubusercontent.com/netdata/netdata/master/web/gui/images/packaging-beta-tag.svg?sanitize=true)
305
306 We provide our own flavour of binary packages for the most common operating systems that comply with .RPM and .DEB packaging formats.
@@ -308,8 +313,8 @@ Netdata is committed to support installation of our solution to all operating sy
313
314 We provide two separate repositories, one for our stable releases and one for our nightly releases.
315
311 -1. Stable releases: Our stable production releases are hosted in [netdata/netdata](https://packagecloud.io/netdata/netdata) repository of package cloud
312 -2. Nightly releases: Our latest releases are hosted in [netdata/netdata-edge](https://packagecloud.io/netdata/netdata-edge) repository of package cloud
316 +1. Stable releases: Our stable production releases are hosted in [netdata/netdata](https://packagecloud.io/netdata/netdata) repository of package cloud
317 +2. Nightly releases: Our latest releases are hosted in [netdata/netdata-edge](https://packagecloud.io/netdata/netdata-edge) repository of package cloud
318
319 Visit the repository pages and follow the quick set-up instructions to get started.
320
@@ -317,8 +322,6 @@ Visit the repository pages and follow the quick set-up instructions to get start
322
323 ## Other Systems
324
320 -
321 -
325 ##### FreeBSD
326
327 You can install Netdata from ports or packages collection.
@@ -338,41 +341,47 @@ cd netdata
341 ```
342
343 ##### pfSense
344 +
345 To install Netdata on pfSense run the following commands (within a shell or under Diagnostics/Command Prompt within the pfSense web interface).
346
347 Change platform (i386/amd64, etc) and FreeBSD versions (10/11, etc) according to your environment and change Netdata version (1.10.0 in example) according to latest version present within the FreeSBD repository:-
348
349 Note first three packages are downloaded from the pfSense repository for maintaining compatibility with pfSense, Netdata is downloaded from the FreeBSD repository.
346 -```
350 +
351 +```sh
352 pkg install pkgconf
353 pkg install bash
354 pkg install e2fsprogs-libuuid
355 pkg add http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/python36-3.6.8_2.txz
356 pkg add http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/netdata-1.13.0.txz
357 ```
358 +
359 To start Netdata manually run `service netdata onestart`
360
361 To start Netdata automatically at each boot add `service netdata onestart` as a Shellcmd within the pfSense web interface (under **Services/Shellcmd**, which you need to install beforehand under **System/Package Manager/Available Packages**).
362 Shellcmd Type should be set to `Shellcmd`.
363 ![](https://i.imgur.com/wcKiPe1.png)
358 -Alternatively more information can be found in https://doc.pfsense.org/index.php/Installing_FreeBSD_Packages, for achieving the same via the command line and scripts.
364 +Alternatively more information can be found in <https://doc.pfsense.org/index.php/Installing_FreeBSD_Packages>, for achieving the same via the command line and scripts.
365
360 -If you experience an issue with `/usr/bin/install` absense on pfSense 2.3 or earlier, update pfSense or use workaround from [https://redmine.pfsense.org/issues/6643](https://redmine.pfsense.org/issues/6643)
366 +If you experience an issue with `/usr/bin/install` absense on pfSense 2.3 or earlier, update pfSense or use workaround from <https://redmine.pfsense.org/issues/6643>
367
368 **Note:** In pfSense, the Netdata configuration files are located under `/usr/local/etc/netdata`
369
370 ##### FreeNAS
371 +
372 On FreeNAS-Corral-RELEASE (>=10.0.3), Netdata is pre-installed.
373
374 To use Netdata, the service will need to be enabled and started from the FreeNAS **[CLI](https://github.com/freenas/cli)**.
375
376 To enable the Netdata service:
370 -```
377 +
378 +```sh
379 service netdata config set enable=true
380 ```
381
382 To start the Netdata service:
375 -```
383 +
384 +```sh
385 service netdata start
386 ```
387
@@ -392,7 +401,9 @@ or from source:
401 # install Xcode Command Line Tools
402 xcode-select --install
403 ```
404 +
405 click `Install` in the software update popup window, then
406 +
407 ```sh
408 # install HomeBrew package manager
409 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
@@ -414,7 +425,7 @@ The installer will also install a startup plist to start Netdata when your Mac b
425
426 Execute these commands to install Netdata in Alpine Linux 3.x:
427
417 -```
428 +```sh
429 # install required packages
430 apk add alpine-sdk bash curl zlib-dev util-linux-dev libmnl-dev gcc make git autoconf automake pkgconfig python logrotate
431
@@ -448,13 +459,13 @@ The documentation previously recommended installing the Debian Chroot package fr
459
460 The good news is that the 64-bit static installer works fine if your NAS is one that uses the amd64 architecture. It will install the content into `/opt/netdata`, making future removal safe and simple.
461
451 -When Netdata is first installed, it will run as _root_. This may or may not be acceptable for you, and since other installations run it as the _netdata_ user, you might wish to do the same. This requires some extra work:
462 +When Netdata is first installed, it will run as *root*. This may or may not be acceptable for you, and since other installations run it as the *netdata* user, you might wish to do the same. This requires some extra work:
463
453 -1. Creat a group `netdata` via the Synology group interface. Give it no access to anything.
454 -2. Create a user `netdata` via the Synology user interface. Give it no access to anything and a random password. Assign the user to the `netdata` group. Netdata will chuid to this user when running.
455 -3. Change ownership of the following directories, as defined in [Netdata Security](../../docs/netdata-security.md#security-design):
464 +1. Creat a group `netdata` via the Synology group interface. Give it no access to anything.
465 +2. Create a user `netdata` via the Synology user interface. Give it no access to anything and a random password. Assign the user to the `netdata` group. Netdata will chuid to this user when running.
466 +3. Change ownership of the following directories, as defined in [Netdata Security](../../docs/netdata-security.md#security-design):
467
457 -```
468 +```sh
469 $ chown -R root:netdata /opt/netdata/usr/share/netdata
470 $ chown -R netdata:netdata /opt/netdata/var/lib/netdata /opt/netdata/var/cache/netdata
471 $ chown -R netdata:root /opt/netdata/var/log/netdata
@@ -462,15 +473,14 @@ $ chown -R netdata:root /opt/netdata/var/log/netdata
473
474 Additionally, as of 2018/06/24, the Netdata installer doesn't recognize DSM as an operating system, so no init script is installed. You'll have to do this manually:
475
465 -1. Add [this file](https://gist.github.com/oskapt/055d474d7bfef32c49469c1b53e8225f) as `/etc/rc.netdata`. Make it executable with `chmod 0755 /etc/rc.netdata`.
466 -2. Edit `/etc/rc.local` and add a line calling `/etc/rc.netdata` to have it start on boot:
476 +1. Add [this file](https://gist.github.com/oskapt/055d474d7bfef32c49469c1b53e8225f) as `/etc/rc.netdata`. Make it executable with `chmod 0755 /etc/rc.netdata`.
477 +2. Edit `/etc/rc.local` and add a line calling `/etc/rc.netdata` to have it start on boot:
478
479 ```
480 # Netdata startup
481 [ -x /etc/rc.netdata ] && /etc/rc.netdata start
482 ```
483
473 -
484 ## Nightly vs. stable releases
485
486 The Netdata team maintains two releases of the Netdata agent: **nightly** and **stable**. By default, Netdata's installation scripts will give you **automatic, nightly** updates, as that is our recommended configuration.
@@ -481,16 +491,15 @@ The Netdata team maintains two releases of the Netdata agent: **nightly** and **
491
492 **Pros of using nightly releases:**
493
484 - - Get the latest features and bugfixes as soon as they're available
485 - - Receive security-related fixes immediately
486 - - Use stable, fully-tested code that's always improving
487 - - Leverage the same Netdata experience our community is using
494 +- Get the latest features and bugfixes as soon as they're available
495 +- Receive security-related fixes immediately
496 +- Use stable, fully-tested code that's always improving
497 +- Leverage the same Netdata experience our community is using
498
499 **Pros of using stable releases:**
500
491 - - Protect yourself from the rare instance when major bugs slip through our testing and negatively affect a Netdata installation
492 - - Retain more control over the Netdata version you use
493 -
501 +- Protect yourself from the rare instance when major bugs slip through our testing and negatively affect a Netdata installation
502 +- Retain more control over the Netdata version you use
503
504 ## Automatic updates
505
@@ -504,4 +513,4 @@ bash <(curl -Ss https://my-netdata.io/kickstart.sh) --no-updates
513
514 With automatic updates disabled, you can choose exactly when and how you [update Netdata](UPDATE.md).
515
507 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Finstaller%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
516 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Finstaller%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
packaging/installer/UNINSTALL.md
+10 -5
@@ -1,6 +1,7 @@
1 # Uninstalling Netdata
2
3 Our self-contained uninstaller is able to remove Netdata installations created with shell installer. It doesn't need any other Netdata repository files to be run. All it needs is an .environment file, which is created during installation (with shell installer) and put in ${NETDATA_USER_CONFIG_DIR}/.environment (by default /etc/netdata/.environment). That file contains some parameters which are passed to our installer and which are needed during uninstallation process. Mainly two parameters are needed:
4 +
5 ```
6 NETDATA_PREFIX
7 NETDATA_ADDED_TO_GROUPS
@@ -8,20 +9,24 @@ NETDATA_ADDED_TO_GROUPS
9
10 A workflow for uninstallation looks like this:
11
11 -1. Find your `.environment` file, which is usually `/etc/netdata/.environment` in a default installation.
12 -2. If you cannot find that file and would like to uninstall Netdata, then create new file with following content:
12 +1. Find your `.environment` file, which is usually `/etc/netdata/.environment` in a default installation.
13 +2. If you cannot find that file and would like to uninstall Netdata, then create new file with following content:
14 +
15 ```
16 NETDATA_PREFIX="<installation prefix>" # put what you used as a parameter to shell installed `--install` flag. Otherwise it should be empty
17 NETDATA_ADDED_TO_GROUPS="<additional groups>" # Additional groups for a user running the Netdata process
18 ```
17 -3. Run `netdata-uninstaller.sh` as follows
19 +
20 +3. Run `netdata-uninstaller.sh` as follows
21 +
22 ```
23 ${NETDATA_PREFIX}/usr/libexec/netdata/netdata-uninstaller.sh --yes --env <environment_file>
24 ```
25
26 Note: Existing installations may still need to download the file if it's not present.
27 To execute uninstall in that case, run the following commands:
24 -```
28 +
29 +```sh
30 wget https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/netdata-uninstaller.sh
31 chmod +x ./netdata-uninstaller.sh
32 ./netdata-uninstaller.sh --yes --env <environment_file>
@@ -31,4 +36,4 @@ The default `environment_file` is `/etc/netdata/.environment`.
36
37 Note: This uninstallation method assumes previous installation with `netdata-installer.sh` or the kickstart script. Currently using it when Netdata was installed by a package manager can work or cause unexpected results.
38
34 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Finstaller%2FUNINSTALL&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
39 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Finstaller%2FUNINSTALL&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
packaging/installer/UPDATE.md
+3 -5
@@ -2,7 +2,6 @@
2
3 ![image8](https://cloud.githubusercontent.com/assets/2662304/14253735/536f4580-fa95-11e5-9f7b-99112b31a5d7.gif)
4
5 -
5 We suggest to keep your Netdata updated. We are actively developing it and you should always update to the latest version.
6
7 The update procedure depends on how you installed it:
@@ -31,7 +30,8 @@ Keep in mind, Netdata may now have new features, or certain old features may now
30 ### Manual update to get the latest nightly build
31
32 The `kickstart.sh` one-liner will do a one-time update to the latest nightly build, if executed as follows:
34 -```
33 +
34 +```sh
35 bash <(curl -Ss https://my-netdata.io/kickstart.sh) --no-updates
36 ```
37
@@ -44,12 +44,10 @@ either `/etc/cron.daily/`, or `/etc/periodic/daily/`. Whenever the `netdata-upd
44
45 Note that after Jan 2019, the `kickstart.sh` one-liner `bash <(curl -Ss https://my-netdata.io/kickstart.sh)` calls the `netdata-installer.sh` with the auto-update option. So if you just run the one-liner without options once, your Netdata will be kept auto-updated.
46
47 -
47 ## You downloaded a binary package
48
49 If you installed it from a binary package, the best way is to **obtain a newer copy** from the source you got it in the first place. This includes the static binary installation via `kickstart-base64.sh`, which would need to be executed again.
50
51 If a newer version of Netdata is not available from the source you got it, we suggest to uninstall the version you have and follow the [installation](README.md) instructions for installing a fresh version of Netdata.
52
54 -
55 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Finstaller%2FUPDATE&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
53 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Finstaller%2FUPDATE&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
packaging/maintainers/README.md
+15 -10
@@ -4,7 +4,6 @@ This page tracks the package maintainers for Netdata, for various operating syst
4
5 > Feel free to update it, so that it reflects the current status.
6
7 -
7 ---
8
9 ## Official Linux Distributions
@@ -21,27 +20,30 @@ This page tracks the package maintainers for Netdata, for various operating syst
20 | SUSE SLE / openSUSE Tumbleweed & Leap | | | [netdata @ SUSE OpenBuildService](https://software.opensuse.org/package/netdata) |
21
22 ---
23 +
24 ## FreeBSD
25
26 -| System | Initial PR | Core Developer | Package Maintainer
26 +| System | Initial PR | Core Developer | Package Maintainer
27 |:-:|:-:|:-:|:-:|
28 -FreeBSD|#1321|@vlvkobal|@mmokhi
28 +| FreeBSD | #1321 | @vlvkobal|@mmokhi
29
30 ---
31 +
32 ## MacOS
33
34 | System | URL | Core Developer | Package Maintainer
35 |:-:|:-:|:-:|:-:|
35 -MacOS Homebrew Formula|[link](https://github.com/Homebrew/homebrew-core/blob/master/Formula/netdata.rb)|@vlvkobal|@rickard-von-essen
36 +| MacOS Homebrew Formula|[link](https://github.com/Homebrew/homebrew-core/blob/master/Formula/netdata.rb)|@vlvkobal|@rickard-von-essen
37
38 ---
39 +
40 ## Unofficial Linux Packages
41
42 | Linux Distribution | Netdata Version | Maintainer | Related URL |
43 | :-: | :-: | :-: | :-- |
42 -| Ubuntu | Release | @gslin | [netdata @ gslin ppa](https://launchpad.net/~gslin/+archive/ubuntu/netdata) https://github.com/netdata/netdata/issues/69#issuecomment-217458543 |
43 -
44 +| Ubuntu | Release | @gslin | [netdata @ gslin ppa](https://launchpad.net/~gslin/+archive/ubuntu/netdata) https://github.com/netdata/netdata/issues/69#issuecomment-217458543 |
45 ---
46 +
47 ## Embedded Linux
48
49 | Embedded Linux | Netdata Version | Maintainer | Related URL |
@@ -53,23 +55,26 @@ MacOS Homebrew Formula|[link](https://github.com/Homebrew/homebrew-core/blob/mas
55 | DietPi | Release | @Fourdee | https://github.com/Fourdee/DietPi |
56
57 ---
58 +
59 ## Linux Containers
60
61 | Containers | Netdata Version | Maintainer | Related URL |
62 | :-: | :-: | :-: | :-- |
60 -| Docker | Git | @titpetric | https://github.com/titpetric/netdata |
63 +| Docker | Git | @titpetric | https://github.com/titpetric/netdata |
64
65 ---
66 +
67 ## Automation Systems
68
69 | Automation Systems | Netdata Version | Maintainer | Related URL |
70 | :-: | :-: | :-: | :-- |
67 -| Ansible | git | @jffz | https://galaxy.ansible.com/jffz/netdata/ |
68 -| Chef | ? | @sergiopena | https://github.com/sergiopena/netdata-cookbook |
71 +| Ansible | git | @jffz | https://galaxy.ansible.com/jffz/netdata/ |
72 +| Chef | ? | @sergiopena | https://github.com/sergiopena/netdata-cookbook |
73
74 ---
75 +
76 ## Packages summary from repology.org
77
78 [![Packaging status](https://repology.org/badge/vertical-allrepos/netdata.svg)](https://repology.org/metapackage/netdata/versions)
79
75 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fpackaging%2Fmaintainers%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
80 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fpackaging%2Fmaintainers%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
packaging/makeself/README.md
+10 -10
@@ -3,16 +3,16 @@
3 To build the static binary 64-bit distribution package, run:
4
5 ```bash
6 -$ cd /path/to/netdata.git
7 -$ ./packaging/makeself/build-x86_64-static.sh
6 +cd /path/to/netdata.git
7 +./packaging/makeself/build-x86_64-static.sh
8 ```
9
10 The program will:
11
12 -1. setup a new docker container with Alpine Linux
13 -2. install the required alpine packages (the build environment, needed libraries, etc)
14 -3. download and compile third party apps that are packaged with Netdata (`bash`, `curl`, etc)
15 -4. compile Netdata
12 +1. setup a new docker container with Alpine Linux
13 +2. install the required alpine packages (the build environment, needed libraries, etc)
14 +3. download and compile third party apps that are packaged with Netdata (`bash`, `curl`, etc)
15 +4. compile Netdata
16
17 Once finished, a file named `netdata-vX.X.X-gGITHASH-x86_64-DATE-TIME.run` will be created in the current directory. This is the Netdata binary package that can be run to install Netdata on any other computer.
18
@@ -23,13 +23,13 @@ Once finished, a file named `netdata-vX.X.X-gGITHASH-x86_64-DATE-TIME.run` will
23 To build Netdata binaries with debugging / tracing information in them, use:
24
25 ```bash
26 -$ cd /path/to/netdata.git
27 -$ ./packaging/makeself/build-x86_64-static.sh debug
26 +cd /path/to/netdata.git
27 +./packaging/makeself/build-x86_64-static.sh debug
28 ```
29
30 These binaries are not optimized (they are a bit slower), they have certain features disables (like log flood protection), other features enables (like `debug flags`) and are not stripped (the binary files are bigger, since they now include source code tracing information).
31
32 -#### debugging Netdata binaries
32 +### debugging Netdata binaries
33
34 Once you have installed a binary package with debugging info, you will need to install `valgrind` and run this command to start Netdata:
35
@@ -45,4 +45,4 @@ To stop Netdata while it runs under `valgrind`, press Control-C on the console.
45
46 > If you omit the parameter `--undef-value-errors=no` to valgrind, you will get hundreds of errors about conditional jumps that depend on uninitialized values. This is normal. Valgrind has heuristics to prevent it from printing such errors for system libraries, but for the static Netdata binary, all the required libraries are built into Netdata. So, valgrind cannot appply its heuristics and prints them.
47
48 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fmakeself%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
48 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fmakeself%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
registry/README.md
+23 -23
@@ -13,18 +13,18 @@ Netdata provides distributed monitoring.
13
14 Traditional monitoring solutions centralize all the data to provide unified dashboards across all servers. Before Netdata, this was the standard practice. However it has a few issues:
15
16 -1. due to the resources required, the number of metrics collected is limited.
17 -1. for the same reason, the data collection frequency is not that high, at best it will be once every 10 or 15 seconds, at worst every 5 or 10 mins.
18 -1. the central monitoring solution needs dedicated resources, thus becoming "another bottleneck" in the whole ecosystem. It also requires maintenance, administration, etc.
19 -1. most centralized monitoring solutions are usually only good for presenting *statistics of past performance* (i.e. cannot be used for real-time performance troubleshooting).
16 +1. due to the resources required, the number of metrics collected is limited.
17 +2. for the same reason, the data collection frequency is not that high, at best it will be once every 10 or 15 seconds, at worst every 5 or 10 mins.
18 +3. the central monitoring solution needs dedicated resources, thus becoming "another bottleneck" in the whole ecosystem. It also requires maintenance, administration, etc.
19 +4. most centralized monitoring solutions are usually only good for presenting _statistics of past performance_ (i.e. cannot be used for real-time performance troubleshooting).
20
21 Netdata follows a different approach:
22
23 -1. data collection happens per second
24 -1. thousands of metrics per server are collected
25 -1. data do not leave the server where they are collected
26 -1. Netdata servers do not talk to each other
27 -1. your browser connects all the Netdata servers
23 +1. data collection happens per second
24 +2. thousands of metrics per server are collected
25 +3. data do not leave the server where they are collected
26 +4. Netdata servers do not talk to each other
27 +5. your browser connects all the Netdata servers
28
29 Using Netdata, your monitoring infrastructure is embedded on each server, limiting significantly the need of additional resources. Netdata is blazingly fast, very resource efficient and utilizes server resources that already exist and are spare (on each server). This allows **scaling out** the monitoring infrastructure.
30
@@ -38,22 +38,22 @@ Netdata cloud has a roadmap to [offer many more features](https://blog.netdata.c
38
39 The registry keeps track of 4 entities:
40
41 -1. **machines**: i.e. the Netdata installations (a random GUID generated by each Netdata the first time it starts; we call this **machine_guid**)
41 +1. **machines**: i.e. the Netdata installations (a random GUID generated by each Netdata the first time it starts; we call this **machine_guid**)
42
43 For each Netdata installation (each `machine_guid`) the registry keeps track of the different URLs it is accessed.
44
45 -2. **persons**: i.e. the web browsers accessing the Netdata installations (a random GUID generated by the registry the first time it sees a new web browser; we call this **person_guid**)
45 +2. **persons**: i.e. the web browsers accessing the Netdata installations (a random GUID generated by the registry the first time it sees a new web browser; we call this **person_guid**)
46
47 For each person, the registry keeps track of the Netdata installations it has accessed and their URLs.
48
49 -3. **URLs** of Netdata installations (as seen by the web browsers)
49 +3. **URLs** of Netdata installations (as seen by the web browsers)
50
51 - For each URL, the registry keeps the URL and nothing more. Each URL is linked to *persons* and *machines*. The only way to find a URL is to know its **machine_guid** or have a **person_guid** it is linked to it.
51 + For each URL, the registry keeps the URL and nothing more. Each URL is linked to _persons_ and _machines_. The only way to find a URL is to know its **machine_guid** or have a **person_guid** it is linked to it.
52
53 -4. **accounts**: i.e. the information used to sign-in via one of the available sign-in methods. Depending on the method, this may include an email, an email and a profile picture.
53 +4. **accounts**: i.e. the information used to sign-in via one of the available sign-in methods. Depending on the method, this may include an email, an email and a profile picture.
54
55 -For *persons*/*accounts* and *machines*, the registry keeps links to *URLs*, each link with 2 timestamps (first time seen, last time seen) and a counter (number of times it has been seen).
56 -*machines*, *persons* and timestamps are stored in the Netdata registry regardless of whether you sign in or not.
55 +For _persons_/_accounts_ and _machines_, the registry keeps links to _URLs_, each link with 2 timestamps (first time seen, last time seen) and a counter (number of times it has been seen).
56 +*machines_, _persons_ and timestamps are stored in the Netdata registry regardless of whether you sign in or not.
57
58 ## Who talks to the registry?
59
@@ -63,7 +63,6 @@ Your Netdata servers do not talk to the registry. This is a UML diagram of its o
63
64 ![registry](https://cloud.githubusercontent.com/assets/2662304/19448565/11a70632-94ab-11e6-9d80-f410b4acb797.png)
65
66 -
66 ## Which is the default registry?
67
68 `https://registry.my-netdata.io`, which is currently served by `https://london.my-netdata.io`. This registry listens to both HTTP and HTTPS requests but the default is HTTPS.
@@ -113,6 +112,7 @@ So this server will appear in the node menu as `Group1 - Master DB`. The max nam
112 ### Limiting access to the registry
113
114 Netdata v1.9+ support limiting access to the registry from given IPs, like this:
115 +
116 ```
117 [registry]
118 allow from = *
@@ -128,19 +128,19 @@ Keep in mind that connections to Netdata API ports are filtered by `[web].allow
128
129 There can be up to 2 files:
130
131 -- `registry-log.db`, the transaction log
131 +- `registry-log.db`, the transaction log
132
133 - all incoming requests that affect the registry are saved in this file in real-time.
133 + all incoming requests that affect the registry are saved in this file in real-time.
134
135 -- `registry.db`, the database
135 +- `registry.db`, the database
136
137 - every `[registry].registry save db every new entries` entries in `registry-log.db`, Netdata will save its database to `registry.db` and empty `registry-log.db`.
137 + every `[registry].registry save db every new entries` entries in `registry-log.db`, Netdata will save its database to `registry.db` and empty `registry-log.db`.
138
139 Both files are machine readable text files.
140
141 ## The future
142
143 -The registry opens a whole world of new possibilities for Netdata. Check here what we think: https://github.com/netdata/netdata/issues/416
143 +The registry opens a whole world of new possibilities for Netdata. Check here what we think: <https://github.com/netdata/netdata/issues/416>
144
145 ## Troubleshooting the registry
146
@@ -154,4 +154,4 @@ ERROR 409: Cannot ACCESS netdata registry: https://registry.my-netdata.io respon
154
155 This error is printed on your web browser console (press F12 on your browser to see it).
156
157 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fregistry%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
157 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fregistry%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
streaming/README.md
+54 -54
@@ -6,9 +6,9 @@ databases](../backends).
6
7 When Netdata streams metrics to another Netdata, the receiving one is able to perform everything a Netdata instance is capable of:
8
9 -- visualize them with a dashboard
10 -- run health checks that trigger alarms and send alarm notifications
11 -- archive metrics to a backend time-series database
9 +- visualize them with a dashboard
10 +- run health checks that trigger alarms and send alarm notifications
11 +- archive metrics to a backend time-series database
12
13 ## Supported configurations
14
@@ -17,7 +17,7 @@ When Netdata streams metrics to another Netdata, the receiving one is able to pe
17 Local Netdata (`slave`), **without any database or alarms**, collects metrics and sends them to
18 another Netdata (`master`).
19
20 -The node menu shows a list of all "databases streamed to" the master. Clicking one of those links allows the user to view the full dashboard of the `slave` Netdata. The URL has the form http://master-host:master-port/host/slave-host/.
20 +The node menu shows a list of all "databases streamed to" the master. Clicking one of those links allows the user to view the full dashboard of the `slave` Netdata. The URL has the form <http://master-host:master-port/host/slave-host/>.
21
22 Alarms for the `slave` are served by the `master`.
23
@@ -32,8 +32,8 @@ The same `master` can collect data for any number of `slaves`.
32 Local Netdata (`slave`), **with a local database (and possibly alarms)**, collects metrics and
33 sends them to another Netdata (`master`).
34
35 -The user can use all the functions **at both** http://slave-ip:slave-port/ and
36 -http://master-host:master-port/host/slave-host/.
35 +The user can use all the functions **at both** <http://slave-ip:slave-port/> and
36 +<http://master-host:master-port/host/slave-host/>.
37
38 The `slave` and the `master` may have different data retention policies for the same metrics.
39
@@ -60,13 +60,13 @@ This allows quite complex setups.
60
61 Example:
62
63 -1. Netdata `A`, `B` do not maintain a database and stream metrics to Netdata `C`(live streaming functionality, i.e. this PR)
64 -2. Netdata `C` maintains a database for `A`, `B`, `C` and archives all metrics to `graphite` with 10 second detail (backends functionality)
65 -3. Netdata `C` also streams data for `A`, `B`, `C` to Netdata `D`, which also collects data from `E`, `F` and `G` from another DMZ (live streaming functionality, i.e. this PR)
66 -4. Netdata `D` is just a proxy, without a database, that streams all data to a remote site at Netdata `H`
67 -5. Netdata `H` maintains a database for `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H` and sends all data to `opentsdb` with 5 seconds detail (backends functionality)
68 -6. alarms are triggered by `H` for all hosts
69 -7. users can use all the Netdata that maintain a database to view metrics (i.e. at `H` all hosts can be viewed).
63 +1. Netdata `A`, `B` do not maintain a database and stream metrics to Netdata `C`(live streaming functionality, i.e. this PR)
64 +2. Netdata `C` maintains a database for `A`, `B`, `C` and archives all metrics to `graphite` with 10 second detail (backends functionality)
65 +3. Netdata `C` also streams data for `A`, `B`, `C` to Netdata `D`, which also collects data from `E`, `F` and `G` from another DMZ (live streaming functionality, i.e. this PR)
66 +4. Netdata `D` is just a proxy, without a database, that streams all data to a remote site at Netdata `H`
67 +5. Netdata `H` maintains a database for `A`, `B`, `C`, `D`, `E`, `F`, `G`, `H` and sends all data to `opentsdb` with 5 seconds detail (backends functionality)
68 +6. alarms are triggered by `H` for all hosts
69 +7. users can use all the Netdata that maintain a database to view metrics (i.e. at `H` all hosts can be viewed).
70
71 ## Configuration
72
@@ -130,12 +130,12 @@ a `proxy`).
130
131 This is an overview of how these options can be combined:
132
133 -target | memory<br/>mode | web<br/>mode | stream<br/>enabled | backend | alarms | dashboard
134 --------|:-----------:|:---:|:------:|:-------:|:---------:|:----:
135 -headless collector|`none`|`none`|`yes`|only for `data source = as collected`|not possible|no
136 -headless proxy|`none`|not `none`|`yes`|only for `data source = as collected`|not possible|no
137 -proxy with db|not `none`|not `none`|`yes`|possible|possible|yes
138 -central netdata|not `none`|not `none`|`no`|possible|possible|yes
133 +| target|memory<br/>mode|web<br/>mode|stream<br/>enabled|backend|alarms|dashboard|
134 +|------|:-------------:|:----------:|:----------------:|:-----:|:----:|:-------:|
135 +| headless collector|`none`|`none`|`yes`|only for `data source = as collected`|not possible|no|
136 +| headless proxy|`none`|not `none`|`yes`|only for `data source = as collected`|not possible|no|
137 +| proxy with db|not `none`|not `none`|`yes`|possible|possible|yes|
138 +| central netdata|not `none`|not `none`|`no`|possible|possible|yes|
139
140 For the options to encrypt the data stream between the slave and the master, refer to [securing the communication](#securing-streaming-communications)
141
@@ -286,18 +286,18 @@ With this configuration, the `CApath` option tells Netdata to search for trusted
286
287 With the introduction of TLS/SSL, the master-slave communication behaves as shown in the table below, depending on the following configurations:
288
289 -- **Master TLS (Yes/No)**: Whether the `[web]` section in `netdata.conf` has `ssl key` and `ssl certificate`.
290 -- **Master port TLS (-/force/optional)**: Depends on whether the `[web]` section `bind to` contains a `^SSL=force` or `^SSL=optional` directive on the port(s) used for streaming.
291 -- **Slave TLS (Yes/No)**: Whether the destination in the slave's `stream.conf` has `:SSL` at the end.
292 -- **Slave TLS Verification (yes/no)**: Value of the slave's `stream.conf` `ssl skip certificate verification` parameter (default is no).
289 +- **Master TLS (Yes/No)**: Whether the `[web]` section in `netdata.conf` has `ssl key` and `ssl certificate`.
290 +- **Master port TLS (-/force/optional)**: Depends on whether the `[web]` section `bind to` contains a `^SSL=force` or `^SSL=optional` directive on the port(s) used for streaming.
291 +- **Slave TLS (Yes/No)**: Whether the destination in the slave's `stream.conf` has `:SSL` at the end.
292 +- **Slave TLS Verification (yes/no)**: Value of the slave's `stream.conf` `ssl skip certificate verification` parameter (default is no).
293
294 - Master TLS enabled | Master port SSL | Slave TLS | Slave SSL Ver. | Behavior
295 -:------:|:-----:|:-----:|:-----:|:--------
296 -No | - | No | no | Legacy behavior. The master-slave stream is unencrypted.
297 -Yes | force | No | no | The master rejects the slave connection.
298 -Yes | -/optional | No | no | The master-slave stream is unencrypted (expected situation for legacy slaves and newer masters)
299 -Yes | -/force/optional | Yes | no | The master-slave stream is encrypted, provided that the master has a valid TLS/SSL certificate. Otherwise, the slave refuses to connect.
300 -Yes | -/force/optional | Yes | yes | The master-slave stream is encrypted.
294 +| Master TLS enabled|Master port SSL|Slave TLS|Slave SSL Ver.|Behavior|
295 +|:----------------:|:-------------:|:-------:|:------------:|:-------|
296 +| No|-|No|no|Legacy behavior. The master-slave stream is unencrypted.|
297 +| Yes|force|No|no|The master rejects the slave connection.|
298 +| Yes|-/optional|No|no|The master-slave stream is unencrypted (expected situation for legacy slaves and newer masters)|
299 +| Yes|-/force/optional|Yes|no|The master-slave stream is encrypted, provided that the master has a valid TLS/SSL certificate. Otherwise, the slave refuses to connect.|
300 +| Yes|-/force/optional|Yes|yes|The master-slave stream is encrypted.|
301
302 ## Viewing remote host dashboards, using mirrored databases
303
@@ -308,7 +308,6 @@ The node menu will include a list of the mirrored databases.
308
309 Selecting any of these, the server will offer a dashboard using the mirrored metrics.
310
311 -
311 ## Monitoring ephemeral nodes
312
313 Auto-scaling is probably the most trendy service deployment strategy these days.
@@ -331,26 +330,26 @@ We recently made a significant improvement at the core of Netdata to support mon
330
331 Following the Netdata way of monitoring, we wanted:
332
334 -1. **real-time performance monitoring**, collecting **_thousands of metrics per server per second_**, visualized in interactive, automatically created dashboards.
335 -2. **real-time alarms**, for all nodes.
336 -3. **zero configuration**, all ephemeral servers should have exactly the same configuration, and nothing should be configured at any system for each of the ephemeral nodes. We shouldn't care if 10 or 100 servers are spawned to handle the load.
337 -4. **self-cleanup**, so that nothing needs to be done for cleaning up the monitoring infrastructure from the hundreds of nodes that may have been monitored through time.
333 +1. **real-time performance monitoring**, collecting ***thousands of metrics per server per second***, visualized in interactive, automatically created dashboards.
334 +2. **real-time alarms**, for all nodes.
335 +3. **zero configuration**, all ephemeral servers should have exactly the same configuration, and nothing should be configured at any system for each of the ephemeral nodes. We shouldn't care if 10 or 100 servers are spawned to handle the load.
336 +4. **self-cleanup**, so that nothing needs to be done for cleaning up the monitoring infrastructure from the hundreds of nodes that may have been monitored through time.
337
338 ### How it works
339
340 All monitoring solutions, including Netdata, work like this:
341
343 -1. `collect metrics`, from the system and the running applications
344 -2. `store metrics`, in a time-series database
345 -3. `examine metrics` periodically, for triggering alarms and sending alarm notifications
346 -4. `visualize metrics`, so that users can see what exactly is happening
342 +1. `collect metrics`, from the system and the running applications
343 +2. `store metrics`, in a time-series database
344 +3. `examine metrics` periodically, for triggering alarms and sending alarm notifications
345 +4. `visualize metrics`, so that users can see what exactly is happening
346
347 Netdata used to be self-contained, so that all these functions were handled entirely by each server. The changes we made, allow each Netdata to be configured independently for each function. So, each Netdata can now act as:
348
350 -- a `self contained system`, much like it used to be.
351 -- a `data collector`, that collects metrics from a host and pushes them to another Netdata (with or without a local database and alarms).
352 -- a `proxy`, that receives metrics from other hosts and pushes them immediately to other Netdata servers. Netdata proxies can also be `store and forward proxies` meaning that they are able to maintain a local database for all metrics passing through them (with or without alarms).
353 -- a `time-series database` node, where data are kept, alarms are run and queries are served to visualise the metrics.
349 +- a `self contained system`, much like it used to be.
350 +- a `data collector`, that collects metrics from a host and pushes them to another Netdata (with or without a local database and alarms).
351 +- a `proxy`, that receives metrics from other hosts and pushes them immediately to other Netdata servers. Netdata proxies can also be `store and forward proxies` meaning that they are able to maintain a local database for all metrics passing through them (with or without alarms).
352 +- a `time-series database` node, where data are kept, alarms are run and queries are served to visualise the metrics.
353
354 ### Configuring an auto-scaling setup
355
@@ -388,7 +387,8 @@ On the master, edit `/etc/netdata/stream.conf` (to edit it on your system run `/
387 # alarms checks, only while the slave is connected
388 health enabled by default = auto
389 ```
391 -*`stream.conf` on master, to enable receiving metrics from slaves using the API key.*
390 +
391 +_`stream.conf` on master, to enable receiving metrics from slaves using the API key._
392
393 If you used many API keys, you can add one such section for each API key.
394
@@ -413,7 +413,8 @@ On each of the slaves, edit `/etc/netdata/stream.conf` (to edit it on your syste
413 # the API key to use
414 api key = 11111111-2222-3333-4444-555555555555
415 ```
416 -*`stream.conf` on slaves, to enable pushing metrics to master at `10.11.12.13:19999`.*
416 +
417 +_`stream.conf` on slaves, to enable pushing metrics to master at `10.11.12.13:19999`._
418
419 Using just the above configuration, the `slaves` will be pushing their metrics to the `master` Netdata, but they will still maintain a local database of the metrics and run health checks. To disable them, edit `/etc/netdata/netdata.conf` and set:
420
@@ -426,7 +427,8 @@ Using just the above configuration, the `slaves` will be pushing their metrics t
427 # disable health checks
428 enabled = no
429 ```
429 -*`netdata.conf` configuration on slaves, to disable the local database and health checks.*
430 +
431 +_`netdata.conf` configuration on slaves, to disable the local database and health checks._
432
433 Keep in mind that setting `memory mode = none` will also force `[health].enabled = no` (health checks require access to a local database). But you can keep the database and disable health checks if you need to. You are however sending all the metrics to the master server, which can handle the health checking (`[health].enabled = yes`)
434
@@ -440,7 +442,6 @@ The file `/var/lib/netdata/registry/netdata.public.unique.id` contains a random
442
443 Both the sender and the receiver of metrics log information at `/var/log/netdata/error.log`.
444
443 -
445 On both master and slave do this:
446
447 ```
@@ -470,11 +471,11 @@ and something like this on the slave:
471
472 The `master` Netdata node can also archive metrics, for all `slaves`, to a time-series database. At the time of this writing, Netdata supports:
473
473 -- graphite
474 -- opentsdb
475 -- prometheus
476 -- json document DBs
477 -- all the compatibles to the above (e.g. kairosdb, influxdb, etc)
474 +- graphite
475 +- opentsdb
476 +- prometheus
477 +- json document DBs
478 +- all the compatibles to the above (e.g. kairosdb, influxdb, etc)
479
480 Check the Netdata [backends documentation](../backends) for configuring this.
481
@@ -494,7 +495,6 @@ This means a setup like the following is also possible:
495 <img src="https://cloud.githubusercontent.com/assets/2662304/23629551/bb1fd9c2-02c0-11e7-90f5-cab5a3ed4c53.png"/>
496 </p>
497
497 -
498 ## proxies
499
500 A proxy is a Netdata instance that is receiving metrics from a Netdata, and streams them to another Netdata.
@@ -511,4 +511,4 @@ metrics, following the same pattern of the receiving side.
511
512 For a practical example see [Monitoring ephemeral nodes](#monitoring-ephemeral-nodes).
513
514 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fstreaming%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
514 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fstreaming%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
tests/README.md
+30 -26
@@ -1,4 +1,5 @@
1 # Testing
2 +
3 This readme is a manual on how to get started with unit testing on javascript and nodejs
4
5 Original author: BrainDoctor (github), July 2017
@@ -24,10 +25,10 @@ Other browsers work too (Chrome, Firefox). However, only the Chromium Browser 59
25
26 The commands above leave me with the following versions (July 2017):
27
27 - - nodejs: v4.2.6
28 - - npm: 3.5.2
29 - - chromium-browser: 59.0.3071.109
30 - - WebStorm (optional): 2017.1.4
28 +- nodejs: v4.2.6
29 +- npm: 3.5.2
30 +- chromium-browser: 59.0.3071.109
31 +- WebStorm (optional): 2017.1.4
32
33 ## Configuration
34
@@ -46,22 +47,24 @@ If you use the JetBrains WebStorm IDE, you can integrate the karma runtime.
47 #### for Karma (Client side testing)
48
49 Headless Chromium:
49 -1. Run > Edit Configurations
50 -2. "+" > Karma
51 -3. - Name: Karma Headless Chromium
52 - - Configuration file: /path/to/your/netdata/tests/web/karma.conf.js
53 - - Browsers to start: ChromiumHeadless
54 - - Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
55 - - Karma package: /path/to/your/netdata/node_modules/karma
50 +
51 +1. Run > Edit Configurations
52 +2. "+" > Karma
53 +3. - Name: Karma Headless Chromium
54 + - Configuration file: /path/to/your/netdata/tests/web/karma.conf.js
55 + - Browsers to start: ChromiumHeadless
56 + - Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
57 + - Karma package: /path/to/your/netdata/node_modules/karma
58
59 GUI Chromium is similar:
58 -1. Run > Edit Configurations
59 -2. "+" > Karma
60 -3. - Name: Karma Chromium
61 - - Configuration file: /path/to/your/netdata/tests/web/karma.conf.js
62 - - Browsers to start: Chromium
63 - - Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
64 - - Karma package: /path/to/your/netdata/node_modules/karma
60 +
61 +1. Run > Edit Configurations
62 +2. "+" > Karma
63 +3. - Name: Karma Chromium
64 + - Configuration file: /path/to/your/netdata/tests/web/karma.conf.js
65 + - Browsers to start: Chromium
66 + - Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
67 + - Karma package: /path/to/your/netdata/node_modules/karma
68
69 You may add other browsers too (comma separated). With the "Browsers to start" field you can override any settings in karma.conf.js.
70
@@ -69,18 +72,19 @@ Also it is recommended to install WebStorm IDE Extension/Addon to Chrome/Chromiu
72
73 #### for node.d plugins (nodejs)
74
72 -1. Run > Edit Configurations
73 -2. "+" > Node.js
74 -3. - Name: Node.d plugins
75 - - Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
76 - - JavaScript file: node_modules/jasmine-node/bin/jasmine-node
77 - - Application parameters: --captureExceptions tests/node.d
75 +1. Run > Edit Configurations
76 +2. "+" > Node.js
77 +3. - Name: Node.d plugins
78 + - Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
79 + - JavaScript file: node_modules/jasmine-node/bin/jasmine-node
80 + - Application parameters: --captureExceptions tests/node.d
81
82 ## Running
83
84 ### In WebStorm
85
86 #### Karma
87 +
88 Just run the configured run configurations and they produce nice test trees:
89
90 ![karma_run_2](https://user-images.githubusercontent.com/12159026/28277789-559149f6-6b1b-11e7-9cc7-a81d81d12c35.png)
@@ -99,6 +103,7 @@ cd /path/to/your/netdata
103
104 nodejs ./node_modules/karma/bin/karma start tests/web/karma.conf.js --single-run=true --browsers=ChromiumHeadless
105 ```
106 +
107 will start the karma server, start chromium in headless mode and exit.
108
109 If a test fails, it produces even a stack trace:
@@ -135,5 +140,4 @@ The karma and node.d runners can be integrated in Travis (AFAIK), but that is ou
140
141 Note: Karma is for browser-testing. On a build server, no GUI or browser might by available, unless browsers support headless mode.
142
138 -
139 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Ftests%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
143 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Ftests%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
tests/health_mgmtapi/README.md
+1 -3
@@ -7,6 +7,4 @@ The script can be executed with options to prepare the system for the tests, run
7 It depends on the management API being accessible on localhost:19999 and on the responses to the api/v1/alarms?all requests being functional.
8 It also requires read access to the management API key that is usually under `/var/lib/netdata/netdata.api.key` (`@varlibdir_POST@/netdata.api.key`).
9
10 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Ftests%2Fhealth_mgmtapi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
11 -
12 -
10 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Ftests%2Fhealth_mgmtapi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/README.md
+4 -4
@@ -1,14 +1,14 @@
1 # Web dashboards overview
2
3 -The default port is 19999; for example, to access the dashboard on localhost, use: http://localhost:19999
3 +The default port is 19999; for example, to access the dashboard on localhost, use: <http://localhost:19999>
4
5 To view Netdata collected data you access its **[REST API v1](api/)**.
6
7 For our convenience, Netdata provides 2 more layers:
8
9 -1. The `dashboard.js` javascript library that allows us to design custom dashboards using plain HTML. For information on creating custom dashboards, see **[Custom Dashboards](gui/custom/)** and **[Atlassian Confluence Dashboards](gui/confluence/)**
9 +1. The `dashboard.js` javascript library that allows us to design custom dashboards using plain HTML. For information on creating custom dashboards, see **[Custom Dashboards](gui/custom/)** and **[Atlassian Confluence Dashboards](gui/confluence/)**
10
11 -2. Ready to be used web dashboards that render all the charts a Netdata server maintains.
11 +2. Ready to be used web dashboards that render all the charts a Netdata server maintains.
12
13 ## Customizing the standard dashboards
14
@@ -25,4 +25,4 @@ To configure your info file set in `netdata.conf`:
25 custom dashboard_info.js = your_file_name.js
26 ```
27
28 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
28 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/README.md
+1 -1
@@ -18,4 +18,4 @@ and this [multi chart, jsfiddle example](https://jsfiddle.net/ktsaou/L5y2eqp2/):
18
19 ![image](https://cloud.githubusercontent.com/assets/2662304/23824766/31a4a68c-0685-11e7-8429-8327cab64be2.png)
20
21 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
21 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/badges/README.md
+86 -87
@@ -22,17 +22,17 @@ The right one is a **volume** calculation. Netdata calculated the total of the l
22
23 Let's see a few more badge examples (they come from the [Netdata registry](../../../registry/)):
24
25 -- **cpu usage of user `root`** (you can pick any user; 100% = 1 core). This will be `green <10%`, `yellow <20%`, `orange <50%`, `blue <100%` (1 core), `red` otherwise (you define thresholds and colors on the URL).
25 +- **cpu usage of user `root`** (you can pick any user; 100% = 1 core). This will be `green <10%`, `yellow <20%`, `orange <50%`, `blue <100%` (1 core), `red` otherwise (you define thresholds and colors on the URL).
26
27 - <a href="https://registry.my-netdata.io/#apps_cpu"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20cpu%20now&units=%25"></img></a> <a href="https://registry.my-netdata.io/#apps_cpu"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&after=-3600&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20average%20cpu%20last%20hour&units=%25"></img></a>
27 + <a href="https://registry.my-netdata.io/#apps_cpu"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20cpu%20now&units=%25"></img></a> <a href="https://registry.my-netdata.io/#apps_cpu"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&after=-3600&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20average%20cpu%20last%20hour&units=%25"></img></a>
28
29 -- **mysql queries per second**
29 +- **mysql queries per second**
30
31 - <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&label=mysql%20queries%20now&value_color=red&units=%5Cs"></img></a> <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&after=-3600&options=unaligned&group=sum&label=mysql%20queries%20this%20hour&value_color=green&units=null"></img></a> <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&after=-86400&options=unaligned&group=sum&label=mysql%20queries%20today&value_color=blue&units=null"></img></a>
31 + <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&label=mysql%20queries%20now&value_color=red&units=%5Cs"></img></a> <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&after=-3600&options=unaligned&group=sum&label=mysql%20queries%20this%20hour&value_color=green&units=null"></img></a> <a href="https://registry.my-netdata.io/#mysql_local"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.queries&dimensions=questions&after=-86400&options=unaligned&group=sum&label=mysql%20queries%20today&value_color=blue&units=null"></img></a>
32
33 - niche ones: **mysql SELECT statements with JOIN, which did full table scans**:
33 + niche ones: **mysql SELECT statements with JOIN, which did full table scans**:
34
35 - <a href="https://registry.my-netdata.io/#mysql_local_issues"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.join_issues&dimensions=scan&after=-3600&label=full%20table%20scans%20the%20last%20hour&value_color=orange&group=sum&units=null"></img></a>
35 + <a href="https://registry.my-netdata.io/#mysql_local_issues"><img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=mysql_local.join_issues&dimensions=scan&after=-3600&label=full%20table%20scans%20the%20last%20hour&value_color=orange&group=sum&units=null"></img></a>
36
37 ---
38
@@ -46,13 +46,13 @@ The basic URL is `http://your.netdata:19999/api/v1/badge.svg?option1&option2&opt
46
47 Here is what you can put for `options` (these are standard Netdata API options):
48
49 -- `chart=CHART.NAME`
49 +- `chart=CHART.NAME`
50
51 - The chart to get the values from.
51 + The chart to get the values from.
52
53 - **This is the only parameter required** and with just this parameter, Netdata will return the sum of the latest values of all chart dimensions.
53 + **This is the only parameter required** and with just this parameter, Netdata will return the sum of the latest values of all chart dimensions.
54
55 - Example:
55 + Example:
56
57 ```html
58 <a href="#">
@@ -66,21 +66,21 @@ Here is what you can put for `options` (these are standard Netdata API options):
66 <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu"></img>
67 </a>
68
69 -- `alarm=NAME`
69 +- `alarm=NAME`
70
71 - Render the current value and status of an alarm linked to the chart. This option can be ignored if the badge to be generated is not related to an alarm.
71 + Render the current value and status of an alarm linked to the chart. This option can be ignored if the badge to be generated is not related to an alarm.
72
73 - The current value of the alarm will be rendered. The color of the badge will indicate the status of the alarm.
73 + The current value of the alarm will be rendered. The color of the badge will indicate the status of the alarm.
74
75 - For alarm badges, **both `chart` and `alarm` parameters are required**.
75 + For alarm badges, **both `chart` and `alarm` parameters are required**.
76
77 -- `dimensions=DIMENSION1|DIMENSION2|...`
77 +- `dimensions=DIMENSION1|DIMENSION2|...`
78
79 - The dimensions of the chart to use. If you don't set any dimension, all will be used. When multiple dimensions are used, Netdata will sum their values. You can append `options=absolute` if you want this sum to convert all values to positive before adding them.
79 + The dimensions of the chart to use. If you don't set any dimension, all will be used. When multiple dimensions are used, Netdata will sum their values. You can append `options=absolute` if you want this sum to convert all values to positive before adding them.
80
81 - Pipes in HTML have to escaped with `%7C`.
81 + Pipes in HTML have to escaped with `%7C`.
82
83 - Example:
83 + Example:
84
85 ```html
86 <a href="#">
@@ -94,15 +94,15 @@ Here is what you can put for `options` (these are standard Netdata API options):
94 <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&dimensions=system%7Cnice"></img>
95 </a>
96
97 -- `before=SECONDS` and `after=SECONDS`
97 +- `before=SECONDS` and `after=SECONDS`
98
99 - The timeframe. These can be absolute unix timestamps, or relative to now, number of seconds. By default `before=0` and `after=-1` (1 second in the past).
99 + The timeframe. These can be absolute unix timestamps, or relative to now, number of seconds. By default `before=0` and `after=-1` (1 second in the past).
100
101 - To get the last minute set `after=-60`. This will give the average of the last complete minute (XX:XX:00 - XX:XX:59).
101 + To get the last minute set `after=-60`. This will give the average of the last complete minute (XX:XX:00 - XX:XX:59).
102
103 - To get the max of the last hour set `after=-3600&group=max`. This will give the maximum value of the last complete hour (XX:00:00 - XX:59:59)
103 + To get the max of the last hour set `after=-3600&group=max`. This will give the maximum value of the last complete hour (XX:00:00 - XX:59:59)
104
105 - Example:
105 + Example:
106
107 ```html
108 <a href="#">
@@ -125,103 +125,102 @@ Here is what you can put for `options` (these are standard Netdata API options):
125 ```
126
127 It produces this:
128 -
128 +
129 <a href="#">
130 <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&before=-60&after=-60"></img>
131 </a>
132
133 -- `group=min` or `group=max` or `group=average` (the default) or `group=sum` or `group=incremental-sum`
133 +- `group=min` or `group=max` or `group=average` (the default) or `group=sum` or `group=incremental-sum`
134
135 - If Netdata will have to reduce (aggregate) the data to calculate the value, which aggregation method to use.
135 + If Netdata will have to reduce (aggregate) the data to calculate the value, which aggregation method to use.
136
137 - - `max` will find the max value for the timeframe. This works on both positive and negative dimensions. It will find the most extreme value.
137 + - `max` will find the max value for the timeframe. This works on both positive and negative dimensions. It will find the most extreme value.
138
139 - - `min` will find the min value for the timeframe. This works on both positive and negative dimensions. It will find the number closest to zero.
139 + - `min` will find the min value for the timeframe. This works on both positive and negative dimensions. It will find the number closest to zero.
140
141 - - `average` will calculate the average value for the timeframe.
141 + - `average` will calculate the average value for the timeframe.
142
143 - - `sum` will sum all the values for the timeframe. This is nice for finding the volume of dimensions for a timeframe. So if you have a dimension that reports `X per second`, you can find the volume of the dimension in a timeframe, by adding its values in that timeframe.
143 + - `sum` will sum all the values for the timeframe. This is nice for finding the volume of dimensions for a timeframe. So if you have a dimension that reports `X per second`, you can find the volume of the dimension in a timeframe, by adding its values in that timeframe.
144
145 - - `incremental-sum` will sum the difference of each value to its next. Let's assume you have a dimension that does not measure the rate of something, but the absolute value of it. So it has values like this "1, 5, 3, 7, 4". `incremental-sum` will calculate the difference of adjacent values. In this example, they will be `(5 - 1) + (3 - 5) + (7 - 3) + (4 - 7) = 3` (which is equal to the last value minus the first = 4 - 1).
145 + - `incremental-sum` will sum the difference of each value to its next. Let's assume you have a dimension that does not measure the rate of something, but the absolute value of it. So it has values like this "1, 5, 3, 7, 4". `incremental-sum` will calculate the difference of adjacent values. In this example, they will be `(5 - 1) + (3 - 5) + (7 - 3) + (4 - 7) = 3` (which is equal to the last value minus the first = 4 - 1).
146
147 -- `options=opt1|opt2|opt3|...`
147 +- `options=opt1|opt2|opt3|...`
148
149 - These fine tune various options of the API. Here is what you can use for badges (the API has more option, but only these are useful for badges):
149 + These fine tune various options of the API. Here is what you can use for badges (the API has more option, but only these are useful for badges):
150
151 - - `percentage`, instead of returning the value, calculate the percentage of the sum of the selected dimensions, versus the sum of all the dimensions of the chart. This also sets the units to `%`.
151 + - `percentage`, instead of returning the value, calculate the percentage of the sum of the selected dimensions, versus the sum of all the dimensions of the chart. This also sets the units to `%`.
152
153 - - `absolute` or `abs`, turn all values positive and then sum them.
153 + - `absolute` or `abs`, turn all values positive and then sum them.
154
155 - - `display_absolute` or `display-absolute`, to use the signed value during color calculation, but display the absolute value on the badge.
155 + - `display_absolute` or `display-absolute`, to use the signed value during color calculation, but display the absolute value on the badge.
156
157 - - `min2max`, when multiple dimensions are given, do not sum them, but take their `max - min`.
157 + - `min2max`, when multiple dimensions are given, do not sum them, but take their `max - min`.
158
159 - - `unaligned`, when data are reduced / aggregated (e.g. the request is about the average of the last minute, or hour), Netdata by default aligns them so that the charts will have a constant shape (so average per minute returns always XX:XX:00 - XX:XX:59). Setting the `unaligned` option, Netdata will aggregate data without any alignment, so if the request is for 60 seconds, it will aggregate the latest 60 seconds of collected data.
159 + - `unaligned`, when data are reduced / aggregated (e.g. the request is about the average of the last minute, or hour), Netdata by default aligns them so that the charts will have a constant shape (so average per minute returns always XX:XX:00 - XX:XX:59). Setting the `unaligned` option, Netdata will aggregate data without any alignment, so if the request is for 60 seconds, it will aggregate the latest 60 seconds of collected data.
160
161 These are options dedicated to badges:
162
163 -- `label=TEXT`
164 -
165 - The label of the badge.
163 +- `label=TEXT`
164
167 -- `units=TEXT`
165 + The label of the badge.
166
169 - The units of the badge. If you want to put a `/`, please put a `\`. This is because Netdata allows badges parameters to be given as path in URL, instead of query string. You can also use `null` or `empty` to show it without any units.
167 +- `units=TEXT`
168
171 - The units `seconds`, `minutes` and `hours` trigger special formatting. The value has to be in this unit, and Netdata will automatically change it to show a more pretty duration.
169 + The units of the badge. If you want to put a `/`, please put a `\`. This is because Netdata allows badges parameters to be given as path in URL, instead of query string. You can also use `null` or `empty` to show it without any units.
170
173 -- `multiply=NUMBER`
171 + The units `seconds`, `minutes` and `hours` trigger special formatting. The value has to be in this unit, and Netdata will automatically change it to show a more pretty duration.
172
175 - Multiply the value with this number. The default is `1`.
173 +- `multiply=NUMBER`
174
177 -- `divide=NUMBER`
175 + Multiply the value with this number. The default is `1`.
176
179 - Divide the value with this number. The default is `1`.
177 +- `divide=NUMBER`
178
181 -- `label_color=COLOR`
179 + Divide the value with this number. The default is `1`.
180
183 - The color of the label (the left part). You can use any HTML color, include `#NNN` and `#NNNNNN`. The following colors are defined in Netdata (and you can use them by name): `green`, `brightgreen`, `yellow`, `yellowgreen`, `orange`, `red`, `blue`, `grey`, `gray`, `lightgrey`, `lightgray`. These are taken from https://github.com/badges/shields so they are compatible with standard badges.
181 +- `label_color=COLOR`
182
185 -- `value_color=COLOR:null|COLOR<VALUE|COLOR>VALUE|COLOR>=VALUE|COLOR<=VALUE|...`
183 + The color of the label (the left part). You can use any HTML color, include `#NNN` and `#NNNNNN`. The following colors are defined in Netdata (and you can use them by name): `green`, `brightgreen`, `yellow`, `yellowgreen`, `orange`, `red`, `blue`, `grey`, `gray`, `lightgrey`, `lightgray`. These are taken from <https://github.com/badges/shields> so they are compatible with standard badges.
184
187 - You can add a pipe delimited list of conditions to pick the color. The first matching (left to right) will be used.
185 +- `value_color=COLOR:null|COLOR<VALUE|COLOR>VALUE|COLOR>=VALUE|COLOR<=VALUE|...`
186
189 - Example: `value_color=grey:null|green<10|yellow<100|orange<1000|blue<10000|red`
187 + You can add a pipe delimited list of conditions to pick the color. The first matching (left to right) will be used.
188
191 - The above will set `grey` if no value exists (not collected within the `gap when lost iterations above` in `netdata.conf` for the chart), `green` if the value is less than 10, `yellow` if the value is less than 100, etc up to `red` which will be used if no other conditions match.
189 + Example: `value_color=grey:null|green<10|yellow<100|orange<1000|blue<10000|red`
190
193 - The supported operators are `<`, `>`, `<=`, `>=`, `=` (or `:`) and `!=` (or `<>`).
191 + The above will set `grey` if no value exists (not collected within the `gap when lost iterations above` in `netdata.conf` for the chart), `green` if the value is less than 10, `yellow` if the value is less than 100, etc up to `red` which will be used if no other conditions match.
192
195 -- `precision=NUMBER`
193 + The supported operators are `<`, `>`, `<=`, `>=`, `=` (or `:`) and `!=` (or `<>`).
194
197 - The number of decimal digits of the value. By default Netdata will add:
195 +- `precision=NUMBER`
196
199 - - no decimal digits for values > 1000
200 - - 1 decimal digit for values > 100
201 - - 2 decimal digits for values > 1
202 - - 3 decimal digits for values > 0.1
203 - - 4 decimal digits for values <= 0.1
197 + The number of decimal digits of the value. By default Netdata will add:
198
205 - Using the `precision=NUMBER` you can set your preference per badge.
199 + - no decimal digits for values > 1000
200 + - 1 decimal digit for values > 100
201 + - 2 decimal digits for values > 1
202 + - 3 decimal digits for values > 0.1
203 + - 4 decimal digits for values \<= 0.1
204
207 -- `scale=XXX`
205 + Using the `precision=NUMBER` you can set your preference per badge.
206
209 - This option scales the svg image. It accepts values above or equal to 100 (100% is the default scale). For example, lets get a few different sizes:
207 +- `scale=XXX`
208
211 - <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=100"></img> original<br/>
212 - <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=125"></img> `scale=125`<br/>
213 - <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=150"></img> `scale=150`<br/>
214 - <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=175"></img> `scale=175`<br/>
215 - <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=200"></img> `scale=200`
209 + This option scales the svg image. It accepts values above or equal to 100 (100% is the default scale). For example, lets get a few different sizes:
210
211 + <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=100"></img> original<br/>
212 + <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=125"></img> `scale=125`<br/>
213 + <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=150"></img> `scale=150`<br/>
214 + <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=175"></img> `scale=175`<br/>
215 + <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu&after=-60&scale=200"></img> `scale=200`
216
218 -- `refresh=auto` or `refresh=SECONDS`
217 +- `refresh=auto` or `refresh=SECONDS`
218
220 - This option enables auto-refreshing of images. Netdata will send the HTTP header `Refresh: SECONDS` to the web browser, thus requesting automatic refresh of the images at regular intervals.
219 + This option enables auto-refreshing of images. Netdata will send the HTTP header `Refresh: SECONDS` to the web browser, thus requesting automatic refresh of the images at regular intervals.
220
222 - `auto` will calculate the proper `SECONDS` to avoid unnecessary refreshes. If `SECONDS` is zero, this feature is disabled (it is also disabled by default).
221 + `auto` will calculate the proper `SECONDS` to avoid unnecessary refreshes. If `SECONDS` is zero, this feature is disabled (it is also disabled by default).
222
224 - Auto-refreshing like this, works only if you access the badge directly. So, you may have to put it an `embed` or `iframe` for it to be auto-refreshed. Use something like this:
223 + Auto-refreshing like this, works only if you access the badge directly. So, you may have to put it an `embed` or `iframe` for it to be auto-refreshed. Use something like this:
224
225 ```html
226 <embed src="BADGE_URL" type="image/svg+xml" height="20" />
@@ -251,37 +250,37 @@ A more advanced badges refresh method is to include `http://your.netdata.ip:1999
250
251 Keep in mind that if you add badge URLs to your HTML pages you have to escape the special characters:
252
254 -character|name|escape sequence
255 -:-------:|:--:|:-------------:
256 -` `|space (in labels and units)|`%20`
257 -` # `|hash (for colors)|`%23`
258 -` % `|percent (in units)|`%25`
259 -` < `|less than|`%3C`
260 -` > `|greater than|`%3E`
261 -` \ `|backslash (when you need a `/`)|`%5C`
262 -` \| `|pipe (delimiting parameters)|`%7C`
253 +|character|name|escape sequence|
254 +|:-------:|:--:|:-------------:|
255 +|``|space (in labels and units)|`%20`|
256 +|`#`|hash (for colors)|`%23`|
257 +|`%`|percent (in units)|`%25`|
258 +|`<`|less than|`%3C`|
259 +|`>`|greater than|`%3E`|
260 +|`\`|backslash (when you need a `/`)|`%5C`|
261 +|`\|`|pipe (delimiting parameters)|`%7C`|
262
263 ## FAQ
264
265 #### Is it fast?
266 +
267 On modern hardware, Netdata can generate about **2.000 badges per second per core**, before noticing any delays. It generates a badge in about half a millisecond!
268
269 Of course these timing are for badges that use recent data. If you need badges that do calculations over long durations (a day, or more), timing will differ. Netdata logs its timings at its `access.log`, so take a look there before adding a heavy badge on a busy web site. Of course, you can cache such badges or have a cron job get them from Netdata and save them at your web server at regular intervals.
270
271 -
271 #### Embedding badges in github
272
273 You have 2 options a) SVG images with markdown and b) SVG images with HTML (directly in .md files).
274
275 For example, this is the cpu badge shown above:
276
278 -- Markdown example:
277 +- Markdown example:
278
279 ```md
280 [![A nice name](https://registry.my-netdata.io/api/v1/badge.svg?chart=users.cpu&dimensions=root&value_color=grey:null%7Cgreen%3C10%7Cyellow%3C20%7Corange%3C50%7Cblue%3C100%7Cred&label=root%20user%20cpu%20now&units=%25)](https://registry.my-netdata.io/#apps_cpu)
281 ```
282
284 -- HTML example:
283 +- HTML example:
284
285 ```html
286 <a href="https://registry.my-netdata.io/#apps_cpu">
@@ -305,4 +304,4 @@ You can refresh them from your browser console though. Press F12 to open the web
304 var len = document.images.length; while(len--) { document.images[len].src = document.images[len].src.replace(/\?cacheBuster=\d*/, "") + "?cacheBuster=" + new Date().getTime().toString(); };
305 ```
306
308 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fbadges%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
307 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fbadges%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/exporters/README.md
+1 -1
@@ -2,4 +2,4 @@
2
3 TBD
4
5 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fexporters%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
5 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fexporters%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/exporters/prometheus/README.md
+1 -1
@@ -2,4 +2,4 @@
2
3 The prometheus exporter for Netdata is located at the [backends section for prometheus](../../../../backends/prometheus).
4
5 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fexporters%2Fprometheus%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
5 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fexporters%2Fprometheus%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/exporters/shell/README.md
+1 -1
@@ -63,4 +63,4 @@ NETDATA_${chart_id^^}_${dimension_id^^}="${value}"
63
64 The value is rounded to the closest integer, since shell script cannot process decimal numbers.
65
66 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fexporters%2Fshell%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
66 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fexporters%2Fshell%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/formatters/README.md
+15 -16
@@ -5,20 +5,20 @@ Using API parameters, the caller may define the format he/she wishes to get back
5
6 The following formats are supported:
7
8 -format|module|content type|description
9 -:---:|:---:|:---:|:-----
10 -`array`|[ssv](ssv)|application/json|a JSON array
11 -`csv`|[csv](csv)|text/plain|a text table, comma separated, with a header line (dimension names) and `\r\n` at the end of the lines
12 -`csvjsonarray`|[csv](csv)|application/json|a JSON array, with each row as another array (the first row has the dimension names)
13 -`datasource`|[json](json)|application/json|a Google Visualization Provider `datasource` javascript callback
14 -`datatable`|[json](json)|application/json|a Google `datatable`
15 -`html`|[csv](csv)|text/html|an html table
16 -`json`|[json](json)|application/json|a JSON object
17 -`jsonp`|[json](json)|application/json|a JSONP javascript callback
18 -`markdown`|[csv](csv)|text/plain|a markdown table
19 -`ssv`|[ssv](ssv)|text/plain|a space separated list of values
20 -`ssvcomma`|[ssv](ssv)|text/plain|a comma separated list of values
21 -`tsv`|[csv](csv)|text/plain|a TAB delimited `csv` (MS Excel flavor)
8 +| format|module|content type|description|
9 +|:----:|:----:|:----------:|:----------|
10 +| `array`|[ssv](ssv)|application/json|a JSON array|
11 +| `csv`|[csv](csv)|text/plain|a text table, comma separated, with a header line (dimension names) and `\r\n` at the end of the lines|
12 +| `csvjsonarray`|[csv](csv)|application/json|a JSON array, with each row as another array (the first row has the dimension names)|
13 +| `datasource`|[json](json)|application/json|a Google Visualization Provider `datasource` javascript callback|
14 +| `datatable`|[json](json)|application/json|a Google `datatable`|
15 +| `html`|[csv](csv)|text/html|an html table|
16 +| `json`|[json](json)|application/json|a JSON object|
17 +| `jsonp`|[json](json)|application/json|a JSONP javascript callback|
18 +| `markdown`|[csv](csv)|text/plain|a markdown table|
19 +| `ssv`|[ssv](ssv)|text/plain|a space separated list of values|
20 +| `ssvcomma`|[ssv](ssv)|text/plain|a comma separated list of values|
21 +| `tsv`|[csv](csv)|text/plain|a TAB delimited `csv` (MS Excel flavor)|
22
23 For examples of each format, check the relative module documentation.
24
@@ -67,8 +67,7 @@ the result and save it under a given filename.
67 For example, to download a CSV file with CPU utilization of the last hour,
68 [click here](https://registry.my-netdata.io/api/v1/data?chart=system.cpu&after=-3600&format=csv&options=nonzero&tqx=outFileName:system+cpu+utilization+of+the+last_hour.csv).
69
70 -
70 This is done by appending `&tqx=outFileName:FILENAME` to any data query.
71 The output will be in the format given with `&format=`.
72
74 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
73 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/formatters/csv/README.md
+43 -45
@@ -2,28 +2,27 @@
2
3 The CSV formatter presents [results of database queries](../../queries) in the following formats:
4
5 -format|content type|description
6 -:---:|:---:|:-----
7 -`csv`|text/plain|a text table, comma separated, with a header line (dimension names) and `\r\n` at the end of the lines
8 -`csvjsonarray`|application/json|a JSON array, with each row as another array (the first row has the dimension names)
9 -`tsv`|text/plain|like `csv` but TAB is used instead of comma to separate values (MS Excel flavor)
10 -`html`|text/html|an html table
11 -`markdown`|text/plain|markdown table
5 +| format|content type|description|
6 +| :----:|:----------:|:----------|
7 +| `csv`|text/plain|a text table, comma separated, with a header line (dimension names) and `\r\n` at the end of the lines|
8 +| `csvjsonarray`|application/json|a JSON array, with each row as another array (the first row has the dimension names)|
9 +| `tsv`|text/plain|like `csv` but TAB is used instead of comma to separate values (MS Excel flavor)|
10 +| `html`|text/html|an html table|
11 +| `markdown`|text/plain|markdown table|
12
13 In all formats the date and time is the first column.
14
15 The CSV formatter respects the following API `&options=`:
16
17 -option|supported|description
18 -:---:|:---:|:---
19 -`nonzero`|yes|to return only the dimensions that have at least a non-zero value
20 -`flip`|yes|to return the rows older to newer (the default is newer to older)
21 -`seconds`|yes|to return the date and time in unix timestamp
22 -`ms`|yes|to return the date and time in unit timestamp as milliseconds
23 -`percent`|yes|to replace all values with their percentage over the row total
24 -`abs`|yes|to turn all values positive
25 -`null2zero`|yes|to replace gaps with zeros (the default prints the string `null`
26 -
17 +| option|supported|description|
18 +|:----:|:-------:|:----------|
19 +| `nonzero`|yes|to return only the dimensions that have at least a non-zero value|
20 +| `flip`|yes|to return the rows older to newer (the default is newer to older)|
21 +| `seconds`|yes|to return the date and time in unix timestamp|
22 +| `ms`|yes|to return the date and time in unit timestamp as milliseconds|
23 +| `percent`|yes|to replace all values with their percentage over the row total|
24 +| `abs`|yes|to turn all values positive|
25 +| `null2zero`|yes|to replace gaps with zeros (the default prints the string `null`|
26
27 ## Examples
28
@@ -82,7 +81,6 @@ This is how it looks when rendered by a web browser:
81
82 ![image](https://user-images.githubusercontent.com/2662304/47597887-bafbf480-d99c-11e8-864a-d880bb8d2e5b.png)
83
85 -
84 ---
85
86 Get a JSON array with the average bandwidth rate of the mysql server, over the last hour, in 6 values
@@ -101,7 +99,7 @@ Netdata always returns bandwidth rates in `kilobits/s`.
99 [1540597200000,0.7499968,120.2807337],
100 [1540596600000,0.7499988,120.2810527]
101 ]
104 -```
102 +```
103
104 ---
105
@@ -109,33 +107,33 @@ Get the number of processes started per minute, for the last 10 minutes, in `mar
107
108 ```bash
109 # curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.forks&format=markdown&after=-600&points=10&group=sum'
112 -time|started
113 -:---:|:---:
114 -2018-10-27 03:52:00|245.1706149
115 -2018-10-27 03:51:00|152.6654636
116 -2018-10-27 03:50:00|163.1755789
117 -2018-10-27 03:49:00|176.1574766
118 -2018-10-27 03:48:00|178.0137076
119 -2018-10-27 03:47:00|183.8306543
120 -2018-10-27 03:46:00|264.1635621
121 -2018-10-27 03:45:00|205.001551
122 -2018-10-27 03:44:00|7026.9852167
123 -2018-10-27 03:43:00|205.9904794
110 +time | started
111 +:---: |:---:
112 +2018-10-27 03:52:00| 245.1706149
113 +2018-10-27 03:51:00| 152.6654636
114 +2018-10-27 03:50:00| 163.1755789
115 +2018-10-27 03:49:00| 176.1574766
116 +2018-10-27 03:48:00| 178.0137076
117 +2018-10-27 03:47:00| 183.8306543
118 +2018-10-27 03:46:00| 264.1635621
119 +2018-10-27 03:45:00| 205.001551
120 +2018-10-27 03:44:00| 7026.9852167
121 +2018-10-27 03:43:00| 205.9904794
122 ```
123
124 And this is how it looks when formatted:
125
128 -time|started
129 -:---:|:---:
130 -2018-10-27 03:52:00|245.1706149
131 -2018-10-27 03:51:00|152.6654636
132 -2018-10-27 03:50:00|163.1755789
133 -2018-10-27 03:49:00|176.1574766
134 -2018-10-27 03:48:00|178.0137076
135 -2018-10-27 03:47:00|183.8306543
136 -2018-10-27 03:46:00|264.1635621
137 -2018-10-27 03:45:00|205.001551
138 -2018-10-27 03:44:00|7026.9852167
139 -2018-10-27 03:43:00|205.9904794
140 -
141 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fcsv%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
126 +| time | started |
127 +|:--:|:-----:|
128 +| 2018-10-27 03:52:00 | 245.1706149 |
129 +| 2018-10-27 03:51:00 | 152.6654636 |
130 +| 2018-10-27 03:50:00 | 163.1755789 |
131 +| 2018-10-27 03:49:00 | 176.1574766 |
132 +| 2018-10-27 03:48:00 | 178.0137076 |
133 +| 2018-10-27 03:47:00 | 183.8306543 |
134 +| 2018-10-27 03:46:00 | 264.1635621 |
135 +| 2018-10-27 03:45:00 | 205.001551 |
136 +| 2018-10-27 03:44:00 | 7026.9852167 |
137 +| 2018-10-27 03:43:00 | 205.9904794 |
138 +
139 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fcsv%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/formatters/json/README.md
+18 -19
@@ -2,26 +2,26 @@
2
3 The CSV formatter presents [results of database queries](../../queries) in the following formats:
4
5 -format|content type|description
6 -:---:|:---:|:-----
7 -`json`|application/json|return the query result as a json object
8 -`jsonp`|application/json|return the query result as a JSONP javascript callback
9 -`datatable`|application/json|return the query result as a Google `datatable`
10 -`datasource`|application/json|return the query result as a Google Visualization Provider `datasource` javascript callback
5 +| format | content type | description|
6 +|:----:|:----------:|:----------|
7 +| `json` | application/json | return the query result as a json object|
8 +| `jsonp` | application/json | return the query result as a JSONP javascript callback|
9 +| `datatable` | application/json | return the query result as a Google `datatable`|
10 +| `datasource` | application/json | return the query result as a Google Visualization Provider `datasource` javascript callback|
11
12 The CSV formatter respects the following API `&options=`:
13
14 -option|supported|description
15 -:---:|:---:|:---
16 -`google_json`|yes|enable the Google flavor of JSON (using double quotes for strings and `Date()` function for dates
17 -`objectrows`|yes|return each row as an object, instead of an array
18 -`nonzero`|yes|to return only the dimensions that have at least a non-zero value
19 -`flip`|yes|to return the rows older to newer (the default is newer to older)
20 -`seconds`|yes|to return the date and time in unix timestamp
21 -`ms`|yes|to return the date and time in unit timestamp as milliseconds
22 -`percent`|yes|to replace all values with their percentage over the row total
23 -`abs`|yes|to turn all values positive
24 -`null2zero`|yes|to replace gaps with zeros (the default prints the string `null`
14 +| option | supported | description|
15 +|:----:|:-------:|:----------|
16 +| `google_json` | yes | enable the Google flavor of JSON (using double quotes for strings and `Date()` function for dates|
17 +| `objectrows` | yes | return each row as an object, instead of an array|
18 +| `nonzero` | yes | to return only the dimensions that have at least a non-zero value|
19 +| `flip` | yes | to return the rows older to newer (the default is newer to older)|
20 +| `seconds` | yes | to return the date and time in unix timestamp|
21 +| `ms` | yes | to return the date and time in unit timestamp as milliseconds|
22 +| `percent` | yes | to replace all values with their percentage over the row total|
23 +| `abs` | yes | to turn all values positive|
24 +| `null2zero` | yes | to replace gaps with zeros (the default prints the string `null`|
25
26 ## Examples
27
@@ -148,5 +148,4 @@ google.visualization.Query.setResponse({version:'0.6',reqId:'0',status:'ok',sig:
148 }});
149 ```
150
151 -
152 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fjson%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
151 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fjson%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/formatters/ssv/README.md
+13 -13
@@ -5,21 +5,21 @@ to a single value and returns a list of such values showing how it changes throu
5
6 It supports the following formats:
7
8 -format|content type|description
9 -:---:|:---:|:-----
10 -`ssv`|text/plain|a space separated list of values
11 -`ssvcomma`|text/plain|a comma separated list of values
12 -`array`|application/json|a JSON array
8 +| format | content type | description |
9 +|:----:|:----------:|:----------|
10 +| `ssv` | text/plain | a space separated list of values |
11 +| `ssvcomma` | text/plain | a comma separated list of values |
12 +| `array` | application/json | a JSON array |
13
14 The CSV formatter respects the following API `&options=`:
15
16 -option|supported|description
17 -:---:|:---:|:---
18 -`nonzero`|yes|to return only the dimensions that have at least a non-zero value
19 -`flip`|yes|to return the numbers older to newer (the default is newer to older)
20 -`percent`|yes|to replace all values with their percentage over the row total
21 -`abs`|yes|to turn all values positive, before using them
22 -`min2max`|yes|to return the delta from the minimum value to the maximum value (across dimensions)
16 +| option | supported | description |
17 +| :----:|:-------:|:----------|
18 +| `nonzero` | yes | to return only the dimensions that have at least a non-zero value |
19 +| `flip` | yes | to return the numbers older to newer (the default is newer to older) |
20 +| `percent` | yes | to replace all values with their percentage over the row total |
21 +| `abs` | yes | to turn all values positive, before using them |
22 +| `min2max` | yes | to return the delta from the minimum value to the maximum value (across dimensions) |
23
24 ## Examples
25
@@ -51,4 +51,4 @@ in a JSON array:
51 [278,258,268,239,259,260,243,266,278,318,264,258]
52 ```
53
54 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fssv%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
54 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fssv%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/formatters/value/README.md
+6 -6
@@ -6,14 +6,14 @@ To calculate the single value to be returned, it sums the values of all dimensio
6
7 The Value formatter respects the following API `&options=`:
8
9 -option|supported|description
10 -:---:|:---:|:---
11 -`percent`|yes|to replace all values with their percentage over the row total
12 -`abs`|yes|to turn all values positive, before using them
13 -`min2max`|yes|to return the delta from the minimum value to the maximum value (across dimensions)
9 +| option | supported | description |
10 +|:----: |:-------: |:---------- |
11 +| `percent` | yes | to replace all values with their percentage over the row total|
12 +| `abs` | yes | to turn all values positive, before using them |
13 +| `min2max` | yes | to return the delta from the minimum value to the maximum value (across dimensions)|
14
15 The Value formatter is not exposed by the API by itself.
16 Instead it is used by the [`ssv`](../ssv) formatter
17 and [health monitoring queries](../../../../health).
18
19 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fvalue%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
19 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fformatters%2Fvalue%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/health/README.md
+27 -25
@@ -48,9 +48,10 @@ Netdata v1.12 and beyond provides a command API to control health checks and not
48 From Netdata v1.16.0 and beyond, the configuration controlled via the API commands is [persisted across Netdata restarts](#persistence).
49
50 Specifically, the API allows you to:
51 - - Disable health checks completely. Alarm conditions will not be evaluated at all and no entries will be added to the alarm log.
52 - - Silence alarm notifications. Alarm conditions will be evaluated, the alarms will appear in the log and the Netdata UI will show the alarms as active, but no notifications will be sent.
53 - - Disable or Silence specific alarms that match selectors on alarm/template name, chart, context, host and family.
51 +
52 +- Disable health checks completely. Alarm conditions will not be evaluated at all and no entries will be added to the alarm log.
53 +- Silence alarm notifications. Alarm conditions will be evaluated, the alarms will appear in the log and the Netdata UI will show the alarms as active, but no notifications will be sent.
54 +- Disable or Silence specific alarms that match selectors on alarm/template name, chart, context, host and family.
55
56 The API is available by default, but it is protected by an `api authorization token` that is stored in the file you will see in the following entry of `http://localhost:19999/netdata.conf`:
57
@@ -74,14 +75,14 @@ If you've configured and entered your token correclty, you should see the plain
75
76 If all you need is temporarily disable all health checks, then you issue the following before your maintenance period starts:
77
77 -```
78 +```sh
79 curl "http://myserver/api/v1/manage/health?cmd=DISABLE ALL" -H "X-Auth-Token: Mytoken"
80 ```
81
82 The effect of disabling health checks is that the alarm criteria are not evaluated at all and nothing is written in the alarm log.
83 If you want the health checks to be running but to not receive any notifications during your maintenance period, you can instead use this:
84
84 -```
85 +```sh
86 curl "http://myserver/api/v1/manage/health?cmd=SILENCE ALL" -H "X-Auth-Token: Mytoken"
87 ```
88
@@ -89,7 +90,7 @@ Alarms may then still be raised and logged in Netdata, so you'll be able to see
90
91 Regardless of the option you choose, at the end of your maintenance period you revert to the normal state via the RESET command.
92
92 -```
93 +```sh
94 curl "http://myserver/api/v1/manage/health?cmd=RESET" -H "X-Auth-Token: Mytoken"
95 ```
96
@@ -97,8 +98,9 @@ Regardless of the option you choose, at the end of your maintenance period you r
98
99 If you do not wish to disable/silence all alarms, then the `DISABLE ALL` and `SILENCE ALL` commands can't be used.
100 Instead, the following commands expect that one or more alarm selectors will be added, so that only alarms that match the selectors are disabled or silenced.
100 -- `DISABLE` : Set the mode to disable health checks.
101 -- `SILENCE` : Set the mode to silence notifications.
101 +
102 +- `DISABLE` : Set the mode to disable health checks.
103 +- `SILENCE` : Set the mode to silence notifications.
104
105 You will normally put one of these commands in the same request with your first alarm selector, but it's possible to issue them separately as well.
106 You will get a warning in the response, if a selector was added without a SILENCE/DISABLE command, or vice versa.
@@ -121,11 +123,12 @@ curl "http://myserver/api/v1/manage/health?cmd=SILENCE&context=load" -H "X-Auth-
123 The `selection criteria` are key/value pairs, in the format `key : value`, where value is a Netdata [simple pattern](../../../libnetdata/simple_pattern/). This means that you can create very powerful selectors (you will rarely need more than one or two).
124
125 The accepted keys for the `selection criteria` are the following:
124 -- `alarm` : The expression provided will match both `alarm` and `template` names.
125 -- `chart` : Chart ids/names, as shown on the dashboard. These will match the `on` entry of a configured `alarm`.
126 -- `context` : Chart context, as shown on the dashboard. These will match the `on` entry of a configured `template`.
127 -- `hosts` : The hostnames that will need to match.
128 -- `families` : The alarm families.
126 +
127 +- `alarm` : The expression provided will match both `alarm` and `template` names.
128 +- `chart` : Chart ids/names, as shown on the dashboard. These will match the `on` entry of a configured `alarm`.
129 +- `context` : Chart context, as shown on the dashboard. These will match the `on` entry of a configured `template`.
130 +- `hosts` : The hostnames that will need to match.
131 +- `families` : The alarm families.
132
133 You can add any of the selection criteria you need on the request, to ensure that only the alarms you are interested in are matched and disabled/silenced. e.g. there is no reason to add `hosts: *`, if you want the criteria to be applied to alarms for all hosts.
134
@@ -187,16 +190,16 @@ json
190
191 ### Responses
192
190 -- "Auth Error" : Token authentication failed
191 -- "All alarm notifications are silenced" : Successful response to cmd=SILENCE ALL
192 -- "All health checks are disabled" : Successful response to cmd=DISABLE ALL
193 -- "All health checks and notifications are enabled" : Successful response to cmd=RESET
194 -- "Health checks disabled for alarms matching the selectors" : Added to the response for a cmd=DISABLE
195 -- "Alarm notifications silenced for alarms matching the selectors" : Added to the response for a cmd=SILENCE
196 -- "Alarm selector added" : Added to the response when a new selector is added
197 -- "Invalid key. Ignoring it." : Wrong name of a parameter. Added to the response and ignored.
198 -- "WARNING: Added alarm selector to silence/disable alarms without a SILENCE or DISABLE command." : Added to the response if a selector is added without a selector-specific command.
199 -- "WARNING: SILENCE or DISABLE command is ineffective without defining any alarm selectors." : Added to the response if a selector-specific command is issued without a selector.
193 +- "Auth Error" : Token authentication failed
194 +- "All alarm notifications are silenced" : Successful response to cmd=SILENCE ALL
195 +- "All health checks are disabled" : Successful response to cmd=DISABLE ALL
196 +- "All health checks and notifications are enabled" : Successful response to cmd=RESET
197 +- "Health checks disabled for alarms matching the selectors" : Added to the response for a cmd=DISABLE
198 +- "Alarm notifications silenced for alarms matching the selectors" : Added to the response for a cmd=SILENCE
199 +- "Alarm selector added" : Added to the response when a new selector is added
200 +- "Invalid key. Ignoring it." : Wrong name of a parameter. Added to the response and ignored.
201 +- "WARNING: Added alarm selector to silence/disable alarms without a SILENCE or DISABLE command." : Added to the response if a selector is added without a selector-specific command.
202 +- "WARNING: SILENCE or DISABLE command is ineffective without defining any alarm selectors." : Added to the response if a selector-specific command is issued without a selector.
203
204 ### Persistence
205
@@ -213,5 +216,4 @@ The file's location is configurable in `netdata.conf`. The default is shown belo
216
217 The test script under [tests/health_mgmtapi](../../../tests/health_mgmtapi) contains a series of tests that you can either run or read through to understand the various calls and responses better.
218
216 -
217 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fhealth%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
219 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fhealth%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/README.md
+62 -63
@@ -4,16 +4,16 @@ Netdata database can be queried with `/api/v1/data` and `/api/v1/badge.svg` REST
4
5 Every data query accepts the following parameters:
6
7 -name|required|description
8 -:----:|:----:|:---
9 -`chart`|yes|The chart to be queried.
10 -`points`|no|The number of points to be returned. Netdata can reduce number of points by applying query grouping methods. If not given, the result will have the same granularity as the database (although this relates to `gtime`).
11 -`before`|no|The absolute timestamp or the relative (to now) time the query should finish evaluating data. If not given, it defaults to the timestamp of the latest point in the database.
12 -`after`|no|The absolute timestamp or the relative (to `before`) time the query should start evaluating data. if not given, it defaults to the timestamp of the oldest point in the database.
13 -`group`|no|The grouping method to use when reducing the points the database has. If not given, it defaults to `average`.
14 -`gtime`|no|A resampling period to change the units of the metrics (i.e. setting this to `60` will convert `per second` metrics to `per minute`. If not given it defaults to granularity of the database.
15 -`options`|no|A bitmap of options that can affect the operation of the query. Only 2 options are used by the query engine: `unaligned` and `percentage`. All the other options are used by the output formatters. The default is to return aligned data.
16 -`dimensions`|no|A simple pattern to filter the dimensions to be queried. The default is to return all the dimensions of the chart.
7 +|name|required|description|
8 +|:--:|:------:|:----------|
9 +|`chart`|yes|The chart to be queried.|
10 +|`points`|no|The number of points to be returned. Netdata can reduce number of points by applying query grouping methods. If not given, the result will have the same granularity as the database (although this relates to `gtime`).|
11 +|`before`|no|The absolute timestamp or the relative (to now) time the query should finish evaluating data. If not given, it defaults to the timestamp of the latest point in the database.|
12 +|`after`|no|The absolute timestamp or the relative (to `before`) time the query should start evaluating data. if not given, it defaults to the timestamp of the oldest point in the database.|
13 +|`group`|no|The grouping method to use when reducing the points the database has. If not given, it defaults to `average`.|
14 +|`gtime`|no|A resampling period to change the units of the metrics (i.e. setting this to `60` will convert `per second` metrics to `per minute`. If not given it defaults to granularity of the database.|
15 +|`options`|no|A bitmap of options that can affect the operation of the query. Only 2 options are used by the query engine: `unaligned` and `percentage`. All the other options are used by the output formatters. The default is to return aligned data.|
16 +|`dimensions`|no|A simple pattern to filter the dimensions to be queried. The default is to return all the dimensions of the chart.|
17
18 ## Operation
19
@@ -23,22 +23,22 @@ The query engine works as follows (in this order):
23
24 `after` and `before` define a time-frame, accepting:
25
26 -- **absolute timestamps** (unix timestamps, i.e. seconds since epoch).
26 +- **absolute timestamps** (unix timestamps, i.e. seconds since epoch).
27
28 -- **relative timestamps**:
28 +- **relative timestamps**:
29
30 - `before` is relative to now and `after` is relative to `before`.
31 -
32 - Example: `before=-60&after=-60` evaluates to the time-frame from -120 up to -60 seconds in
33 - the past, relative to the latest entry of the database of the chart.
30 + `before` is relative to now and `after` is relative to `before`.
31 +
32 + Example: `before=-60&after=-60` evaluates to the time-frame from -120 up to -60 seconds in
33 + the past, relative to the latest entry of the database of the chart.
34
35 The engine verifies that the time-frame requested is available at the database:
36
37 -- If the requested time-frame overlaps with the database, the excess requested
38 - will be truncated.
39 -
40 -- If the requested time-frame does not overlap with the database, the engine will
41 - return an empty data set.
37 +- If the requested time-frame overlaps with the database, the excess requested
38 + will be truncated.
39 +
40 +- If the requested time-frame does not overlap with the database, the engine will
41 + return an empty data set.
42
43 At the end of this operation, `after` and `before` are absolute timestamps.
44
@@ -49,20 +49,19 @@ expressed with fewer points, compared to what is available at the database.
49
50 There are 2 uses that enable this feature:
51
52 -- The caller requests a specific number of `points` to be returned.
53 -
54 - For example, for a time-frame of 10 minutes, the database has 600 points (1/sec),
55 - while the caller requested these 10 minutes to be expressed in 200 points.
56 -
57 - This feature is used by Netdata dashboards when you zoom-out the charts.
58 - The dashboard is requesting the number of points the user's screen has.
59 - This saves bandwidth and speeds up the browser (fewer points to evaluate for drawing the charts).
60 -
61 -- The caller requests a **re-sampling** of the database, by setting `gtime` to any value
62 - above the granularity of the chart.
63 -
64 - For example, the chart's units is `requests/sec` and caller wants `requests/min`.
65 -
52 +- The caller requests a specific number of `points` to be returned.
53 +
54 + For example, for a time-frame of 10 minutes, the database has 600 points (1/sec),
55 + while the caller requested these 10 minutes to be expressed in 200 points.
56 +
57 + This feature is used by Netdata dashboards when you zoom-out the charts.
58 + The dashboard is requesting the number of points the user's screen has.
59 + This saves bandwidth and speeds up the browser (fewer points to evaluate for drawing the charts).
60 +- The caller requests a **re-sampling** of the database, by setting `gtime` to any value
61 + above the granularity of the chart.
62 +
63 + For example, the chart's units is `requests/sec` and caller wants `requests/min`.
64 +
65 Using `points` and `gtime` the query engine tries to find a best fit for **database-points**
66 vs **result-points** (we call this ratio `group points`). It always tries to keep `group points`
67 an integer. Keep in mind the query engine may shift `after` if required. See also the [example](#example).
@@ -79,7 +78,7 @@ For example, if `group points` is 60 and alignment is enabled, the engine will r
78 each point with durations XX:XX:00 - XX:XX:59, matching whole minutes.
79
80 To disable alignment, pass `&options=unaligned` to the query.
82 -
81 +
82 #### Query Execution
83
84 To execute the query, the engine evaluates all dimensions of the chart, one after another.
@@ -100,16 +99,16 @@ For each value it calls the **grouping method** given with the `&group=` query p
99 The following grouping methods are supported. These are given all the values in the time-frame
100 and they group the values every `group points`.
101
103 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min&value_color=blue) finds the minimum value
104 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max&value_color=lightblue) finds the maximum value
105 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow) finds the average value
106 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=sum&after=-60&label=sum&units=requests&value_color=orange) adds all the values and returns the sum
107 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=median&after=-60&label=median&value_color=red) sorts the values and returns the value in the middle of the list
108 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=stddev&after=-60&label=stddev&value_color=green) finds the standard deviation of the values
109 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=cv&after=-60&label=cv&units=pcent&value_color=yellow) finds the relative standard deviation (coefficient of variation) of the values
110 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=ses&value_color=brown) finds the exponential weighted moving average of the values
111 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=des&after=-60&label=des&value_color=blue) applies Holt-Winters double exponential smoothing
112 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=incremental_sum&after=-60&label=incremental_sum&value_color=red) finds the difference of the last vs the first value
102 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min&value_color=blue) finds the minimum value
103 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max&value_color=lightblue) finds the maximum value
104 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow) finds the average value
105 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=sum&after=-60&label=sum&units=requests&value_color=orange) adds all the values and returns the sum
106 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=median&after=-60&label=median&value_color=red) sorts the values and returns the value in the middle of the list
107 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=stddev&after=-60&label=stddev&value_color=green) finds the standard deviation of the values
108 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=cv&after=-60&label=cv&units=pcent&value_color=yellow) finds the relative standard deviation (coefficient of variation) of the values
109 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=ses&value_color=brown) finds the exponential weighted moving average of the values
110 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=des&after=-60&label=des&value_color=blue) applies Holt-Winters double exponential smoothing
111 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=incremental_sum&after=-60&label=incremental_sum&value_color=red) finds the difference of the last vs the first value
112
113 The examples shown above, are live information from the `successful` web requests of the global Netdata registry.
114
@@ -135,27 +134,27 @@ Let's see why this is needed, by looking at the error case.
134
135 Assume we have 5 points:
136
138 -| time | value |
139 -| :-: | :-: |
140 -| 00:01 | 1 |
141 -| 00:02 | 2 |
142 -| 00:03 | 3 |
143 -| 00:04 | 4 |
144 -| 00:05 | 5 |
137 +|time|value|
138 +|:--:|:---:|
139 +|00:01|1|
140 +|00:02|2|
141 +|00:03|3|
142 +|00:04|4|
143 +|00:05|5|
144
145 At 00:04 you ask for 2 points for 4 seconds in the past. So `group = 2`. Netdata would return:
146
148 -| point | time | value |
149 -| :-: | :-: | :-: |
150 -| 1 | 00:01 - 00:02 | 1.5 |
151 -| 2 | 00:03 - 00:04 | 3.5 |
147 +|point|time|value|
148 +|:---:|:--:|:---:|
149 +|1|00:01 - 00:02|1.5|
150 +|2|00:03 - 00:04|3.5|
151
152 A second later the chart is to be refreshed, and makes again the same request at 00:05. These are the points that would have been returned:
153
155 -| point | time | value |
156 -| :-: | :-: | :-: |
157 -| 1 | 00:02 - 00:03 | 2.5 |
158 -| 2 | 00:04 - 00:05 | 4.5 |
154 +|point|time|value|
155 +|:---:|:--:|:---:|
156 +|1|00:02 - 00:03|2.5|
157 +|2|00:04 - 00:05|4.5|
158
159 **Wait a moment!** The chart was shifted just one point and it changed value! Point 2 was 3.5 and when shifted to point 1 is 2.5! If you see this in a chart, it's a mess. The charts change shape constantly.
160
@@ -165,8 +164,8 @@ When you request `points=1`, Netdata understands that you need 1 point for the w
164
165 So, the proper way to query the database is to also set at least `after`. The following call will returns 1 point for the last complete 10-second duration (it starts at `timestamp % 10 = 0`):
166
168 -http://netdata.firehol.org/api/v1/data?chart=system.cpu&points=1&after=-10&options=seconds
167 +<http://netdata.firehol.org/api/v1/data?chart=system.cpu&points=1&after=-10&options=seconds>
168
169 When you keep calling this URL, you will see that it returns one new value every 10 seconds, and the timestamp always ends with zero. Similarly, if you say `points=1&after=-5` it will always return timestamps ending with 0 or 5.
170
172 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
171 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/average/README.md
+5 -5
@@ -30,12 +30,12 @@ It can also be used in APIs and badges as `&group=average` in the URL.
30
31 Examining last 1 minute `successful` web server responses:
32
33 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
34 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=orange)
35 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
33 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
34 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=orange)
35 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
36
37 ## References
38
39 -- [https://en.wikipedia.org/wiki/Average](https://en.wikipedia.org/wiki/Average).
39 +- <https://en.wikipedia.org/wiki/Average>.
40
41 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Faverage%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
41 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Faverage%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/des/README.md
+7 -7
@@ -55,14 +55,14 @@ It can also be used in APIs and badges as `&group=des` in the URL.
55
56 Examining last 1 minute `successful` web server responses:
57
58 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
59 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
60 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=single+exponential+smoothing&value_color=yellow)
61 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=des&after=-60&label=double+exponential+smoothing&value_color=orange)
62 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
58 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
59 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
60 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=single+exponential+smoothing&value_color=yellow)
61 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=des&after=-60&label=double+exponential+smoothing&value_color=orange)
62 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
63
64 ## References
65
66 -- [https://en.wikipedia.org/wiki/Exponential_smoothing](https://en.wikipedia.org/wiki/Exponential_smoothing).
66 +- <https://en.wikipedia.org/wiki/Exponential_smoothing>.
67
68 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fdes%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
68 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fdes%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/incremental_sum/README.md
+6 -6
@@ -24,13 +24,13 @@ It can also be used in APIs and badges as `&group=incremental_sum` in the URL.
24
25 Examining last 1 minute `successful` web server responses:
26
27 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
28 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
29 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
30 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=incremental_sum&after=-60&label=incremental+sum&value_color=orange)
27 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
28 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
29 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
30 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=incremental_sum&after=-60&label=incremental+sum&value_color=orange)
31
32 ## References
33
34 -- none
34 +- none
35
36 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fincremental_sum%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
36 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fincremental_sum%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/max/README.md
+5 -5
@@ -22,12 +22,12 @@ It can also be used in APIs and badges as `&group=max` in the URL.
22
23 Examining last 1 minute `successful` web server responses:
24
25 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
26 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
27 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max&value_color=orange)
25 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
26 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
27 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max&value_color=orange)
28
29 ## References
30
31 -- [https://en.wikipedia.org/wiki/Sample_maximum_and_minimum](https://en.wikipedia.org/wiki/Sample_maximum_and_minimum).
31 +- <https://en.wikipedia.org/wiki/Sample_maximum_and_minimum>.
32
33 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fmax%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
33 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fmax%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/median/README.md
+6 -6
@@ -27,13 +27,13 @@ It can also be used in APIs and badges as `&group=median` in the URL.
27
28 Examining last 1 minute `successful` web server responses:
29
30 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
31 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
32 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=median&after=-60&label=median&value_color=orange)
33 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
30 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
31 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
32 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=median&after=-60&label=median&value_color=orange)
33 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
34
35 ## References
36
37 -- [https://en.wikipedia.org/wiki/Median](https://en.wikipedia.org/wiki/Median).
37 +- <https://en.wikipedia.org/wiki/Median>.
38
39 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fmedian%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
39 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fmedian%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/min/README.md
+5 -5
@@ -22,12 +22,12 @@ It can also be used in APIs and badges as `&group=min` in the URL.
22
23 Examining last 1 minute `successful` web server responses:
24
25 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min&value_color=orange)
26 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
27 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
25 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min&value_color=orange)
26 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
27 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
28
29 ## References
30
31 -- [https://en.wikipedia.org/wiki/Sample_maximum_and_minimum](https://en.wikipedia.org/wiki/Sample_maximum_and_minimum).
31 +- <https://en.wikipedia.org/wiki/Sample_maximum_and_minimum>.
32
33 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fmin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
33 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fmin%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/ses/README.md
+7 -7
@@ -43,14 +43,14 @@ It can also be used in APIs and badges as `&group=ses` in the URL.
43
44 Examining last 1 minute `successful` web server responses:
45
46 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
47 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
48 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=single+exponential+smoothing&value_color=orange)
49 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
46 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
47 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
48 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=ses&after=-60&label=single+exponential+smoothing&value_color=orange)
49 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
50
51 ## References
52
53 -- [https://en.wikipedia.org/wiki/Moving_average#exponential-moving-average](https://en.wikipedia.org/wiki/Moving_average#exponential-moving-average)
54 -- [https://en.wikipedia.org/wiki/Exponential_smoothing](https://en.wikipedia.org/wiki/Exponential_smoothing).
53 +- <https://en.wikipedia.org/wiki/Moving_average#exponential-moving-average>
54 +- <https://en.wikipedia.org/wiki/Exponential_smoothing>.
55
56 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fses%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
56 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fses%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/stddev/README.md
+11 -12
@@ -1,4 +1,3 @@
1 -
1 # standard deviation (`stddev`)
2
3 The standard deviation is a measure that is used to quantify the amount of variation or dispersion
@@ -28,14 +27,14 @@ It can also be used in APIs and badges as `&group=stddev` in the URL.
27
28 Examining last 1 minute `successful` web server responses:
29
31 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=min&after=-60&label=min)
32 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
33 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=stddev&after=-60&label=standard+deviation&value_color=orange)
34 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=max&after=-60&label=max)
30 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=min&after=-60&label=min)
31 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
32 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=stddev&after=-60&label=standard+deviation&value_color=orange)
33 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=max&after=-60&label=max)
34
35 ## References
36
38 -Check [https://en.wikipedia.org/wiki/Standard_deviation](https://en.wikipedia.org/wiki/Standard_deviation).
37 +Check <https://en.wikipedia.org/wiki/Standard_deviation>.
38
39 ---
40
@@ -77,13 +76,13 @@ It can also be used in APIs and badges as `&group=cv` in the URL.
76
77 Examining last 1 minute `successful` web server responses:
78
80 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=min&after=-60&label=min)
81 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
82 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=cv&after=-60&label=coefficient+of+variation&value_color=orange&units=pcent)
83 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=max&after=-60&label=max)
79 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=min&after=-60&label=min)
80 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=average&after=-60&label=average&value_color=yellow)
81 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=cv&after=-60&label=coefficient+of+variation&value_color=orange&units=pcent)
82 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&dimensions=success&group=max&after=-60&label=max)
83
84 ## References
85
87 -Check [https://en.wikipedia.org/wiki/Coefficient_of_variation](https://en.wikipedia.org/wiki/Coefficient_of_variation).
86 +Check <https://en.wikipedia.org/wiki/Coefficient_of_variation>.
87
89 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fstddev%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
88 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fstddev%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/api/queries/sum/README.md
+6 -6
@@ -24,13 +24,13 @@ It can also be used in APIs and badges as `&group=sum` in the URL.
24
25 Examining last 1 minute `successful` web server responses:
26
27 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
28 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
29 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
30 -- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=sum&after=-60&label=1m+sum&value_color=orange&units=requests)
27 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=min&after=-60&label=min)
28 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=average&after=-60&label=average)
29 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=max&after=-60&label=max)
30 +- ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.response_statuses&options=unaligned&dimensions=success&group=sum&after=-60&label=1m+sum&value_color=orange&units=requests)
31
32 ## References
33
34 -- [https://en.wikipedia.org/wiki/Summation](https://en.wikipedia.org/wiki/Summation).
34 +- <https://en.wikipedia.org/wiki/Summation>.
35
36 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fsum%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
36 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fapi%2Fqueries%2Fsum%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/gui/README.md
+21 -11
@@ -17,15 +17,15 @@ For information on creating custom dashboards, see **[Custom Dashboards](custom/
17
18 ## Supported chart libraries
19
20 -- Dygraph
21 -- jQuery Sparkline
22 -- Peity
23 -- Google Charts
24 -- Morris
25 -- EasyPieChart
26 -- Gauge.js
27 -- D3
28 -- C3
20 +- Dygraph
21 +- jQuery Sparkline
22 +- Peity
23 +- Google Charts
24 +- Morris
25 +- EasyPieChart
26 +- Gauge.js
27 +- D3
28 +- C3
29
30 ### Dygraph
31
@@ -46,20 +46,25 @@ TBD
46 #### Value Range
47
48 You can set the max value of the chart using the following snippet:
49 +
50 ```html
51 <div data-netdata="unique.id"
52 data-chart-library="easypiechart"
53 data-easypiechart-max-value="40"
54 ></div>
55 ```
56 +
57 Be aware that values that exceed the max value will get expanded (e.g. "41" is still 100%). Similar for the minimum:
58 +
59 ```html
60 <div data-netdata="unique.id"
61 data-chart-library="easypiechart"
62 data-easypiechart-min-value="20"
63 ></div>
64 ```
65 +
66 If you specify both minimum and maximum, the rendering behavior changes. Instead of displaying the `value` based from zero, it is now based on the range that is provided by the snippet:
67 +
68 ```html
69 <div data-netdata="unique.id"
70 data-chart-library="easypiechart"
@@ -67,24 +72,28 @@ If you specify both minimum and maximum, the rendering behavior changes. Instead
72 data-easypiechart-max-value="40"
73 ></div>
74 ```
70 -In the first example, a value of `30`, without specifying the minimum, fills the chart bar to `75%` (100% / 40 * 30). However, in this example the range is now `20` (40 - 20 = 20). The value `30` will fill the chart to **`50%`**, since it's in the middle between 20 and 40.
75 +
76 +In the first example, a value of `30`, without specifying the minimum, fills the chart bar to `75%` (100% / 40 \* 30). However, in this example the range is now `20` (40 - 20 = 20). The value `30` will fill the chart to **`50%`**, since it's in the middle between 20 and 40.
77
78 This szenario is useful if you have metrics that change only within a specific range, e.g. temperatures that are very unlikely to fall out of range. In these cases it is more useful to have the chart render the values between the given min and max, to better highlight the changes within them.
79
80 #### Negative Values
81
82 EasyPieCharts can render negative values with the following flag:
83 +
84 ```html
85 <div data-netdata="unique.id"
86 data-chart-library="easypiechart"
87 data-override-options="signed"
88 ></div>
89 ```
90 +
91 Negative values are rendered counter-clockwise.
92
93 #### Full example
94
95 This is a chart that displays the hotwater temperature in the given range of 40 to 50.
96 +
97 ```html
98 <div data-netdata="stiebeleltron_system.hotwater.hotwatertemp"
99 data-title="Hot Water Temperature"
@@ -103,6 +112,7 @@ This is a chart that displays the hotwater temperature in the given range of 40
112 data-common-min="netdata-hotwater-min"
113 ></div>
114 ```
115 +
116 ![hot water chart](https://user-images.githubusercontent.com/12159026/28666665-a7d68ad2-72c8-11e7-9a96-f6bf9691b471.png)
117
108 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
118 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/gui/confluence/README.md
+11 -13
@@ -6,11 +6,11 @@ I see you already asking "why should I do this?"
6
7 Well... think a bit of it.... confluence is the perfect place for something like that:
8
9 -1. All the employees of your company already have access to it.
9 +1. All the employees of your company already have access to it.
10
11 -2. Most probably you have already several spaces on confluence, one for each project or service. Adding live monitoring information there is ideal: everything in one place. Your users will just click on the page and instantly the monitoring page they need will appear with only the information they need to know.
11 +2. Most probably you have already several spaces on confluence, one for each project or service. Adding live monitoring information there is ideal: everything in one place. Your users will just click on the page and instantly the monitoring page they need will appear with only the information they need to know.
12
13 -3. You can create monitoring pages for very specific purposes, hiding all the information that is too detailed for most users, or explaining in detail things that are difficult for them to understand.
13 +3. You can create monitoring pages for very specific purposes, hiding all the information that is too detailed for most users, or explaining in detail things that are difficult for them to understand.
14
15 So, what can we expect? What can Netdata do on confluence?
16
@@ -30,10 +30,10 @@ Most likely your confluence is accessible via HTTPS. So, you need to proxy your
30
31 For our example, I will use these 2 servers:
32
33 -server|url
34 -----|----
35 -Server 1 | https://london.my-netdata.io
36 -Server 2 | https://frankfurt.my-netdata.io
33 +| server | url |
34 +|------|---|
35 +| Server 1 | <https://london.my-netdata.io> |
36 +| Server 2 | <https://frankfurt.my-netdata.io> |
37
38 I will use the first server for the static dashboard javascript files.
39
@@ -41,7 +41,7 @@ I will use the first server for the static dashboard javascript files.
41
42 Then, you need to enable the `html` plugin of confluence. We will add some plain html content on that page, and this plugin is required.
43
44 -### Create a new page
44 +### Create a new page
45
46 Create a new confluence page and paste this into an `html` box:
47
@@ -140,7 +140,6 @@ Which gives us this:
140
141 Note the color difference. This is because Netdata automatically hides dimensions that are just zero (the frankfurt server has only successful requests). To instruct Netdata to disable this feature, we need to add another html fragment at the bottom of the page (make sure this is added after loading `dashboard.js`). So we edit the first block we added, and append a new `<script>` section to it:
142
143 -
143 ```html
144 <script>
145 // don't load bootstrap - confluence does not need this
@@ -189,8 +188,8 @@ Let's now add a few gauges. The chart we added has several dimensions: `success`
188
189 Let's say we want to add 2 gauges:
190
192 -1. `success` and `redirect` together, in blue
193 -2. `error`, `bad` and `other` together, in orange
191 +1. `success` and `redirect` together, in blue
192 +2. `error`, `bad` and `other` together, in orange
193
194 We will add the following for each server. We have enclosed them in another a `<div>` because Confluence will wrap them if the page width is not enough to fit them. With that additional `<div>` they will always be next to each other.
195
@@ -234,7 +233,6 @@ Adding the above will give you this:
233
234 ![final-confluence](https://user-images.githubusercontent.com/2662304/34329813-636bb8de-e917-11e7-8cc7-19e197859008.gif)
235
237 -
236 ### Final source - for the confluence source editor
237
238 If you enable the source editor of Confluence, you can paste the whole example (implementing the first image on this post and demonstrating everything discussed on this page):
@@ -1011,4 +1009,4 @@ NETDATA.options.current.eliminate_zero_dimensions = false;
1009 </div>
1010 ```
1011
1014 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2Fconfluence%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
1012 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2Fconfluence%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/gui/custom/README.md
+31 -34
@@ -2,10 +2,10 @@
2
3 You can:
4
5 -- create your own dashboards using simple HTML (no javascript is required for basic dashboards)
6 -- utilizing any or all of the available chart libraries, on the same dashboard
7 -- using data from one or more Netdata servers, on the same dashboard
8 -- host your dashboard HTML page on any web server, anywhere
5 +- create your own dashboards using simple HTML (no javascript is required for basic dashboards)
6 +- utilizing any or all of the available chart libraries, on the same dashboard
7 +- using data from one or more Netdata servers, on the same dashboard
8 +- host your dashboard HTML page on any web server, anywhere
9
10 Netdata charts can also be added to existing web pages.
11
@@ -17,11 +17,10 @@ If you plan to put the dashboard on TV, check **[tv.html](../tv.html)**. This is
17
18 ![image](https://cloud.githubusercontent.com/assets/2662304/14252187/d8d5f78e-fa8e-11e5-990d-99821d38c874.png)
19 --
20 -
20
21 ## Web directory
22
24 -All of the mentioned examples are available on your local Netdata installation (e.g. `http://myhost:19999/dashboard.html`). The default web root directory with the HTML and JS code is `/usr/share/netdata/web`. The main dashboard is also in that directory and called `index.html`.
23 +All of the mentioned examples are available on your local Netdata installation (e.g. `http://myhost:19999/dashboard.html`). The default web root directory with the HTML and JS code is `/usr/share/netdata/web`. The main dashboard is also in that directory and called `index.html`.\
24 Note: index.html has a different syntax. Don't use it as a template for simple custom dashboards.
25
26 ## Example empty dashboard
@@ -52,7 +51,6 @@ If you need to create a new dashboard on an empty page, we suggest the following
51 </html>
52 ```
53
55 -
54 ## dashboard.js
55
56 To add Netdata charts to any web page (dedicated to Netdata or not), you need to include the `/dashboard.js` file of a Netdata server.
@@ -67,23 +65,23 @@ For example, if your Netdata server listens at `http://box:19999/`, you will nee
65
66 `dashboard.js` will automatically load the following:
67
70 -1. `dashboard.css`, required for the Netdata charts
68 +1. `dashboard.css`, required for the Netdata charts
69
72 -2. `jquery.min.js`, (only if jquery is not already loaded for this web page)
70 +2. `jquery.min.js`, (only if jquery is not already loaded for this web page)
71
74 -3. `bootstrap.min.js` (only if bootstrap is not already loaded) and `bootstrap.min.css`.
72 +3. `bootstrap.min.js` (only if bootstrap is not already loaded) and `bootstrap.min.css`.
73
76 - You can disable this by adding the following before loading `dashboard.js`:
74 + You can disable this by adding the following before loading `dashboard.js`:
75
76 ```html
77 <script>var netdataNoBootstrap = true;</script>
78 ```
79
82 -4. `jquery.nanoscroller.min.js`, required for the scrollbar of the chart legends.
80 +4. `jquery.nanoscroller.min.js`, required for the scrollbar of the chart legends.
81
84 -5. `bootstrap-toggle.min.js` and `bootstrap-toggle.min.css`, required for the settings toggle buttons.
82 +5. `bootstrap-toggle.min.js` and `bootstrap-toggle.min.css`, required for the settings toggle buttons.
83
86 -6. `font-awesome.min.css`, for icons.
84 +6. `font-awesome.min.css`, for icons.
85
86 When `dashboard.js` loads will scan the page for elements that define charts (see below) and immediately start refreshing them. Keep in mind more javascript modules may be loaded (every chart library is a different javascript file, that is loaded on first use).
87
@@ -129,7 +127,7 @@ If you need to set any other URL as the default Netdata server for all charts th
127
128 ---
129
132 -# Adding charts
130 +## Adding charts
131
132 To add charts, you need to add a `div` for each of them. Each of these `div` elements accept a few `data-` attributes:
133
@@ -160,9 +158,9 @@ You can specify the duration of the chart (how much time of data it will show) u
158
159 The can be either:
160
163 -- **absolute** unix timestamps (in javascript terms, they are `new Date().getTime() / 1000`. Using absolute timestamps you can have a chart showing always the same time-frame.
161 +- **absolute** unix timestamps (in javascript terms, they are `new Date().getTime() / 1000`. Using absolute timestamps you can have a chart showing always the same time-frame.
162
165 -- **relative** number of seconds to now. To show the last 10 minutes of data, `AFTER_SECONDS` must be `-600` (relative to now) and `BEFORE_SECONDS` must be `0` (meaning: now). If you want the chart to auto-refresh the current values, you need to specify **relative** values.
163 +- **relative** number of seconds to now. To show the last 10 minutes of data, `AFTER_SECONDS` must be `-600` (relative to now) and `BEFORE_SECONDS` must be `0` (meaning: now). If you want the chart to auto-refresh the current values, you need to specify **relative** values.
164
165 ### Chart sizes
166
@@ -197,6 +195,7 @@ If you have ephemeral monitoring setup ([More info here](../../../streaming/#mon
195 data-host="http://yournetdata.server:19999/host/reported-hostname"
196 ></div>
197 ```
198 +
199 ### Chart library
200
201 The default chart library is `dygraph`. You set a different chart library per chart using this:
@@ -209,13 +208,12 @@ The default chart library is `dygraph`. You set a different chart library per ch
208
209 Each chart library may support more chart-library specific settings. Please refer to the documentation of the chart library you are interested, in this wiki or the source code:
210
212 -- options `data-dygraph-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L6251-L6361)
213 -- options `data-easypiechart-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7954-L7966)
214 -- options `data-gauge-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L8182-L8189)
215 -- options `data-d3pie-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7394-L7561)
216 -- options `data-sparkline-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5940-L5985)
217 -- options `data-peity-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5892)
218 -
211 +- options `data-dygraph-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L6251-L6361)
212 +- options `data-easypiechart-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7954-L7966)
213 +- options `data-gauge-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L8182-L8189)
214 +- options `data-d3pie-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7394-L7561)
215 +- options `data-sparkline-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5940-L5985)
216 +- options `data-peity-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5892)
217
218 ### Data points
219
@@ -270,9 +268,9 @@ Netdata can change the rate of charts on the fly. So a charts that shows values
268 The above will provide the average rate per minute (60 seconds).
269 Use 60 for `/minute`, 3600 for `/hour`, 86400 for `/day` (provided you have that many data).
270
273 -- The `data-gtime` setting does not change the units of the chart. You have to change them yourself with `data-units`.
274 -- This works only for `data-method="average"`.
275 -- Netdata may aggregate multiple points to satisfy the `data-points` setting. For example, you request `per minute` but the requested number of points to be returned are not enough to report every single minute. In this case Netdata will sum the `per second` raw data of the database to find the `per minute` for every single minute and then **average** them to find the **average per minute rate of every X minutes**. So, it works as if the data collection frequency was per minute.
271 +- The `data-gtime` setting does not change the units of the chart. You have to change them yourself with `data-units`.
272 +- This works only for `data-method="average"`.
273 +- Netdata may aggregate multiple points to satisfy the `data-points` setting. For example, you request `per minute` but the requested number of points to be returned are not enough to report every single minute. In this case Netdata will sum the `per second` raw data of the database to find the `per minute` for every single minute and then **average** them to find the **average per minute rate of every X minutes**. So, it works as if the data collection frequency was per minute.
274
275 ### Selecting dimensions
276
@@ -285,7 +283,7 @@ You can select specific dimensions using this:
283 ></div>
284 ```
285
288 -Netdata supports coma (` , `) or pipe (` | `) separated [simple patterns](../../../libnetdata/simple_pattern/) for dimensions. By default it searches for both dimension IDs and dimension NAMEs. You can control the target of the match with: `data-append-options="match-ids"` or `data-append-options="match-names"`. Spaces in `data-dimensions=""` are matched in the dimension names and IDs.
286 +Netdata supports coma (`,`) or pipe (`|`) separated [simple patterns](../../../libnetdata/simple_pattern/) for dimensions. By default it searches for both dimension IDs and dimension NAMEs. You can control the target of the match with: `data-append-options="match-ids"` or `data-append-options="match-names"`. Spaces in `data-dimensions=""` are matched in the dimension names and IDs.
287
288 ### Chart title
289
@@ -354,10 +352,10 @@ You can append Netdata **[REST API v1](../../api)** data options, using this:
352
353 A few useful options are:
354
357 -- `absolute` to show all values are absolute (i.e. turn negative dimensions to positive)
358 -- `percentage` to express the values as a percentage of the chart total (so, the values of the dimensions are added, and the sum of them if expressed as a percentage of the sum of all dimensions)
359 -- `unaligned` to prevent Netdata from aligning the charts (e.g. when requesting 60 seconds aggregation per point, Netdata returns chart data aligned to XX:XX:00 to XX:XX:59 - similarly for hours, days, etc - the `unaligned` option disables this feature)
360 -- `match-ids` or `match-names` is used to control what `data-dimensions=` will match.
355 +- `absolute` to show all values are absolute (i.e. turn negative dimensions to positive)
356 +- `percentage` to express the values as a percentage of the chart total (so, the values of the dimensions are added, and the sum of them if expressed as a percentage of the sum of all dimensions)
357 +- `unaligned` to prevent Netdata from aligning the charts (e.g. when requesting 60 seconds aggregation per point, Netdata returns chart data aligned to XX:XX:00 to XX:XX:59 - similarly for hours, days, etc - the `unaligned` option disables this feature)
358 +- `match-ids` or `match-names` is used to control what `data-dimensions=` will match.
359
360 ### Chart library performance
361
@@ -413,5 +411,4 @@ Charts can be scaled to specific units with `data-desired-units="UNITS"`. If the
411 ></div>
412 ```
413
416 -
417 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2Fcustom%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
414 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2Fcustom%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/server/README.md
+63 -63
@@ -38,13 +38,13 @@ The ports to bind are controlled via `[web].bind to`, like this:
38
39 Using the above, Netdata will bind to:
40
41 -- IPv4 127.0.0.1 at port 19999 (port was used from `default port`). Only the UI (dashboard) and the read API will be accessible on this port. Both HTTP and HTTPS requests will be accepted.
42 -- IPv4 10.1.1.1 at port 19998. The management API and `netdata.conf` will be accessible on this port.
43 -- All the IPs `hostname` resolves to (both IPv4 and IPv6 depending on the resolved IPs) at port 19997. Only badges will be accessible on this port.
44 -- All IPv6 IPs at port 19996. Only metric streaming requests from other Netdata agents will be accepted on this port. Only encrypted streams will be allowed (i.e. slaves also need to be [configured for TLS](../../streaming).
45 -- All the IPs `localhost` resolves to (both IPv4 and IPv6 depending the resolved IPs) at port 19996. This port will only accept registry API requests.
46 -- All IPv4 and IPv6 IPs at port `http` as set in `/etc/services`. Only the UI (dashboard) and the read API will be accessible on this port.
47 -- Unix domain socket `/tmp/netdata.sock`. All requests are serviceable on this socket.
41 +- IPv4 127.0.0.1 at port 19999 (port was used from `default port`). Only the UI (dashboard) and the read API will be accessible on this port. Both HTTP and HTTPS requests will be accepted.
42 +- IPv4 10.1.1.1 at port 19998. The management API and `netdata.conf` will be accessible on this port.
43 +- All the IPs `hostname` resolves to (both IPv4 and IPv6 depending on the resolved IPs) at port 19997. Only badges will be accessible on this port.
44 +- All IPv6 IPs at port 19996. Only metric streaming requests from other Netdata agents will be accepted on this port. Only encrypted streams will be allowed (i.e. slaves also need to be [configured for TLS](../../streaming).
45 +- All the IPs `localhost` resolves to (both IPv4 and IPv6 depending the resolved IPs) at port 19996. This port will only accept registry API requests.
46 +- All IPv4 and IPv6 IPs at port `http` as set in `/etc/services`. Only the UI (dashboard) and the read API will be accessible on this port.
47 +- Unix domain socket `/tmp/netdata.sock`. All requests are serviceable on this socket.
48
49 The option `[web].default port` is used when an entries in `[web].bind to` do not specify a port.
50
@@ -53,21 +53,22 @@ As shown in the example above, these permissions are optional, with the default
53 The request types are strings identical to the `allow X from` directives of the access lists, i.e. `dashboard`, `streaming`, `registry`, `netdata.conf`, `badges` and `management`.
54 The access lists themselves and the general setting `allow connections from` in the next section are applied regardless of the ports that are configured to provide these services.
55 The API requests are serviced as follows:
56 -- `dashboard` gives access to the UI, the read API and badges API calls.
57 -- `badges` gives access only to the badges API calls.
58 -- `management` gives access only to the management API calls.
56 +
57 +- `dashboard` gives access to the UI, the read API and badges API calls.
58 +- `badges` gives access only to the badges API calls.
59 +- `management` gives access only to the management API calls.
60
61 ### Enabling TLS support
62
63 Since v1.16.0, Netdata supports encrypted HTTP connections to the web server, plus encryption of streaming data between a slave and its master, via the TLS 1.2 protocol.
64
64 -Inbound unix socket connections are unaffected, regardless of the TLS settings.
65 +Inbound unix socket connections are unaffected, regardless of the TLS settings.\
66 ??? info "Differences in TLS and SSL terminology"
67 While Netdata uses Transport Layer Security (TLS) 1.2 to encrypt communications rather than the obsolete SSL protocol, it's still common practice to refer to encrypted web connections as `SSL`. Many vendors, like Nginx and even Netdata itself, use `SSL` in configuration files, whereas documentation will always refer to encrypted communications as `TLS` or `TLS/SSL`.
68
69 To enable TLS, provide the path to your certificate and private key in the `[web]` section of `netdata.conf`:
70
70 -``` conf
71 +```conf
72 [web]
73 ssl key = /etc/netdata/ssl/key.pem
74 ssl certificate = /etc/netdata/ssl/cert.pem
@@ -77,31 +78,31 @@ Both files must be readable by the `netdata` user. If either of these files do n
78
79 For test purposes, you can generate self-signed certificates with the following command:
80
80 -``` bash
81 +```bash
82 $ openssl req -newkey rsa:2048 -nodes -sha512 -x509 -days 365 -keyout key.pem -out cert.pem
83 ```
84
85 !!! note
86 If you use 4096 bits for your key and the certificate, Netdata will need more CPU to process the communication. `rsa4096` can be up to 4 times slower than `rsa2048`, so we recommend using 2048 bits. You can verify the difference by running:
86 -
87 - ```
88 - $ openssl speed rsa2048 rsa4096
89 - ```
87 +
88 +```sh
89 +$ openssl speed rsa2048 rsa4096
90 +```
91
92 #### TLS/SSL enforcement
93
94 When the certificates are defined and unless any other options are provided, a Netdata server will:
95
95 -- Redirect all incoming HTTP web server requests to HTTPS. Applies to the dashboard, the API, `netdata.conf` and badges.
96 -- Allow incoming slave connections to use both unencrypted and encrypted communications for streaming.
97 -
96 +- Redirect all incoming HTTP web server requests to HTTPS. Applies to the dashboard, the API, `netdata.conf` and badges.
97 +- Allow incoming slave connections to use both unencrypted and encrypted communications for streaming.
98 +
99 To change this behavior, you need to modify the `bind to` setting in the `[web]` section of `netdata.conf`. At the end of each port definition, you can append `^SSL=force` or `^SSL=optional`. What happens with these settings differs, depending on whether the port is used for HTTP/S requests, or for streaming.
100
100 -SSL setting | HTTP requests | HTTPS requests | Unencrypted Streams | Encrypted Streams
101 -:------:|:-----:|:-----:|:-----:|:--------
102 -none | Redirected to HTTPS | Accepted | Accepted | Accepted
103 -`force` | Redirected to HTTPS | Accepted | Denied | Accepted
104 -`optional` | Accepted | Accepted | Accepted | Accepted
101 +|SSL setting|HTTP requests|HTTPS requests|Unencrypted Streams|Encrypted Streams|
102 +|:---------:|:-----------:|:------------:|:-----------------:|:----------------|
103 +|none|Redirected to HTTPS|Accepted|Accepted|Accepted|
104 +|`force`|Redirected to HTTPS|Accepted|Denied|Accepted|
105 +|`optional`|Accepted|Accepted|Accepted|Accepted|
106
107 Example:
108
@@ -121,10 +122,10 @@ When we define the use of SSL in a Netdata agent for different ports, Netdata w
122
123 Netdata will:
124
124 -- Force all HTTP requests to the default port to be redirected to HTTPS (same port).
125 -- Refuse unencrypted streaming connections from slaves on the default port.
126 -- Allow both HTTP and HTTPS requests to port 20000 for `netdata.conf`
127 -- Force HTTP requests to port 20001 to be redirected to HTTPS (same port). Only allow requests for the dashboard, the read API and the registry on port 20001.
125 +- Force all HTTP requests to the default port to be redirected to HTTPS (same port).
126 +- Refuse unencrypted streaming connections from slaves on the default port.
127 +- Allow both HTTP and HTTPS requests to port 20000 for `netdata.conf`
128 +- Force HTTP requests to port 20001 to be redirected to HTTPS (same port). Only allow requests for the dashboard, the read API and the registry on port 20001.
129
130 #### TLS/SSL errors
131
@@ -150,51 +151,50 @@ Netdata supports access lists in `netdata.conf`:
151
152 `*` does string matches on the IPs of the clients.
153
153 -- `allow connections from` matches anyone that connects on the Netdata port(s).
154 - So, if someone is not allowed, it will be connected and disconnected immediately, without reading even
155 - a single byte from its connection. This is a global settings with higher priority to any of the ones below.
154 +- `allow connections from` matches anyone that connects on the Netdata port(s).
155 + So, if someone is not allowed, it will be connected and disconnected immediately, without reading even
156 + a single byte from its connection. This is a global settings with higher priority to any of the ones below.
157
157 -- `allow dashboard from` receives the request and examines if it is a static dashboard file or an API call the
158 - dashboards do.
158 +- `allow dashboard from` receives the request and examines if it is a static dashboard file or an API call the
159 + dashboards do.
160
160 -- `allow badges from` checks if the API request is for a badge. Badges are not matched by `allow dashboard from`.
161 +- `allow badges from` checks if the API request is for a badge. Badges are not matched by `allow dashboard from`.
162
162 -- `allow streaming from` checks if the slave willing to stream metrics to this Netdata is allowed.
163 - This can be controlled per API KEY and MACHINE GUID in [stream.conf](../../streaming/stream.conf).
164 - The setting in `netdata.conf` is checked before the ones in [stream.conf](../../streaming/stream.conf).
163 +- `allow streaming from` checks if the slave willing to stream metrics to this Netdata is allowed.
164 + This can be controlled per API KEY and MACHINE GUID in [stream.conf](../../streaming/stream.conf).
165 + The setting in `netdata.conf` is checked before the ones in [stream.conf](../../streaming/stream.conf).
166
166 -- `allow netdata.conf from` checks the IP to allow `http://netdata.host:19999/netdata.conf`.
167 - The IPs listed are all the private IPv4 addresses, including link local IPv6 addresses. Keep in mind that connections to Netdata API ports are filtered by `allow connections from`. So, IPs allowed by `allow netdata.conf from` should also be allowed by `allow connections from`.
167 +- `allow netdata.conf from` checks the IP to allow `http://netdata.host:19999/netdata.conf`.
168 + The IPs listed are all the private IPv4 addresses, including link local IPv6 addresses. Keep in mind that connections to Netdata API ports are filtered by `allow connections from`. So, IPs allowed by `allow netdata.conf from` should also be allowed by `allow connections from`.
169
169 -- `allow management from` checks the IPs to allow API management calls. Management via the API is currently supported for [health](../api/health/#health-management-api)
170 +- `allow management from` checks the IPs to allow API management calls. Management via the API is currently supported for [health](../api/health/#health-management-api)
171
172 ### Other netdata.conf [web] section options
172 -setting | default | info
173 -:------:|:-------:|:----
174 -ses max window | `15` | See [single exponential smoothing](../api/queries/des/)
175 -des max window | `15` | See [double exponential smoothing](../api/queries/des/)
176 -listen backlog | `4096` | The port backlog. Check `man 2 listen`.
177 -web files owner | `netdata` | The user that owns the web static files. Netdata will refuse to serve a file that is not owned by this user, even if it has read access to that file. If the user given is not found, Netdata will only serve files owned by user given in `run as user`.
178 -web files group | `netdata` | If this is set, Netdata will check if the file is owned by this group and refuse to serve the file if it's not.
179 -disconnect idle clients after seconds | `60` | The time in seconds to disconnect web clients after being totally idle.
180 -timeout for first request | `60` | How long to wait for a client to send a request before closing the socket. Prevents slow request attacks.
181 -accept a streaming request every seconds | `0` | Can be used to set a limit on how often a master Netdata server will accept streaming requests from the slaves in a [streaming and replication setup](../../streaming)
182 -respect do not track policy | `no` | If set to `yes`, will respect the client's browser preferences on storing cookies.
183 -x-frame-options response header | | [Avoid clickjacking attacks, by ensuring that the content is not embedded into other sites](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options).
184 -enable gzip compression | `yes` | When set to `yes`, Netdata web responses will be GZIP compressed, if the web client accepts such responses.
185 -gzip compression strategy | `default` | Valid strategies are `default`, `filtered`, `huffman only`, `rle` and `fixed`
186 -gzip compression level | `3` | Valid levels are 1 (fastest) to 9 (best ratio)
173
174 +|setting|default|info|
175 +|:-----:|:-----:|:---|
176 +|ses max window|`15`|See [single exponential smoothing](../api/queries/des/)|
177 +|des max window|`15`|See [double exponential smoothing](../api/queries/des/)|
178 +|listen backlog|`4096`|The port backlog. Check `man 2 listen`.|
179 +|web files owner|`netdata`|The user that owns the web static files. Netdata will refuse to serve a file that is not owned by this user, even if it has read access to that file. If the user given is not found, Netdata will only serve files owned by user given in `run as user`.|
180 +|web files group|`netdata`|If this is set, Netdata will check if the file is owned by this group and refuse to serve the file if it's not.|
181 +|disconnect idle clients after seconds|`60`|The time in seconds to disconnect web clients after being totally idle.|
182 +|timeout for first request|`60`|How long to wait for a client to send a request before closing the socket. Prevents slow request attacks.|
183 +|accept a streaming request every seconds|`0`|Can be used to set a limit on how often a master Netdata server will accept streaming requests from the slaves in a [streaming and replication setup](../../streaming)|
184 +|respect do not track policy|`no`|If set to `yes`, will respect the client's browser preferences on storing cookies.|
185 +|x-frame-options response header||[Avoid clickjacking attacks, by ensuring that the content is not embedded into other sites](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options).|
186 +|enable gzip compression|`yes`|When set to `yes`, Netdata web responses will be GZIP compressed, if the web client accepts such responses.|
187 +|gzip compression strategy|`default`|Valid strategies are `default`, `filtered`, `huffman only`, `rle` and `fixed`|
188 +|gzip compression level|`3`|Valid levels are 1 (fastest) to 9 (best ratio)|
189
190 ## DDoS protection
191
192 If you publish your Netdata to the internet, you may want to apply some protection against DDoS:
193
193 -1. Use the `static-threaded` web server (it is the default)
194 -2. Use reasonable `[web].web server max sockets` (the default is)
195 -3. Don't use all your CPU cores for Netdata (lower `[web].web server threads`)
196 -4. Run the `netdata` process with a low process scheduling priority (the default is the lowest)
197 -5. If possible, proxy Netdata via a full featured web server (nginx, apache, etc)
198 -
194 +1. Use the `static-threaded` web server (it is the default)
195 +2. Use reasonable `[web].web server max sockets` (the default is)
196 +3. Don't use all your CPU cores for Netdata (lower `[web].web server threads`)
197 +4. Run the `netdata` process with a low process scheduling priority (the default is the lowest)
198 +5. If possible, proxy Netdata via a full featured web server (nginx, apache, etc)
199
200 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
200 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
web/server/static/README.md
+1 -1
@@ -7,4 +7,4 @@ The kernel distributes the incoming requests to them.
7 Each thread uses non-blocking I/O so it can serve any number of web requests in parallel.
8
9 This web server respects the `keep-alive` HTTP header to serve multiple HTTP requests via the same connection.
10 -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2Fstatic%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]()
10 +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2Fstatic%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)