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);