Skip to main content

CSV formatter

The CSV formatter presents results of database queries in the following formats:

formatcontent typedescription
csvtext/plaina text table, comma separated, with a header line (dimension names) and \r\n at the end of the lines
csvjsonarrayapplication/jsona JSON array, with each row as another array (the first row has the dimension names)
tsvtext/plainlike csv but TAB is used instead of comma to separate values (MS Excel flavor)
htmltext/htmlan html table
markdowntext/plainmarkdown table

In all formats the date and time is the first column.

The CSV formatter respects the following API &options=:

nonzeroyesto return only the dimensions that have at least a non-zero value
flipyesto return the rows older to newer (the default is newer to older)
secondsyesto return the date and time in unix timestamp
msyesto return the date and time in unit timestamp as milliseconds
percentyesto replace all values with their percentage over the row total
absyesto turn all values positive
null2zeroyesto replace gaps with zeros (the default prints the string null


Get the system total bandwidth for all physical network interfaces, over the last hour, in 6 rows (one for every 10 minutes), in csv format:

Netdata always returns bandwidth in kilobits.

# curl -Ss ''
2018-10-26 23:50:00,90214.67847,215137.79762
2018-10-26 23:40:00,90126.32286,238587.57522
2018-10-26 23:30:00,86061.22688,213389.23526
2018-10-26 23:20:00,85590.75164,206129.01608
2018-10-26 23:10:00,83163.30691,194311.77384
2018-10-26 23:00:00,85167.29657,197538.07773

Get the max RAM used by the SQL server and any cron jobs, over the last hour, in 2 rows (one for every 30 minutes), in tsv format, and format the date and time as unix timestamp:

Netdata always returns memory in MB.

# curl -Ss ',seconds&dimensions=sql,cron'
time sql cron
1540598400 61.95703 0.25
1540596600 61.95703 0.25

Get an HTML table of the last 4 values (4 seconds) of system CPU utilization:

Netdata always returns CPU utilization as %.

# curl -Ss ''
<table border="0" cellpadding="5" cellspacing="5">
<tr><td>2018-10-27 00:16:07</td><td>0.25</td><td>1</td><td>0.75</td></tr>
<tr><td>2018-10-27 00:16:06</td><td>0</td><td>1.0025063</td><td>0.5012531</td></tr>
<tr><td>2018-10-27 00:16:05</td><td>0</td><td>1</td><td>0.75</td></tr>
<tr><td>2018-10-27 00:16:04</td><td>0</td><td>1.0025063</td><td>0.7518797</td></tr>

This is how it looks when rendered by a web browser:


Get a JSON array with the average bandwidth rate of the mysql server, over the last hour, in 6 values (one every 10 minutes), and return the date and time in milliseconds:

Netdata always returns bandwidth rates in kilobits/s.

# curl -Ss ',ms'

Get the number of processes started per minute, for the last 10 minutes, in markdown format:

# curl -Ss ''
time | started
:---: |:---:
2018-10-27 03:52:00| 245.1706149
2018-10-27 03:51:00| 152.6654636
2018-10-27 03:50:00| 163.1755789
2018-10-27 03:49:00| 176.1574766
2018-10-27 03:48:00| 178.0137076
2018-10-27 03:47:00| 183.8306543
2018-10-27 03:46:00| 264.1635621
2018-10-27 03:45:00| 205.001551
2018-10-27 03:44:00| 7026.9852167
2018-10-27 03:43:00| 205.9904794

And this is how it looks when formatted:

2018-10-27 03:52:00245.1706149
2018-10-27 03:51:00152.6654636
2018-10-27 03:50:00163.1755789
2018-10-27 03:49:00176.1574766
2018-10-27 03:48:00178.0137076
2018-10-27 03:47:00183.8306543
2018-10-27 03:46:00264.1635621
2018-10-27 03:45:00205.001551
2018-10-27 03:44:007026.9852167
2018-10-27 03:43:00205.9904794

Reach out

If you need help after reading this doc, search our community forum for an answer. There's a good chance someone else has already found a solution to the same issue.



Last updated on