github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/sub/scanner/metrics.go (about) 1 package scanner 2 3 import ( 4 "github.com/Cloud-Foundations/tricorder/go/tricorder" 5 "github.com/Cloud-Foundations/tricorder/go/tricorder/units" 6 ) 7 8 var latencyBucketer *tricorder.Bucketer 9 var scanTimeDistribution *tricorder.CumulativeDistribution 10 11 func init() { 12 latencyBucketer = tricorder.NewGeometricBucketer(1, 10e3) 13 scanTimeDistribution = latencyBucketer.NewCumulativeDistribution() 14 tricorder.RegisterMetric("/scan-time", scanTimeDistribution, 15 units.Second, "scan time") 16 } 17 18 func (configuration *Configuration) registerMetrics( 19 dir *tricorder.DirectorySpec) error { 20 scannerDir, err := dir.RegisterDirectory("scanner") 21 if err != nil { 22 return err 23 } 24 err = configuration.FsScanContext.RegisterMetrics(scannerDir) 25 if err != nil { 26 return err 27 } 28 netDir, err := dir.RegisterDirectory("network") 29 if err != nil { 30 return err 31 } 32 err = configuration.NetworkReaderContext.RegisterMetrics(netDir, 33 units.BytePerSecond, "network speed") 34 if err != nil { 35 return err 36 } 37 if configuration.ScanFilter != nil { 38 list := tricorder.NewList(configuration.ScanFilter.FilterLines, false) 39 err := scannerDir.RegisterMetric("scan-filter", list, units.None, 40 "scan filter lines") 41 if err != nil { 42 return err 43 } 44 } 45 return nil 46 }