initial commit
This commit is contained in:
31
internal/collector/registry.go
Normal file
31
internal/collector/registry.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package collector
|
||||
|
||||
import (
|
||||
"sync"
|
||||
)
|
||||
|
||||
type Registry struct {
|
||||
collectors []Collector
|
||||
mutex sync.RWMutex
|
||||
}
|
||||
|
||||
func NewRegistry() *Registry {
|
||||
return &Registry{
|
||||
collectors: make([]Collector, 0),
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Registry) Register(collector Collector) {
|
||||
r.mutex.Lock()
|
||||
defer r.mutex.Unlock()
|
||||
r.collectors = append(r.collectors, collector)
|
||||
}
|
||||
|
||||
func (r *Registry) GetCollectors() []Collector {
|
||||
r.mutex.RLock()
|
||||
defer r.mutex.RUnlock()
|
||||
|
||||
result := make([]Collector, len(r.collectors))
|
||||
copy(result, r.collectors)
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user