@cryptotaxi247 / netdata-1 / commits / 6c9061929

added congested rate

Costa Tsaousis (ktsaou) committed Mar 5, 2018 at 18:01 UTC 6c9061929a74419b06b99566c1e3fe5bdf190513
1 file changed +16 -1
src/proc_diskstats.c
+16 -1
@@ -34,6 +34,7 @@ static struct disk {
34
35 int device_is_bcache;
36
37 + char *bcache_filename_congested;
38 char *bcache_filename_readahead;
39 char *bcache_filename_dirty_data;
40 char *bcache_filename_writeback_rate;
@@ -97,6 +98,7 @@ static struct disk {
98 RRDDIM *rd_bcache_bypass_misses;
99
100 RRDSET *st_bcache_rates;
101 + RRDDIM *rd_bcache_rate_congested;
102 RRDDIM *rd_bcache_rate_readahead;
103 RRDDIM *rd_bcache_rate_writeback;
104
@@ -509,6 +511,12 @@ static struct disk *get_disk(unsigned long major, unsigned long minor, char *dis
511
512 char buffer2[FILENAME_MAX + 1];
513
514 + snprintfz(buffer2, FILENAME_MAX, "%s/congested", buffer);
515 + if(access(buffer2, R_OK) == 0)
516 + d->bcache_filename_congested = strdupz(buffer2);
517 + else
518 + error("bcache file '%s' cannot be read.", buffer2);
519 +
520 snprintfz(buffer2, FILENAME_MAX, "%s/readahead", buffer);
521 if(access(buffer2, R_OK) == 0)
522 d->bcache_filename_readahead = strdupz(buffer2);
@@ -1066,12 +1074,16 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1074 cache_miss_collisions = 0,
1075 cache_misses = 0,
1076 cache_available_percent = 0,
1077 + congested = 0,
1078 readahead = 0,
1079 dirty_data = 0,
1080 writeback_rate = 0;
1081
1082 // read the bcache values
1083
1084 + if(d->bcache_filename_congested)
1085 + congested = bcache_read_number_with_units(d->bcache_filename_congested);
1086 +
1087 if(d->bcache_filename_readahead)
1088 readahead = bcache_read_number_with_units(d->bcache_filename_readahead);
1089
@@ -1122,11 +1134,13 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1134
1135 d->rd_bcache_rate_readahead = rrddim_add(d->st_bcache_rates, "readahead", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
1136 d->rd_bcache_rate_writeback = rrddim_add(d->st_bcache_rates, "writeback", NULL, -1, 1024, RRD_ALGORITHM_ABSOLUTE);
1137 + d->rd_bcache_rate_congested = rrddim_add(d->st_bcache_rates, "congested", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
1138 }
1139 else rrdset_next(d->st_bcache_rates);
1140
1141 rrddim_set_by_pointer(d->st_bcache_rates, d->rd_bcache_rate_writeback, writeback_rate);
1142 rrddim_set_by_pointer(d->st_bcache_rates, d->rd_bcache_rate_readahead, readahead);
1143 + rrddim_set_by_pointer(d->st_bcache_rates, d->rd_bcache_rate_congested, congested);
1144 rrdset_done(d->st_bcache_rates);
1145 }
1146
@@ -1313,6 +1327,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1327 last->next = d = d->next;
1328 }
1329
1330 + freez(t->bcache_filename_congested);
1331 + freez(t->bcache_filename_readahead);
1332 freez(t->bcache_filename_dirty_data);
1333 freez(t->bcache_filename_writeback_rate);
1334 freez(t->bcache_filename_stats_total_cache_available_percent);
@@ -1321,7 +1337,6 @@ int do_proc_diskstats(int update_every, usec_t dt) {
1337 freez(t->bcache_filename_stats_total_cache_miss_collisions);
1338 freez(t->bcache_filename_stats_total_cache_bypass_hits);
1339 freez(t->bcache_filename_stats_total_cache_bypass_misses);
1324 - freez(t->bcache_filename_readahead);
1340
1341 freez(t->disk);
1342 freez(t->device);