add node & task heartbeat events (#621)

This adds node & task heartbeats and makes the event data available as a structured data in the logs.
This commit is contained in:
bmc-msft
2021-03-02 17:04:39 -05:00
committed by GitHub
parent 7f66eeee0d
commit 4489036d9f
5 changed files with 538 additions and 3 deletions

View File

@ -47,6 +47,8 @@ from onefuzztypes.events import (
EventNodeStateUpdated,
EventNodeCreated,
EventNodeDeleted,
EventNodeHeartbeat,
EventTaskHeartbeat,
get_event_type,
EventType,
)
@ -194,6 +196,8 @@ def main():
),
),
EventFileAdded(container=Container("container-name"), filename="example.txt"),
EventNodeHeartbeat(machine_id=UUID(int=0), pool_name="example"),
EventTaskHeartbeat(task_id=UUID(int=0), job_id=UUID(int=0), config=task_config),
]
for event in Event.__args__:

View File

@ -63,6 +63,12 @@ class EventTaskStateUpdated(BaseEvent):
config: TaskConfig
class EventTaskHeartbeat(BaseEvent):
job_id: UUID
task_id: UUID
config: TaskConfig
class EventPing(BaseResponse):
ping_id: UUID
@ -118,6 +124,12 @@ class EventNodeCreated(BaseEvent):
pool_name: PoolName
class EventNodeHeartbeat(BaseEvent):
machine_id: UUID
scaleset_id: Optional[UUID]
pool_name: PoolName
class EventNodeDeleted(BaseEvent):
machine_id: UUID
scaleset_id: Optional[UUID]
@ -148,6 +160,7 @@ Event = Union[
EventNodeStateUpdated,
EventNodeCreated,
EventNodeDeleted,
EventNodeHeartbeat,
EventPing,
EventPoolCreated,
EventPoolDeleted,
@ -161,6 +174,7 @@ Event = Union[
EventTaskStateUpdated,
EventTaskCreated,
EventTaskStopped,
EventTaskHeartbeat,
EventCrashReported,
EventFileAdded,
]
@ -187,6 +201,8 @@ class EventType(Enum):
task_stopped = "task_stopped"
crash_reported = "crash_reported"
file_added = "file_added"
task_heartbeat = "task_heartbeat"
node_heartbeat = "node_heartbeat"
EventTypeMap = {
@ -195,6 +211,7 @@ EventTypeMap = {
EventType.node_created: EventNodeCreated,
EventType.node_deleted: EventNodeDeleted,
EventType.node_state_updated: EventNodeStateUpdated,
EventType.node_heartbeat: EventNodeHeartbeat,
EventType.ping: EventPing,
EventType.pool_created: EventPoolCreated,
EventType.pool_deleted: EventPoolDeleted,
@ -207,6 +224,7 @@ EventTypeMap = {
EventType.task_created: EventTaskCreated,
EventType.task_failed: EventTaskFailed,
EventType.task_state_updated: EventTaskStateUpdated,
EventType.task_heartbeat: EventTaskHeartbeat,
EventType.task_stopped: EventTaskStopped,
EventType.crash_reported: EventCrashReported,
EventType.file_added: EventFileAdded,