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() {
|
func (m *Manager) reload() {
|
||||||
m.mtxScrape.Lock()
|
m.mtxScrape.Lock()
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
|
|
||||||
for setName, groups := range m.targetSets {
|
for setName, groups := range m.targetSets {
|
||||||
if _, ok := m.scrapePools[setName]; !ok {
|
if _, ok := m.scrapePools[setName]; !ok {
|
||||||
scrapeConfig, ok := m.scrapeConfigs[setName]
|
scrapeConfig, ok := m.scrapeConfigs[setName]
|
||||||
|
@ -214,9 +215,10 @@ func (m *Manager) warnIfTargetsRelabelledToSameLabels() {
|
||||||
activeTargets := make(map[uint64]*Target)
|
activeTargets := make(map[uint64]*Target)
|
||||||
for _, scrapePool := range m.scrapePools {
|
for _, scrapePool := range m.scrapePools {
|
||||||
for _, target := range scrapePool.activeTargets {
|
for _, target := range scrapePool.activeTargets {
|
||||||
t, ok := activeTargets[target.labels.Hash()]
|
lHash := target.labels.Hash()
|
||||||
|
t, ok := activeTargets[lHash]
|
||||||
if !ok {
|
if !ok {
|
||||||
activeTargets[target.labels.Hash()] = target
|
activeTargets[lHash] = target
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
level.Warn(m.logger).Log(
|
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) {
|
func TestManagerDuplicateAfterRelabellingWarning(t *testing.T) {
|
||||||
var output []interface{}
|
var output []interface{}
|
||||||
logger := log.Logger(log.LoggerFunc(func(keyvals ...interface{}) error {
|
logger := log.Logger(log.LoggerFunc(func(keyvals ...interface{}) error {
|
||||||
|
|
Loading…
Reference in a new issue