What openobserve/openobserve shipped
Written by FoxPlug from the repository's own releases; not affiliated with Openobserve. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/openobserve/openobserve; Openobserve did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Adds phase 0 of an enterprise Security solution, with a header switcher between Observability and Security and new Overview and Events pages. Pull request #16535
- Adds a Firing tab under Alerts so live alerts across all folders can be triaged in one place, with a triage drawer and history. Pull request #16494
- Keeps sub-second precision when a _timestamp is ingested as fractional epoch seconds, as a JSON number or a string. Pull request #16568
- Keeps persisting a memtable when a deleted stream's file is gone, so other streams in the same memtable no longer lose their data on retry. Pull request #16550
- Reports errors from top-N aggregates instead of returning no rows when the aggregation fails. Pull request #16521
- Honours the custom download range when the query has a SQL LIMIT clause, instead of writing the full LIMIT result to the file. Pull request #16505
- Lists every request in a RUM session's Traces tab with URL-safe lookups, browser-timed durations and HTTP error status. Pull request #16468
- Adds SLO import from exported JSON, with an Import button on the SLO list and a dedicated import page for URL, file or pasted JSON. Pull request #16546
- Reworks the Kubernetes page with a searchable cluster dropdown, readable dependency map, namespace grouping and table sizing. Pull request #16496
- Keeps tall navigation rail flyouts inside the viewport and scrolls them, so items like External Alert Sources stay reachable. Pull request #16542
Why it matters
This week mixes new surfaces with fixes that affect stored and displayed data. Alerts get a Firing tab for cross-folder triage and an easier import and export path, dashboards get a decluttered toolbar, and SLOs can now be imported from exported JSON. Several fixes address data correctness and visibility: fractional epoch timestamps keep their precision, a deleted stream no longer takes other streams down with it during memtable persistence, top-N aggregate errors are reported instead of hidden, and custom log downloads respect the chosen range.
Changelog entry
- Security solution phase 0 in enterprise builds: header switcher between Observability and Security, with Overview and Events pages. Pull request #16535
- Alerts: new Firing tab for triaging live alerts across all folders, with a triage drawer and history. Pull request #16494
- Ingestion: fractional epoch timestamps keep sub-second precision instead of being truncated. Pull request #16568
- Ingestion: memtable persistence continues when a deleted stream's file is gone, instead of discarding the whole dump. Pull request #16550
- Search: top-N aggregate errors are reported instead of returning no rows. Pull request #16521
- Logs: custom range download honours the chosen range when the query has a SQL LIMIT clause. Pull request #16505
- RUM: session Traces tab lists every request in the session, with URL-safe lookups and HTTP error status. Pull request #16468
- SLOs: import from exported JSON via a new import page accepting URL, file or pasted JSON. Pull request #16546
- Kubernetes page: searchable cluster dropdown, readable dependency map, namespace grouping and table sizing. Pull request #16496
- Dashboards: toolbar regrouped into fewer controls and two labelled menus, with no capability removed. Pull request #16541
- Alerts: import no longer requires
org_id, accepts null destinations, and export always writes empty destination lists. Pull request #16545 - Navigation: tall rail flyouts stay inside the viewport and scroll. Pull request #16542
This week: a Firing tab for triaging live alerts across folders, SLO import from JSON, a decluttered dashboard toolbar, and phase 0 of an enterprise Security solution. Fixes for fractional epoch timestamp precision, top-N aggregate error reporting and custom log download ranges.
This week's updates to the repository cover both new surfaces and correctness fixes. Alerts gain a Firing tab for triaging live alerts across all folders, with a triage drawer and history, and SLOs can now be imported from exported JSON. The dashboard view toolbar was regrouped so frequent actions stay one click away. Phase 0 of an enterprise Security solution adds a header switcher between Observability and Security with new Overview and Events pages. On the fix side, fractional epoch timestamps keep their sub-second precision, a deleted stream no longer causes other streams in the same memtable to lose data during persistence, top-N aggregate errors are now reported instead of returning no rows, and custom log downloads honour the chosen range when the query has a LIMIT clause. RUM sessi
Week of October 26, 2026
What shipped
- Added a Dependencies view for Kubernetes workloads and Linux hosts that draws which workloads or hosts talk to each other and how many bytes per second flow between them, from eBPF network flow data. Pull request #16121
- Added a Heatmaps sub-tab under Product Analytics that rebuilds a page from session replay, draws clicks over it, and lists the most-clicked elements per page and device class. Pull request #16080
- Added a Heatmaps sub-tab under Product Analytics that rebuilds a page from session replay, draws clicks over it, and lists the most-clicked elements per page and device class. Pull request #15709
- Added a Dependencies view for Kubernetes workloads and Linux hosts that shows which workloads or hosts talk to each other and the bytes per second flowing between them, built from eBPF network flow data. Pull request #16114
- Added drill down presets, name both sides of a comparison, and made the Duration heatmap selection explicit on the Traces page, with steadier controls, columns and charts while results change. Pull request #16107
- The Traces explore page now states what it is actually showing and keeps list state in the URL so Back and shared links open what the user saw. Pull request #16106
- Trace rows in the results list can now be opened in a new tab via link, middle-click, cmd/ctrl-click or context menu without re-running the query. Pull request #16124
- Service Graph inferred dependencies now draw a dashed ring, and computed LLM cost is rounded to remove float noise. Pull request #16120
- Improved Traces readability: flame graph labels pick black or white from their span colour, chart tooltips are no longer clipped, and the close button is outlined. Pull request #16119
- The Logs page now has a steadier first paint and a status bar that settles once instead of passing through several states while a query loads. Pull request #16081
Why it matters
This week adds two new views for understanding traffic and interaction: a Dependencies map for Kubernetes workloads and hosts, and Heatmaps under Product Analytics. Traces also gained drill down presets, new-tab opening and more honest list and URL state, while Logs got steadier loading behaviour. A large share of the changes are fixes to flaky tests and CI, which matters because unrelated pull requests were being held up by intermittent failures.
Changelog entry
- Add a Dependencies view for Kubernetes workloads and Linux hosts, drawing traffic between them from eBPF network flow data. Pull request #16121
- Add Heatmaps under Product Analytics, rebuilding a page from session replay and listing most-clicked elements per page and device class. Pull request #16080
- Add drill down presets and explicit Duration heatmap selection on Traces, with steadier controls and charts. Pull request #16107
- Traces explore page now states what it is showing and keeps list state in the URL for Back and shared links. Pull request #16106
- Open a trace in a new tab from the results list by link, middle-click, cmd/ctrl-click or context menu. Pull request #16124
- Draw a dashed ring for inferred dependencies in the Service Graph and round computed LLM cost. Pull request #16120
- Make flame graph labels readable on every span colour and unclip chart tooltips in Traces. Pull request #16119
- Mark unrecorded canvases and list failed requests in the session player. Pull request #15709
- Metrics explorer: boolean label filters, usage and outlier sorts, and interval-aligned steps. Pull request #16114
- Logs page: steadier first paint and a status bar that settles once after a query. Pull request #16081
- Keep rows, scroll position and counts steady while pages load. Pull request #16118
- Show a zero firing count in the alert list Groups column. Pull request #16111
This week: a Dependencies view for Kubernetes workloads and hosts from eBPF network flows, Heatmaps under Product Analytics, and drill down presets in Traces. Also many fixes for flaky tests and CI reruns.
This week for OpenObserve: a new Dependencies view under Infra draws which Kubernetes workloads and Linux hosts talk to each other and how many bytes per second flow between them. Product Analytics gained a Heatmaps sub-tab that rebuilds a page from session replay and ranks the most-clicked elements. Traces added drill down presets, new-tab opening from the results list, and honest list and URL state. Logs got a steadier first paint and a status bar that settles once. Much of the work also went into fixing flaky tests and CI rerun behaviour that was blocking unrelated pull requests.
Week of October 19, 2026
What shipped
- Fleet management for OpenTelemetry collectors landed, bringing shared types, storage, an HTTP surface and a web UI for managing collector fleets. Pull request #15653
- Dashboards gained a state-timeline panel type for SQL and PromQL panels, drawing one horizontal band per entity with time on the x-axis and each stretch coloured by the state in effect. Pull request #15773
- OTLP trace ingest now scopes
service_nameper resource and per span, fixing wrong attribution when one export request carries more than one resource. Pull request #15691 - The KV watcher is now spawned, so other nodes drop stale cached KV entries after an overwrite or delete instead of serving the old value. Pull request #15651
- Organization deletion was completed, extending the earlier metadata store work. Pull request #15394
- Report history fixes landed: weekday rendering no longer shows a padded day of month, the org-wide drawer uses the right timezone, and exhausted one-time reports are paused. Pull request #15705
- Alert calibration lists runs again on digest streams created without the removed coverage column. Pull request #15701
- Ingestion classification, audit and org creation now resolve the org from the routed path rather than a fixed position in the path. Pull request #15684
- Dataset rows with a JSON-object input now expose each top-level field as a prompt variable in the UI, matching how the experiment runner binds them. Pull request #15568
- A stale and unused
distinct_value_fieldscodegen entity was removed with no behaviour change. Pull request #15696
Why it matters
This week adds two substantial product capabilities: a state-timeline panel for dashboards and fleet management for OpenTelemetry collectors. It also fixes trace service_name attribution in OTLP ingest and makes nodes drop stale cached KV entries after writes and deletes. Several report history and alert calibration bugs that hid data or misrendered it are also corrected, alongside a large batch of test and CI deflaking work.
Changelog entry
- Add state-timeline dashboard panel type for SQL and PromQL panels. Pull request #15773
- Add fleet management for OpenTelemetry collectors, with shared types, storage, HTTP surface and web UI. Pull request #15653
- Scope
service_nameper resource and per span in OTLP ingest. Pull request #15691 - Spawn the KV watcher so other nodes drop stale KV cache entries. Pull request #15651
- Complete organization deletion. Pull request #15394
- Fix report history weekday format, org-wide drawer timezone, and pause exhausted one-time reports. Pull request #15705
- Fix alert calibration run listing on digest streams created without the removed coverage column. Pull request #15701
- Resolve the org from the routed path in ingestion classification, audit and org creation. Pull request #15684
- Bind dataset JSON-object input fields as prompt variables in the UI. Pull request #15568
- Fix a race that could leave the logs Build-tab query editor empty. Pull request #15720
- Remove unused
distinct_value_fieldscodegen entity. Pull request #15696
This week: a state-timeline dashboard panel type, fleet management for OpenTelemetry collectors, per-resource and per-span service_name in OTLP ingest, and a spawned KV watcher so nodes drop stale cache entries. Also report history and alert calibration fixes.
This week in OpenObserve: dashboards gained a state-timeline panel type that draws one horizontal band per entity and colours each stretch by the state in effect. Fleet management for OpenTelemetry collectors landed with shared types, storage, HTTP surface and a web UI. OTLP trace ingest now scopes service_name per resource and per span, fixing wrong attribution when one request carries more than one resource, and the KV watcher is now spawned so other nodes drop stale cache entries after an overwrite or delete. Report history fixes correct weekday rendering, drawer timezone and pausing exhausted one-time reports, and alert calibration lists runs again on digest streams created without the removed coverage column.
Week of October 12, 2026
What shipped
- Release v1.1.1 shipped, bundling index build fsync changes and a fix stopping metrics streams from building tantivy indexes from global index fields. Release
- Scheduled reports now keep a run-by-run history with last-run status and a run now action, modeled on Alert History. Pull request #15259
- Alert webhook templates support {\...row} to include the complete matched row payload instead of listing every field manually. Pull request #14902
- Downtime previews no longer show names, IDs or folder IDs of alerts the user cannot read. Pull request #15458
- PromQL alerts no longer panic when the result cache trims a series to no samples; such series are dropped instead. Pull request #15459
- A node now removes peers that were never seen healthy once those peers fail health checks, instead of routing work to them forever. Pull request #15460
- Function updates can no longer switch a pipeline's function to JavaScript, matching the rule already enforced on pipeline create and update. Pull request #15464
- On panels with several queries, Create alert now asks which query the alert is for, and PromQL alerts in code mode get the right stream. Pull request #15351
- On-call escalation policies can now page responders by SMS and voice call in addition to email. Pull request #15205
- The Profiles page was rebuilt on shared components, fixing double query runs, inputs that did not rerun the query, and page state missing from the URL. Pull request #15454
Why it matters
This week reached users on several fronts: a v1.1.1 release, report run history, complete-row webhook templates, and on-call paging beyond email. It also closed several reliability gaps that could bite in production, including PromQL alert panics, dead cluster peers, and alert notifications leaking destination URLs. Access control and pipeline validation got tighter, so downtime previews hide resources users cannot read and functions cannot be switched to JavaScript behind a pipeline's back.
Changelog entry
- Release v1.1.1. Release
- Reports: add report history, last-run status and run now. Pull request #15259
- Alerts: support {...row} in webhook templates to include the complete row. Pull request #14902
- Downtimes: hide unreadable resources from downtime previews. Pull request #15458
- PromQL: drop series the result cache trims to no samples, fixing alert panic. Pull request #15459
- Cluster: remove peers never seen healthy once they fail health checks. Pull request #15460
- Functions: refuse switching a pipeline's function to JavaScript. Pull request #15464
- Alerts: ask which query to alert on for multi-query panels. Pull request #15351
- On-call: page responders by SMS and voice call. Pull request #15205
- Web: revamp the Profiles page and fix its broken flows. Pull request #15454
- RUM: put the Performance tabs and controls on one toolbar row. Pull request #15457
- I18n: correct 411 French UI strings and pin terms. Pull request #15453
OpenObserve v1.1.1 is out. This week: scheduled reports get run history, last-run status and run now; webhook alert templates can send the complete row; on-call policies page by SMS and voice. Also fixed: PromQL alert panics on empty cached results, dead cluster peers kept foreve
OpenObserve v1.1.1 is out. This week's changes include run-by-run history, last-run status and run now for scheduled reports; complete-row payloads in webhook alert templates via {...row}; and SMS plus voice call as on-call paging channels on escalation policies. On reliability, PromQL alerts no longer panic when the result cache trims a series to no samples, cluster nodes now drop peers that fail health checks and were never healthy, and alert notification send errors no longer carry destination URLs that act as credentials for webhooks. Access checks also tightened: downtime previews hide resources a user cannot read, and function updates can no longer switch a pipeline's function to JavaScript.
Week of October 5, 2026
What shipped
- A new install now generates and stores the ext auth salt on first start instead of refusing to start until it is set, which unblocks the quickstart and the README docker run. Pull request #15191
- The same ext auth salt fix was ported to the 1.1.0 branch so new 1.1.0 installs start without requiring the salt to be set first. Pull request #15206
- A CI gate now fails an OSS pull request merge while a same-named enterprise pull request is still open. Pull request #15015
- Stream read access is now checked when alerts, SLOs, reports and similar background objects are saved, enabled or run, not only when a user searches. Pull request #15213
- An unsupported meta store or cluster coordinator value is now rejected instead of silently falling back to sqlite. Pull request #15236
- PromQL now matches Prometheus in range-function NaN and overflow handling, quantile,
histogram_quantileand rate extrapolation. Pull request #15002 - Saving an alert now asks which query mode to use when more than one mode is in play, and three edit-flow bugs were fixed. Pull request #15090
- The org switcher now disambiguates duplicate org names with a per-org label instead of showing two plain defaults. Pull request #15235
- A JavaScript function context left with a queued job is no longer reused, fixing the case where one org's function could run against stale globals. Pull request #14980
- Dashboard variables can now apply on change using the same Auto Run setting as Logs and Traces. Pull request #15216
Why it matters
This week the project fixed several problems that affected first-time installs and admin workflows: a new install no longer refuses to start over a missing salt, and stream read permission is checked when background objects are saved. It also brought PromQL behavior closer to Prometheus and corrected saving and recording paths for alerts. Together these changes reduce setup friction and make alert and query results more predictable.
Changelog entry
- Generate and store the ext auth salt on a new install instead of refusing to start. Pull request #15191
- Port the ext auth salt fix to the 1.1.0 branch. Pull request #15206
- Add a CI gate that fails OSS PR merge while a same-named enterprise PR is open. Pull request #15015
- Check stream read access when saving, enabling or running alerts, SLOs, reports and other background objects. Pull request #15213
- Reject an unsupported meta store or cluster coordinator instead of falling back to sqlite. Pull request #15236
- Match Prometheus in range-function NaN and overflow, quantile,
histogram_quantileand rate extrapolation. Pull request #15002 - Ask which query mode to save and fix stale edit data when saving alerts. Pull request #15090
- Disambiguate duplicate org names in the org switcher. Pull request #15235
- Do not reuse a JavaScript context left with a queued job. Pull request #14980
- Apply dashboard variables on change with Auto Run. Pull request #15216
- Add numeric and timestamp functions to alert templates. Pull request #15224
- Show No Data instead of Error Loading Data for empty custom charts. Pull request #14813
New installs start without setting an ext auth salt. Stream read access is checked when alerts, SLOs and reports are saved. An unsupported meta store is rejected instead of falling back to sqlite. PromQL matches Prometheus on NaN, quantile and rate cases. CI gates OSS merges on o
This week's changes include a fix so a new install generates and stores the ext auth salt on first start instead of refusing to start until it is set, ported to the 1.1.0 branch as well. Stream read access is now checked when alerts, SLOs, reports and similar background objects are saved, enabled or run. An unsupported meta store or cluster coordinator value is rejected instead of falling back to sqlite. PromQL now matches Prometheus on range-function NaN and overflow handling, quantile, histogram_quantile and rate extrapolation. A CI workflow also fails an OSS pull request merge while a same-named enterprise pull request is open. Alert saving now asks which query mode to use when more than one is in play.
Week of September 28, 2026
What shipped
- Product analytics for RUM now tracks funnels, paths, retention and named events computed from application monitoring data. Pull request #15070
- Stream deletion performance improved by batching
file_listoperations across hours instead of per-hour, reducing 30-second deletes on large retention windows. Pull request #15066 - Anomaly detection on charts now shows expected value bands with configurable direction, window-share and bandwidth settings. Pull request #15052
- Short links now open correctly when ZO_BASE_URI is set, fixing 404 errors on shared dashboards and panel drilldowns. Pull request #15074
- Functions can now be imported and exported as files for sharing and version control. Pull request #14713
- Traces CSV export now properly escapes quotes and handles JSON values without spilling columns. Pull request #15040
- PromQL gauge panels now display the latest value in the time range instead of the oldest. Pull request #14996
- Prompt folders now support folder-scoped RBAC permissions in the authorization model. Pull request #15008
- Session replay loading is now progressive with load states and handles live sessions without freezing on seek. Pull request #14956
- PromQL aggregations with by() clauses now keep series separate when operators run inside the grouping. Pull request #15004
Why it matters
This week brings performance improvements for large-scale data operations, new product analytics capabilities for RUM monitoring, enhanced query correctness in PromQL, and better access control for organizational resources. These changes address both operator efficiency and user-facing observability features.
Changelog entry
- Feat(rum): product analytics with named events, funnels, paths and retention Pull request #15070
- Perf(compactor): batch
file_listdeletes across hours for faster stream deletion Pull request #15066 - Feat(alerts): anomaly value band with direction, window-share and bandwidth settings Pull request #15052
- Fix(short-url): open shared links under ZO_BASE_URI instead of 404 Pull request #15074
- Feat: import and export for functions Pull request #14713
- Fix(traces): keep CSV export columns aligned with proper quote escaping Pull request #15040
- Fix(dashboards): show latest value on PromQL gauge panels Pull request #14996
- Fix(prompts): folder-scoped RBAC for prompts Pull request #15008
- Fix(promql): keep series apart in by() aggregations with binary operators Pull request #15004
- Fix(logs): stop histogram from losing data on mixed breakdown responses Pull request #15005
- Fix(stream): make stream settings writes visible to next read on same node Pull request #15051
- Fix(ai): route o2-ai requests through NATS in HA mode Pull request #15036
This week: RUM product analytics with funnels and paths, 30x faster stream deletes on long retention, PromQL gauge fixes, function import/export, and improved anomaly bands on charts.
OpenObserve shipped significant improvements this week across multiple areas. RUM now includes product analytics with funnels, paths, and retention tracking. Stream deletion performance improved dramatically for clusters with long retention periods. PromQL queries are more correct with proper series handling in aggregations. New features include function import/export for sharing and anomaly value bands with configurable visualization. Short links work correctly with custom base URIs, and session replays load progressively.
Week of September 21, 2026
What shipped
- PromQL charts now display exemplars and link them directly to traces, removing the need to switch to other tools to investigate metric spikes. Pull request #14906
- OTLP and cloud ingest endpoints return proper rejection reasons and status codes so the OpenTelemetry Collector can log actual error details. Pull request #14905
- PromQL subqueries now evaluate with Prometheus semantics, correctly handling the step parameter instead of ignoring it. Pull request #14824
- The time() function in PromQL now evaluates per step in range queries instead of returning a single constant for the whole evaluation. Pull request #14831
- Vector matching with ignoring() and
group_rightnow works correctly in many-to-one scenarios. Pull request #14832 - Label_replace and
label_joinnow produce results matching Prometheus behavior. Pull request #14828 - Large integer fields in search results preserve full precision instead of having trailing digits zeroed. Pull request #14896
- Sensitive data redaction, platform audit trails, and retention reporting now have auditable evidence and proper compliance controls. Pull request #14833
- Alert destination deletes are now guarded against all consumers that reference them, and the UI shows which resources use each destination. Pull request #14796
- On-call and database monitoring screens no longer re-fetch data on every mount by moving reads onto the shared query cache. Pull request #14741
Why it matters
This week ships critical fixes for PromQL evaluation to match Prometheus, improves observability of metrics with exemplar linking, and closes compliance gaps in audit and retention. Multiple regressions from closed issues now have test coverage to prevent reoccurrence.
Changelog entry
- Feat: show exemplars on PromQL charts and link them to traces Pull request #14906
- Fix(ingest): return real rejection reasons and status codes from OTLP and cloud ingest paths Pull request #14905
- Fix(dbm): point DBM metrics charts to the setup card when _o2_dbm_server is missing Pull request #14887
- Fix(traces): right-click gte/lte menu on the Duration chart can never open Pull request #14888
- Fix(web): preserve precision for large integer fields in search results Pull request #14896
- Fix(oncall): move on-call and DB-monitoring instance reads onto the query cache Pull request #14741
- Fix(storage): fall back to HEAD + bounded range when a store rejects suffix ranges Pull request #14858
- Fix(anomaly): accept threshold as an alias for percentile, and route training scans to background nodes Pull request #14865
- Fix: close sensitive-data, audit-trail and retention compliance gaps Pull request #14833
- Fix(promql): evaluate time() and scalar parameters per step Pull request #14831
- Fix(traces): validate user and session filters before splicing them into SQL Pull request #14810
- Fix(promql): evaluate subqueries with Prometheus semantics Pull request #14824
- Fix(promql): quote metadata matcher values and identifiers consistently Pull request #14843
- Fix(alerts): guard destination deletes against every consumer, and show them in the UI Pull request #14796
- Fix(promql): honor ignoring() and
group_rightin vector matching Pull request #14832 - Fix(promql): make
label_replaceandlabel_joinmatch Prometheus Pull request #14828 - Test: cover the bug fixes confirmed by retest, and drop the #13243 workarounds Pull request #14842
- Test: regression coverage for 29 closed Needs-Automation issues Pull request #14883
- Test: regression coverage for 4 closed Needs-Automation issues Pull request #14873
- Test: regression coverage for 5 closed Needs-Automation issues Pull request #14847
V1.0.4 is out. PromQL subqueries, time(), and vector matching now work like Prometheus. Exemplars link to traces. Large integers preserve precision. Better audit trails and compliance controls.
OpenObserve v1.0.4 ships. PromQL evaluation now matches Prometheus semantics—subqueries evaluate correctly, time() returns per-step values, vector matching handles ignoring() properly. Search results preserve large integer precision. Exemplars on PromQL charts link directly to traces. Alert destination deletes guarded against all consumers. Audit trails and retention controls tightened for compliance.
Week of September 14, 2026
What shipped
- Released v1.0.3 with backported fixes for OTLP series identity, PromQL operations, and merge job handling. Release
- Fixed PromQL metrics index to return no data instead of crashing when a selector matches no series in an already-merged hour. Pull request #14660
- Moved cipher key permission checks into a single helper to protect all search entry points that run caller-supplied SQL. Pull request #14654
- Added frontend caching layer built on TanStack Query so list pages and dashboard panels load from cache instead of refetching on every visit. Pull request #13642
- Replaced signup-moment community Slack invite with a day-2 follow-up and added a prompt to connect the first data source during onboarding. Pull request #14652
- Fixed OTLP gRPC handlers to properly acknowledge export failures instead of reporting them as success. Pull request #14653
- Fixed compactor to stream merged files to disk instead of buffering them in memory, reducing peak memory usage during compaction. Pull request #14593
- Escaped series names in PromQL chart tooltips to prevent HTML injection from metric label values. Pull request #14656
- Escaped query values in SQL chart tooltips to prevent HTML injection from Sankey node names, series names, and other data-derived strings. Pull request #14657
- Bounded HA queue retention to prevent NATS streams from filling with seconds-old messages and blocking new consumers. Pull request #14642
Why it matters
Multiple PromQL fixes restore correct behavior for absent_over_time, predict_linear, scalar, and range selectors. Security improvements protect against HTML injection in dashboards and enforce cipher key permissions consistently. Backend optimizations reduce memory usage during compaction and queue retention.
Changelog entry
- Fix(promql): return no data when the metrics index prunes every file Pull request #14660
- Fix(search): check cipher key permissions on every query entry point Pull request #14654
- Fix(dashboards): escape series names in PromQL chart tooltips Pull request #14656
- Fix(dashboards): escape query values in SQL chart tooltips Pull request #14657
- Fix: stop acknowledging failed OTLP gRPC exports as success Pull request #14653
- Feat: Onboarding connect data popup with day-2 Slack invite follow-up Pull request #14652
- Fix: bound HA queue retention and update
max_ageon existing NATS streams Pull request #14642 - Fix(compactor): stream the merged file to disk instead of buffering it in memory Pull request #14593
- Feat: frontend caching layer built on TanStack Query Pull request #13642
- Fix: report absence when
absent_over_timematches no series Pull request #14611 - Fix: answer an instant range selector with its whole window Pull request #14612
- Fix: require two samples before
predict_linearpredicts Pull request #14612 - Fix: make scalar() reduce to a scalar Pull request #14619
V1.0.3 ships PromQL fixes for absent_over_time, predict_linear, scalar, and range selectors. HTML injection protection for dashboard tooltips. Compactor now streams merged files to disk. OTLP gRPC handlers properly acknowledge failures.
V1.0.3 brings critical PromQL corrections, dashboard security hardening, and compaction efficiency improvements. PromQL now correctly handles absent_over_time, predict_linear, scalar functions and range selectors. Dashboard tooltips are protected against HTML injection from metric labels and query values. The compactor streams merged files to disk instead of buffering, reducing peak memory. OTLP gRPC handlers now properly report export failures.