Viewing file: rrd.c (4.6 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// SPDX-License-Identifier: GPL-3.0-or-later #define NETDATA_RRD_INTERNALS 1
#include "rrd.h"
// ---------------------------------------------------------------------------- // globals
/* // if not zero it gives the time (in seconds) to remove un-updated dimensions // DO NOT ENABLE // if dimensions are removed, the chart generation will have to run again int rrd_delete_unupdated_dimensions = 0; */
int default_rrd_update_every = UPDATE_EVERY; int default_rrd_history_entries = RRD_DEFAULT_HISTORY_ENTRIES; #ifdef ENABLE_DBENGINE RRD_MEMORY_MODE default_rrd_memory_mode = RRD_MEMORY_MODE_DBENGINE; #else RRD_MEMORY_MODE default_rrd_memory_mode = RRD_MEMORY_MODE_SAVE; #endif int gap_when_lost_iterations_above = 1;
// ---------------------------------------------------------------------------- // RRD - memory modes
inline const char *rrd_memory_mode_name(RRD_MEMORY_MODE id) { switch(id) { case RRD_MEMORY_MODE_RAM: return RRD_MEMORY_MODE_RAM_NAME;
case RRD_MEMORY_MODE_MAP: return RRD_MEMORY_MODE_MAP_NAME;
case RRD_MEMORY_MODE_NONE: return RRD_MEMORY_MODE_NONE_NAME;
case RRD_MEMORY_MODE_SAVE: return RRD_MEMORY_MODE_SAVE_NAME;
case RRD_MEMORY_MODE_ALLOC: return RRD_MEMORY_MODE_ALLOC_NAME;
case RRD_MEMORY_MODE_DBENGINE: return RRD_MEMORY_MODE_DBENGINE_NAME; }
return RRD_MEMORY_MODE_SAVE_NAME; }
RRD_MEMORY_MODE rrd_memory_mode_id(const char *name) { if(unlikely(!strcmp(name, RRD_MEMORY_MODE_RAM_NAME))) return RRD_MEMORY_MODE_RAM;
else if(unlikely(!strcmp(name, RRD_MEMORY_MODE_MAP_NAME))) return RRD_MEMORY_MODE_MAP;
else if(unlikely(!strcmp(name, RRD_MEMORY_MODE_NONE_NAME))) return RRD_MEMORY_MODE_NONE;
else if(unlikely(!strcmp(name, RRD_MEMORY_MODE_ALLOC_NAME))) return RRD_MEMORY_MODE_ALLOC;
else if(unlikely(!strcmp(name, RRD_MEMORY_MODE_DBENGINE_NAME))) return RRD_MEMORY_MODE_DBENGINE;
return RRD_MEMORY_MODE_SAVE; }
// ---------------------------------------------------------------------------- // RRD - algorithms types
RRD_ALGORITHM rrd_algorithm_id(const char *name) { if(strcmp(name, RRD_ALGORITHM_INCREMENTAL_NAME) == 0) return RRD_ALGORITHM_INCREMENTAL;
else if(strcmp(name, RRD_ALGORITHM_ABSOLUTE_NAME) == 0) return RRD_ALGORITHM_ABSOLUTE;
else if(strcmp(name, RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME) == 0) return RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL;
else if(strcmp(name, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME) == 0) return RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL;
else return RRD_ALGORITHM_ABSOLUTE; }
const char *rrd_algorithm_name(RRD_ALGORITHM algorithm) { switch(algorithm) { case RRD_ALGORITHM_ABSOLUTE: default: return RRD_ALGORITHM_ABSOLUTE_NAME;
case RRD_ALGORITHM_INCREMENTAL: return RRD_ALGORITHM_INCREMENTAL_NAME;
case RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL: return RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME;
case RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL: return RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME; } }
// ---------------------------------------------------------------------------- // RRD - chart types
inline RRDSET_TYPE rrdset_type_id(const char *name) { if(unlikely(strcmp(name, RRDSET_TYPE_AREA_NAME) == 0)) return RRDSET_TYPE_AREA;
else if(unlikely(strcmp(name, RRDSET_TYPE_STACKED_NAME) == 0)) return RRDSET_TYPE_STACKED;
else // if(unlikely(strcmp(name, RRDSET_TYPE_LINE_NAME) == 0)) return RRDSET_TYPE_LINE; }
const char *rrdset_type_name(RRDSET_TYPE chart_type) { switch(chart_type) { case RRDSET_TYPE_LINE: default: return RRDSET_TYPE_LINE_NAME;
case RRDSET_TYPE_AREA: return RRDSET_TYPE_AREA_NAME;
case RRDSET_TYPE_STACKED: return RRDSET_TYPE_STACKED_NAME; } }
// ---------------------------------------------------------------------------- // RRD - cache directory
char *rrdset_cache_dir(RRDHOST *host, const char *id, const char *config_section) { char *ret = NULL;
char b[FILENAME_MAX + 1]; char n[FILENAME_MAX + 1]; rrdset_strncpyz_name(b, id, FILENAME_MAX);
snprintfz(n, FILENAME_MAX, "%s/%s", host->cache_dir, b); ret = config_get(config_section, "cache directory", n);
if(host->rrd_memory_mode == RRD_MEMORY_MODE_MAP || host->rrd_memory_mode == RRD_MEMORY_MODE_SAVE) { int r = mkdir(ret, 0775); if(r != 0 && errno != EEXIST) error("Cannot create directory '%s'", ret); }
return ret; }
|