Commit d50f6b8
authored
[OPIK-5691] [BE][FE] feat: add eval suite analytics events (#6326)
* [OPIK-5691] [BE][FE] feat: add eval suite analytics events
Add three analytics events for the Eval Suite launch dashboards
tracked in OPIK-5245:
Backend:
- opik_eval_suite_created: fired when a TEST_SUITE dataset is created
(DatasetsResource), capturing both UI and SDK creation paths.
- opik_eval_suite_run: fired when an experiment is created against a
TEST_SUITE dataset (ExperimentService), capturing reuse and run
frequency. Wrapped in try/catch to avoid disrupting experiment
creation if analytics fails.
Frontend:
- opik_eval_suite_ui_configured: fired from the creation dialog
(useDatasetForm) with UI-specific properties (CSV upload,
assertions, runs_per_item) not available at the BE endpoint.
Note: item_count was omitted from opik_eval_suite_run because the
dataset enrichment needed to fetch it is too heavy for an analytics
side-effect. Can be added later with a lightweight count query if the
"test cases per suite" metric proves critical.
* fix(test): add AnalyticsService mock to test constructors
DatasetsResourceIntegrationTest and ExperimentServiceTest manually
construct the resource/service with explicit args — add the missing
AnalyticsService mock parameter to match the updated constructors.
* fix(analytics): add opik_ prefix to BE event names
Event names in code should already include the opik_ prefix per the
analytics-instrumentation skill doc, even though AnalyticsService
auto-prepends it at runtime. Aligns BE naming with the FE convention.
* fix(analytics): offload blocking dataset lookup to boundedElastic scheduler
Wraps the datasetService.getById() call in trackEvalSuiteRunIfApplicable
with Schedulers.boundedElastic().schedule() to prevent thread starvation
in the doOnSuccess callback.
* fix(analytics): pass userName explicitly to offloaded eval_suite_run event
The trackEvalSuiteRunIfApplicable call runs on a boundedElastic thread
outside the request scope, so resolveIdentity() would fall back to the
anonymous installation ID. Capture userName before scheduling and use the
explicit-identity trackEvent overload to ensure PostHog funnels work.1 parent 4c84e4f commit d50f6b8
6 files changed
Lines changed: 56 additions & 2 deletions
File tree
- apps
- opik-backend/src
- main/java/com/comet/opik
- api/resources/v1/priv
- domain
- test/java/com/comet/opik
- api/resources/v1/priv
- domain
- opik-frontend/src
- lib/analytics
Lines changed: 11 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| 47 | + | |
46 | 48 | | |
47 | 49 | | |
48 | 50 | | |
| |||
90 | 92 | | |
91 | 93 | | |
92 | 94 | | |
| 95 | + | |
93 | 96 | | |
94 | 97 | | |
95 | 98 | | |
| |||
120 | 123 | | |
121 | 124 | | |
122 | 125 | | |
| 126 | + | |
123 | 127 | | |
124 | 128 | | |
125 | 129 | | |
| |||
197 | 201 | | |
198 | 202 | | |
199 | 203 | | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
200 | 211 | | |
201 | 212 | | |
202 | 213 | | |
| |||
Lines changed: 21 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
| |||
91 | 93 | | |
92 | 94 | | |
93 | 95 | | |
| 96 | + | |
94 | 97 | | |
95 | 98 | | |
96 | 99 | | |
| |||
690 | 693 | | |
691 | 694 | | |
692 | 695 | | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
693 | 714 | | |
694 | 715 | | |
695 | 716 | | |
| |||
Lines changed: 3 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
| 74 | + | |
73 | 75 | | |
74 | 76 | | |
75 | 77 | | |
| |||
79 | 81 | | |
80 | 82 | | |
81 | 83 | | |
82 | | - | |
| 84 | + | |
83 | 85 | | |
84 | 86 | | |
85 | 87 | | |
| |||
Lines changed: 6 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
102 | 103 | | |
103 | 104 | | |
104 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
105 | 109 | | |
106 | 110 | | |
107 | 111 | | |
| |||
126 | 130 | | |
127 | 131 | | |
128 | 132 | | |
129 | | - | |
| 133 | + | |
| 134 | + | |
130 | 135 | | |
131 | 136 | | |
132 | 137 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
248 | 259 | | |
249 | 260 | | |
250 | 261 | | |
| |||
275 | 286 | | |
276 | 287 | | |
277 | 288 | | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
278 | 292 | | |
279 | 293 | | |
280 | 294 | | |
| |||
0 commit comments