Skip to main content

Usage Analysis changelog

v.next

  • GROK-20891: Reports widget: Fixed the Home page widget failing with Cannot read properties of undefined (reading 'renderIcon') when a report has no reporter

  • BDD: Corrected the line-chart lasso test to close its checkbox menu before dragging and removed its stale known-failure tag. Fixed Spaces fixture cleanup and stale Browse nodes; file operations now require the test space to be current. Box-plot shortcut checks target the viewer explicitly. Rechecked and documented the remaining viewer failures

  • GROK-20874: System Activity: Added a tab listing the platform-level audit records datlas now writes — logins, logouts, failed logins, impersonation, admin session start/end, developer-key generation, settings and log-settings changes, and server starts — as a filterable grid with a per-type timeline (SystemActivity / SystemActivitySummary queries); a row's parameters open on the context panel. Tabs whose names contain spaces now route by their space-free lowercase name

  • Metrics: The tab reads request latency, per-route statistics, the function-call queue, connections, database size and the pg_stat_statements rankings from grok.dapi.admin.getMetrics() (the new /api/admin/metrics endpoint) instead of its own SQL; routes are the server's route templates (/users/{id}/picture), and the server picks the pg_stat_statements column names, so the Pg12 query variants are gone. Added a Queue card (queued + running function calls) next to Connections

  • Tests: Fixed BDD clipboard, selection, and row-deletion shortcuts on macOS through shared platform-aware key bindings. Line-chart deselection, trellis additive selection, and Forms card selection now recognize Command. Layout-loading steps wait for the restored viewers to finish rendering. Fixed the core resize signal that could report the grid ready before its mouse-handling canvas was sized.

  • Tests: Fixed the context menu of anything that is not a viewer — a tree node, a card, a list row — which the flake fixes had broken: menuPoint awaited the viewer's own settle and stableArea on every element, and both throw for a non-viewer (the first synchronously, past any .catch; the second inside a frame callback, where the wait never ends), so every Spaces feature failed on its first right-click. The viewer is looked up without throwing now and the waits are skipped for anything else. And the Spaces claim "N spaces named X should be on the server" carries the 60 s budget the dialog-close claim already had: a root space's save takes 4.8 s alone and 18 s with four features creating at once on a local stand, which is what left the Create Space dialog open past a 15 s budget. Spaces 10 of 10 under four-worker load.

  • Tests: Fixed the viewer suite's flakiness tail — a full run was landing at 118-120 of 121 with a different feature failing each time. The largest cause by far was the platform's column picker, typed into four different ways in four files: its search box does not exist until a letter is typed at the selector (which does not reliably keep the focus its own mouse-down gave it), that letter lands in the box at an unpredictable moment ("SEX" came back "EXS", "RACE" as "RACER"), and a mangled name matches no column, so the picker stays open having taken nothing and shows the row the pointer previewed — which is how user picks "HEIGHT" came back WEIGHT. All four callers go through one pickInColumnGrid now. Also: a dock layout pass took back the size user resizes <widget> to writes (the statistics journey then read a grid with med and stdev off screen), a gesture read the area it aims at before the viewer had finished laying it out, and a throw inside an expect.poll callback ended the poll instead of retrying it. A @known-failure scenario now runs on a 3 s assertion budget instead of the suite's 15 s, which was about 100 s of every run spent proving what the tag already says

  • Tests: Closed the viewer suite's last four intermittent failures at their causes, in the library. A right-click meant for the pivot's grid header landed on the cell below it after a Title was set (one in twelve targeted runs): the title's auto-sizing text area grows on a 100 ms resize poll, after the render the gesture had waited for, so the core now sizes a viewer title in the same pass that sets it, and a gesture also waits for the area's rectangle to agree on three consecutive frames. The grid's cell editor was typed 51 and committed 1, and the histogram's range input took a click without the focus and sent 18 into a grid cell instead: typed text is now read back and retyped until the editor holds exactly it, an editor that already has the focus is not clicked, and user enters … into the … area repeats its click until an editor inside the viewer owns the focus — and that verification found the product cause behind all three, a table view focusing its grid on a one-second timer after it opens, whatever the user is typing (fixed in the core, together with the tile viewer designer's column chooser crashing on every open since the morning's merge — its isListed was typed for a Column while the list holds GridColumns). The Forms @known-failure on the header sort now states the precondition its defect needs (no current row after the double-click), so a pass names the reason

  • TestTrack: Bio Analyze expected the Activity Cliffs dialog to be titled Activity Cliffs; the sequence viewer is now Sequence Activity Cliffs, which failed the umbrella spec on FASTA, HELM and MSA alike

  • Tests: Translated every viewer TestTrack folder that was left into bdd/features/viewers/ — the line chart, density plot, correlation plot, matrix plot, tree map, heat map, calendar, markup, network diagram, statistics, word cloud, forms viewer and GIS map. 44 new features / ~290 scenarios, bringing the project to 121 features that run in 3.6 min on four workers. Eleven viewers got an automation surface, ten of them their first, so the old specs' pixel arithmetic became readings: the correlation plot reports every pair's coefficient and every cell's text and colour instead of being probe-clicked into place, the matrix plot reports a signature per cell and drops a 106-line ink-settle helper, the tree map reports the rows behind every leaf instead of a hunted tooltip, the calendar reports its day, weekday and month cells, and the word cloud reports each word's box and count instead of a private echarts structure. The line chart's lines reading was returning 2 where the chart draws 12 under a multi-column split. Twenty-one step phrases moved out of package bindings into the library, two package files disappearing entirely; the /bdd-translate skill now carries the rule for when a binding belongs in the library

  • Tests: Translated the remaining viewer TestTrack specs into bdd/features/viewers/ — the trellis plot, tile viewer, pivot table, pie chart and PC plot folders, and the four specs that sit directly in Viewers/ (annotation regions, colour coding, row source, NaN/Infinity). 38 new features / 262 scenarios, bringing the project to 77 features / 537 scenarios that run in 2.2 min on four workers. The pivot table's inner grid is re-exported as hit areas, so its scenarios click the cells and headers the viewer drew instead of the old spec's hard-coded offsets, and the two checks its spec called manual-only are now automated. Row Source is one journey that puts seven viewers on one table view and reads the same row count off all of them, so a viewer that ignores the setting is the one number out of line; colour coding covers what a colouring keeps across an off/on, a Pick Up / Apply, a link to another column and an inversion, always against the colour the grid renderer resolved rather than the tag

  • Tests: Translated the grid, scatter plot, histogram, form and filter panel TestTrack specs into bdd/features/viewers/, and added the legend's interaction journey — 26 new features / 167 scenarios, bringing the project to 39 features / 276 scenarios that run in 1.9 min on four workers. Each viewer now reports the regions and readings its claims rest on, so the features click what the viewer drew instead of guessing offsets

  • Tests: Added the first grok-bdd project (bdd/, tier viewers): features/viewers/box-plot.feature covers the whole of the TestTrack box-plot spec as 13 Gherkin scenarios in one @journey, compiled into a committed Playwright spec and green in 14 s against localhost (6 s of it the login and the open)

  • TestTrack: Fixed 104 specs failing at login — every spec shared one session token, and the relogin scenarios POST /users/logout, which invalidates that session server-side for every spec logging in afterwards; each browser context now mints its own session

  • Release: Added a Benchmarks tab to the /release dashboard, fed by the new ReleaseBenchmarks (per build, instance- and branch-scoped) and ReleaseBenchmarkVersions (per release line) queries. One row per benchmark with a duration sparkline over the last builds and a second over release lines (1.261.27bleeding-edge), a per-package summary, and a drilldown. A benchmark is flagged slower when its latest run exceeds the median of the prior builds in the window, or the previous release's average, by more than the tab's threshold (default 20%); the Overview grows a Benchmarks card and raises a "slower than expected" alert listing each regression with both deltas

  • GROK-20687: Cloud Logs: Fixed the archive tab being unusable on a managed instance — it required an archive connection to be picked, but a SaaS tenant has none and reads the bucket with its pod role, the same contract the CloudWatch tabs already used. The Prefix box also defaulted to cw/, which on a scoped instance resolved under the scope again (cw/tenant-x/cw/) and listed nothing; it now defaults to empty

  • GROK-20687: Added a Cloud Logs explorer (/cloud-logs, admin-only) over the three log tiers: this instance's own events, the CloudWatch hot tier (30 days, filterable by group and time range), and the write-once S3 archive — listed by key prefix, then decoded on selection. Backed by the new grok.dapi.log.getCloudLogGroups/getCloudLogEvents/getArchiveObjects/getArchiveEvents

  • Release: Added a Benchmarks tab to the /release dashboard, fed by the new ReleaseBenchmarks (per build, instance- and branch-scoped) and ReleaseBenchmarkVersions (per release line) queries. One row per benchmark with a duration sparkline over the last builds and a second over release lines (1.261.27bleeding-edge), a per-package summary, and a drilldown. A benchmark is flagged slower when its latest run exceeds the median of the prior builds in the window, or the previous release's average, by more than the tab's threshold (default 20%); the Overview grows a Benchmarks card and raises a "slower than expected" alert listing each regression with both deltas

  • GROK-20760: Tests dashboards: Scoped the build window to a branch, defaulting to master — every pipeline can run on any branch, so an ad-hoc run sat in the trunk column and read as master. TestsDashboard takes a branchFilter input; the /release dashboard gets a Branch picker in the ribbon beside Environment, backed by the new TestBranches query (branches that reported in the last 60 days, newest first). Pick "(all branches)" for the previous behaviour; both queries also return the branch, and TestsDashboard carries it as a per-build column tag alongside the instance. The /release branch follows the instance — master for dev, the highest release/X.Y.Z that has reported for release/public/release-ec2 — and switching instance re-picks it

  • TestTrack: Drop the Share-dialog assertions on the Advanced editor... link. GROK-20322 deliberately removed it from the dialog when the umbrella sharing UI landed, so seven Sharing specs were requiring an element the product no longer renders. PermissionsView itself is unchanged and Block C.1 already navigates to /permissions/ directly, so the matrix coverage is untouched

  • TestTrack: Re-apply the saved layout after a project reopen in the Legend round-trip specs. A programmatically saved project carries the table but no view layout (Project.layout is only populated by the interactive Project.showSaveDialog), so the viewers never came back and the specs read props off undefined. Layouts are entities and do persist, so loading the one each spec already saved is the supported way to restore viewer state

  • TestTrack: Persist the table before saving a project in the Legend specs. They passed a raw DataFrame to Project.addChild and never called tables.uploadDataFrame/tables.save, so project_relations.entity_id referenced an entity that did not exist and the save died on the project_relations_entity_id_fkey constraint. Follows the canonical flow in ApiSamples/scripts/dapi/projects.js

  • TestTrack: Mint the per-spec session from the ~/.grok/config.yaml dev key when the runner does not export DATAGROK_API_URL/DATAGROK_DEV_KEY. The published grok test exports only DATAGROK_AUTH_TOKEN, so mintToken always returned undefined on CI and every spec fell back to one shared session; the relogin specs POST /users/logout and invalidated it for everyone after them, which surfaced as 60s [name="Browse"] login timeouts. Same config fallback the second-user path already used

  • TestTrack: Rewrote the six EDA/MLMethods specs onto the standard Playwright page fixture and loginToDatagrok. They attached to a developer own browser via chromium.connectOverCDP('http://localhost:9222'), which no CI agent runs, so every one of them failed with connect ECONNREFUSED ::1:9222

  • TestTrack: Fixed the relative imports in 28 specs nested two levels deep (../spec-login, /helpers/viewers) — Playwright aborts collection when any spec fails to import, so the whole 284-spec suite had been producing zero results in CI

  • GROK-20624: Context panes: Show 0 instead of the empty-stats sentinel when a summary query returns no rows

  • GROK-6166: Query viewers: Surface query-load failures in the UI — missing/failing queries now clear the loader spinner and show an inline error message instead of silently swallowing the rejection

  • GROK-20479: Set the Reports DataFrame name so it is not listed as "null" in the Table selector

  • Release: Fixed the Tickets tab counting every "Won't fix" ticket as open — Jira spells the status with a lowercase f and isActionable compared case-sensitively against "Won't Fix", while resolution is null on those tickets. Overstated 1.28.0 open tickets by 20 (229 vs 209).

2.7.1 (2026-07-23)

  • Restored the npm release channel: datagrok-api local path dependency replaced with the published ^1.27.7 (path deps block CI publishing, so 2.5.2–2.7.0 never reached npm and environments tracking latest kept downgrading to 2.5.1)

2.7.0 (2026-07-16)

  • Release: Tests slow-test alert now compares each test's latest duration against both the bleeding-edge recent average and the previous release (previous minor semver, found across instances) and shows both deltas; sub-second tests are ignored to cut noise; ReleaseTests returns a prev_release_ms baseline. (Stress keeps its bleeding-edge p95-vs-prior comparison — the previous release has no stress data to compare against.)

2.6.1 (2026-07-16)

  • Release: Tickets — match the "Main" label case-insensitively (was looking for "MAIN", so the MAIN panel was always empty)

2.6.0 (2026-07-16)

  • Release: Added a global Environment (instance) picker to the dashboard ribbon that persists across all tabs and filters Overview and Tests to builds run on the selected instance (replaces the per-tab Tests instance input)
  • Release: Tests tab — per-row mute icon (🔔/🔕) mutes a test for the current release version; version-bound mutes are stored in a dedicated ReleaseMutes sticky-meta schema and drop the test out of the failing/unstable/needs-attention counts for that version
  • Release: Tickets tab — the tickets grid now fills the page
  • Release: Tests tab — when a test didn't run in the latest build, its last known result is carried forward (shown dimmed) and used for the failing/pass-rate counts
  • Release: Added a "not run for 7+ days" stale-test alert (Overview + a stale_days column), with a separate per-row mute independent of the failing mute; ReleaseTests now returns each test's last run date over a 14-day lookback
  • Release: Tickets tab — color-coded status/priority/resolution cells; MAIN-labelled tickets shown in their own panel; the Overview Tickets card counts only actionable tickets (not Done / Won't Fix) split into MAIN vs other
  • Release: Added a global Refresh button to the dashboard ribbon that reloads every tab
  • Release: ReleaseTests now counts the latest CI/CD run per test (like TestsDashboard) instead of every test_run — retried-then-passed tests no longer count as failing and non-CI runs are excluded, so the failing counts stop being inflated by reruns
  • Release: Tests tab — the detail grid now fills the page; per-build status cells show + (passed) / (failed) / · (skipped)
  • Release: Stress tab — replaced the last-build scatter plot with a box plot of duration by thread count (zero-padded threads_string category for numeric ordering, logarithmic ms axis); fixed charts being clipped by the fixed-height panel host

2.5.4 (2026-07-15)

  • Release: Beautified the Tests grid — per-test passing history across the last 5 builds (color-coded status cells + a passing sparkline) and a duration sparkline, sorted to surface failing/flaky/slower tests first (mirrors the Overview alerts)
  • Release: Fixed the success rate rounding up to 100% while tests were failing (now floored); the Tests card sub shows "N passed, M failing"

2.5.3 (2026-07-15)

  • Release: Overview alerts pane fills the view and groups a second level by package (category → package → test); the success rate excludes skipped and did-not-run tests (passed / passed+failed, floored)

2.5.2 (2026-07-15)

  • Release: Added a dev-only /release release-readiness dashboard (Overview + Tests + Manual + Stress + Vulnerabilities + Tickets) — reuses the Stress/Vulnerabilities tabs, adds a per-package Tests tab (unit/integration/package tests, success & duration sparklines, sticky-meta muting, raw+Jenkins drilldown), a Manual (Test Track batches) tab, and a Jira fixVersion Tickets tab, with an Overview of traffic-light status cards and computed alerts. Vulnerabilities show bleeding-edge core scans (release-channel core excluded)

  • Release: Overview alerts are a navigable tree (categories → individual tests, click to open the tab); the vulnerabilities alert compares bleeding-edge vs the previously released image (new critical/high only); the test speed-regression check uses only passed runs; every grid has a '+' to open it as a table in the workspace; the Vulnerabilities grid is sorted by category

  • Release: Fixed a "Wrong range" grid error on the Tests tab by deferring sparkline columns until the grid is laid out

  • Vulnerabilities: Added a tab showing the published VEX scan results (data.datagrok.ai/vex) — per-image severity summary with drill-down to the per-CVE report

  • Stress: Added a tab with per-build stress metrics (median duration by build split by threads, full metrics grid) and a last-build scatter plot (threads vs duration, colored by pass/fail)

  • Metrics: Fixed app registration url ('/' → '/metrics') that shadowed all Usage Analysis deep links — any /apps/usage/ URL used to land on Metrics

  • Stress: Added passthrough JS post-processing to StressTestsRaw/StressTestsSummary — project datasync of plain (post-process-free) queries loses the result dataframe client-side, which broke the CicdTests dashboard's stress views on open

  • Added the vexImages function (VEX scan results as a dataframe) — feeds the CicdTests dashboard's data-synced VEX view; core images use their bleeding-edge scan, packages/tools the latest released scan

  • Added stressSummaryDashboard/stressRawDashboard wrapper functions for the CicdTests dashboard's stress tables (project datasync of DataQuery calls is unreliable — GROK-20391)

  • Tests dashboard: Added an Unignore button next to "Mark as triaged" in the test properties panel — clears the ignored flag and its reason

  • Stress tests: Replaced the old stress dashboards/queries with StressTestsSummary (all builds — median/avg/min/max/p95 of ms by threads, pass rate as the mean per-test pass fraction), StressTestsRaw (per-build raw runs incl. error text, latest default, boxplot of ms), and StressTestsFailures (failing test×thread combos with a sample error); rewired the CI/CD tests project. Backed by the new server stress_tests table populated from the Jenkins stress job.

  • GROK-14456: Usage Analysis: Log tab improvements (added parameter details to the context panel and stack traces for errors)

  • GROK-12108: Usage Analysis: Errors tab

  • GROK-19820: Jira swagger: Removed three unused endpoints, keeping only Jira Create Issue

  • Metrics: Added Admin Metrics dashboard tab

  • TestTrack: Fixed node-expansion errors after the Test TrackTestTrack folder rename — the loader now skips -run run reports and -spec.ts files (filtered to ``) instead of parsing them as test cases, and guards against a null category node

  • GROK-16262: TestTrack: Removed the Browse > Browse tree states test case

2.5.1 (2026-05-21)

  • TestTrack: Wired Playwright suite (files/TestTrack) into grok test via the new playwrightTests opt-in; specs now authenticate via the same dev-key→token flow as the Puppeteer pass and run in CI alongside existing tests
  • Test Dashboard: Moved "Watch a jira ticket" storage from the ua_tickets Postgres schema to a JSON file in System:AppData/UsageAnalysis/manual-tickets.json; removes the package-owned schema (and its UA_tickets connection / ManualTicketFetch / ManualTicketCreation queries) so UA installs cleanly on customer envs without CREATE SCHEMA/ROLE privileges
  • Test Dashboard: Wired the JIRA-ticket verdict grids back into onFrameAttached so watched/auto-detected tickets now render as priority-bucketed grids in the dashboard accordion (previously the display path was defined but never called)
  • Test Dashboard: Removed dead code (~115 lines): unused verdictsOnTestTrack/testTrackDowngrades, commented-out unaddressedTests block, stray debugger statement, and several unused locals
  • Click Events widget: Added date range filter, section labels, highlight zones tooltip

2.5.0 (2026-03-20)

Features

  • GROK-18787: Click Tracking:
    • Added Clicks tab
    • Added tab control for Click Analysis and Specific Clicks
    • Added elements inspect
  • #3213: Introduced Projects tab
  • Improved query performance, load time, and projects tab
  • Reports: Added descending ordering by creation date in widget
  • Reports: Truncated long text in widget
  • Improved ticket loading with bulk method and background processing
  • Decreased bundle size by removing unnecessary test library usages
  • #3604: Migrated tags to roles

Bug Fixes

  • GROK-19855: Reporting app now loads reports when opened by URL with report number
  • GROK-19523: AppTreeBrowser decorator now finds the app properly
  • GROK-19504: Invalid datagrok-api imports corrected

2.4.2 (2025-09-26)

  • Test Track: Added advanced test case for visual query
  • Reports: Fixed not visible add rule button
  • TestTrack: Removed manual test that have autotest
  • GROK-18772: ManualTests Dashboard: Unable to parse string "Test Track:test" when trying to "Run" test
  • Test Track: updated and refined test cases for Projects (added Spaces)
  • Tests: Added warning about missing packages tests
  • Update Autocomplete
  • Update Formula Refreshing
  • GROK-17332: Removed unused queries
  • Table name change
  • Test Track: Line chart: Added context menu for test cases
  • GROK-18366 Usage analysis: Log: an error occurs when opening the tab
  • UsageAnalysis: Api: naming fixes

2.3.2 (2025-03-24)

  • Tests Dashboards: improvements for gathering of benchmarks

2.3.1 (2025-03-13)

  • Dependency: datagarok-api >= 1.24.0*

Features

  • Tests Dashboards: improvements and bug fixes
  • Stress tests dashboards revisited

2.3.0 (2025-02-18)

  • Dependency: datagarok-api >= 1.24.0*

Features

  • Packages: Possibility to filter packages by category
  • Functions: Possibility to filter functions by tags
  • Improvements in usage queries and bug fixes
  • Tests Dashboard

2.2.1 (2024-12-03)

  • Dependency: datagarok-api >= 1.22.0*

Features:

  • Added detector for tests tables
  • Updated test track business logic
  • Added test cases to Test Track app

2.2.0 (2024-10-24)

  • Dependency: datagarok-api >= 1.22.0*

Features:

  • Reporting: Better subscriptions handling
  • Service logs app: Application that gives possibility to see logs of different services within Datagrok infrastructure.

2.0.2 (2024-07-23)

  • Dependency: datagarok-api >= 1.20.0*

Features

  • Reporting: Bugs fixes and improvements in UX
  • Test Track:
    • Collaborative testing synchronization
    • Ability to set severity level of errors
    • Ability to associate test executions with Error reports
    • Updates Test Track according new tests registration

2.0.1 (2024-06-12)

Features

  • Reporting app

2.0.0 (2024-03-16)

  • Dependency: datagarok-api >= 1.18.0*

Features

  • Test Track released
  • GROK-14344 UA: Functions execution time
  • UA: update routing, overall improvements
  • UA: Test results for selected date in Test Track
  • UA: Compare test results in Test Track
  • GROK-14402 UA: Test Track

1.0.4 (2023-11-27)

Dependency: datagarok-api >= 1.17.3

Features

  • GROK-13271 Usage Analysis: Logs view (#2363)
  • UA: Refactor Usage tab for Packages & fixes

Bug Fixes

  • UA: Tests fixes
  • Enabled cards caching

1.0.3 (2023-11-09)

Dependency: datagarok-api >= 1.16.1

Features

  • UA: Packages installation time
  • Overall improvements

1.0.2 (2023-10-31)

Dependency: datagarok-api >= 1.16.1

Features

  • GROK-13425 UA: Ability to call query without loading from server
  • GROK-12578 UA: Tests
  • GROK-13721 Test Track (WIP)
  • UA:
    • Speedup
    • CSS tweaks
    • Better choiceInput
    • Client side cache
  • GROK-13947 UA | TM: Usage tab for packages

Bug Fixes

  • UA: Fixes GROK-13498 & GROK-13500
  • UA: Queries & widget fixes

1.0.1 (2023-07-03)

Dependency: datagarok-api >= 1.13.8

Features

  • Speedup, cleanup and styles fixes
  • GROK-13342 Resurrect test tracking system

Bug Fixes

  • Query deploy bugfix

1.0.0 (2023-05-10)

Dependency: datagarok-api >= 1.13.8

Features

  • GROK-12111 UsageAnalysis: Packages tab
  • GROK-12745 UsageAnalysis: Functions tab
  • GROK-12796 UsageAnalysis: Widget
  • GROK-12110: Usage Analysis: Overview tab
  • GROK-12109 UsageAnalysis: Events tab
  • UsageAnalysis: Cards
  • Overall fixes & improvements

Bug Fixes

  • GROK-13127 UsageAnalysis: error in widget