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';
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;
}
// 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)));
}