@@ -155,7 +155,6 @@ func DetectTableChanges(ctx context.Context, md *sources.SourceConn, storageCh c
155155 for _ , dr := range data {
156156 objIdent := dr ["tag_table" ].(string )
157157 prevHash , ok := hostState ["table_hashes" ][objIdent ]
158- //log.Debug("inspecting table:", objIdent, "hash:", prev_hash)
159158 if ok { // we have existing state
160159 if prevHash != dr ["md5" ].(string ) {
161160 log .GetLogger (ctx ).Info ("detected DDL change in table:" , dr ["tag_table" ])
@@ -373,52 +372,60 @@ func DetectConfigurationChanges(ctx context.Context, md *sources.SourceConn, sto
373372 var firstRun bool
374373 var changeCounts ChangeDetectionResults
375374
376- log .GetLogger (ctx ).Debugf ("[%s][%s] checking for configuration changes..." , md .Name , specialMetricChangeEvents )
375+ logger := log .GetLogger (ctx ).WithField ("source" , md .Name ).WithField ("metric" , specialMetricChangeEvents )
376+
377377 if _ , ok := hostState ["configuration_hashes" ]; ! ok {
378378 firstRun = true
379379 hostState ["configuration_hashes" ] = make (map [string ]string )
380380 }
381381
382382 mvp , ok := metricDefs .GetMetricDef ("configuration_hashes" )
383383 if ! ok {
384- log . GetLogger ( ctx ). Errorf ( "[%s][%s] could not get configuration_hashes sql", md . Name , specialMetricChangeEvents )
384+ logger . Error ( " could not get configuration_hashes sql" )
385385 return changeCounts
386386 }
387387
388- data , err := QueryMeasurements (ctx , md , mvp .GetSQL (int ( md .Version ) ))
388+ rows , err := md . Conn . Query (ctx , mvp .GetSQL (md .Version ))
389389 if err != nil {
390- log . GetLogger ( ctx ). Errorf ( "[%s][%s] could not read configuration_hashes from monitored host: %v" , md . Name , specialMetricChangeEvents , err )
390+ logger . Error ( " could not read configuration_hashes from monitored host: " , err )
391391 return changeCounts
392392 }
393-
394- for _ , dr := range data {
395- objIdent := dr ["tag_setting" ].(string )
396- objValue := dr ["value" ].(string )
393+ defer rows .Close ()
394+ var (
395+ objIdent , objValue string
396+ epoch int64
397+ )
398+ for rows .Next () {
399+ if rows .Scan (& epoch , & objIdent , & objValue ) != nil {
400+ return changeCounts
401+ }
397402 prevРash , ok := hostState ["configuration_hashes" ][objIdent ]
398403 if ok { // we have existing state
399404 if prevРash != objValue {
400- if objIdent == "connection_ID" {
401- continue // ignore some weird Azure managed PG service setting
402- }
403- log .GetLogger (ctx ).Warningf ("[%s][%s] detected settings change: %s = %s (prev: %s)" ,
404- md .Name , specialMetricChangeEvents , objIdent , objValue , prevРash )
405- dr ["event" ] = "alter"
406- detectedChanges = append (detectedChanges , dr )
405+ logger .Warningf ("detected settings change: %s = %s (prev: %s)" , objIdent , objValue , prevРash )
406+ detectedChanges = append (detectedChanges , metrics.Measurement {
407+ metrics .EpochColumnName : epoch ,
408+ "tag_setting" : objIdent ,
409+ "value" : objValue ,
410+ "event" : "alter" })
407411 hostState ["configuration_hashes" ][objIdent ] = objValue
408412 changeCounts .Altered ++
409413 }
410414 } else { // check for new, delete not relevant here (pg_upgrade)
411- if ! firstRun {
412- log .GetLogger (ctx ).Warningf ("[%s][%s] detected new setting: %s" , md .Name , specialMetricChangeEvents , objIdent )
413- dr ["event" ] = "create"
414- detectedChanges = append (detectedChanges , dr )
415- changeCounts .Created ++
416- }
417415 hostState ["configuration_hashes" ][objIdent ] = objValue
416+ if firstRun {
417+ continue
418+ }
419+ logger .Warning ("detected new setting: " , objIdent )
420+ detectedChanges = append (detectedChanges , metrics.Measurement {
421+ metrics .EpochColumnName : epoch ,
422+ "tag_setting" : objIdent ,
423+ "value" : objValue ,
424+ "event" : "create" })
425+ changeCounts .Created ++
418426 }
419427 }
420428
421- log .GetLogger (ctx ).Debugf ("[%s][%s] detected %d configuration changes" , md .Name , specialMetricChangeEvents , len (detectedChanges ))
422429 if len (detectedChanges ) > 0 {
423430 storageCh <- metrics.MeasurementEnvelope {
424431 DBName : md .Name ,
@@ -427,7 +434,6 @@ func DetectConfigurationChanges(ctx context.Context, md *sources.SourceConn, sto
427434 CustomTags : md .CustomTags ,
428435 }
429436 }
430-
431437 return changeCounts
432438}
433439
0 commit comments