Skip to content

Commit

Permalink
added possibility to select exporter's metric prefix for each of expo…
Browse files Browse the repository at this point in the history
…rters
  • Loading branch information
gusakk committed May 4, 2018
1 parent be784a4 commit c0f1ea7
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 9 deletions.
4 changes: 3 additions & 1 deletion cmd/load_exporter/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ func main() {
"how many metrics to expose per exporter")
labelCount = flag.Int("label-count", 100,
"how many labels to create per metric")
metricNamePrefix = flag.String("metric-prefix", "test",
"Metric's prefix for each metric of this exporter.")
)
flag.Parse()

tc := loadgen.NewIncCollector(*metricCount, *labelCount)
tc := loadgen.NewIncCollector(*metricCount, *labelCount, *metricNamePrefix)
prometheus.MustRegister(tc)
sigchan := make(chan os.Signal, 1)
signal.Notify(sigchan, syscall.SIGTERM)
Expand Down
4 changes: 3 additions & 1 deletion cmd/load_exporter_static/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ func main() {
"how many metrics to expose per exporter")
labelCount = flag.Int("label-count", 100,
"how many labels to create per metric")
metricNamePrefix = flag.String("metric-prefix", "test",
"Metric's prefix for each metric of this exporter.")
)
flag.Parse()

tc := loadgen.NewStaticCollector(*metricCount, *labelCount)
tc := loadgen.NewStaticCollector(*metricCount, *labelCount, *metricNamePrefix)
prometheus.MustRegister(tc)
sigchan := make(chan os.Signal, 1)
signal.Notify(sigchan, syscall.SIGTERM)
Expand Down
9 changes: 5 additions & 4 deletions loadgen/collectors.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"github.com/prometheus/client_golang/prometheus"
"math/rand"
"strconv"
"strings"
)

type (
Expand All @@ -15,10 +16,10 @@ type (
}
)

func NewIncCollector(nmetrics, nlabels int) *incCollector {
func NewIncCollector(nmetrics, nlabels int, metricNamePrefix string) *incCollector {
descs := make([]*prometheus.Desc, nmetrics)
for i := 0; i < nmetrics; i++ {
metname := fmt.Sprintf("test%d", i)
metname := strings.Join([]string{metricNamePrefix, strconv.Itoa(i)}, "")
descs[i] = prometheus.NewDesc(metname, metname, []string{"lab"}, nil)
}
return &incCollector{descs: descs, labelCount: nlabels}
Expand Down Expand Up @@ -55,11 +56,11 @@ type (
}
)

func NewStaticCollector(nmetrics, nlabels int) *staticCollector {
func NewStaticCollector(nmetrics, nlabels int, metricNamePrefix string) *staticCollector {
descs := make([]*prometheus.Desc, nmetrics)
metrics := make([]prometheus.Metric, 0, nlabels*nmetrics)
for i := 0; i < nmetrics; i++ {
metname := fmt.Sprintf("test%d", i)
metname := strings.Join([]string{metricNamePrefix, strconv.Itoa(i)}, "")
desc := prometheus.NewDesc(metname, metname, []string{"lab"}, nil)
descs[i] = desc
for j := 0; j < nlabels; j++ {
Expand Down
7 changes: 4 additions & 3 deletions prombench.go
Original file line number Diff line number Diff line change
Expand Up @@ -431,18 +431,19 @@ func startRunInterval(ctx context.Context, ri RunIntervalSpec) func() {
func startExporters(le loadgen.LoadExporter, esl ExporterSpecList, firstPort int) int {
log.Printf("starting exporters: %s", esl.String())
exporterCount := 0
metricPrefix := "test"
for _, exporterSpec := range esl {
for i := 0; i < exporterSpec.Count; i++ {
var exporter loadgen.HttpExporter
switch exporterSpec.Exporter {
case ExporterInc:
exporter = loadgen.NewHttpExporter(loadgen.NewIncCollector(100, 100))
exporter = loadgen.NewHttpExporter(loadgen.NewIncCollector(100, 100, metricPrefix))
case ExporterStatic:
exporter = loadgen.NewHttpExporter(loadgen.NewStaticCollector(100, 100))
exporter = loadgen.NewHttpExporter(loadgen.NewStaticCollector(100, 100, metricPrefix))
case ExporterRandCyclic:
exporter = loadgen.NewHttpExporter(loadgen.NewRandCyclicCollector(100, 100, 100000))
case ExporterOscillate:
exporter = loadgen.NewReplayHandler(loadgen.NewHttpExporter(loadgen.NewIncCollector(100, 100)))
exporter = loadgen.NewReplayHandler(loadgen.NewHttpExporter(loadgen.NewIncCollector(100, 100, metricPrefix)))
default:
log.Fatalf("invalid exporter '%s'", exporterSpec.Exporter)
}
Expand Down

0 comments on commit c0f1ea7

Please sign in to comment.