@cryptotaxi247 / netdata-1 / commits / 304dc3ec3

remove all dots from prometheus names; #1497

Costa Tsaousis (ktsaou) committed Jan 3, 2017 at 22:48 UTC 304dc3ec3e91f904f57829fc0f594e60ef918a35
1 file changed +8 -7
src/rrd2json.c
+8 -7
@@ -130,7 +130,7 @@ static inline size_t prometheus_name_copy(char *d, const char *s, size_t usable)
130 for(n = 0; *s && n < usable ; d++, s++, n++) {
131 register char c = *s;
132
133 - if(unlikely(!isalpha(c) && !isdigit(c))) *d = '_';
133 + if(unlikely(!isalnum(c))) *d = '_';
134 else *d = c;
135 }
136 *d = '\0';
@@ -159,16 +159,20 @@ void rrd_stats_api_v1_charts_allmetrics_prometheus(BUFFER *wb)
159 RRDDIM *rd;
160 for(rd = st->dimensions; rd ; rd = rd->next) {
161 if(rd->counter) {
162 +
163 + char dimension[PROMETHEUS_ELEMENT_MAX + 1];
164 + prometheus_name_copy(dimension, rd->id, PROMETHEUS_ELEMENT_MAX);
165 +
166 // buffer_sprintf(wb, "# HELP %s.%s %s\n", st->id, rd->id, st->units);
167
168 switch(rd->algorithm) {
169 case RRDDIM_INCREMENTAL:
170 case RRDDIM_PCENT_OVER_DIFF_TOTAL:
167 - buffer_sprintf(wb, "# TYPE %s.%s counter\n", st->id, rd->id);
171 + buffer_sprintf(wb, "# TYPE %s_%s counter\n", chart, dimension);
172 break;
173
174 default:
171 - buffer_sprintf(wb, "# TYPE %s.%s gauge\n", st->id, rd->id);
175 + buffer_sprintf(wb, "# TYPE %s_%s gauge\n", chart, dimension);
176 break;
177 }
178
@@ -176,10 +180,7 @@ void rrd_stats_api_v1_charts_allmetrics_prometheus(BUFFER *wb)
180 // buffer_sprintf(wb, "%s.%s " CALCULATED_NUMBER_FORMAT " %llu\n", st->id, rd->id, n,
181 // (unsigned long long)((rd->last_collected_time.tv_sec * 1000) + (rd->last_collected_time.tv_usec / 1000)));
182
179 - char dimension[PROMETHEUS_ELEMENT_MAX + 1];
180 - prometheus_name_copy(dimension, rd->id, PROMETHEUS_ELEMENT_MAX);
181 -
182 - buffer_sprintf(wb, "%s.%s{instance=\"%s\"} " COLLECTED_NUMBER_FORMAT " %llu\n",
183 + buffer_sprintf(wb, "%s_%s{instance=\"%s\"} " COLLECTED_NUMBER_FORMAT " %llu\n",
184 chart, dimension, host, rd->last_collected_value,
185 (unsigned long long)((rd->last_collected_time.tv_sec * 1000) + (rd->last_collected_time.tv_usec / 1000)));
186 }