| | 119 | int |
|---|
| | 120 | noit_stats_snprint_metric(char *b, int l, metric_t *m) { |
|---|
| | 121 | int rv; |
|---|
| | 122 | if(!m->metric_value.s) { /* they are all null */ |
|---|
| | 123 | rv = snprintf(b, l, "%s[%c] = [[null]]", m->metric_name, m->metric_type); |
|---|
| | 124 | } |
|---|
| | 125 | else { |
|---|
| | 126 | switch(m->metric_type) { |
|---|
| | 127 | case METRIC_INT32: |
|---|
| | 128 | rv = snprintf(b, l, "%s[%c] = %d", |
|---|
| | 129 | m->metric_name, m->metric_type, *(m->metric_value.i)); |
|---|
| | 130 | break; |
|---|
| | 131 | case METRIC_UINT32: |
|---|
| | 132 | rv = snprintf(b, l, "%s[%c] = %u", |
|---|
| | 133 | m->metric_name, m->metric_type, *(m->metric_value.I)); |
|---|
| | 134 | break; |
|---|
| | 135 | case METRIC_INT64: |
|---|
| | 136 | rv = snprintf(b, l, "%s[%c] = %lld", |
|---|
| | 137 | m->metric_name, m->metric_type, *(m->metric_value.l)); |
|---|
| | 138 | break; |
|---|
| | 139 | case METRIC_UINT64: |
|---|
| | 140 | rv = snprintf(b, l, "%s[%c] = %llu", |
|---|
| | 141 | m->metric_name, m->metric_type, *(m->metric_value.L)); |
|---|
| | 142 | break; |
|---|
| | 143 | case METRIC_DOUBLE: |
|---|
| | 144 | rv = snprintf(b, l, "%s[%c] = %.12e", |
|---|
| | 145 | m->metric_name, m->metric_type, *(m->metric_value.n)); |
|---|
| | 146 | break; |
|---|
| | 147 | case METRIC_STRING: |
|---|
| | 148 | rv = snprintf(b, l, "%s[%c] = %s", |
|---|
| | 149 | m->metric_name, m->metric_type, m->metric_value.s); |
|---|
| | 150 | break; |
|---|
| | 151 | default: |
|---|
| | 152 | rv = snprintf(b, l, "%s has unknown metric type 0%02x", |
|---|
| | 153 | m->metric_name, m->metric_type); |
|---|
| | 154 | } |
|---|
| | 155 | } |
|---|
| | 156 | return rv; |
|---|
| | 157 | } |
|---|