Commit Graph
8350 Commits
Author SHA1 Message Date
Ashish Kolhe 66a8aef842 fix(autoobserve): register the AutoObserve routes with the OpenAPI coverage guard
The OpenAPI coverage guard from main panics on a router function it does
not know and pins the set of enabled MCP tools. The enterprise AutoObserve
routes mount under /api, so autoobserve_routes joins ROUTER_PREFIXES, and
their seven operations, MCP tools by design, are listed as enterprise tools.
2026-11-03 12:13:35 +05:30
Ashish Kolhe 441f3c43c5 fix(autoobserve): mount the enterprise AutoObserve routes in their own statement
service_routes() nested autoobserve_routes(alert_calibration_routes(router))
in one statement. The enterprise route-permission check parses this file one
router call per statement, so it did not follow the nested call and failed.
Each call now has its own statement, as the rest of the file does.
2026-11-03 12:00:12 +05:30
Ashish Kolhe c1e4388d01 refactor(autoobserve): name AutoObserve streams with the _o2_ prefix
The engine's streams are now _o2_autoobserve_*. A test writes every one of
them through MetaSink, the in-process self-reporting path, reads the stored
schema back, and checks that a user's write to the same stream is refused.
2026-11-03 12:00:11 +05:30
Ashish Kolhe 7c046570e0 fix(autoobserve): reserve the AutoObserve kv prefix only in enterprise builds
/kv refused writes and deletes under the engine's key prefix in every
build. Only an enterprise build has an engine whose marks those keys hold,
so a build without it treats them as ordinary keys.
2026-11-03 12:00:11 +05:30
Ashish Kolhe 1f7e453c37 fix(autoobserve): mount the AutoObserve routes and API docs only in enterprise builds
Without the enterprise feature the AutoObserve routes were still mounted
and answered a 404 of their own, and the OpenAPI spec listed their seven
operations and tag. The handler module, the routes, the paths and the tag
now exist only in an enterprise build, next to alert calibration's, so a
build without it has no AutoObserve endpoint or API entry at all.
2026-11-03 12:00:11 +05:30
Ashish Kolhe 98e0bd8e08 fix(autoobserve): bound a re-created engine stream's retention again
Each node remembered which engine streams it had bounded and never
forgot, so a stream deleted and then re-created by the engine kept the
default retention and no org partition. The check now reads the stream's
cached settings, which a delete clears, so a re-created stream is
bounded on its next write.
2026-11-03 11:59:20 +05:30
Ashish Kolhe bd1c5bc702 fix(autoobserve): count a service's detectors the way the header counts them
The drawer, map and hex labels counted checks with a monitor, so one check covered by two monitors read 1 detector while the header counted 2. Each row now carries the distinct monitors over its three checks, the same set the header totals, and every detector count is worded by one liveCopy helper.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 41ec2b73db fix(autoobserve): never show a previous org's held total in the suggestions drawer
A total shrink holds the old total while the drawer moves back to the last page. An org switch now drops that hold, and an older clamp can no longer clear or overwrite the newer org's.
2026-11-03 11:59:20 +05:30
Ashish Kolhe ef4d17ad07 fix(autoobserve): never number a service label onto another service's real name
Services still identical after every naming tier get #n. The number now skips any label another service already shows, so a service really named like a numbered label keeps it and every row stays distinct.
2026-11-03 11:59:20 +05:30
Ashish Kolhe b823bdc94b fix(autoobserve): pin the AutoObserve scheduler module to 13
TriggerModule is stored by number. Slot 12 belongs to OncallSlackSync, now on main, so AutoObserve takes an explicit 13 that a variant added above cannot move, and a test pins it and checks every slot is distinct; the sqlite lane test now checks the stored module decodes back.
2026-11-03 11:59:20 +05:30
Ashish Kolhe d58e2db193 fix(autoobserve): run the region's AutoObserve lane outside the job election
In a super cluster only the region elected to run the global scheduler
started any lane, but each region has its own AutoObserve engine row, so
the other regions never ran AutoObserve. A region the election passes
over now starts the AutoObserve lane alone, with a timeout watch scoped
to AutoObserve rows; alert and other lanes are unchanged.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 23bdcf748f fix(autoobserve): open the Absence detail when its table cell is clicked
Absence joins the selection the table hands the service drawer, so clicking an Absence cell opens the drawer with that detail open, like Errors and Latency, and the cell shows as pressed.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 0f92c3e922 fix(autoobserve): move the suggestions drawer back to a page that exists when the total shrinks
When a settled page lies past the new total, the drawer moves to the last page, refetches it under the new total and keeps that total and the dimmed rows meanwhile, so it never says there are no suggestions while some remain.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 3f6a7e18ba fix(autoobserve): age Last checked while the coverage page stays open
The live coverage source reads the shared ticking clock, rounded to the minute, so Last checked and the pass age advance without new data.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 804c0df5d4 fix(autoobserve): give every coverage service a unique name
Services that share a name get their cluster, then namespace, appended. A generated name that matches another service's real name is lengthened again, and services identical in name, cluster and namespace are numbered, so rows, selection and per-service state never merge two services.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 86f633f2df fix(autoobserve): keep See all reachable when decided suggestions empty the rail page
The rail decides whether more suggestions exist from the server total, not the page length. An empty page with a non-zero total keeps the count and See all, and says the top suggestions were already handled instead of claiming there are none.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 5bc9a9e8a0 feat(autoobserve): show live coverage and suggestions in the AutoObserve page
The coverage tab, service drawer and suggestions rail read the live AutoObserve API, with loading, empty, failed-refresh and permission states. OEmptyState gains an opt-in tone icon.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 080cfb1961 feat(autoobserve): add the management routes and reserve the mark keys
/v2/{org_id}/autoobserve routes for entity types, coverage, coverage history, suggestions and marks, with their OpenAPI entries. /kv refuses to write or delete keys under the reserved AutoObserve prefix. Two later commits on this branch mount the routes and their OpenAPI entries, and apply the /kv guard, only in enterprise builds, so a build without enterprise has none of them.
2026-11-03 11:59:20 +05:30
Ashish Kolhe 5a64369b45 feat(autoobserve): add the engine ports and its scheduler lane
Config types and the reserved mark keys, the core ports the enterprise
engine reads and writes through, and a scheduler lane of its own so an
engine pass never delays alert evaluation. Org cleanup lists the
engine's _meta rows as exempt: they age out by retention.
2026-11-03 11:59:19 +05:30
Harsh Mahajan da6d472031 fix(ai-review): let the server price review LLM spans from token counts (#16197) 2026-11-03 06:12:34 +00:00
Huaijin 7fe726b73f fix: tell Prometheus remote write senders how much was written (#16214) 2026-11-03 06:06:35 +00:00
Shrinath Rao 2c7a161917 fix(metrics): search says "No metrics match" though matches with data exist (#16290) 2026-11-03 05:44:42 +00:00
Shrinath Rao e6a65bfa95 fix(authz): test overlong role users against the 512-byte OpenFGA limit (#16291) 2026-11-03 05:01:42 +00:00
uddhavdave 0bea83c325 fix(ci): push translation commits with a GitHub App token (#16255) 2026-11-03 04:44:58 +00:00
Manul PatelandManul 2287444a15 fix(db): propagate file_list registration errors to prevent silent da… (#15968)
Co-authored-by: Manul <manulpatel@users.noreply.github.com>
2026-11-03 04:35:08 +00:00
Huaijin cb10cb7f20 fix: do not acknowledge Firehose and Pub/Sub requests that stored nothing (#16253) 2026-11-03 04:15:31 +00:00
uddhavdaveandgithub-actions[bot] bc1e8d92b8 fix: withhold tokens and credentials from readers in fleet, destinations, synthetics and AI (#16044)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-03 02:44:28 +00:00
Harsh Mahajan 61cef336d3 fix(openapi): publish public API routes and guard spec coverage (#16280) 2026-11-02 22:59:27 +00:00
Harsh Mahajan 5511ba9d21 ci(telemetry): let the server price CI LLM spans from token counts (#16258) 2026-11-02 22:09:00 +00:00
Harsh Mahajan 04f6d0b8a9 fix(ci): cut wasted CI work and start enterprise checks on ready-for-ci (#16195) 2026-11-02 21:40:13 +00:00
Shrinath Rao fe9723950c test(fleet): API, RBAC, UI and real-collector coverage for fleet management (#16189) 2026-11-02 17:31:58 +00:00
ktx-vaidehiandgithub-actions[bot] e7d618de91 feat(dashboards): Chart | Data switch on panels, View panel and the panel editor (#16059)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-02 17:20:34 +00:00
Huaijin 820aa48c3c fix(streams): treat profiles as user data; original-data toggle only on logs (#16249) 2026-11-02 14:51:07 +00:00
Shrinath Rao b0780de250 fix: return clean errors from roles and groups APIs (#16205) 2026-11-02 14:47:39 +00:00
Neha Pandgithub-actions[bot] 97dd743693 fix(workflows): scope draft update and delete to the org (#16215)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-02 14:25:30 +00:00
Sai Nikhil 81f872310e ci(ui): shard the UI unit tests into 4 jobs and merge coverage (#16241) 2026-11-02 14:22:45 +00:00
Mina KaramandClaude Opus 5.5 4e58fb78ca fix(mcp): use the npm package in the skills install command (#16117)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:34:11 +00:00
Loakesh Indiran 0849e20e8a chore(agents): require streaming search endpoints in the UI and drop MySQL from the schema rules (#16260) 2026-11-02 13:27:30 +00:00
ktx-akshayandAbhay Padamani 4326bc220d fix(dashboards): show one No Data state on an empty logs panel (#16227)
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
2026-11-02 13:05:48 +00:00
uddhavdave 29cfe58986 fix(llm-eval): org-scope provider lookups; check experiment dataset, prompt and provider reads (#16174) 2026-11-02 12:50:01 +00:00
Sai Nikhil b0544e2280 fix(profiles): wire the frame menu in Compare (#16239) 2026-11-02 12:41:58 +00:00
Hengfei Yang 61cc2175a2 fix(search): match substrings that overlap a partial match in ContainsAutomaton (#16250) 2026-11-02 12:39:43 +00:00
Omkar Kesarkhaneandgithub-actions[bot] 305e0c2fc1 fix(alerts): faster alert library cards and a first-run path to the library (#16087)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-02 12:38:25 +00:00
Huaijin 11c0cb0a9b feat(profiles): build tantivy index for profiles streams (#16238) 2026-11-02 12:34:57 +00:00
ktx-vaidehi abe6b6290c fix(dashboards): range warning text, dashed comparison series, View Panel variables (#16013) (#16232) 2026-11-02 12:34:52 +00:00
Neha P 1b9f0764c5 fix(rum): keep Performance sub-tab links on their tab (#16212) 2026-11-02 12:32:48 +00:00
Ashish Kolheandgithub-actions[bot] 52bbd1634e fix(ui): name the right permission and surface every RBAC denial (#16204)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-02 12:18:56 +00:00
Shrinath RaoandAshish Kolhe b42ff72f2e chore: document PromQL 400/403/429 responses (#16224)
Co-authored-by: Ashish Kolhe <35160958+oasisk@users.noreply.github.com>
2026-11-02 11:52:29 +00:00
Huaijin 46a85bb9cc fix: skip compactor jobs for streams whose key cannot be stored (#16231) 2026-11-02 11:43:42 +00:00
Hengfei Yang 07ae6fc163 chore: say fleet tokens get 401 when fleet is disabled (#16243) 2026-11-02 11:42:36 +00:00