@cryptotaxi247 / netdata-1 / commits / 2592183fc

fixed -charts.sh suffix parsing

Costa Tsaousis (ktsaou) committed May 2, 2014 at 11:53 UTC 2592183fc738bcf52e1ead85074798007213b959
1 file changed +23 -15
netdata.c
+23 -15
@@ -5510,7 +5510,7 @@ void *cpuidlejitter_main(void *ptr)
5510 // charts.d
5511
5512 #define CHARTS_D_FILE_SUFFIX "-chart.sh"
5513 -#define CHARTS_D_FILE_SUFFIX_LEN sizeof(CHARTS_D_FILE_SUFFIX)
5513 +#define CHARTS_D_FILE_SUFFIX_LEN strlen(CHARTS_D_FILE_SUFFIX)
5514 #define CHARTSD_CMD_MAX (FILENAME_MAX*2)
5515 #define CHARTSD_LINE_MAX 1024
5516
@@ -5670,18 +5670,22 @@ void *chartsd_worker_thread(void *arg)
5670 if(!family || !*family) family = id;
5671 if(!category || !*category) category = type;
5672
5673 - debug(D_CHARTSD, "CHARTSD: Creating chart type='%s', id='%s', name='%s', family='%s', category='%s', chart='%s', priority=%d, update_every=%d"
5674 - , type, id
5675 - , name?name:""
5676 - , family?family:""
5677 - , category?category:""
5678 - , chart_type_name(chart_type)
5679 - , priority
5680 - , update_every
5681 - );
5682 -
5683 - st = rrd_stats_create(type, id, name, family, title, units, priority, update_every, chart_type);
5684 - cd->update_every = update_every;
5673 + st = rrd_stats_find(id);
5674 + if(!st) {
5675 + debug(D_CHARTSD, "CHARTSD: Creating chart type='%s', id='%s', name='%s', family='%s', category='%s', chart='%s', priority=%d, update_every=%d"
5676 + , type, id
5677 + , name?name:""
5678 + , family?family:""
5679 + , category?category:""
5680 + , chart_type_name(chart_type)
5681 + , priority
5682 + , update_every
5683 + );
5684 +
5685 + st = rrd_stats_create(type, id, name, family, title, units, priority, update_every, chart_type);
5686 + cd->update_every = update_every;
5687 + }
5688 + else debug(D_CHARTSD, "CHARTSD: Chart '%s' already exists. Not adding it again.");
5689 }
5690 else if(!strcmp(s, "DIMENSION")) {
5691 char *id = qstrsep(&p);
@@ -5721,8 +5725,12 @@ void *chartsd_worker_thread(void *arg)
5725 , hidden?hidden:""
5726 );
5727
5724 - RRD_DIMENSION *rd = rrd_stats_dimension_add(st, id, name, multiplier, divisor, algorithm_id(algorithm));
5725 - if(hidden && strcmp(hidden, "hidden") == 0) rd->hidden = 1;
5728 + RRD_DIMENSION *rd = rrd_stats_dimension_find(st, id);
5729 + if(!rd) {
5730 + rd = rrd_stats_dimension_add(st, id, name, multiplier, divisor, algorithm_id(algorithm));
5731 + if(hidden && strcmp(hidden, "hidden") == 0) rd->hidden = 1;
5732 + }
5733 + else if(st->debug) debug(D_CHARTSD, "CHARTSD: %s/%s already exists. Not adding it again.", st->id, id);
5734 }
5735 else if(!strcmp(s, "MYPID")) {
5736 char *pid = qstrsep(&p);