mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-05-16 19:59:30 +00:00
* Fix protocol strength metric to consider connected peers only * Remove polling loop; event-driven node connection health updates * Remove 10s WakuRelay topic health polling loop; now event-driven * Change NodeHealthStatus to ConnectionStatus * Change new nodeState (rest API /health) field to connectionStatus * Add getSyncProtocolHealthInfo and getSyncNodeHealthReport * Add ConnectionStatusChangeEvent * Add RequestHealthReport * Refactor sync/async protocol health queries in the health monitor * Add EventRelayTopicHealthChange * Add EventWakuPeer emitted by PeerManager * Add Edge support for topics health requests and events * Rename "RelayTopic" -> "Topic" * Add RequestContentTopicsHealth sync request * Add EventContentTopicHealthChange * Rename RequestTopicsHealth -> RequestShardTopicsHealth * Remove health check gating from checkApiAvailability * Add basic health smoke tests * Other misc improvements, refactors, fixes Co-authored-by: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com> Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com>
40 lines
1.3 KiB
Nim
40 lines
1.3 KiB
Nim
import waku/common/broker/request_broker
|
|
|
|
import waku/api/types
|
|
import waku/node/health_monitor/[protocol_health, topic_health, health_report]
|
|
import waku/waku_core/topics
|
|
import waku/common/waku_protocol
|
|
|
|
export protocol_health, topic_health
|
|
|
|
# Get the overall node connectivity status
|
|
RequestBroker(sync):
|
|
type RequestConnectionStatus* = object
|
|
connectionStatus*: ConnectionStatus
|
|
|
|
# Get the health status of a set of content topics
|
|
RequestBroker(sync):
|
|
type RequestContentTopicsHealth* = object
|
|
contentTopicHealth*: seq[tuple[topic: ContentTopic, health: TopicHealth]]
|
|
|
|
proc signature(topics: seq[ContentTopic]): Result[RequestContentTopicsHealth, string]
|
|
|
|
# Get a consolidated node health report
|
|
RequestBroker:
|
|
type RequestHealthReport* = object
|
|
healthReport*: HealthReport
|
|
|
|
# Get the health status of a set of shards (pubsub topics)
|
|
RequestBroker(sync):
|
|
type RequestShardTopicsHealth* = object
|
|
topicHealth*: seq[tuple[topic: PubsubTopic, health: TopicHealth]]
|
|
|
|
proc signature(topics: seq[PubsubTopic]): Result[RequestShardTopicsHealth, string]
|
|
|
|
# Get the health status of a mounted protocol
|
|
RequestBroker:
|
|
type RequestProtocolHealth* = object
|
|
healthStatus*: ProtocolHealth
|
|
|
|
proc signature(protocol: WakuProtocol): Future[Result[RequestProtocolHealth, string]]
|