fix: use master IP if PrometheusPushgatewayURL IP is not set in worker

This commit is contained in:
徐聪
2022-07-25 22:47:31 +08:00
parent 6818d2cd43
commit 14e157320d
3 changed files with 21 additions and 17 deletions

View File

@@ -7,6 +7,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
"strings"
"sync"
"time"
@@ -209,6 +210,18 @@ func (b *HRPBoomer) runTestCases(testCases []*TCase, profile *boomer.Profile) {
testcases = append(testcases, tesecase)
}
if profile.PrometheusPushgatewayURL != "" {
urlSlice := strings.Split(profile.PrometheusPushgatewayURL, ":")
if len(urlSlice) != 2 {
profile.PrometheusPushgatewayURL = ""
} else {
if urlSlice[0] == "" {
urlSlice[0] = b.Boomer.GetMasterHost()
}
}
profile.PrometheusPushgatewayURL = strings.Join(urlSlice, ":")
}
b.SetProfile(profile)
b.InitBoomer()
log.Info().Interface("testcases", testcases).Interface("profile", profile).Msg("run tasks successful")

View File

@@ -148,26 +148,12 @@ func makeHRPBoomer() *hrp.HRPBoomer {
os.Exit(1)
}
}
hrpBoomer := hrp.NewStandaloneBoomer(boomArgs.SpawnCount, boomArgs.SpawnRate)
hrpBoomer.SetRateLimiter(boomArgs.MaxRPS, boomArgs.RequestIncreaseRate)
if boomArgs.LoopCount > 0 {
hrpBoomer.SetLoopCount(boomArgs.LoopCount)
}
if !boomArgs.DisableConsoleOutput {
hrpBoomer.AddOutput(boomer.NewConsoleOutput())
}
if boomArgs.PrometheusPushgatewayURL != "" {
hrpBoomer.AddOutput(boomer.NewPrometheusPusherOutput(boomArgs.PrometheusPushgatewayURL, "hrp", hrpBoomer.GetMode()))
}
hrpBoomer.SetDisableKeepAlive(boomArgs.DisableKeepalive)
hrpBoomer.SetDisableCompression(boomArgs.DisableCompression)
hrpBoomer.SetClientTransport()
if venv != "" {
hrpBoomer.SetPython3Venv(venv)
}
hrpBoomer.EnableCPUProfile(boomArgs.CPUProfile, boomArgs.CPUProfileDuration)
hrpBoomer.EnableMemoryProfile(boomArgs.MemoryProfile, boomArgs.MemoryProfileDuration)
hrpBoomer.EnableGracefulQuit()
hrpBoomer.SetProfile(&boomArgs.Profile)
hrpBoomer.EnableGracefulQuit(context.Background())
hrpBoomer.InitBoomer()
return hrpBoomer
}

View File

@@ -210,6 +210,11 @@ func (b *Boomer) ParseTestCasesChan() chan bool {
return b.masterRunner.parseTestCasesChan
}
// GetMasterHost returns master IP
func (b *Boomer) GetMasterHost() string {
return b.masterHost
}
// GetState gets worker state
func (b *Boomer) GetState() int32 {
switch b.mode {