You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Define and implement the complete silence.v3alpha.SilenceService for unary CRUD/list operations and stored-mutation watches.
The public proto should be reviewed first. Implementation may then land in phases, with v2-incompatible writes protected by a narrowly scoped capability flag.
Proto PR
Define:
Silence, SilenceStatus, and GettableSilence.
Matcher-set, annotation, state-filter, pagination, validation, and required-feature fields using common.v3alpha.
Create, Update, Get, List, Delete/Expire, and WatchSilences RPCs.
Stored-mutation events and snapshot-complete messages.
Represent multiple alert matcher sets directly. Do not expose receiver matcher sets as functional public fields until validation, matching, history comparison, v2 conversion, and runtime silencing implement them consistently.
Convert directly between the public proto and silencepb; do not reuse the v2 converter, which cannot represent multiple matcher sets.
Split create and update semantics at the RPC boundary while preserving store behavior where history-changing updates expire the old ID and create a replacement ID.
Return the resulting ID explicitly.
Validate matcher sets, timestamps, IDs, and annotations before calling the store.
Map missing IDs to NotFound, invalid definitions to InvalidArgument, limits to ResourceExhausted, disabled capabilities to FailedPrecondition, and unexpected failures to Internal.
Implement definition and state filters, deterministic state/time/ID ordering, and shared pagination.
Resolve the exact-ends_at boundary mismatch between CurrentState and internal query behavior.
Multi-matcher-set capability
Add a disabled-by-default --enable-feature capability flag for creating or updating silences with multiple matcher sets.
Multi-set writes return FailedPrecondition with structured details naming the required feature.
Requests are not flattened or silently reinterpreted.
When enabled:
Accept multi-set resources while API v2 remains mounted.
Document and test that API v2 cannot faithfully represent these resources and may fail to read them.
WatchSilences
Emit an initial snapshot and snapshot-complete marker followed by stored created, updated, explicitly expired, replaced, HA-merged, and purged mutations.
Do not emit timer-driven activation or expiration events. Clients derive state from starts_at/ends_at and reconnect when they need a new computed snapshot.
Apply definition/state filters to snapshots and before/after mutations. Define read/watch behavior for already stored or HA-merged multi-set resources independently from the write capability gate.
Acceptance criteria
The silence.v3alpha proto and generated code land before handler implementation.
Parent: #5450
Summary
Define and implement the complete
silence.v3alpha.SilenceServicefor unary CRUD/list operations and stored-mutation watches.The public proto should be reviewed first. Implementation may then land in phases, with v2-incompatible writes protected by a narrowly scoped capability flag.
Proto PR
Define:
Silence,SilenceStatus, andGettableSilence.common.v3alpha.WatchSilencesRPCs.Represent multiple alert matcher sets directly. Do not expose receiver matcher sets as functional public fields until validation, matching, history comparison, v2 conversion, and runtime silencing implement them consistently.
Document replacement IDs, explicit expiration, live-view pagination, current-state calculation, feature gating, and node-local watch cursors.
Implementation phases
Unary CRUD and listing
silencepb; do not reuse the v2 converter, which cannot represent multiple matcher sets.NotFound, invalid definitions toInvalidArgument, limits toResourceExhausted, disabled capabilities toFailedPrecondition, and unexpected failures toInternal.ends_atboundary mismatch betweenCurrentStateand internal query behavior.Multi-matcher-set capability
Add a disabled-by-default
--enable-featurecapability flag for creating or updating silences with multiple matcher sets.When disabled:
FailedPreconditionwith structured details naming the required feature.When enabled:
WatchSilences
Emit an initial snapshot and snapshot-complete marker followed by stored created, updated, explicitly expired, replaced, HA-merged, and purged mutations.
Do not emit timer-driven activation or expiration events. Clients derive state from
starts_at/ends_atand reconnect when they need a new computed snapshot.Apply definition/state filters to snapshots and before/after mutations. Define read/watch behavior for already stored or HA-merged multi-set resources independently from the write capability gate.
Acceptance criteria
silence.v3alphaproto and generated code land before handler implementation.FailedPreconditiondetails.Dependencies and related work