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
|
||||
|
||||
```bash
|
||||
Usage of zabbix-bench:
|
||||
-client int
|
||||
number of concurrent clients (default 200)
|
||||
-client-format string
|
||||
format of client name (default "client-%d")
|
||||
-metric-format string
|
||||
format of metric name in packet (default "metric-%d")
|
||||
-packet-delay duration
|
||||
delay of send packet (default 100ms)
|
||||
-packet-send-timeout duration
|
||||
packet send timeout (default 10ms)
|
||||
-packet-size int
|
||||
count of metric in packet (default 100)
|
||||
-zabbix string
|
||||
address of zabbix server (default "127.0.0.1:10051")
|
||||
make && ./bin/zabbix-bench -zabbix "192.168.1.1:10051" -packet-delay 1ms
|
||||
go build -o ./bin/zabbix-bench ./src/main.go
|
||||
Start 200 clients with packet size 100 metric and delay between packets 1ms
|
||||
progress 1 s, 13100 metric/s
|
||||
progress 2 s, 15300 metric/s
|
||||
progress 3 s, 11200 metric/s
|
||||
progress 4 s, 17500 metric/s
|
||||
progress 5 s, 13100 metric/s
|
||||
^C
|
||||
-----------------------------
|
||||
Total processed: 70300 (11716 metric/s)
|
||||
```
|
||||
|
|
|
|||
13
src/main.go
13
src/main.go
|
|
@ -43,13 +43,14 @@ func main() {
|
|||
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)
|
||||
for {
|
||||
select {
|
||||
case <-ticker:
|
||||
mutex.Lock()
|
||||
os.Stdout.WriteString(fmt.Sprintf("progress %d s, %d metric/s\n", sec, counter))
|
||||
sec += 1
|
||||
os.Stdout.WriteString(fmt.Sprintf("Metric sended: %d\n", counter))
|
||||
counter = 0
|
||||
mutex.Unlock()
|
||||
case count := <-completedChannel:
|
||||
|
|
@ -58,9 +59,13 @@ func main() {
|
|||
total += count
|
||||
mutex.Unlock()
|
||||
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:
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
|
@ -79,7 +84,7 @@ func (c *client) send() error {
|
|||
now := time.Now().Unix()
|
||||
metrics := make([]*zabbix.Metric, 0)
|
||||
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))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue