This is an automated email from the ASF dual-hosted git repository. cmcfarlen pushed a commit to branch 10.2.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 4fbb38df68baa325296d2ba22ccf8a479ff8d3ec Author: Mo Chen <[email protected]> AuthorDate: Sat Jun 20 20:58:40 2026 -0500 compress: count uncompressed input bytes (#13287) Add proxy.process.plugin.compress.bytes_in to track the volume of data the compress plugin processes. Co-authored-by: Claude Opus 4.8 <[email protected]> (cherry picked from commit 1e109ce2d47d6a7c523d8116afc265699ff686d5) --- plugins/compress/compress.cc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/compress/compress.cc b/plugins/compress/compress.cc index 30cb749d7b..58fd52802f 100644 --- a/plugins/compress/compress.cc +++ b/plugins/compress/compress.cc @@ -28,6 +28,7 @@ #include "tscore/ink_config.h" #include <tsutil/PostScript.h> +#include <tsutil/Metrics.h> #include "ts/ts.h" #include "tscore/ink_defs.h" @@ -349,8 +350,18 @@ compress_transform_init(TSCont contp, Data *data) TSHandleMLocRelease(bufp, TS_NULL_MLOC, hdr_loc); } +static ts::Metrics::Counter::AtomicType *compress_stat_bytes_in = nullptr; + static void -compress_transform_one(Data *data, TSIOBufferReader upstream_reader, int amount) +init_compress_stats() +{ + if (compress_stat_bytes_in == nullptr) { + compress_stat_bytes_in = ts::Metrics::Counter::createPtr("proxy.process.plugin.compress.bytes_in"); + } +} + +static void +compress_transform_one(Data *data, TSIOBufferReader upstream_reader, int64_t amount) { TSIOBufferBlock downstream_blkp; int64_t upstream_length; @@ -371,6 +382,10 @@ compress_transform_one(Data *data, TSIOBufferReader upstream_reader, int amount) upstream_length = amount; } + if (compress_stat_bytes_in != nullptr) { + compress_stat_bytes_in->increment(upstream_length); + } + #if HAVE_ZSTD_H if (data->compression_type & COMPRESSION_TYPE_ZSTD && (data->compression_algorithms & ALGORITHM_ZSTD)) { Zstd::transform_one(data, upstream_buffer, upstream_length); @@ -1032,6 +1047,8 @@ TSPluginInit(int argc, const char *argv[]) fatal("the compress plugin failed to register"); } + Compress::init_compress_stats(); + info("TSPluginInit %s", argv[0]); if (!Compress::global_hidden_header_name) { @@ -1060,6 +1077,7 @@ TSRemapInit(TSRemapInterface *api_info, char *errbuf, int errbuf_size) { CHECK_REMAP_API_COMPATIBILITY(api_info, errbuf, errbuf_size); info("The compress plugin is successfully initialized"); + Compress::init_compress_stats(); return TS_SUCCESS; }
