]> arthur.barton.de Git - netdata.git/commitdiff
remove all dots from prometheus names; #1497
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Tue, 3 Jan 2017 20:48:02 +0000 (22:48 +0200)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Tue, 3 Jan 2017 20:48:02 +0000 (22:48 +0200)
src/rrd2json.c

index fb658b3adbf8641b9503ec20ffaa614db02413e3..f31880a3dd43cba6f559a40f2f8f704b2e652d71 100644 (file)
@@ -130,7 +130,7 @@ static inline size_t prometheus_name_copy(char *d, const char *s, size_t usable)
     for(n = 0; *s && n < usable ; d++, s++, n++) {
         register char c = *s;
 
-        if(unlikely(!isalpha(c) && !isdigit(c))) *d = '_';
+        if(unlikely(!isalnum(c))) *d = '_';
         else *d = c;
     }
     *d = '\0';
@@ -159,16 +159,20 @@ void rrd_stats_api_v1_charts_allmetrics_prometheus(BUFFER *wb)
             RRDDIM *rd;
             for(rd = st->dimensions; rd ; rd = rd->next) {
                 if(rd->counter) {
+
+                    char dimension[PROMETHEUS_ELEMENT_MAX + 1];
+                    prometheus_name_copy(dimension, rd->id, PROMETHEUS_ELEMENT_MAX);
+
                     // buffer_sprintf(wb, "# HELP %s.%s %s\n", st->id, rd->id, st->units);
 
                     switch(rd->algorithm) {
                         case RRDDIM_INCREMENTAL:
                         case RRDDIM_PCENT_OVER_DIFF_TOTAL:
-                            buffer_sprintf(wb, "# TYPE %s.%s counter\n", st->id, rd->id);
+                            buffer_sprintf(wb, "# TYPE %s_%s counter\n", chart, dimension);
                             break;
 
                         default:
-                            buffer_sprintf(wb, "# TYPE %s.%s gauge\n", st->id, rd->id);
+                            buffer_sprintf(wb, "# TYPE %s_%s gauge\n", chart, dimension);
                             break;
                     }
 
@@ -176,10 +180,7 @@ void rrd_stats_api_v1_charts_allmetrics_prometheus(BUFFER *wb)
                     // buffer_sprintf(wb, "%s.%s " CALCULATED_NUMBER_FORMAT " %llu\n", st->id, rd->id, n,
                     //        (unsigned long long)((rd->last_collected_time.tv_sec * 1000) + (rd->last_collected_time.tv_usec / 1000)));
 
-                    char dimension[PROMETHEUS_ELEMENT_MAX + 1];
-                    prometheus_name_copy(dimension, rd->id, PROMETHEUS_ELEMENT_MAX);
-
-                    buffer_sprintf(wb, "%s.%s{instance=\"%s\"} " COLLECTED_NUMBER_FORMAT " %llu\n",
+                    buffer_sprintf(wb, "%s_%s{instance=\"%s\"} " COLLECTED_NUMBER_FORMAT " %llu\n",
                             chart, dimension, host, rd->last_collected_value,
                             (unsigned long long)((rd->last_collected_time.tv_sec * 1000) + (rd->last_collected_time.tv_usec / 1000)));
                 }