Skip to content

PLAT-1486 | feat(ui): add instrumentationAgents and Go offsets GraphQL API - #5819

Open
alonkeyval wants to merge 1 commit into
odigos-io:mainfrom
alonkeyval:plat-1486-instrumentation-agents-api
Open

alonkeyval wants to merge 1 commit into
odigos-io:mainfrom
alonkeyval:plat-1486-instrumentation-agents-api

Conversation

@alonkeyval

Copy link
Copy Markdown
Collaborator

Backend for the new Instrumentation Agents page: a query listing the agents the running tier would inject, and the read/diff/write API for Go offsets. No UI in this PR. PLAT-1486

What this PR does / why we need it:

Two pieces sit behind the page, split out from the frontend work so they can be reviewed and merged on their own.

instrumentationAgents returns one entry per language that has a default otel distro in the running tier, annotated with the cluster's coverage for that language — instrumented and total containers, plus how many sources they span. The resolver reads the same distros.Provider the instrumentor resolves distros with, so the page reports what will actually be injected rather than a hardcoded list. Bootstrap sets the community provider on Deps; out-of-tree mains replace it before BuildRouter so they can surface their own tier's distros.

The Go offsets API reads the installed odigos-go-offsets ConfigMap and compares it against a candidate manifest that the browser supplies, since UI pods frequently have no outbound internet and can't fetch the public manifest themselves. Because an update overwrites the ConfigMap wholesale, the comparison returns the union of both sets with every module, minor version and version flagged as added or dropped — a version the cluster instruments today but that's missing from the candidate is a real regression the user needs to see before confirming. A separate mutation performs the write.

Changelog entry: Does this PR introduce a user-facing bug fix, feature, dependency update, or breaking change??

NONE

Made with Cursor

Adds two backend pieces behind the Instrumentation Agents page.

instrumentationAgents returns one entry per language that has a default
otel distro in the running tier, annotated with the cluster's coverage
for that language (instrumented/total containers and source count). The
resolver reads the same distros.Provider the instrumentor resolves
distros with, so the page reports what will actually be injected.
Bootstrap sets the community provider on Deps; out-of-tree mains replace
it before BuildRouter to surface their own tier's distros.

The go enterprise offsets API reads the installed offsets ConfigMap,
compares it against a candidate manifest the browser supplies (UI pods
may have no outbound internet), and reports the union of both sets with
each module, minor version and version flagged as added or dropped. A
separate mutation writes the candidate once the user confirms.

The frontend module now replaces github.com/odigos-io/odigos/distros
locally, so the image build has to copy that module in alongside the
others it replaces.

Co-authored-by: Cursor <cursoragent@cursor.com>
@alonkeyval
alonkeyval force-pushed the plat-1486-instrumentation-agents-api branch from 655fd6d to 600c7e1 Compare September 14, 2026 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants