fixes
This commit is contained in:
parent
1ece28029c
commit
9d843a62a1
26
README.md
26
README.md
|
|
@ -8,19 +8,15 @@ Run `./generate-template-clients.sh > clients.xml` and upload template with clie
|
||||||
## Run benchmark
|
## Run benchmark
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
Usage of zabbix-bench:
|
make && ./bin/zabbix-bench -zabbix "192.168.1.1:10051" -packet-delay 1ms
|
||||||
-client int
|
go build -o ./bin/zabbix-bench ./src/main.go
|
||||||
number of concurrent clients (default 200)
|
Start 200 clients with packet size 100 metric and delay between packets 1ms
|
||||||
-client-format string
|
progress 1 s, 13100 metric/s
|
||||||
format of client name (default "client-%d")
|
progress 2 s, 15300 metric/s
|
||||||
-metric-format string
|
progress 3 s, 11200 metric/s
|
||||||
format of metric name in packet (default "metric-%d")
|
progress 4 s, 17500 metric/s
|
||||||
-packet-delay duration
|
progress 5 s, 13100 metric/s
|
||||||
delay of send packet (default 100ms)
|
^C
|
||||||
-packet-send-timeout duration
|
-----------------------------
|
||||||
packet send timeout (default 10ms)
|
Total processed: 70300 (11716 metric/s)
|
||||||
-packet-size int
|
|
||||||
count of metric in packet (default 100)
|
|
||||||
-zabbix string
|
|
||||||
address of zabbix server (default "127.0.0.1:10051")
|
|
||||||
```
|
```
|
||||||
|
|
|
||||||
13
src/main.go
13
src/main.go
|
|
@ -43,13 +43,14 @@ func main() {
|
||||||
go StartClient(i)
|
go StartClient(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
os.Stdout.WriteString(fmt.Sprintf("Start %d clients with packet size %d metric and delay between packets %v\n", *argClientCount, *argPacketSize, *argPacketDelay))
|
||||||
ticker := time.Tick(time.Second)
|
ticker := time.Tick(time.Second)
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ticker:
|
case <-ticker:
|
||||||
mutex.Lock()
|
mutex.Lock()
|
||||||
|
os.Stdout.WriteString(fmt.Sprintf("progress %d s, %d metric/s\n", sec, counter))
|
||||||
sec += 1
|
sec += 1
|
||||||
os.Stdout.WriteString(fmt.Sprintf("Metric sended: %d\n", counter))
|
|
||||||
counter = 0
|
counter = 0
|
||||||
mutex.Unlock()
|
mutex.Unlock()
|
||||||
case count := <-completedChannel:
|
case count := <-completedChannel:
|
||||||
|
|
@ -58,9 +59,13 @@ func main() {
|
||||||
total += count
|
total += count
|
||||||
mutex.Unlock()
|
mutex.Unlock()
|
||||||
case err := <-errorChannel:
|
case err := <-errorChannel:
|
||||||
os.Stderr.WriteString(fmt.Sprintf("Error write package:\t%s\n", err.Error()))
|
os.Stderr.WriteString(fmt.Sprintf("Error write metric:\t%s\n", err.Error()))
|
||||||
case <-signalChannel:
|
case <-signalChannel:
|
||||||
os.Stdout.WriteString(fmt.Sprintf("Total: %d (%d metric/s)\n", total, int(total/sec)))
|
speed := 0
|
||||||
|
if sec > 0 {
|
||||||
|
speed = int(total / sec)
|
||||||
|
}
|
||||||
|
os.Stdout.WriteString(fmt.Sprintf("\n-----------------------------\nTotal processed: %d (%d metric/s)\n", total, speed))
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -79,7 +84,7 @@ func (c *client) send() error {
|
||||||
now := time.Now().Unix()
|
now := time.Now().Unix()
|
||||||
metrics := make([]*zabbix.Metric, 0)
|
metrics := make([]*zabbix.Metric, 0)
|
||||||
for i := 0; i < *argPacketSize; i++ {
|
for i := 0; i < *argPacketSize; i++ {
|
||||||
metrics = append(metrics, zabbix.NewMetric(c.host, fmt.Sprintf(*argMetricName, i), string(i), now))
|
metrics = append(metrics, zabbix.NewMetric(c.host, fmt.Sprintf(*argMetricName, i), fmt.Sprintf("%d", i), now))
|
||||||
}
|
}
|
||||||
return c.sender.Send(zabbix.NewPacket(metrics, now))
|
return c.sender.Send(zabbix.NewPacket(metrics, now))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue