diff --git a/src/dumpstats.c b/src/dumpstats.c
index c8bdc2b6a..812f3d5bb 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -2827,12 +2827,22 @@ static int stats_dump_fe_stats(struct stream_interface *si, struct proxy *px)
chunk_appendf(&trash,
/* bytes:out + compression stats (via hover): comp_in, comp_out, comp_byp */
- "
%s%s compression: in=%lld out=%lld bypassed=%lld savings=%d%% %s | ",
+ "%s%s"
+ "| Response bytes in: | %s | "
+ "| Compression in: | %s | "
+ "| Compression out: | %s | (%d%%) | "
+ "| Compression bypass: | %s | "
+ "| Total bytes saved: | %s | (%d%%) | "
+ " %s | ",
(px->fe_counters.comp_in || px->fe_counters.comp_byp) ? "":"",
U2H(px->fe_counters.bytes_out),
- px->fe_counters.comp_in, px->fe_counters.comp_out, px->fe_counters.comp_byp,
- px->fe_counters.comp_in ?
- (int)((px->fe_counters.comp_in - px->fe_counters.comp_out)*100/px->fe_counters.comp_in) : 0,
+ U2H(px->fe_counters.bytes_out),
+ U2H(px->fe_counters.comp_in),
+ U2H(px->fe_counters.comp_out),
+ px->fe_counters.comp_in ? (int)(px->fe_counters.comp_out * 100 / px->fe_counters.comp_in) : 0,
+ U2H(px->fe_counters.comp_byp),
+ U2H(px->fe_counters.comp_in - px->fe_counters.comp_out),
+ px->fe_counters.bytes_out ? (int)((px->fe_counters.comp_in - px->fe_counters.comp_out) * 100 / px->fe_counters.bytes_out) : 0,
(px->fe_counters.comp_in || px->fe_counters.comp_byp) ? "":"");
chunk_appendf(&trash,
@@ -3642,12 +3652,22 @@ static int stats_dump_be_stats(struct stream_interface *si, struct proxy *px, in
chunk_appendf(&trash,
/* bytes:out + compression stats (via hover): comp_in, comp_out, comp_byp */
- "%s%s compression: in=%lld out=%lld bypassed=%lld savings=%d%% %s | ",
+ "%s%s"
+ "| Response bytes in: | %s | "
+ "| Compression in: | %s | "
+ "| Compression out: | %s | (%d%%) | "
+ "| Compression bypass: | %s | "
+ "| Total bytes saved: | %s | (%d%%) | "
+ " %s | ",
(px->be_counters.comp_in || px->be_counters.comp_byp) ? "":"",
U2H(px->be_counters.bytes_out),
- px->be_counters.comp_in, px->be_counters.comp_out, px->be_counters.comp_byp,
- px->be_counters.comp_in ?
- (int)((px->be_counters.comp_in - px->be_counters.comp_out)*100/px->be_counters.comp_in) : 0,
+ U2H(px->be_counters.bytes_out),
+ U2H(px->be_counters.comp_in),
+ U2H(px->be_counters.comp_out),
+ px->be_counters.comp_in ? (int)(px->be_counters.comp_out * 100 / px->be_counters.comp_in) : 0,
+ U2H(px->be_counters.comp_byp),
+ U2H(px->be_counters.comp_in - px->be_counters.comp_out),
+ px->be_counters.bytes_out ? (int)((px->be_counters.comp_in - px->be_counters.comp_out) * 100 / px->be_counters.bytes_out) : 0,
(px->be_counters.comp_in || px->be_counters.comp_byp) ? "":"");
chunk_appendf(&trash,