aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go/stats/duration_counter.go11
-rw-r--r--go/stats/duration_counter_test.go19
-rw-r--r--go/weed/master.go2
-rw-r--r--go/weed/weed_server/master_ui/templates.go2
4 files changed, 25 insertions, 9 deletions
diff --git a/go/stats/duration_counter.go b/go/stats/duration_counter.go
index 50a8bce43..69c8be61d 100644
--- a/go/stats/duration_counter.go
+++ b/go/stats/duration_counter.go
@@ -23,14 +23,11 @@ func NewRoundRobinCounter(slots int) *RoundRobinCounter {
return &RoundRobinCounter{LastIndex: -1, Values: make([]int64, slots), Counts: make([]int64, slots)}
}
func (rrc *RoundRobinCounter) Add(index int, val int64) {
+ if index >= len(rrc.Values) {
+ return
+ }
for rrc.LastIndex != index {
- rrc.LastIndex++
- if rrc.LastIndex >= len(rrc.Values) {
- if index >= len(rrc.Values) {
- break //just avoid endless loop
- }
- rrc.LastIndex = 0
- }
+ rrc.LastIndex = (rrc.LastIndex + 1) % len(rrc.Values)
rrc.Values[rrc.LastIndex] = 0
rrc.Counts[rrc.LastIndex] = 0
}
diff --git a/go/stats/duration_counter_test.go b/go/stats/duration_counter_test.go
new file mode 100644
index 000000000..aa9d61c87
--- /dev/null
+++ b/go/stats/duration_counter_test.go
@@ -0,0 +1,19 @@
+package stats
+
+import "testing"
+
+func TestRobinCounter(t *testing.T) {
+ rrc := NewRoundRobinCounter(60)
+ rrc.Add(0, 1)
+ rrc.Add(50, 2)
+ if rrc.Count() != 2 {
+ t.Fatal()
+ }
+ if rrc.Sum() != 3 {
+ t.Fatal()
+ }
+ /*
+ index out of range
+ */
+ rrc.Add(61, 1)
+}
diff --git a/go/weed/master.go b/go/weed/master.go
index e667f28e5..fda19429d 100644
--- a/go/weed/master.go
+++ b/go/weed/master.go
@@ -32,7 +32,7 @@ var (
masterIp = cmdMaster.Flag.String("ip", "localhost", "master <ip>|<server> address")
masterBindIp = cmdMaster.Flag.String("ip.bind", "0.0.0.0", "ip address to bind to")
metaFolder = cmdMaster.Flag.String("mdir", os.TempDir(), "data directory to store meta data")
- masterPeers = cmdMaster.Flag.String("peers", "", "other master nodes in comma separated ip:port list")
+ masterPeers = cmdMaster.Flag.String("peers", "", "other master nodes in comma separated ip:port list, example: 127.0.0.1:9093,127.0.0.1:9094")
volumeSizeLimitMB = cmdMaster.Flag.Uint("volumeSizeLimitMB", 30*1000, "Master stops directing writes to oversized volumes.")
mpulse = cmdMaster.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats")
confFile = cmdMaster.Flag.String("conf", "/etc/weedfs/weedfs.conf", "Deprecating! xml configuration file")
diff --git a/go/weed/weed_server/master_ui/templates.go b/go/weed/weed_server/master_ui/templates.go
index 0e65f6a17..e9ee2d8d2 100644
--- a/go/weed/weed_server/master_ui/templates.go
+++ b/go/weed/weed_server/master_ui/templates.go
@@ -54,7 +54,7 @@ var StatusTpl = template.Must(template.New("status").Parse(`<!DOCTYPE html>
<table class="table table-condensed table-striped">
<tr>
<th>Concurrent Connections</th>
- <td>{{ .Counters.Connections.WeekCounter.Count }}</td>
+ <td>{{ .Counters.Connections.WeekCounter.Sum }}</td>
</tr>
{{ range $key, $val := .Stats }}
<tr>