@@ -73,7 +73,7 @@ func (handler *Handler) process(body []byte) ResponseMessage {
7373
7474 if handler .RedisClient .IsBlocked (projectId ) {
7575 handler .ErrorsBlockedByLimit .Inc ()
76- handler .recordProjectMetrics (projectId , "events-rate-limited" )
76+ handler .recordProjectMetrics (projectId , "events-rate-limited" , false )
7777 return ResponseMessage {402 , true , "Project has exceeded the events limit" }
7878 }
7979
@@ -83,7 +83,7 @@ func (handler *Handler) process(body []byte) ResponseMessage {
8383 return ResponseMessage {402 , true , "Failed to update rate limit" }
8484 }
8585 if ! rateWithinLimit {
86- handler .recordProjectMetrics (projectId , "events-rate-limited" )
86+ handler .recordProjectMetrics (projectId , "events-rate-limited" , false )
8787 return ResponseMessage {402 , true , "Rate limit exceeded" }
8888 }
8989
@@ -110,7 +110,7 @@ func (handler *Handler) process(body []byte) ResponseMessage {
110110 handler .ErrorsProcessed .Inc ()
111111
112112 // record project metrics
113- handler .recordProjectMetrics (projectId , "events-accepted" )
113+ handler .recordProjectMetrics (projectId , "events-accepted" , true )
114114
115115 return ResponseMessage {200 , false , "OK" }
116116}
@@ -133,16 +133,23 @@ func GetQueueCache(nonDefaultQueues []string) map[string]bool {
133133}
134134
135135// getTimeSeriesKey generates a Redis TimeSeries key for project metrics
136- func getTimeSeriesKey (projectId , metricType , granularity string ) string {
136+ func getTimeSeriesKey (projectId , metricType , granularity string , isSystemMetric bool ) string {
137+ // flag determines which counter would be incremented
138+ if isSystemMetric {
139+ // ts:collector-project-%s:%s:%s could be used in admin
140+ return fmt .Sprintf ("ts:collector-project-%s:%s:%s" , metricType , projectId , granularity )
141+ }
142+
143+ // ts:project-%s:%s:%s is used in api for chart retrieving
137144 return fmt .Sprintf ("ts:project-%s:%s:%s" , metricType , projectId , granularity )
138145}
139146
140147// recordProjectMetrics records project metrics to Redis TimeSeries
141148// metricType can be: "events-accepted", "events-rate-limited", etc.
142- func (handler * Handler ) recordProjectMetrics (projectId , metricType string ) {
143- minutelyKey := getTimeSeriesKey (projectId , metricType , "minutely" )
144- hourlyKey := getTimeSeriesKey (projectId , metricType , "hourly" )
145- dailyKey := getTimeSeriesKey (projectId , metricType , "daily" )
149+ func (handler * Handler ) recordProjectMetrics (projectId , metricType string , isSystemMetric bool ) {
150+ minutelyKey := getTimeSeriesKey (projectId , metricType , "minutely" , isSystemMetric )
151+ hourlyKey := getTimeSeriesKey (projectId , metricType , "hourly" , isSystemMetric )
152+ dailyKey := getTimeSeriesKey (projectId , metricType , "daily" , isSystemMetric )
146153
147154 labels := map [string ]string {
148155 "type" : "error" ,
0 commit comments