mirror of
https://github.com/netdata/netdata.git
synced 2025-05-08 11:00:27 +00:00

* netdata doubles * fix cmocka test * fix cmocka test again * fix left-overs of long double to NETDATA_DOUBLE * RRDDIM detached from disk representation; db settings in [db] section of netdata.conf * update the memory before saving * rrdset is now detached from file structures too * on memory mode map, update the memory mapped structures on every iteration * allow RRD_ID_LENGTH_MAX to be changed * granularity secs, back to update every * fix formatting * more formatting
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#include "ssv.h"
|
|
|
|
void rrdr2ssv(RRDR *r, BUFFER *wb, RRDR_OPTIONS options, const char *prefix, const char *separator, const char *suffix, RRDDIM *temp_rd) {
|
|
//info("RRD2SSV(): %s: BEGIN", r->st->id);
|
|
long i;
|
|
|
|
buffer_strcat(wb, prefix);
|
|
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) {
|
|
int all_values_are_null = 0;
|
|
NETDATA_DOUBLE v = rrdr2value(r, i, options, &all_values_are_null, NULL, temp_rd);
|
|
|
|
if(likely(i != start)) {
|
|
if(r->min > v) r->min = v;
|
|
if(r->max < v) r->max = v;
|
|
}
|
|
else {
|
|
r->min = v;
|
|
r->max = v;
|
|
}
|
|
|
|
if(likely(i != start))
|
|
buffer_strcat(wb, separator);
|
|
|
|
if(all_values_are_null) {
|
|
if(options & RRDR_OPTION_NULL2ZERO)
|
|
buffer_strcat(wb, "0");
|
|
else
|
|
buffer_strcat(wb, "null");
|
|
}
|
|
else
|
|
buffer_rrd_value(wb, v);
|
|
}
|
|
buffer_strcat(wb, suffix);
|
|
//info("RRD2SSV(): %s: END", r->st->id);
|
|
}
|