Skip to content

Commit 147eaa2

Browse files
authored
fix: per-model(s) top-level values in usage dashboard (#772)
<!--- Provide a general summary of your changes in the Title above --> ## Description The top-levels values of Total Requests, Total Errors, Success Rate, and Active Users, are now calculated also based on the selected model(s). ## How Has This Been Tested? Tested manually ## Merge criteria: <!--- This PR will be merged by any repository approver when it meets all the points in the checklist --> <!--- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] The commits are squashed in a cohesive manner and have meaningful messages. - [ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious). - [x] The developer has manually tested the changes and verified that the changes work <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Improved Usage dashboard to be model-aware and aggregated per user/subscription/namespace, enhancing accuracy for Active Users, Success Rate, Token Consumption, Total Errors, and Total Requests. * Updated gating and fallback logic for authorization and rate-limit signals to produce more reliable time-series and per-user token consumption reporting. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Arik Hadas <ahadas@redhat.com>
1 parent b327b34 commit 147eaa2

1 file changed

Lines changed: 98 additions & 5 deletions

File tree

deployment/components/observability/observability/dashboards/usage-dashboard.yaml

Lines changed: 98 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,29 @@ spec:
8181
datasource:
8282
kind: PrometheusDatasource
8383
name: kuadrant-prometheus-datasource
84-
query: 'count(count by (user) (increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range]) > 0)) or vector(0)'
84+
query: |-
85+
count(
86+
count by (user) (
87+
(
88+
(
89+
sum by (user, subscription, limitador_namespace) (
90+
increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
91+
)
92+
+
93+
sum by (user, subscription, limitador_namespace) (
94+
increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
95+
)
96+
)
97+
or
98+
sum by (user, subscription, limitador_namespace) (
99+
increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
100+
)
101+
)
102+
* on(user, subscription, limitador_namespace)
103+
(0 * max by (user, subscription, limitador_namespace) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
104+
> 0
105+
)
106+
) or vector(0)
85107
seriesNameFormat: Users
86108
successRate:
87109
kind: Panel
@@ -105,7 +127,41 @@ spec:
105127
datasource:
106128
kind: PrometheusDatasource
107129
name: kuadrant-prometheus-datasource
108-
query: '((sum(increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range]))) / ((sum(increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])) + (sum(increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])) or vector(0))) > 0)) or vector(1)'
130+
query: |-
131+
(
132+
(
133+
sum(
134+
sum by (user, subscription, limitador_namespace) (
135+
increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
136+
)
137+
* on(user, subscription, limitador_namespace)
138+
(0 * max by (user, subscription, limitador_namespace) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
139+
)
140+
)
141+
/
142+
(
143+
(
144+
sum(
145+
sum by (user, subscription, limitador_namespace) (
146+
increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
147+
)
148+
* on(user, subscription, limitador_namespace)
149+
(0 * max by (user, subscription, limitador_namespace) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
150+
)
151+
+
152+
(
153+
sum(
154+
sum by (user, subscription, limitador_namespace) (
155+
increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
156+
)
157+
* on(user, subscription, limitador_namespace)
158+
(0 * max by (user, subscription, limitador_namespace) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
159+
)
160+
or vector(0)
161+
)
162+
) > 0
163+
)
164+
) or vector(1)
109165
seriesNameFormat: Success Rate
110166
tokenConsumptionByUser:
111167
kind: Panel
@@ -180,7 +236,15 @@ spec:
180236
query: |-
181237
round(
182238
sum by (user, subscription, model) (
183-
sum by (user, subscription, limitador_namespace) (increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range]))
239+
(
240+
(
241+
sum by (user, subscription, limitador_namespace) (increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range]))
242+
+
243+
sum by (user, subscription, limitador_namespace) (increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range]))
244+
)
245+
or
246+
sum by (user, subscription, limitador_namespace) (increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range]))
247+
)
184248
* on(user, subscription, limitador_namespace) group_left(model)
185249
(0 * max by (user, subscription, limitador_namespace, model) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
186250
)
@@ -228,7 +292,15 @@ spec:
228292
datasource:
229293
kind: PrometheusDatasource
230294
name: kuadrant-prometheus-datasource
231-
query: 'sum(increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])) or vector(0)'
295+
query: |-
296+
sum(
297+
sum by (user, subscription, limitador_namespace) (
298+
increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
299+
)
300+
* on(user, subscription, limitador_namespace)
301+
(0 * max by (user, subscription, limitador_namespace) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
302+
)
303+
or vector(0)
232304
seriesNameFormat: Errors
233305
totalRequests:
234306
kind: Panel
@@ -253,7 +325,28 @@ spec:
253325
datasource:
254326
kind: PrometheusDatasource
255327
name: kuadrant-prometheus-datasource
256-
query: '(sum(increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])) or vector(0)) + (sum(increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])) or vector(0))'
328+
query: |-
329+
(
330+
sum(
331+
sum by (user, subscription, limitador_namespace) (
332+
increase(authorized_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
333+
)
334+
* on(user, subscription, limitador_namespace)
335+
(0 * max by (user, subscription, limitador_namespace) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
336+
)
337+
or vector(0)
338+
)
339+
+
340+
(
341+
sum(
342+
sum by (user, subscription, limitador_namespace) (
343+
increase(limited_calls{user!="", user=~"$user", subscription=~"$subscription"}[$__range])
344+
)
345+
* on(user, subscription, limitador_namespace)
346+
(0 * max by (user, subscription, limitador_namespace) (max_over_time(authorized_hits{model=~"$model"}[$__range])) + 1)
347+
)
348+
or vector(0)
349+
)
257350
seriesNameFormat: Requests
258351
totalTokens:
259352
kind: Panel

0 commit comments

Comments
 (0)