summaryrefslogtreecommitdiffstats
path: root/web/api/formatters/csv
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:54:23 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:54:44 +0000
commit836b47cb7e99a977c5a23b059ca1d0b5065d310e (patch)
tree1604da8f482d02effa033c94a84be42bc0c848c3 /web/api/formatters/csv
parentReleasing debian version 1.44.3-2. (diff)
downloadnetdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.tar.xz
netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.zip
Merging upstream version 1.46.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'web/api/formatters/csv')
-rw-r--r--web/api/formatters/csv/Makefile.am8
-rw-r--r--web/api/formatters/csv/README.md148
-rw-r--r--web/api/formatters/csv/csv.c109
-rw-r--r--web/api/formatters/csv/csv.h12
4 files changed, 0 insertions, 277 deletions
diff --git a/web/api/formatters/csv/Makefile.am b/web/api/formatters/csv/Makefile.am
deleted file mode 100644
index 161784b8..00000000
--- a/web/api/formatters/csv/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-AUTOMAKE_OPTIONS = subdir-objects
-MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
-
-dist_noinst_DATA = \
- README.md \
- $(NULL)
diff --git a/web/api/formatters/csv/README.md b/web/api/formatters/csv/README.md
deleted file mode 100644
index 4585710b..00000000
--- a/web/api/formatters/csv/README.md
+++ /dev/null
@@ -1,148 +0,0 @@
-<!--
-title: "CSV formatter"
-custom_edit_url: https://github.com/netdata/netdata/edit/master/web/api/formatters/csv/README.md
-sidebar_label: "CSV formatter"
-learn_status: "Published"
-learn_topic_type: "References"
-learn_rel_path: "Developers/Web/Api/Formatters"
--->
-
-# CSV formatter
-
-The CSV formatter presents [results of database queries](https://github.com/netdata/netdata/blob/master/web/api/queries/README.md) in the following formats:
-
-| format|content type|description|
-| :----:|:----------:|:----------|
-| `csv`|text/plain|a text table, comma separated, with a header line (dimension names) and `\r\n` at the end of the lines|
-| `csvjsonarray`|application/json|a JSON array, with each row as another array (the first row has the dimension names)|
-| `tsv`|text/plain|like `csv` but TAB is used instead of comma to separate values (MS Excel flavor)|
-| `html`|text/html|an html table|
-| `markdown`|text/plain|markdown table|
-
-In all formats the date and time is the first column.
-
-The CSV formatter respects the following API `&options=`:
-
-| option|supported|description|
-|:----:|:-------:|:----------|
-| `nonzero`|yes|to return only the dimensions that have at least a non-zero value|
-| `flip`|yes|to return the rows older to newer (the default is newer to older)|
-| `seconds`|yes|to return the date and time in unix timestamp|
-| `ms`|yes|to return the date and time in unit timestamp as milliseconds|
-| `percent`|yes|to replace all values with their percentage over the row total|
-| `abs`|yes|to turn all values positive|
-| `null2zero`|yes|to replace gaps with zeros (the default prints the string `null`|
-
-## Examples
-
-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`.
-
-```bash
-# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.net&format=csv&after=-3600&group=sum&points=6&options=abs'
-time,received,sent
-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`.
-
-```bash
-# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=apps.mem&format=tsv&after=-3600&group=max&points=2&options=nonzero,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 `%`.
-
-```bash
-# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.cpu&format=html&after=-4&options=nonzero'
-<html>
-<center>
-<table border="0" cellpadding="5" cellspacing="5">
-<tr><td>time</td><td>softirq</td><td>user</td><td>system</td></tr>
-<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>
-</table>
-</center>
-</html>
-```
-
-This is how it looks when rendered by a web browser:
-
-![image](https://user-images.githubusercontent.com/2662304/47597887-bafbf480-d99c-11e8-864a-d880bb8d2e5b.png)
-
----
-
-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`.
-
-```bash
-# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=mysql_local.net&format=csvjsonarray&after=-3600&points=6&group=average&options=abs,ms'
-[
-["time","in","out"],
-[1540599600000,0.7499986,120.2810185],
-[1540599000000,0.7500019,120.2815509],
-[1540598400000,0.7499999,120.2812319],
-[1540597800000,0.7500044,120.2819634],
-[1540597200000,0.7499968,120.2807337],
-[1540596600000,0.7499988,120.2810527]
-]
-```
-
----
-
-Get the number of processes started per minute, for the last 10 minutes, in `markdown` format:
-
-```bash
-# curl -Ss 'https://registry.my-netdata.io/api/v1/data?chart=system.forks&format=markdown&after=-600&points=10&group=sum'
-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:
-
-| 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 |
-
-
diff --git a/web/api/formatters/csv/csv.c b/web/api/formatters/csv/csv.c
deleted file mode 100644
index d81ddb34..00000000
--- a/web/api/formatters/csv/csv.c
+++ /dev/null
@@ -1,109 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "libnetdata/libnetdata.h"
-#include "csv.h"
-
-void rrdr2csv(RRDR *r, BUFFER *wb, uint32_t format, RRDR_OPTIONS options, const char *startline, const char *separator, const char *endline, const char *betweenlines) {
- //netdata_log_info("RRD2CSV(): %s: BEGIN", r->st->id);
- long c, i;
- const long used = (long)r->d;
-
- // print the csv header
- for(c = 0, i = 0; c < used ; c++) {
- if(!rrdr_dimension_should_be_exposed(r->od[c], options))
- continue;
-
- if(!i) {
- buffer_strcat(wb, startline);
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- buffer_strcat(wb, "time");
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- }
- buffer_strcat(wb, separator);
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- buffer_strcat(wb, string2str(r->dn[c]));
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- i++;
- }
- buffer_strcat(wb, endline);
-
- if(format == DATASOURCE_CSV_MARKDOWN) {
- // print the --- line after header
- for(c = 0, i = 0; c < used ;c++) {
- if(!rrdr_dimension_should_be_exposed(r->od[c], options))
- continue;
-
- if(!i) {
- buffer_strcat(wb, startline);
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- buffer_strcat(wb, ":---:");
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- }
- buffer_strcat(wb, separator);
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- buffer_strcat(wb, ":---:");
- if(options & RRDR_OPTION_LABEL_QUOTES) buffer_strcat(wb, "\"");
- i++;
- }
- buffer_strcat(wb, endline);
- }
-
- if(!i) {
- // no dimensions present
- return;
- }
-
- long start = 0, end = rrdr_rows(r), step = 1;
- if(!(options & RRDR_OPTION_REVERSED)) {
- start = rrdr_rows(r) - 1;
- end = -1;
- step = -1;
- }
-
- // for each line in the array
- for(i = start; i != end ;i += step) {
- NETDATA_DOUBLE *cn = &r->v[ i * r->d ];
- RRDR_VALUE_FLAGS *co = &r->o[ i * r->d ];
-
- buffer_strcat(wb, betweenlines);
- buffer_strcat(wb, startline);
-
- time_t now = r->t[i];
-
- if((options & RRDR_OPTION_SECONDS) || (options & RRDR_OPTION_MILLISECONDS)) {
- // print the timestamp of the line
- buffer_print_netdata_double(wb, (NETDATA_DOUBLE) now);
- // in ms
- if(options & RRDR_OPTION_MILLISECONDS) buffer_strcat(wb, "000");
- }
- else {
- // generate the local date time
- struct tm tmbuf, *tm = localtime_r(&now, &tmbuf);
- if(!tm) {
- netdata_log_error("localtime() failed."); continue; }
- buffer_date(wb, tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
- }
-
- // for each dimension
- for(c = 0; c < used ;c++) {
- if(!rrdr_dimension_should_be_exposed(r->od[c], options))
- continue;
-
- buffer_strcat(wb, separator);
-
- NETDATA_DOUBLE n = cn[c];
-
- if(co[c] & RRDR_VALUE_EMPTY) {
- if(options & RRDR_OPTION_NULL2ZERO)
- buffer_strcat(wb, "0");
- else
- buffer_strcat(wb, "null");
- }
- else
- buffer_print_netdata_double(wb, n);
- }
-
- buffer_strcat(wb, endline);
- }
- //netdata_log_info("RRD2CSV(): %s: END", r->st->id);
-}
diff --git a/web/api/formatters/csv/csv.h b/web/api/formatters/csv/csv.h
deleted file mode 100644
index 666d4c66..00000000
--- a/web/api/formatters/csv/csv.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#ifndef NETDATA_API_FORMATTER_CSV_H
-#define NETDATA_API_FORMATTER_CSV_H
-
-#include "web/api/queries/rrdr.h"
-
-void rrdr2csv(RRDR *r, BUFFER *wb, uint32_t format, RRDR_OPTIONS options, const char *startline, const char *separator, const char *endline, const char *betweenlines);
-
-#include "../rrd2json.h"
-
-#endif //NETDATA_API_FORMATTER_CSV_H