mirror of
				https://github.com/ClusterCockpit/cc-metric-collector.git
				synced 2025-11-04 02:35:07 +01:00 
			
		
		
		
	Collectors in parallel (#74)
* Provide info to CollectorManager whether the collector can be executed in parallel with others * Split serial and parallel collectors. Read in parallel first
This commit is contained in:
		@@ -29,6 +29,7 @@ type DiskstatCollector struct {
 | 
			
		||||
 | 
			
		||||
func (m *DiskstatCollector) Init(config json.RawMessage) error {
 | 
			
		||||
	m.name = "DiskstatCollector"
 | 
			
		||||
	m.parallel = true
 | 
			
		||||
	m.meta = map[string]string{"source": m.name, "group": "Disk"}
 | 
			
		||||
	m.setup()
 | 
			
		||||
	if len(config) > 0 {
 | 
			
		||||
@@ -77,7 +78,11 @@ func (m *DiskstatCollector) Read(interval time.Duration, output chan lp.CCMetric
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		path := strings.Replace(linefields[1], `\040`, " ", -1)
 | 
			
		||||
		stat := syscall.Statfs_t{}
 | 
			
		||||
		stat := syscall.Statfs_t{
 | 
			
		||||
			Blocks: 0,
 | 
			
		||||
			Bsize:  0,
 | 
			
		||||
			Bfree:  0,
 | 
			
		||||
		}
 | 
			
		||||
		err := syscall.Statfs(path, &stat)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			continue
 | 
			
		||||
@@ -98,9 +103,11 @@ func (m *DiskstatCollector) Read(interval time.Duration, output chan lp.CCMetric
 | 
			
		||||
			y.AddMeta("unit", "GBytes")
 | 
			
		||||
			output <- y
 | 
			
		||||
		}
 | 
			
		||||
		perc := (100 * (total - free)) / total
 | 
			
		||||
		if perc > part_max_used {
 | 
			
		||||
			part_max_used = perc
 | 
			
		||||
		if total > 0 {
 | 
			
		||||
			perc := (100 * (total - free)) / total
 | 
			
		||||
			if perc > part_max_used {
 | 
			
		||||
				part_max_used = perc
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	y, err := lp.New("part_max_used", map[string]string{"type": "node"}, m.meta, map[string]interface{}{"value": int(part_max_used)}, time.Now())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user