github OneUptime/oneuptime 14.0.100

2 hours ago

148 changes since 14.0.99: 50 new or improved features, 45 bug fixes, 1 performance improvement, 4 documentation updates and 48 maintenance changes. The busiest areas: Exceptions, Kubernetes and Monitors.

✨ New and improved

  • Exceptions
    • Similar exceptions on the Overview, and OneUptime AI says which are the same bug (#5431)
    • Alert on new, regressed and spiking exceptions from an Exceptions monitor (#5440)
    • Affected users and a trend chart on every row of the exceptions list, from one stats call per page (#5443)
    • Merge a likely duplicate into an exception and unmerge it - the merged fingerprint becomes an alias at ingest, counts and occurrences follow (#5445)
    • Group new exceptions by the functions and modules of their own code, while existing ones keep their first fingerprint (#5447)
    • An activity timeline per exception - every triage, assignment, merge and regression recorded on the server, shown on the Overview (#5450)
    • Notify the person, or the members of the team, an exception is assigned to - the owner-added pattern, through each person's notification settings (#5451)
    • Saved views of the exceptions list (#5454)
    • Alert on exception spikes against what is normal for the hour of the week (#5506)
  • Kubernetes
    • A cluster's Platform shows OpenShift, EKS, GKE or AKS, read from its telemetry (#5481)
    • The setup guide installs on OpenShift, and the agent docs say how (#5483)
    • The openshift preset pulls OpenShift's operators, version, Routes and DeploymentConfigs into inventory (#5484)
    • The openshift preset pulls the Services Routes point at, and names a pod's DeploymentConfig (#5487)
    • Routes, Services and DeploymentConfigs have pages of their own (#5489)
    • An OpenShift cluster's overview leads with its operators and update (#5491)
    • An OpenShift cluster is offered alerts on its operators and update (#5492)
  • Kubernetes Agent
    • Restart and Job failure increases carry the workload names their counts carry (#5469)
    • An openshift preset, so the agent installs and runs on OpenShift (#5480)
    • An openshift-restricted preset, and OpenShift's control plane through service discovery (#5494)
  • App Platforms
    • Split the app and container platforms out of Cloud into App Platforms (#5488)
    • Every app and its deploys - All Apps, an app's page, revisions, rollbacks, per-app requests, errors and latency (#5511)
  • Inventory
    • Read what a device reports about itself, and tie an MX to its Meraki record (#5384) (#5495)
    • A discovery scan reads a host's MAC, serial number and firmware (#5384) (#5502)
  • UI polish
    • Forms on a custom domain - refusals under their field, Edit without a fold, DNS Setup first, addresses left to right (#5478)
    • Agent install commands read whole where they are shown (#5455 review) (#5479)
  • Website
    • An OpenShift monitoring page leads into the Kubernetes product (#5493)
    • An air-gapped page for each product (#5503)
  • Dashboards: Restart charts show restarts per interval, falling back to the running count for older agents (#5467)
  • Data Security: Who reaches the data, OneUptime AI for unplaced fields, six more one-click fixes and a case's data at risk (#5500)
  • Forms: A form on its own custom domain, as status pages have (#5463)
  • License: Manage the license on Settings > License in the Admin Dashboard (#5505)
  • Monitors: One simple setup for every infrastructure monitor - what to watch with whether it sends data, the default alert it starts on, and the rest under More fields (#5432)
  • Network: Meraki places clients on their switch ports and reports the cables the map was missing (#5497)
  • Proxmox: What needs attention first, a page for each node, guest and storage, backup results and five new alerts (#5490)
  • Rum: Follow one user or session through User Flows, page by page (#5514)
  • Security: Playbooks that branch on a step's result, Add tasks, Entra ID and Google Workspace containment, and real-time detection rules (#5424)
  • Traces: The traces list, Insights and the older span panel in all 17 languages (#5508)
  • Translations: The translation backlog's next pass - form fields' help, Dismiss, the Products menu, Korean, Ceph and more in every language (#5512)
  • Workflows: Every template in five steps or fewer, and who to page asked when it is created (#5430)
  • File and Multiple files custom fields, and Forms file questions that fill them (#5436)
  • Monitors follow-ups (#5281): grouped infrastructure reads in ClickHouse, SNMP walk Download, Monitor web UI, phone fixes, readable secondary links, overall status in words (#5437)
  • Dashboards fit their screen and stack on phones; public dashboards get a dark theme logo (#5284 follow-ups) (#5453)
  • Agent install scripts served by OneUptime itself: /install/<agent> on the reader's own host, matching its release, never GitHub (#5455)
  • Resource topology as a tree of cards: no more boxes inside boxes, the way to trouble open, every product (block 50) (#5457)
  • Uploaded logos inside emails, Teams in US Government clouds, a single-tenant Teams meetings app, uptime report stats by name (#5459)
  • The trace view in all 17 Dashboard languages: minimap, flame graph, waterfall, span panel and signals (#5470)
  • Forms and buttons, next: Change Plan on the plan picker, the criteria editor on a phone, one locked look, optional said once (#5482)
  • Tables fit their card: short dates, folds by the card's width, tablet cards, compact rows (#5485)
  • Status page subscribers are written to in their own language (#5501)
  • Persian pages, more places: server answers and names read as written, values keep their place, popups, lists, dates and canvases follow the page (#5510)

🐛 Bug fixes

  • Monitors
    • VMware datacenter alerts that never recovered, a host outage template that watched planned shutdowns, vSAN windows, and Proxmox, Ceph and Storage Array metric defaults (#5433)
    • A new infrastructure monitor keeps its default alert's criteria instead of the out-of-the-box ones (#5439)
    • An alert shows the value a summed criteria judged, not its worst minute (#5464)
    • The Kubernetes monitor form's Workload Kind follows the chosen template (#5471)
    • The Kubernetes Custom Metric tab's Workload Kind follows the chosen metric (#5474)
    • The HPA template and HPA metrics can be scoped to one HPA (#5475)
    • Unusual-count alerts on Logs and Traces keep firing while a change lasts (#5509)
    • Unusual-value alerts on Metrics monitors keep firing while a change lasts (#5513)
    • Unusual-value alerts on metrics read the right weekday, the monitor's services and a query's own scale (#5520)
    • Logs and Traces baselines read the hours the count rollups store (73576c0)
  • Exceptions
    • Relative times in the reader's language, and in the sentence's own language inside a translated sentence (#5434)
    • Merged fingerprints find their survivor, and an unmerge recomputes first and last seen (#5456)
    • Merged fingerprints are matched to the exception they were merged into in the security case story, its evidence and the session replay's links (#5460)
    • An Exceptions monitor's infrastructure entity filter applies to its new and regressed exceptions (#5462)
    • What reads an exception's occurrences takes in those merged into it - the fix verifier, find_production_exceptions, the AI explanation, the spike detector, production reviews and session replays (#5465)
    • The security events on an exception's page and the Exceptions monitor form's preview take in the exceptions merged into it (#5468)
    • The exception's message keeps a reading width beside #5422's and #5416's actions (b385e48)
    • The merge dialog's description fits its limit (d6098c2)
    • An Exceptions monitor reads the clock once per evaluation (87efbbc)
  • Kubernetes
    • CrashLoopBackOff Detection counts every restart, from the increase the agent sends with each sample (#5458)
    • Job Failures counts every failure, from the increase the agent sends with each sample (#5461)
    • Links to a DeploymentConfig, Route or Service keep their namespace (#5496)
    • The OpenShift verify step's SCC line leaves the translated explanation (5345e27)
  • Infrastructure Monitors
    • A monitor keeps its resource by id, so a renamed cluster or a host name's case no longer empties it (#5442)
    • Request commitment leaves finished pods out, Swarm templates read tasks only, and Network Device monitors say when polls stop (#5444)
    • Ceph custom metrics per pool or daemon without scrape-counting sums, storage array thresholds in the metric's unit, and docs on health checks and timing (#5448)
  • Master
    • The OpenShift pages, the Meraki read and the IoT fleet name pass compile-tests and App Test (d4420ca)
    • An OpenShift cluster's Recommendations say why it has OpenShift's alerts, and its card translates every string (7009b2c)
    • 14.0.100 cut 1's test reds - the EKS add-on's notes, the Meraki MX's firmware, private-record deletes, cached permissions and the OpenShift Events tabs (eadf1ee)
  • IoT
    • Device Offline no longer fires for devices that are up, clears when a device comes back, and matches the fleet whatever its case (#5446)
    • A reading is stored under its fleet's own name, whatever case its sender used (#5449)
  • Website
    • The Security Events and VMware pages say what the product ships - 86 rules, data store containment, vCenter Stopped Reporting (4aed4e2)
    • The Security Events page names #5424's containment in Microsoft Entra ID and Google Workspace (434da7d)
  • Accounts: Your theme, language and cookie choice stay when you log out (#5516)
  • Docker, Podman: Container Restart Loop counts every restart, from the increase the agent sends with each sample (#5452)
  • Kubernetes Agent: Name the cumulative-to-delta processor as the collector knows it, so a --reuse-values upgrade's agent starts (1aba4e6)
  • Npm Package: The status page's state names and messages are published again - their translator moves out of UI/ (40f6e82)
  • Permissions: A private incident, alert or episode is changed only through the teams that own it (#5438)
  • Proxmox Agent: Its files report 0.161.1, so a cluster on #5428's older config is told to upgrade (2c61c77)
  • Rum: Journeys keep a page someone came back to, and end where they left (#5515)
  • Security: A file's declared type finds only its own content rule; cut 1's CodeQL test alerts, the learned-baseline compile reds and four more groups rebalanced (81b00e5)
  • Telemetry: Logs, spans, metrics and profiles are stored at the time they were sent, never a millisecond or a second off (10bc9cc)
  • Tooltip: The Escape listener loads anywhere, a window without a DOM included (#5435)
  • Translations: The Japanese merge question ends with a full-width question mark (3eb130e)
  • Types: The AI card's heading ref and three monitor tests type-check under compile-common (151aae7)

⚡ Performance

  • Exceptions: Keep What's new and the duplicate check until a new occurrence, and read only text heads for Similar exceptions (#5441)

📚 Documentation

  • Data Security: The three diagrams fit the docs column, in all 17 languages (9d32a12)
  • Kubernetes: What an OpenShift cluster shows in OneUptime, in all 17 languages (#5499)
  • Monitors: The Metrics conditions table lists Has No Data and Has Data, in all 17 languages; the Exceptions check reads #5416's reopen rule (576c3a2)
  • Notifications: SMS and calls can go through a gateway, in all 17 languages (#5504)
🧰 Maintenance (48)
  • E2E
    • The Teams list's locked Delete takes two Escapes, its tooltip's and then the menu's (8f2a37f)
    • A cluster's Recommendations count 19 monitors since #5421's Cluster Stopped Reporting (81e9ebf)
    • The exceptions list's menus offer #5422's Assign too (316dacf)
    • Chart-time-zoom-ui's fixture answers the exceptions list's new reads (d346470)
    • Chart-time-zoom-ui runs on CHART_TIME_ZOOM_FIXTURE_PORT, the whole suite (a3d0f03)
  • Exceptions
    • A member asking for an AI fix is on a plan that has code repositories, as in production (b261a1d)
    • The recipes test's criteria filters type-check under compile-tests (017eed3)
    • The user id reader's sixteen-megabyte read counts its fastest attempt (a85fb5d)
    • The grouping's megabyte reads count their fastest attempt (7f08af9)
    • The assignment notice's four-megabyte name read counts its fastest attempt (a04986d)
  • AI
    • An exception's explanation and the exceptions digest read the AI context, and say so (85c1a2b)
    • #5413's two routes and #5419's and #5427's AI calls are where the expired-session and kill switch suites look (97ec4a4)
    • The exception duplicate check is in the kill switch registry (0499be5)
    • AiCardStep's heading ref type-checks in compile-common's layout (7989b28)
  • App Test
    • Data Security's offline suite moves from group 10 to group 13 (a53267a)
    • OpenShift Pages and Topology run in group 15, so group 9 keeps under its 28 minutes (ae619b4)
    • Navigation Search runs in group 2, so group 13 keeps room for Data Security's growth (dab307c)
    • Offline UI groups survive runners 1.45 times slower - a 35-minute run step, Monitor Overview in halves, and a group 16 (b8bcfdd)
  • Perf
    • Two versions of the same work are timed in turns, so one stall cannot slow one side alone (b2b4e43)
    • Four more speed comparisons are timed in turns (1b704fc)
    • The last four speed comparisons are timed in turns too (0e49b52)
  • Build
    • Home, Probe and Runner type-check with module es2022, as App and Common do (4567fda)
    • Nginx and Test Server type-check with module es2022, as App, Common, Home, Probe and Runner do (964418a)
  • CI
    • 14.0.100 cut 1's other reds - MobileApp's lint types, two new tests' lint, the unmerge time bomb, three offline specs, and Model Tables in halves (eb03ade)
    • 14.0.100 cut 2's reds - the ingress prune keeps what the sidecar reaches that only an unreached package kept, two suites read the agent chart's processor through its helper, and Reset column widths waits for the table to fit again (326ec78)
  • Deps
  • Install
    • The Host AI agent installer suite's getItem mock returns a Host (28b9935)
    • The Ceph, VMware and Database card suites read as an install with no HOST, in CI too (37a5eec)
  • Traces
    • The analytics series memo is pinned with the measure in the reader's words (3908e59)
    • The Persian Insights tab's saved view sentence is read without its isolate marks (8ad3db7)
  • Translations
    • The trace view's language suite escapes with Common's escapeRegExp (449c4c2)
    • The Admin Dashboard's form help is held where ee/ is - App Test removes it, the Enterprise Edition Test keeps it (9bb00db)
  • Agents: A Proxmox agent's pin is its files' own release, 0.161.1 (b68d136)
  • Calendar: The toolbar suite's clock is the day its calendars open on (b40698e)
  • Color Picker: The drag waits for the panel to hold still before it reads the square (6a925b0)
  • Docs: The network device page's two new bold names stay in English (aac719a)
  • Infrastructure Monitors: The renamed-host spy is typed with jest-mock's SpyInstance (9cc29f2)
  • License: The license page suite type-checks in compile-common's layout (65c03a5)
  • Migration: The merge-hosts suite makes the rows a seeded row's NOT NULL references need (70bf290)
  • Monitors: The Kubernetes memory ratio's criteria tests read the working set the template reads since #5421 (a4c0abc)
  • Probe: The device list fetch declares every capability the probe honours, the network ones among them (1f314e6)
  • Proxmox Agent: The drift guard reads the files' release in the config, the collector's in the image (4a293e4)
  • Release: Each release's notes list what it ships, sorted for the reader (#5498)
  • Telemetry: The exact OTLP time read, in Date.ts and through each ingest service (8c94efa)
  • npm audit fix (#5466)
  • The exception duplicate check's AI context, and the quick setup's criteria names, as compile-tests and AiContextWiring want them (c1f0329)
  • Three URL checks read the host, not a substring (CodeQL js/incomplete-url-substring-sanitization) (247d18a)

⬆️ Upgrade

Back up first, then follow the upgrade guide. On Docker Compose, run npm run update on the release branch. On Kubernetes, helm upgrade to version 14.0.100 of the chart.

Full changelog: 14.0.99...14.0.100

Contributors: @simlarsen

Don't miss a new oneuptime release

NewReleases is sending notifications on new releases.