#[repr(i32)]pub enum EventKind {
Show 31 variants
BackendDown = 0,
BackendUp = 1,
NoAvailableBackends = 2,
RemovedBackendHasNoConnections = 3,
ClusterAdded = 4,
ClusterRemoved = 5,
FrontendAdded = 6,
FrontendRemoved = 7,
CertificateAdded = 8,
CertificateRemoved = 9,
CertificateReplaced = 10,
ListenerActivated = 11,
ListenerDeactivated = 12,
ConfigurationReloaded = 13,
WorkerKilled = 14,
WorkerRelaunched = 15,
LoggingLevelChanged = 16,
MetricsConfigured = 17,
ListenerUpdated = 18,
StateLoaded = 19,
StateSaved = 20,
ListenerAdded = 21,
ListenerRemoved = 22,
SozuStopRequested = 23,
MainUpgraded = 24,
WorkerUpgraded = 25,
EventsSubscribed = 26,
HealthCheckHealthy = 27,
HealthCheckUnhealthy = 28,
ClusterRecovered = 29,
MetricDetailChanged = 30,
}Variants§
BackendDown = 0
BackendUp = 1
NoAvailableBackends = 2
RemovedBackendHasNoConnections = 3
ClusterAdded = 4
Control-plane mutation events (audit trail). Emitted by the main process to clients subscribed via SubscribeEvents. The Event.cluster_id / backend_id / address fields are populated when they are meaningful for the verb (e.g. address for listener verbs, cluster_id for cluster/frontend verbs). Backend events keep their historical numeric tags 0..3.
ClusterRemoved = 5
FrontendAdded = 6
FrontendRemoved = 7
CertificateAdded = 8
CertificateRemoved = 9
CertificateReplaced = 10
ListenerActivated = 11
ListenerDeactivated = 12
ConfigurationReloaded = 13
WorkerKilled = 14
WorkerRelaunched = 15
LoggingLevelChanged = 16
MetricsConfigured = 17
ListenerUpdated = 18
A listener’s configuration was patched in place via UpdateHttp/Https/TcpListenerConfig
StateLoaded = 19
A saved state file was loaded (batch state replay via LoadState request).
Emitted once at task completion; target=file:<path> and result=ok|err
with the ok/err request counts encoded in target.
StateSaved = 20
A snapshot of the current state was written to disk via SaveState.
ListenerAdded = 21
A new listener was added to the config (AddHttp/Https/TcpListener). Distinct from LISTENER_ACTIVATED (binds the socket) — ADDED just creates the listener’s in-memory definition.
ListenerRemoved = 22
A listener’s in-memory definition was removed (RemoveListener). Distinct from LISTENER_DEACTIVATED (unbinds the socket) — REMOVED drops the whole listener from the state.
SozuStopRequested = 23
A stop request was accepted (SoftStop / HardStop).
target=stop:soft or stop:hard — distinguishes drain-then-stop from
immediate-abort on the audit trail.
MainUpgraded = 24
The main process started a re-exec upgrade (UpgradeMain).
WorkerUpgraded = 25
A worker was re-launched (UpgradeWorker).
EventsSubscribed = 26
A client subscribed to the SubscribeEvents bus — privileged because subscribers observe every control-plane mutation.
HealthCheckHealthy = 27
Backend health-check transitioned to healthy after consecutive successes. Tags 0..3 are the historical backend-state events; 4..26 carry the control-plane mutation events (cluster, frontend, certificate, listener, worker, configuration, metrics, state, stop, upgrade, events). Backend health-check transitions therefore start at 27.
HealthCheckUnhealthy = 28
Backend health-check transitioned to unhealthy after consecutive failures.
ClusterRecovered = 29
Cluster transitioned from “all backends down” back to “at least one
backend available”. Pairs with NoAvailableBackends (tag 2) so
dashboards can plot per-cluster recovery.
MetricDetailChanged = 30
The worker’s effective MetricDetail changed because a runtime
lease was applied, renewed, expired, or cleared. Pairs with
MetricsConfigured (tag 17) but distinct: that one fires for
MetricsConfiguration (Enabled/Disabled/Clear), this one fires
for cardinality changes.
Emitter scope: operator-initiated transitions emit
METRIC_DETAIL_CHANGED via the master-side audit log (see
bin/src/command/requests.rs around the SetMetricDetail
success path). Worker-local transitions — the polled janitor
expiring a lease, or a worker-local clear/apply after a master
fan-out — are not yet surfaced because the worker has no direct
IPC path to the master’s audit sink; follow-up tracked separately.
Implementations§
Source§impl EventKind
impl EventKind
Sourcepub fn as_str_name(&self) -> &'static str
pub fn as_str_name(&self) -> &'static str
String value of the enum field names used in the ProtoBuf definition.
The values are not transformed in any way and thus are considered stable (if the ProtoBuf definition does not change) and safe for programmatic use.
Sourcepub fn from_str_name(value: &str) -> Option<Self>
pub fn from_str_name(value: &str) -> Option<Self>
Creates an enum from field names used in the ProtoBuf definition.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EventKind
impl<'de> Deserialize<'de> for EventKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Ord for EventKind
impl Ord for EventKind
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for EventKind
impl PartialOrd for EventKind
impl Copy for EventKind
impl Eq for EventKind
impl StructuralPartialEq for EventKind
Auto Trait Implementations§
impl Freeze for EventKind
impl RefUnwindSafe for EventKind
impl Send for EventKind
impl Sync for EventKind
impl Unpin for EventKind
impl UnsafeUnpin for EventKind
impl UnwindSafe for EventKind
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.