prometheus / prometheus/alertmanager
API v3alpha: ReceiverService
Open
@siavashs is already working on this.
Since Aug 29, 2026.
component/api
component/config
kind/enhancement
- Dominant language
- Go
- Stars
- 8.6k
- Forks
- 2.5k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 61
Description
Parent: #5450
Summary
Define and implement receiver.v3alpha.ReceiverService, initially providing deterministic receiver discovery independently of notification observability.
The public proto should be reviewed first, followed by the handler implementation.
Proto PR
Define:
- Receiver identity and label messages using
common.v3alphawhere applicable. - Receiver label filters.
ListReceiversrequest and response messages.ListReceiversRPC.
Document ordering, filter semantics, missing configuration behavior, and whether pagination is necessary for the initial contract.
Implementation
- Return every configured receiver in deterministic configuration order, including canonical
nameand custom labels. - Match the existing API meaning of configured receivers rather than returning only receivers with currently active notification pipelines.
- Support OR across receiver matcher sets and AND within each set.
- Support equality, inequality, regular-expression, negated regular-expression, and missing-label behavior through shared matcher semantics.
- Clone label maps before returning them.
- Return
Unavailablewhen configuration has not loaded. - Publish receiver/config metadata through the immutable reload snapshot.
- Register the service consistently with handler routing, health, reflection, and bounded instrumentation.
- Treat any tightening of receiver label-name validation as a separate configuration-parser change; the API must not silently reinterpret existing labels.
Acceptance criteria
- The
receiver.v3alphaproto and generated code land before handler implementation. - All configured receivers are returned in deterministic configuration order.
- Canonical names and custom labels are included without exposing mutable internal maps.
- Shared OR-of-AND matcher semantics are applied consistently.
- Not-ready configuration returns
Unavailable. - Configuration reload atomically updates receiver results.
- Health, reflection, and bounded instrumentation include ReceiverService.
- Ginkgo/Gomega coverage includes ordering, empty/not-ready config, reload, name/custom labels, missing labels, regex, negation, and invalid matchers over supported transports.
Dependencies and related work
- Shared contracts and immutable reload snapshots: #5479.
- Connect registration, request policy, and TLS coverage: #5478.
- Receiver labels were introduced by #4963.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.