Skip to content

Commit eadd1d2

Browse files
authored
Expose X-Ratelimit-Used and X-Ratelimit-Reset as metrics (#438)
1 parent a62b739 commit eadd1d2

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

githubapp/middleware.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ const (
3434

3535
MetricsKeyRateLimit = "github.rate.limit"
3636
MetricsKeyRateLimitRemaining = "github.rate.remaining"
37+
MetricsKeyRateLimitUsed = "github.rate.used"
38+
MetricsKeyRateLimitReset = "github.rate.reset"
3739
)
3840

3941
// ClientMetrics creates client middleware that records metrics about all
@@ -73,11 +75,15 @@ func ClientMetrics(registry metrics.Registry) ClientMiddleware {
7375

7476
limitMetric := fmt.Sprintf("%s[installation:%d]", MetricsKeyRateLimit, installationID)
7577
remainingMetric := fmt.Sprintf("%s[installation:%d]", MetricsKeyRateLimitRemaining, installationID)
78+
usedMetric := fmt.Sprintf("%s[installation:%d]", MetricsKeyRateLimitUsed, installationID)
79+
resetMetric := fmt.Sprintf("%s[installation:%d]", MetricsKeyRateLimitReset, installationID)
7680

7781
// Headers from https://developer.github.com/v3/#rate-limiting
7882
updateRegistryForHeader(res.Header, httpHeaderRateLimit, metrics.GetOrRegisterGauge(limitMetric, registry))
7983
updateRegistryForHeader(res.Header, httpHeaderRateRemaining, metrics.GetOrRegisterGauge(remainingMetric, registry))
80-
// TODO Think about to add X-Ratelimit-Used, X-Ratelimit-Reset and X-Ratelimit-Resource as well
84+
updateRegistryForHeader(res.Header, httpHeaderRateUsed, metrics.GetOrRegisterGauge(usedMetric, registry))
85+
updateRegistryForHeader(res.Header, httpHeaderRateReset, metrics.GetOrRegisterGauge(resetMetric, registry))
86+
// TODO Think about to add X-Ratelimit-Resource as well
8187
}
8288

8389
return res, err

0 commit comments

Comments
 (0)