Please add `Netdata` as a "collector"


#1

while I was submitting my first Grafana dashboard, i noticed that Netdata isn’t listed there as a collector. So, i submitted under “other”.

While I’m just a user of Netdata, it’s a very powerful as well as popular as a collector of systems-health stats for *nix systems.

With 22k+ stars on its GitHub repo, it is also under active development.

I highly recommend to add this as a “collector” under Grafana dashboard classifiers.


#2

Looks interesting. What would a typical config for Netdata look like? The example config in the docs is huge but I imagine that most configs would be quite small?

The reason I’m asking is to be able to add Netdata config to the dashboard description - plugins etc. when uploading a dashboard on Grafana.com. Would a dropdown list of plugins and an input field where you can paste in a config be enough to help someone download the dashboard and get it working?

P.S do you know if there is a catalog of plugins (internal and external)?


#3

Thanks for the interest.
Actually, Netdata runs with most of needed settings set as default, which are reasonable for most of the case. The config file is only needed if you want to change something to better fit your requirement. And, only the changed config in the file is required.
You may notice that most of the lines are commented out. Those values are the defaults. More here on this very topic.

I’m not sure if I understood your requirement, but what i can tell most part of the dashboard don’t need any custom config to be aware of Netdata’s configs. Provided that the user starts from a dashboard which is designed to show stats collected by Netdata such as mine: https://grafana.com/dashboards/2701.

The list of plugins:
internal github .com/firehol/netdata/wiki/Internal-Plugins
external github .com/firehol/netdata/wiki/External-Plugins

p.s. I had to break the URLs to meet URL limits as i am a new user.


#4

So it’s not common to use external plugins or to use custom settings for collecting data? Looking at the config docs, you have to turn plugins on or off and plugins can have custom config options but that is not common case then?

As an example of what I mean, here is a dashboard for Apache stats which depends on the Telegraf collector and includes the following configuration:

    [[inputs.logparser]]

    files = ["/var/log/httpd/access_log"]
    from_beginning = false

    [inputs.logparser.grok]
        patterns = ["%{COMBINED_LOG_FORMAT}"]
        measurement = "apache_access_log"

Here is a dashboard for CollectD with loads of configuration.


#5

I see what you meant. From the links I can see that these dashboards are mostly taking directly from the collector. While Netdata provides various API for custom designed dashboards, but I’m not sure how to make that work with Grafana. I have dig in more to answer that properly. Rather, connecting Grafana to the “sink” datastore e.g. InfluxDB looks more “common” / approachable to me.

Yes, you are correct, usage of external plugins are not that common. Netdata architecture is designed mostly around auto-detection / minimal-configuration theme.


#6

Those dashboards are not taking the data directly from the collectors. The collectors are storing the data in Graphite/InfluxDB/Prometheus and the dashboards contain queries for the data. But for some dashboards without knowing the collector configuration then it can be very hard to use the dashboard.

In the Telegraf example above, I could download the dashboard and connect it up with my InfluxDB but without the config snippet I’d have to figure out how to scrape the data from Apache on my own. Is everything so standardized in Netdata (sort of like nodeExporter for Prometheus) that the defaults are good enough?

Then I might add the Netdata option to Grafana.com and on the dashboard upload page just have an input field that accepts markdown for any notes or comments.


#7

Got it. No, AFAIK dashboards, designed for Netdata collector, don’t need any extra configuration except for datastore’s name.

That’d be great. I don’t see any issue. Thanks again. :+1:


#8

Hi,

netdata is auto-detecting everything when it starts. The default configuration supplied by netdata attempts for detect all the supported applications, running on localhost.

By default, if you want to monitor e.g. a postgres server, you only need to allow local user netdata connect to your local postgres server (i.e. configure your postgres server). If you need to define a password for this, netdata provides plenty of configuration files for each plugin and application in /etc/netdata.

This is the list of available external netdata plugins. netdata also has dozens of internal plugins for collecting system metrics from the system (Linux, FreeBSD, MacOS).

Everything monitored by netdata is based on templates. So, all disks are the same, all network interfaces are the same, all nginx web servers are the same, all postgres servers are the same. Since each netdata can monitor many instances of each kind (ie one netdata can monitor X postgres servers, local and remote), there is little tag that differentiates them.

So, if you know that tag, you can easily predict all the metrics this application will have. The default tag for localhost applications is: local.

For prometheus backends, netdata sends all the metrics utilizing labels for differentiating hosts, application instances, etc. For graphite and opentsdb, they are integrated into the metrics names.

netdata collects 1k to 5k high resolution metrics per server (and per second, by default), but it is capable sending metrics to backends at a lower rate (to avoid congesting these servers with too much detail). and can also filter metrics sent to backends (to avoid congesting these servers with too many metrics).

I you need more information, I’ll be glad to help…

Costa