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);