@@ -360,7 +360,6 @@ func (oDb *DB) SvcmonLogLastUpdate(ctx context.Context, l ...*DBInstanceStatusLo
360360 if len (l ) == 0 {
361361 return nil
362362 }
363- oDb .Metrics .InstanceStatusLogInsert .Add (float64 (len (l )))
364363 placeholders := strings .Repeat (valueList + ", " , len (l )- 1 ) + valueList
365364
366365 query := fmt .Sprintf ("INSERT INTO `svcmon_log_last` %s VALUES %s ON DUPLICATE KEY UPDATE %s" , insertColList , placeholders , onDuplicateAssignment )
@@ -379,7 +378,6 @@ func (oDb *DB) SvcmonLogLastExtend(ctx context.Context, nodeID string, objectIDs
379378 if len (objectIDs ) == 0 {
380379 return nil
381380 }
382- oDb .Metrics .InstanceStatusLogExtend .Add (float64 (len (objectIDs )))
383381 placeholders := strings .Repeat ("?," , len (objectIDs )- 1 ) + "?"
384382
385383 query := fmt .Sprintf ("UPDATE `svcmon_log_last` SET `mon_end` = NOW() WHERE `node_id` = ? AND `svc_id` in (%s)" , placeholders )
@@ -389,8 +387,12 @@ func (oDb *DB) SvcmonLogLastExtend(ctx context.Context, nodeID string, objectIDs
389387 args [i + 1 ] = v
390388 }
391389
392- _ , err := oDb .ExecContext (ctx , query , args ... )
393- return err
390+ if count , err := oDb .execCountContext (ctx , query , args ... ); err != nil {
391+ return err
392+ } else if count > 0 {
393+ oDb .Metrics .InstanceStatusLogExtend .Add (float64 (count ))
394+ }
395+ return nil
394396}
395397
396398func (oDb * DB ) SvcmonLogUpdate (ctx context.Context , l ... * DBInstanceStatusLog ) error {
@@ -403,7 +405,6 @@ func (oDb *DB) SvcmonLogUpdate(ctx context.Context, l ...*DBInstanceStatusLog) e
403405 if len (l ) == 0 {
404406 return nil
405407 }
406- oDb .Metrics .InstanceStatusLogChange .Add (float64 (len (l )))
407408 placeholders := strings .Repeat (valueList + ", " , len (l )- 1 ) + valueList
408409
409410 query := fmt .Sprintf ("INSERT INTO `svcmon_log` %s VALUES %s" , insertColList , placeholders )
@@ -413,8 +414,12 @@ func (oDb *DB) SvcmonLogUpdate(ctx context.Context, l ...*DBInstanceStatusLog) e
413414 v .MonFsStatus , v .MonDiskStatus , v .MonShareStatus , v .MonContainerStatus , v .MonAppStatus , v .MonBeginAt )
414415 }
415416
416- _ , err := oDb .ExecContext (ctx , query , args ... )
417- return err
417+ if count , err := oDb .execCountContext (ctx , query , args ... ); err != nil {
418+ return err
419+ } else if count > 0 {
420+ oDb .Metrics .InstanceStatusLogChange .Add (float64 (count ))
421+ }
422+ return nil
418423}
419424
420425func (oDb * DB ) SvcmonUpdate (ctx context.Context , l ... * DBInstanceStatus ) error {
@@ -445,7 +450,6 @@ func (oDb *DB) SvcmonUpdate(ctx context.Context, l ...*DBInstanceStatus) error {
445450 if len (l ) == 0 {
446451 return nil
447452 }
448- oDb .Metrics .InstanceStatusUpdate .Add (float64 (len (l )))
449453 placeholders := strings .Repeat (valueList + ", " , len (l )- 1 ) + valueList
450454 args := make ([]any , 0 , 17 * len (l ))
451455 for _ , v := range l {
@@ -460,11 +464,12 @@ func (oDb *DB) SvcmonUpdate(ctx context.Context, l ...*DBInstanceStatus) error {
460464 insertColList , placeholders , onDuplicateAssignment )
461465
462466 // TODO check vs v2
463- _ , err := oDb .ExecContext (ctx , query , args ... )
464- if err != nil {
467+ if count , err := oDb .execCountContext (ctx , query , args ... ); err != nil {
465468 return fmt .Errorf ("failed with instance status count %d query len %d: %s: %w" , len (l ), len (query ), query , err )
469+ } else if count > 0 {
470+ oDb .SetChange ("svcmon" )
471+ oDb .Metrics .InstanceStatusUpdate .Add (float64 (count ))
466472 }
467- oDb .SetChange ("svcmon" )
468473 return nil
469474}
470475
@@ -485,6 +490,7 @@ func (oDb *DB) DeleteNodeIDResmonInstances(ctx context.Context, nodeID string, o
485490 return fmt .Errorf ("DeleteNodeIDResmonInstances %s [%v]: %w" , nodeID , objectIDs , err )
486491 } else if count > 0 {
487492 oDb .SetChange ("resmon" )
493+ oDb .Metrics .ResourceStatusDelete .Add (float64 (count ))
488494 }
489495 return nil
490496}
@@ -500,6 +506,9 @@ func (oDb *DB) InstanceResourcesDeleteObsolete(ctx context.Context, svcID, nodeI
500506 return fmt .Errorf ("InstanceResourcesDeleteObsolete: %w" , err )
501507 } else {
502508 slog .Debug (fmt .Sprintf ("InstanceResourcesDeleteObsolete %s@%s: %d" , svcID , nodeID , count ))
509+ if count > 0 {
510+ oDb .Metrics .ResourceStatusDelete .Add (float64 (count ))
511+ }
503512 }
504513 return nil
505514}
@@ -537,10 +546,12 @@ func (oDb *DB) InstanceResourceInfoUpdate(ctx context.Context, svcID, nodeID str
537546 query := fmt .Sprintf ("INSERT INTO `resinfo` %s VALUES %s ON DUPLICATE KEY UPDATE %s" ,
538547 insertColList , placeholders , onDuplicateAssignment )
539548
540- if _ , err := oDb .ExecContext (ctx , query , args ... ); err != nil {
549+ if count , err := oDb .execCountContext (ctx , query , args ... ); err != nil {
541550 return err
551+ } else if count > 0 {
552+ oDb .SetChange ("resinfo" )
553+ oDb .Metrics .ResourceInfoUpdate .Add (float64 (count ))
542554 }
543- oDb .SetChange ("resinfo" )
544555 return nil
545556}
546557
@@ -551,6 +562,7 @@ func (oDb *DB) InstanceResourceInfoDelete(ctx context.Context, svcID, nodeID str
551562 return fmt .Errorf ("query %s: %w" , query , err )
552563 } else if count > 0 {
553564 oDb .SetChange ("resinfo" )
565+ oDb .Metrics .ResourceInfoDelete .Add (float64 (count ))
554566 }
555567 return nil
556568}
@@ -637,13 +649,15 @@ func (oDb *DB) InstanceResourceLogUpdate(ctx context.Context, res *DBInstanceRes
637649 if _ , err := oDb .ExecContext (ctx , queryExtendIntervalOfCurrent , res .SvcID , res .NodeID , res .RID ); err != nil {
638650 return fmt .Errorf ("extend services_log_last: %w" , err )
639651 }
652+ oDb .Metrics .ResourceStatusLogExtend .Inc ()
640653 return nil
641654 } else {
642655 // the avail value will change, save interval of previous status, log value before change
643656 if _ , err := oDb .ExecContext (ctx , querySaveIntervalOfPreviousBeforeTransition ,
644657 res .SvcID , res .NodeID , res .RID , previousBegin , previousStatus , previousLog ); err != nil {
645658 return fmt .Errorf ("add services_log change: %w" , err )
646659 }
660+ oDb .Metrics .ResourceStatusLogChange .Inc ()
647661 // reset begin and end interval for new status, log
648662 return setLogLast ()
649663 }
0 commit comments