@@ -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