diff --git a/src/jobs/http.go b/src/jobs/http.go index 40edfd88..8d766e85 100644 --- a/src/jobs/http.go +++ b/src/jobs/http.go @@ -69,10 +69,10 @@ func singleRequestJob(ctx context.Context, globalConfig GlobalConfig, args Args, dataSize += len(key) + len(value) } - metrics.Default.Write(metrics.Traffic, uuid.New().String(), dataSize) + metrics.Default.Write(metrics.Traffic, uuid.New().String(), uint64(dataSize)) err = sendFastHTTPRequest(client, req, resp, debug) if err == nil { - metrics.Default.Write(metrics.ProcessedTraffic, uuid.New().String(), dataSize) + metrics.Default.Write(metrics.ProcessedTraffic, uuid.New().String(), uint64(dataSize)) } headers := make(map[string]string) resp.Header.VisitAll(func(key []byte, value []byte) { @@ -156,13 +156,13 @@ func fastHTTPJob(ctx context.Context, globalConfig GlobalConfig, args Args, debu dataSize += len(key) + len(value) } - trafficMonitor.Add(dataSize) + trafficMonitor.Add(uint64(dataSize)) if err := sendFastHTTPRequest(client, req, nil, debug); err != nil { if debug { log.Printf("Error sending request %v: %v", req, err) } } else { - processedTrafficMonitor.Add(dataSize) + processedTrafficMonitor.Add(uint64(dataSize)) } } diff --git a/src/jobs/packetgen.go b/src/jobs/packetgen.go index 376a7ed6..429a2df3 100644 --- a/src/jobs/packetgen.go +++ b/src/jobs/packetgen.go @@ -100,7 +100,7 @@ func packetgenJob(ctx context.Context, globalConfig GlobalConfig, args Args, deb protocolLabelValue, metrics.StatusSuccess) - trafficMonitor.Add(len) + trafficMonitor.Add(uint64(len)) } return nil, nil diff --git a/src/jobs/rawnet.go b/src/jobs/rawnet.go index 2b23efbd..fb9043f2 100644 --- a/src/jobs/rawnet.go +++ b/src/jobs/rawnet.go @@ -69,7 +69,7 @@ func tcpJob(ctx context.Context, globalConfig GlobalConfig, args Args, debug boo body := []byte(templates.Execute(bodyTpl, nil)) _, err = conn.Write(body) - trafficMonitor.Add(len(body)) + trafficMonitor.Add(uint64(len(body))) if err != nil { metrics.IncRawnetTCP(tcpAddr.String(), metrics.StatusFail) @@ -81,7 +81,7 @@ func tcpJob(ctx context.Context, globalConfig GlobalConfig, args Args, debug boo if debug { log.Printf("%s finished at %d", jobConfig.Address, time.Now().Unix()) } - processedTrafficMonitor.Add(len(body)) + processedTrafficMonitor.Add(uint64(len(body))) metrics.IncRawnetTCP(tcpAddr.String(), metrics.StatusSuccess) } } @@ -139,7 +139,7 @@ func udpJob(ctx context.Context, globalConfig GlobalConfig, args Args, debug boo log.Printf("%s failed at %d with err: %s", jobConfig.Address, time.Now().Unix(), err.Error()) } } else { - trafficMonitor.Add(len(body)) + trafficMonitor.Add(uint64(len(body))) metrics.IncRawnetUDP(udpAddr.String(), metrics.StatusSuccess) if debug { diff --git a/src/metrics/metrics.go b/src/metrics/metrics.go index d1f7dee2..551b4f79 100644 --- a/src/metrics/metrics.go +++ b/src/metrics/metrics.go @@ -54,17 +54,17 @@ func init() { Default.trackers[ProcessedTraffic] = &metricTracker{} } -func (ms *Storage) Write(name, jobID string, value int) { +func (ms *Storage) Write(name, jobID string, value uint64) { if tracker, ok := ms.trackers[name]; ok { tracker.metrics.Store(jobID, value) } } -func (ms *Storage) Read(name string) int { - sum := 0 +func (ms *Storage) Read(name string) uint64 { + sum := uint64(0) if tracker, ok := ms.trackers[name]; ok { tracker.metrics.Range(func(k, v interface{}) bool { - if value, ok := v.(int); ok { + if value, ok := v.(uint64); ok { sum = sum + value } return true @@ -84,16 +84,16 @@ type Writer struct { ms *Storage jobID string name string - value int + value uint64 } // Add used to increase metric value by a specific amount -func (w *Writer) Add(value int) { +func (w *Writer) Add(value uint64) { w.value = w.value + value } // Set used to set metric to a specific value -func (w *Writer) Set(value int) { +func (w *Writer) Set(value uint64) { w.value = value } @@ -102,9 +102,9 @@ func (w *Writer) Flush() { w.ms.Write(w.name, w.jobID, w.value) } -// Update updates writer with a set interval -func (w *Writer) Update(ctx context.Context, interval time.Duration) { - ticker := time.NewTicker(interval) +// Update updates writer with a set uint64erval +func (w *Writer) Update(ctx context.Context, uint64erval time.Duration) { + ticker := time.NewTicker(uint64erval) defer ticker.Stop() for { select {