mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Add benchmark for warnIfTargetsRelabelledToSameLabels
Signed-off-by: darshanime <deathbullet@gmail.com>
This commit is contained in:
parent
d0849f45ff
commit
0e098c68f7
|
@ -169,6 +169,7 @@ func (m *Manager) reloader() {
|
|||
func (m *Manager) reload() {
|
||||
m.mtxScrape.Lock()
|
||||
var wg sync.WaitGroup
|
||||
|
||||
for setName, groups := range m.targetSets {
|
||||
if _, ok := m.scrapePools[setName]; !ok {
|
||||
scrapeConfig, ok := m.scrapeConfigs[setName]
|
||||
|
@ -214,9 +215,10 @@ func (m *Manager) warnIfTargetsRelabelledToSameLabels() {
|
|||
activeTargets := make(map[uint64]*Target)
|
||||
for _, scrapePool := range m.scrapePools {
|
||||
for _, target := range scrapePool.activeTargets {
|
||||
t, ok := activeTargets[target.labels.Hash()]
|
||||
lHash := target.labels.Hash()
|
||||
t, ok := activeTargets[lHash]
|
||||
if !ok {
|
||||
activeTargets[target.labels.Hash()] = target
|
||||
activeTargets[lHash] = target
|
||||
continue
|
||||
}
|
||||
level.Warn(m.logger).Log(
|
||||
|
|
|
@ -622,6 +622,31 @@ func TestManagerTargetsUpdates(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func BenchmarkManagerReload(b *testing.B) {
|
||||
opts := Options{}
|
||||
testRegistry := prometheus.NewRegistry()
|
||||
m, err := NewManager(&opts, nil, nil, testRegistry)
|
||||
require.NoError(b, err)
|
||||
|
||||
m.scrapePools = map[string]*scrapePool{}
|
||||
sp := &scrapePool{
|
||||
activeTargets: map[uint64]*Target{},
|
||||
}
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
sp.activeTargets[uint64(i)] = &Target{
|
||||
discoveredLabels: labels.FromStrings("__address__", fmt.Sprintf("foo-%d", i)),
|
||||
labels: labels.FromStrings("label_key", fmt.Sprintf("foo-%d", i)),
|
||||
}
|
||||
}
|
||||
|
||||
m.scrapePools["default"] = sp
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
m.reload()
|
||||
}
|
||||
}
|
||||
|
||||
func TestManagerDuplicateAfterRelabellingWarning(t *testing.T) {
|
||||
var output []interface{}
|
||||
logger := log.Logger(log.LoggerFunc(func(keyvals ...interface{}) error {
|
||||
|
|
Loading…
Reference in a new issue