From 9dea20e1cdc7125cde991c46c0559909d9c82de6 Mon Sep 17 00:00:00 2001 From: goshansmails <153861063+goshansmails@users.noreply.github.com> Date: Tue, 20 Aug 2024 16:10:25 +0300 Subject: [PATCH] Less allocations in mask plugin (#656) * Add flag --------- Co-authored-by: george pogosyan --- plugin/action/mask/mask.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugin/action/mask/mask.go b/plugin/action/mask/mask.go index 0a293afd..98b4bb94 100644 --- a/plugin/action/mask/mask.go +++ b/plugin/action/mask/mask.go @@ -502,7 +502,9 @@ func (p *Plugin) Do(event *pipeline.Event) pipeline.ActionResult { } p.sourceBuf = append(p.sourceBuf[:0], value...) - p.maskBuf = append(p.maskBuf[:0], p.sourceBuf...) + // valueMasked is not the same as maskApplied; + // it shows if current node is masked and really needs to be changed + valueMasked := false for i := range p.config.Masks { mask := &p.config.Masks[i] if mask.Re != "" && !valueIsCommonMatched { @@ -515,6 +517,8 @@ func (p *Plugin) Do(event *pipeline.Event) pipeline.ActionResult { if !locApplied { continue } + valueMasked = true + if mask.AppliedField != "" { event.Root.AddFieldNoAlloc(event.Root, mask.AppliedField).MutateToString(mask.AppliedValue) } @@ -524,7 +528,10 @@ func (p *Plugin) Do(event *pipeline.Event) pipeline.ActionResult { maskApplied = true } - v.MutateToString(string(p.maskBuf)) + + if valueMasked { + v.MutateToString(string(p.maskBuf)) + } } if p.config.MaskAppliedField != "" && maskApplied {