new: [app:diagnostic] Added ZMQ diagnostic and message count
This commit is contained in:
parent
0ee3f7ac13
commit
b6822f17d7
2 changed files with 29 additions and 2 deletions
11
server.py
11
server.py
|
@ -14,6 +14,9 @@ import db
|
|||
import misp_api
|
||||
|
||||
|
||||
ZMQ_MESSAGE_COUNT = 0
|
||||
|
||||
|
||||
# Initialize ZeroMQ context and subscriber socket
|
||||
context = gzmq.Context()
|
||||
zsocket = context.socket(gzmq.SUB)
|
||||
|
@ -124,6 +127,8 @@ def get_context(data: dict) -> dict:
|
|||
|
||||
|
||||
def getDiagnostic() -> dict:
|
||||
global ZMQ_MESSAGE_COUNT
|
||||
|
||||
diagnostic = {}
|
||||
misp_version = misp_api.getVersion()
|
||||
if misp_version is None:
|
||||
|
@ -132,15 +137,19 @@ def getDiagnostic() -> dict:
|
|||
diagnostic['version'] = misp_version
|
||||
misp_settings = misp_api.getSettings()
|
||||
diagnostic['settings'] = misp_settings
|
||||
diagnostic['zmq_message_count'] = ZMQ_MESSAGE_COUNT
|
||||
return diagnostic
|
||||
|
||||
|
||||
# Function to forward zmq messages to Socket.IO
|
||||
def forward_zmq_to_socketio():
|
||||
global ZMQ_MESSAGE_COUNT
|
||||
|
||||
while True:
|
||||
message = zsocket.recv_string()
|
||||
topic, s, m = message.partition(" ")
|
||||
try:
|
||||
ZMQ_MESSAGE_COUNT += 1
|
||||
handleMessage(topic, s, m)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
@ -157,4 +166,4 @@ if __name__ == "__main__":
|
|||
eventlet.spawn_n(forward_zmq_to_socketio)
|
||||
|
||||
# Run the Socket.IO server
|
||||
eventlet.wsgi.server(eventlet.listen(('0.0.0.0', 4000)), app)
|
||||
eventlet.wsgi.server(eventlet.listen(('0.0.0.0', 3000)), app)
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
|
||||
const diagnosticLoading = computed(() => Object.keys(diagnostic.value).length == 0)
|
||||
const isMISPOnline = computed(() => diagnostic.value.version?.version !== undefined)
|
||||
const isZMQActive = computed(() => diagnostic.value.zmq_message_count > 0)
|
||||
const ZMQMessageCount = computed(() => diagnostic.value.zmq_message_count)
|
||||
|
||||
function changeSelectionState(state_enabled, exec_uuid) {
|
||||
changeExerciseSelection(exec_uuid, state_enabled);
|
||||
|
@ -76,7 +78,7 @@
|
|||
<FontAwesomeIcon :icon="faSuitcaseMedical" class="mr-1"></FontAwesomeIcon>
|
||||
Diagnostic
|
||||
</h3>
|
||||
<h4 class="font-semibold ml-1 my-2">
|
||||
<h4 class="font-semibold ml-1 my-3">
|
||||
<strong>MISP Status:</strong>
|
||||
<span class="ml-2">
|
||||
<span :class="{
|
||||
|
@ -92,6 +94,22 @@
|
|||
</span>
|
||||
</span>
|
||||
</h4>
|
||||
<h4 class="font-semibold ml-1 my-3">
|
||||
<strong>ZMQ Status:</strong>
|
||||
<span class="ml-2">
|
||||
<span :class="{
|
||||
'rounded-lg py-1 px-2': true,
|
||||
'dark:bg-neutral-800 bg-neutral-400 text-slate-800 dark:text-slate-200': diagnosticLoading,
|
||||
'dark:bg-green-700 bg-green-500 text-slate-800 dark:text-slate-200': !diagnosticLoading && isZMQActive,
|
||||
'dark:bg-red-700 bg-red-700 text-slate-200 dark:text-slate-200': !diagnosticLoading && !isZMQActive,
|
||||
}">
|
||||
<span v-if="diagnosticLoading" class="loading loading-dots loading-sm h-4 inline-block align-middle"></span>
|
||||
<span v-else class="font-bold">
|
||||
{{ !isZMQActive ? 'No message received yet' : `ZMQ Active (${ZMQMessageCount} messages)` }}
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</h4>
|
||||
|
||||
<template v-if="diagnosticLoading || isMISPOnline">
|
||||
<h4 class="font-semibold ml-1"><strong>MISP Settings:</strong></h4>
|
||||
|
|
Loading…
Reference in a new issue