@cryptotaxi247 / netdata-1 / commits / 7adbfe8a3

added plugin, module and alarms to /api/v1/chart(s)

Costa Tsaousis (ktsaou) committed Oct 15, 2017 at 04:13 UTC 7adbfe8a3b5bb42f02a9891d43a38126097a7acb
1 file changed +38 -8
src/rrd2json.c
+38 -8
@@ -13,6 +13,8 @@ void rrd_stats_api_v1_chart_with_data(RRDSET *st, BUFFER *wb, size_t *dimensions
13 "\t\t\t\"context\": \"%s\",\n"
14 "\t\t\t\"title\": \"%s (%s)\",\n"
15 "\t\t\t\"priority\": %ld,\n"
16 + "\t\t\t\"plugin\": \"%s\",\n"
17 + "\t\t\t\"module\": \"%s\",\n"
18 "\t\t\t\"enabled\": %s,\n"
19 "\t\t\t\"units\": \"%s\",\n"
20 "\t\t\t\"data_url\": \"/api/v1/data?chart=%s\",\n"
@@ -29,6 +31,8 @@ void rrd_stats_api_v1_chart_with_data(RRDSET *st, BUFFER *wb, size_t *dimensions
31 , st->context
32 , st->title, st->name
33 , st->priority
34 + , st->plugin_name?st->plugin_name:""
35 + , st->module_name?st->module_name:""
36 , rrdset_flag_check(st, RRDSET_FLAG_ENABLED)?"true":"false"
37 , st->units
38 , st->name
@@ -48,13 +52,14 @@ void rrd_stats_api_v1_chart_with_data(RRDSET *st, BUFFER *wb, size_t *dimensions
52
53 memory += rd->memsize;
54
51 - buffer_sprintf(wb,
52 - "%s"
53 - "\t\t\t\t\"%s\": { \"name\": \"%s\" }"
54 - , dimensions?",\n":""
55 - , rd->id
56 - , rd->name
57 - );
55 + buffer_sprintf(
56 + wb
57 + , "%s"
58 + "\t\t\t\t\"%s\": { \"name\": \"%s\" }"
59 + , dimensions ? ",\n" : ""
60 + , rd->id
61 + , rd->name
62 + );
63
64 dimensions++;
65 }
@@ -67,8 +72,33 @@ void rrd_stats_api_v1_chart_with_data(RRDSET *st, BUFFER *wb, size_t *dimensions
72 buffer_strcat(wb, ",\n\t\t\t\"red\": ");
73 buffer_rrd_value(wb, st->red);
74
75 + buffer_strcat(wb, ",\n\t\t\t\"alarms\": {\n");
76 + size_t alarms = 0;
77 + RRDCALC *rc;
78 + for(rc = st->alarms; rc ; rc = rc->rrdset_next) {
79 +
80 + buffer_sprintf(
81 + wb
82 + , "%s"
83 + "\t\t\t\t\"%s\": {\n"
84 + "\t\t\t\t\t\"id\": %u,\n"
85 + "\t\t\t\t\t\"status\": \"%s\",\n"
86 + "\t\t\t\t\t\"units\": \"%s\",\n"
87 + "\t\t\t\t\t\"update_every\": %d\n"
88 + "\t\t\t\t}"
89 + , (alarms) ? ",\n" : ""
90 + , rc->name
91 + , rc->id
92 + , rrdcalc_status2string(rc->status)
93 + , rc->units
94 + , rc->update_every
95 + );
96 +
97 + alarms++;
98 + }
99 +
100 buffer_sprintf(wb,
71 - "\n\t\t}"
101 + "\n\t\t\t}\n\t\t}"
102 );
103
104 rrdset_unlock(st);