diff options
Diffstat (limited to 'xlators/debug/io-stats/src/io-stats.c')
| -rw-r--r-- | xlators/debug/io-stats/src/io-stats.c | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index 266f9449c9e..c0cd0e2477b 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -798,6 +798,11 @@ io_stats_dump_global_to_json_logfp (xlator_t *this,          float                 fop_lat_min;          float                 fop_lat_max;          double                interval_sec; +        double                fop_ave_usec = 0.0; +        double                fop_ave_usec_sum = 0.0; +        double                weighted_fop_ave_usec = 0.0; +        double                weighted_fop_ave_usec_sum = 0.0; +        long                  total_fop_hits = 0;          interval_sec = ((now->tv_sec * 1000000.0 + now->tv_usec) -                  (stats->started_at.tv_sec * 1000000.0 + @@ -902,7 +907,34 @@ io_stats_dump_global_to_json_logfp (xlator_t *this,                  ios_log (this, logfp,                          "\"%s.%s.fop.%s.latency_max_usec\": \"%0.2lf\",",                          key_prefix, str_prefix, lc_fop_name, fop_lat_max); + +                fop_ave_usec_sum += fop_lat_ave; +                weighted_fop_ave_usec_sum += fop_hits * fop_lat_ave; +                total_fop_hits += fop_hits; +        } + +        if (total_fop_hits) { +                weighted_fop_ave_usec = +                        weighted_fop_ave_usec_sum/total_fop_hits; +                /* Extra key that does not print out an entry w/ 0.00 for +                 * intervals with no data +                 */ +                ios_log (this, logfp, +                         "\"%s.%s.fop.weighted_latency_ave_usec_nozerofill\": " +                         "\"%0.4lf\",", +                         key_prefix, str_prefix, weighted_fop_ave_usec);          } +        ios_log (this, logfp, +                 "\"%s.%s.fop.weighted_latency_ave_usec\": \"%0.4lf\",", +                 key_prefix, str_prefix, weighted_fop_ave_usec); +        ios_log (this, logfp, +                 "\"%s.%s.fop.weighted_fop_count\": \"%ld\",", +                 key_prefix, str_prefix, total_fop_hits); + +        fop_ave_usec = fop_ave_usec_sum/GF_FOP_MAXVALUE; +        ios_log (this, logfp, +                 "\"%s.%s.fop.unweighted_latency_ave_usec\":\"%0.4lf\",", +                 key_prefix, str_prefix, fop_ave_usec);          for (i = 0; i < GF_UPCALL_FLAGS_MAXVALUE; i++) {                  lc_fop_name = strdupa (gf_upcall_list[i]);  | 
