Netdata Community

Is there document about native metrics collected by netdata?

I use netdata to collect metrics and export them to timescaledb with data provider. After getting metrics from postgresql, I find netdata is a really inspiring and excellect tool.

With as-collected metrics I wanna output some meaningful metrics. For example, I wanna calclute cup utilization with metrics such as system.cpu.idle,system.cpu.user,system.cpu.iowai,system.cpu.system.
I know that I can get metrics as average and cpu utilization ratio is stored in the database directly. But here I wanna do it myself for flexible control and understanding of the system.

Q1:

So, is there any document that describe the meaning/unit of the metrics?

Q2:

If I wanna to lean how to calclute metrics in average format, is there any document that help me to find the calcluting way from source code?

Hi @oleotiger. First of all thanks for your kind words :heart:

So, is there any document that describe the meaning/unit of the metrics?

No, there is no one document that describes all the metrics exposed by Netdata Agent. Agents itself is a consumer, it has a lot of collectors (internal and external), they produce charts (metrics).

the meaning/unit of the metrics?

Usually a unit is self-explanatory - kilobits/s, seconds, percenage, processes, etc. Metrics are grouped into charts (for exactly that purpose - make them meangful, provide its context).

Netdata dashboard contains a lot of additional info - charts titles, charts help information (with links) - you saw it.

If I wanna to lean how to calclute metrics in average format, is there any document that help me to find the calcluting way from source code?

I am not clear. Can you give an example what you want?

If there is no document, I would prefer to read source code as a way to understand the meaning of metrics.
And in the meanwhile from source code I wanna understand how netdata use metrics as collected to generate average format metrics. Is there any advice to make source code reading easier?

I would appreciate it if you give an example that how netdata calclutes system cpu usage in percentage with as collected metrics.

For example, with metrics xxx from chart xxx, in format (a+b)/c , and the calclutions is done in plugin/xxx/xxx.c

In general about metrics and source code - check netdata/collectors at master · netdata/netdata · GitHub directory

A lot of metrics come from the /proc collector

As you can see in the description

  • /proc/stat (CPU utilization and attributes)

Check proc_stat.c for the details


# System Overview values, i belive, are being calculated by the dashboard (it does some query and calc overall values)