Skip to content

Commit afd4801

Browse files
authored
metrics: fix issue with integer division (#39)
* metrics: fix issue with integer division * fix jails test
1 parent 5d315f9 commit afd4801

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

e2e/e2e_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ func TestJails(t *testing.T) {
251251
banned := false
252252
resetRedis(*redisAddr)
253253
applyGuardianConfig(t, *redisAddr, config)
254-
for i := uint64(0); i < j.Jail.Limit.Count+5; i++ {
254+
for i := uint64(0); i < j.Jail.Limit.Count+1; i++ {
255255
if len(os.Getenv("SYNC")) == 0 {
256256
time.Sleep(150 * time.Millisecond) // helps prevents races due asynchronous rate limiting
257257
}
@@ -276,9 +276,9 @@ func TestJails(t *testing.T) {
276276
}
277277
}
278278
if j.Jail.Limit.Enabled {
279-
t.Logf("sleeping for ban_duration: %v to ensure the prisoner is removed", j.Jail.BanDuration)
279+
t.Logf("sleeping for ban_duration: %v + 2 seconds to ensure the prisoner is removed", j.Jail.BanDuration)
280280
time.Sleep(j.Jail.BanDuration)
281-
time.Sleep(j.Jail.Limit.Duration)
281+
time.Sleep(2 * time.Second) // ensure that we sleep for an additional confUpdateInterval so that the configuration is updated
282282
res := GET(t, "192.168.1.43", j.Route)
283283
if res.StatusCode != 200 {
284284
t.Fatalf("prisoner was never removed, received unexpected status code: %d, %v", res.StatusCode, j.Jail)

pkg/guardian/metrics.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func (d *DataDogReporter) Duration(request Request, blocked bool, errorOccurred
113113
blockedTag := blockedKey + ":" + strconv.FormatBool(blocked)
114114
errorTag := errorKey + ":" + strconv.FormatBool(errorOccurred)
115115
tags := append([]string{blockedTag, errorTag}, d.defaultTags...)
116-
d.client.TimeInMilliseconds(durationMetricName, float64(duration/time.Millisecond), tags, 1)
116+
d.client.Timing(durationMetricName, duration, tags, 1)
117117
}
118118

119119
d.enqueue(f)
@@ -124,7 +124,7 @@ func (d *DataDogReporter) HandledWhitelist(request Request, whitelisted bool, er
124124
whitelistedTag := whitelistedKey + ":" + strconv.FormatBool(whitelisted)
125125
errorTag := errorKey + ":" + strconv.FormatBool(errorOccurred)
126126
tags := append([]string{whitelistedTag, errorTag}, d.defaultTags...)
127-
d.client.TimeInMilliseconds(reqWhitelistMetricName, float64(duration/time.Millisecond), tags, 1.0)
127+
d.client.Timing(reqWhitelistMetricName, duration, tags, 1.0)
128128
}
129129
d.enqueue(f)
130130
}
@@ -134,7 +134,7 @@ func (d *DataDogReporter) HandledBlacklist(request Request, blacklisted bool, er
134134
blacklistedTag := blacklistedKey + ":" + strconv.FormatBool(blacklisted)
135135
errorTag := errorKey + ":" + strconv.FormatBool(errorOccurred)
136136
tags := append([]string{blacklistedTag, errorTag}, d.defaultTags...)
137-
d.client.TimeInMilliseconds(reqBlacklistMetricName, float64(duration/time.Millisecond), tags, 1.0)
137+
d.client.Timing(reqBlacklistMetricName, duration, tags, 1.0)
138138
}
139139
d.enqueue(f)
140140
}
@@ -144,7 +144,7 @@ func (d *DataDogReporter) HandledRatelimit(request Request, ratelimited bool, er
144144
ratelimitedTag := ratelimitedKey + ":" + strconv.FormatBool(ratelimited)
145145
errorTag := errorKey + ":" + strconv.FormatBool(errorOccurred)
146146
tags := append([]string{ratelimitedTag, errorTag}, d.defaultTags...)
147-
d.client.TimeInMilliseconds(reqRateLimitMetricName, float64(duration/time.Millisecond), tags, 1.0)
147+
d.client.Timing(reqRateLimitMetricName, duration, tags, 1.0)
148148
}
149149
d.enqueue(f)
150150
}
@@ -155,7 +155,7 @@ func (d *DataDogReporter) HandledRatelimitWithRoute(request Request, ratelimited
155155
errorTag := errorKey + ":" + strconv.FormatBool(errorOccurred)
156156
routeTag := routeKey + ":" + request.Path
157157
tags := append([]string{ratelimitedTag, errorTag, routeTag}, d.defaultTags...)
158-
d.client.TimeInMilliseconds(reqRateLimitMetricName, float64(duration/time.Millisecond), tags, 1.0)
158+
d.client.Timing(reqRateLimitMetricName, duration, tags, 1.0)
159159
}
160160
d.enqueue(f)
161161
}
@@ -171,7 +171,7 @@ func (d *DataDogReporter) HandledJail(request Request, blocked bool, errorOccurr
171171
blockedTag := blockedKey + ":" + strconv.FormatBool(blocked)
172172
errorTag := errorKey + ":" + strconv.FormatBool(errorOccurred)
173173
tags := append(tags, []string{blockedTag, errorTag}...)
174-
d.client.TimeInMilliseconds(reqJailMetricName, float64(duration/time.Millisecond), tags, 1.0)
174+
d.client.Timing(reqJailMetricName, duration, tags, 1.0)
175175
}
176176
d.enqueue(f)
177177
}
@@ -191,7 +191,7 @@ func (d *DataDogReporter) RedisCounterIncr(duration time.Duration, errorOccurred
191191
f := func() {
192192
errorTag := errorKey + ":" + strconv.FormatBool(errorOccurred)
193193
tags := append([]string{errorTag}, d.defaultTags...)
194-
d.client.TimeInMilliseconds(redisCounterIncrMetricName, float64(duration/time.Millisecond), tags, 1.0)
194+
d.client.Timing(redisCounterIncrMetricName, duration, tags, 1.0)
195195
}
196196
d.enqueue(f)
197197
}
@@ -200,7 +200,7 @@ func (d *DataDogReporter) RedisCounterPruned(duration time.Duration, cacheSize f
200200
f := func() {
201201
d.client.Gauge(redisCounterCacheSizeMetricName, cacheSize, d.defaultTags, 1)
202202
d.client.Gauge(redisCounterPrunedMetricName, prunedCounted, d.defaultTags, 1)
203-
d.client.TimeInMilliseconds(redisCounterPrunePassMetricName, float64(duration/time.Millisecond), d.defaultTags, 1)
203+
d.client.Timing(redisCounterPrunePassMetricName, duration, d.defaultTags, 1)
204204
}
205205
d.enqueue(f)
206206
}

0 commit comments

Comments
 (0)