Skip to content

Add basic OpAMP capabilities#24815

Draft
thll wants to merge 243 commits intomasterfrom
opamp
Draft

Add basic OpAMP capabilities#24815
thll wants to merge 243 commits intomasterfrom
opamp

Conversation

@thll
Copy link
Contributor

@thll thll commented Jan 23, 2026

Adds basic OpAMP capabilities to the Graylog server.

WIP

TODO:

  • add changelog

/nocl WIP

thll and others added 30 commits January 22, 2026 12:24
Add lazy-loaded page imports and route definitions for the new
Collectors feature pages (Overview, Fleets, Fleet Detail, Instances,
and Deployment).
Update FleetDetail to import and render the InstanceList component
in the Instances tab panel, replacing the placeholder text. The
InstanceList is configured to hide stats since they are already
displayed in the fleet header.
Update the collectors index.ts to export all components, hooks,
and types for easier imports from other parts of the application.
Add Collectors entry to the System dropdown menu in the main
navigation, positioned after Sidecars.
Create CollectorsPageNavigation component and add it to all collector
pages (Overview, Fleets, Fleet Detail, Instances, Deployment) to
provide consistent sub-navigation between collector sections.
- Fix import/order errors (empty lines and wrong order)
- Fix no-promise-executor-return in delay helper
- Fix padding-line-between-statements errors
Add a drawer component that displays detailed information when a user
clicks on an instance row in the instances table. Shows status, fleet,
OS, version, config status, system details, and active sources.
- Add click handling to instance rows in InstanceList
- Add InstanceDetailDrawer that opens when clicking a row
- Pass sources to InstanceList from CollectorsInstancesPage and FleetDetail
- Fleet link click stops propagation to avoid opening drawer
Add reusable FilterBar component with search input, status filter,
and fleet filter for the collectors UI.
Modal component for creating and editing fleets with fields for name,
description, and target version. Includes form validation to disable
save when name is empty.
Add modal form for creating and editing collector sources with type-specific
configuration forms for file, journald, TCP, UDP, and Windows Event Log sources.
Add FleetFormModal integration to CollectorsFleetsPage with state
management for showing/hiding the modal and a placeholder save handler.
thll and others added 30 commits February 26, 2026 11:21
…processor

Wire up the macOS Unified Logging receiver so its configuration can be
stored in MongoDB (MacOSUnifiedLoggingSourceConfig), converted to an
OTel collector receiver config (MacOSUnifiedLoggingReceiverConfig), and
processed on ingest (MacOSUnifiedLoggingRecordProcessor).

Key design decisions:
- Default format is NDJSON because only JSON/NDJSON formats cause the
  upstream receiver to populate OTel Timestamp and Severity fields.
- Format is optional on both source and receiver configs; when omitted
  the receiver builder defaults to NDJSON.
- Predicate is optional (no required fields on this source type).
Wire up the macOS Unified Logging receiver type in the frontend so it
appears as a selectable source type with predicate and format fields.

Add GoDurationSerializer to serialize java.time.Duration to Go's
time.ParseDuration format (e.g. "30s", "24h") for the receiver config
YAML pushed to OTel collector agents.
Operators are only supported in stanza-based receivers.

- Rename "glc.receiver.type" to "collector.receiver.type"
- Extract "collector.receiver.type" in codec
- Add collector instance UID as "gl2_collector_source" field
Remove dead objectMapper field/import/constructor param from OTelLogsCodec,
restore explaining comments in convertArray, fix import order in
CollectorIngestCodecTest.
Resource and log record attributes were converted twice — once
individually and again via Stream.concat. Remove the redundant
individual calls.
…aration

- Move collector_receiver_type from OTelJournal.Log to CollectorJournal.Record
- Make collector_instance_uid non-optional (transport rejects if missing)
- Add CollectorJournalRecordFactory for collector-specific journal record creation
- Remove collector-specific logic from OTelJournalRecordFactory
- Update transport handlers and codec to use new factory
Both OTelJournalRecordFactory and CollectorJournalRecordFactory are
stateless, so make their methods static and constructors private.
This removes the factories from the inheritance and injection chains
of the HTTP handlers and transports entirely.
clean up api parameters and fix optional pathparameter for route generation
use generated api routes instead of custom collectorsApi
add error handling for useQuery sites
Fixes startup error for Collectors without config.
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.

3 participants