@@ -20,7 +20,6 @@ import (
2020 "net/url"
2121 "regexp"
2222 "strings"
23- "sync"
2423 "time"
2524
2625 stdErrors "errors"
@@ -179,7 +178,11 @@ func HandleUpload(event HostEvent) error {
179178 }
180179
181180 ptEvent .StatusMsg = ProcessingStatus
182- bufferEvalEvents (sys .InventoryID , sys .RhAccountID , & ptEvent )
181+ // if event.Type == "created" {
182+ // // TODO: implement
183+ // } else {
184+ updatedEventsBuffer .bufferEvalEvents (sys .InventoryID , sys .RhAccountID , & ptEvent , & evalWriter )
185+ // }
183186 logAndObserve (UploadSuccess , ReceivedSuccess , & event , & ptEvent , tStart , SuccessStatus , false )
184187 return nil
185188}
@@ -261,66 +264,6 @@ func sendPayloadStatus(w mqueue.Writer, event mqueue.PayloadTrackerEvent, status
261264 }
262265}
263266
264- // accumulate events and create group PlatformEvents to save some resources
265- var evalBufferSize = 5 * mqueue .BatchSize
266- var eBuffer = struct {
267- EvalBuffer mqueue.EvalDataSlice
268- PtBuffer mqueue.PayloadTrackerEvents
269- Lock sync.Mutex
270- }{
271- EvalBuffer : make (mqueue.EvalDataSlice , 0 , evalBufferSize + 1 ),
272- PtBuffer : make (mqueue.PayloadTrackerEvents , 0 , evalBufferSize + 1 ),
273- Lock : sync.Mutex {},
274- }
275- var flushTimer = time .AfterFunc (87600 * time .Hour , func () {
276- utils .LogInfo (FlushedTimeoutBuffer )
277- flushEvalEvents ()
278- })
279-
280- // send events after full buffer or timeout
281- func bufferEvalEvents (inventoryID string , rhAccountID int , ptEvent * mqueue.PayloadTrackerEvent ) {
282- tStart := time .Now ()
283- defer utils .ObserveSecondsSince (tStart , messagePartDuration .WithLabelValues ("buffer-eval-events" ))
284-
285- eBuffer .Lock .Lock ()
286- evalData := mqueue.EvalData {
287- InventoryID : inventoryID ,
288- RhAccountID : rhAccountID ,
289- OrgID : ptEvent .OrgID ,
290- RequestID : * ptEvent .RequestID ,
291- }
292- eBuffer .EvalBuffer = append (eBuffer .EvalBuffer , evalData )
293- eBuffer .PtBuffer = append (eBuffer .PtBuffer , * ptEvent )
294- eBuffer .Lock .Unlock ()
295-
296- flushTimer .Reset (uploadEvalTimeout )
297- if len (eBuffer .EvalBuffer ) >= evalBufferSize {
298- utils .LogInfo (FlushedFullBuffer )
299- flushEvalEvents ()
300- }
301- }
302-
303- func flushEvalEvents () {
304- tStart := time .Now ()
305- eBuffer .Lock .Lock ()
306- defer eBuffer .Lock .Unlock ()
307- err := mqueue .SendMessages (base .Context , evalWriter , eBuffer .EvalBuffer )
308- if err != nil {
309- utils .LogError ("err" , err .Error (), ErrorKafkaSend )
310- }
311- utils .ObserveSecondsSince (tStart , messagePartDuration .WithLabelValues ("buffer-sent-evaluator" ))
312- err = mqueue .SendMessages (base .Context , ptWriter , eBuffer .PtBuffer )
313- if err != nil {
314- utils .LogWarn ("err" , err .Error (), WarnPayloadTracker )
315- }
316- utils .ObserveSecondsSince (tStart , messagePartDuration .WithLabelValues ("buffer-sent-payload-tracker" ))
317- utils .LogDebug ("evaluator_messages" , len (eBuffer .EvalBuffer ),
318- "payload_tracker_messages" , len (eBuffer .PtBuffer ), "flushed buffers" )
319- // empty buffer
320- eBuffer .EvalBuffer = eBuffer .EvalBuffer [:0 ]
321- eBuffer .PtBuffer = eBuffer .PtBuffer [:0 ]
322- }
323-
324267func updateReporterCounter (reporter string ) {
325268 if _ , ok := validReporters [reporter ]; ok {
326269 receivedFromReporter .WithLabelValues (reporter ).Inc ()
0 commit comments