pub struct ClusterObserver {
pub node_id: u64,
pub lifecycle: ClusterLifecycleTracker,
pub topology: Arc<RwLock<ClusterTopology>>,
pub routing: Arc<RwLock<RoutingTable>>,
pub group_status: Arc<dyn GroupStatusProvider + Send + Sync>,
}Expand description
Aggregated observability handle for the cluster.
Stored in SharedState::cluster_observer as an
Arc<ClusterObserver> so HTTP route handlers and the metrics
endpoint can build snapshots without threading four separate
handles through every call.
Construction is done exactly once — after start_cluster has
returned and start_raft has built the RaftLoop. See
nodedb::control::cluster::start_raft for the wiring.
Fields§
§node_id: u64This node’s id.
lifecycle: ClusterLifecycleTrackerLifecycle phase tracker (shared with start_cluster).
topology: Arc<RwLock<ClusterTopology>>Shared cluster topology.
routing: Arc<RwLock<RoutingTable>>Shared routing table.
group_status: Arc<dyn GroupStatusProvider + Send + Sync>Type-erased per-group status provider backed by RaftLoop.
Implementations§
Source§impl ClusterObserver
impl ClusterObserver
pub fn new( node_id: u64, lifecycle: ClusterLifecycleTracker, topology: Arc<RwLock<ClusterTopology>>, routing: Arc<RwLock<RoutingTable>>, group_status: Arc<dyn GroupStatusProvider + Send + Sync>, ) -> Self
Sourcepub fn snapshot(&self) -> ClusterInfoSnapshot
pub fn snapshot(&self) -> ClusterInfoSnapshot
Build a complete ClusterInfoSnapshot for rendering via
/cluster/status or /metrics.
Auto Trait Implementations§
impl Freeze for ClusterObserver
impl !RefUnwindSafe for ClusterObserver
impl Send for ClusterObserver
impl Sync for ClusterObserver
impl Unpin for ClusterObserver
impl UnsafeUnpin for ClusterObserver
impl !UnwindSafe for ClusterObserver
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.