metrics: added NewCounterForced (#17919)
This commit is contained in:
		
							parent
							
								
									2868acd80b
								
							
						
					
					
						commit
						4466c7b971
					
				| @ -1,6 +1,8 @@ | ||||
| package metrics | ||||
| 
 | ||||
| import "sync/atomic" | ||||
| import ( | ||||
| 	"sync/atomic" | ||||
| ) | ||||
| 
 | ||||
| // Counters hold an int64 value that can be incremented and decremented.
 | ||||
| type Counter interface { | ||||
| @ -20,6 +22,17 @@ func GetOrRegisterCounter(name string, r Registry) Counter { | ||||
| 	return r.GetOrRegister(name, NewCounter).(Counter) | ||||
| } | ||||
| 
 | ||||
| // GetOrRegisterCounterForced returns an existing Counter or constructs and registers a
 | ||||
| // new Counter no matter the global switch is enabled or not.
 | ||||
| // Be sure to unregister the counter from the registry once it is of no use to
 | ||||
| // allow for garbage collection.
 | ||||
| func GetOrRegisterCounterForced(name string, r Registry) Counter { | ||||
| 	if nil == r { | ||||
| 		r = DefaultRegistry | ||||
| 	} | ||||
| 	return r.GetOrRegister(name, NewCounterForced).(Counter) | ||||
| } | ||||
| 
 | ||||
| // NewCounter constructs a new StandardCounter.
 | ||||
| func NewCounter() Counter { | ||||
| 	if !Enabled { | ||||
| @ -28,6 +41,12 @@ func NewCounter() Counter { | ||||
| 	return &StandardCounter{0} | ||||
| } | ||||
| 
 | ||||
| // NewCounterForced constructs a new StandardCounter and returns it no matter if
 | ||||
| // the global switch is enabled or not.
 | ||||
| func NewCounterForced() Counter { | ||||
| 	return &StandardCounter{0} | ||||
| } | ||||
| 
 | ||||
| // NewRegisteredCounter constructs and registers a new StandardCounter.
 | ||||
| func NewRegisteredCounter(name string, r Registry) Counter { | ||||
| 	c := NewCounter() | ||||
| @ -38,6 +57,19 @@ func NewRegisteredCounter(name string, r Registry) Counter { | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| // NewRegisteredCounterForced constructs and registers a new StandardCounter
 | ||||
| // and launches a goroutine no matter the global switch is enabled or not.
 | ||||
| // Be sure to unregister the counter from the registry once it is of no use to
 | ||||
| // allow for garbage collection.
 | ||||
| func NewRegisteredCounterForced(name string, r Registry) Counter { | ||||
| 	c := NewCounterForced() | ||||
| 	if nil == r { | ||||
| 		r = DefaultRegistry | ||||
| 	} | ||||
| 	r.Register(name, c) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| // CounterSnapshot is a read-only copy of another Counter.
 | ||||
| type CounterSnapshot int64 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user