CMLabs · Psyclone AIOS

12. PsyProbe

Point any browser at your running system and watch every node, space, component and message live — no instrumentation, no interference.

Overview

PsyProbe is served on the system's main port — open http://localhost:10000/ and you get a dynamic, live-updating view of all nodes, spaces and components. The top grey line shows the current time, uptime and the node list with activity levels; below it, hierarchical sections with tabs expand via (+)/(−):

  • System Info — component and node communication, active/inactive contexts, all subscriptions.
  • Nodes — performance statistics, general info, live activity.
  • Catalogs — whiteboards show stored messages, performance, activity and subscriptions; other catalogs show performance/activity/subscriptions plus any custom tabs.
  • Modules — performance, activity, subscriptions, custom tabs.

Architecture & tab map

Browser any machine PsyProbe HTTP server main port / own port Running system nodes · spaces · components HTTP live stats System-level views • Component & node communication matrices • Contexts (active/inactive, expandable) • Subscriptions (with [test] buttons) • Log (all components, free-text filter) • Dataflow (graphical components + flows) Per-component tabs • Performance (1 / 10 / 30 s stats) • Activity (last 10 in + 10 out messages) • Subscriptions · Log · Data (private data) • Whiteboard Stored Messages + filters • Custom tabs (addPsyProbeCustomView)
PsyProbe is an HTTP server inside the running system. System-level views aggregate across components; each component contributes its own tab set, extendable with custom views.

The standard tabs

TabWhat it shows
System Component CommunicationMatrix of amount and speed of traffic between components
System Node CommunicationSame matrix between nodes
System ContextsActive/inactive contexts, expandable to the triggers/posts under each
System SubscriptionsAll subscriptions, hierarchical by message type; every trigger/post has a [test] button to fire it manually
Node PerformanceInput/output, queues, CPU and memory over the last 1/10/30 s
Node InfoSpaces per node with status and statistics
Whiteboard Stored MessagesStored messages with a filter line: text, count, size, age
Component PerformancePer-component 1/10/30 s statistics
Component ActivityLast 10 incoming + 10 outgoing messages, auto-updating
Component SubscriptionsActive/all subscriptions with [test] buttons

Messaging activity

The Activity tab is where you spend debugging time: the ten most recent messages in and out, updating live (tick a single component or the global “All” box). Hover a message to see its full content — header fields like an email (time, from, to…) plus every user data entry (text, integer, float, time, raw binary, or a nested DataMessage) — and click to pin it in a static window. Incoming messages show their source component. In the Subscriptions tab, the test button delivers an empty message with that trigger's name — handy for poking a module without writing a test harness.

Communication statistics

The Performance tab shows data volume over the last 1, 10 and 30 seconds per component or node. The Log tab collects each component's logPrint output (with a free-text filter at system level), and the Data tab shows any private data a component published with a mimetype via setPrivateData. The system-level Dataflow view draws components and flows graphically, with two filters (messages, components) to tame big systems.

Custom views

Four escalating ways to show your own data:

  1. Custom component tab — a template HTML file registered from the crank: api->addPsyProbeCustomView("Stored Messages", "elements/whiteboardmessages.html");. CoCoMaps' Cognitive Map, Time Series chart and Control Panel views all work this way.
  2. Private data over HTTPGET /api/getcomponentdata?compid=15&name=MyDataName&format=text (formats: text/xml/json/html/binary); use manually or from AJAX.
  3. RequestStore CatalogGET /api/query?from=RequestStore&query=FrameCounter (see Catalogs).
  4. Custom subsite — drop HTML files into the PsyProbe tree (or map a directory with a <psyprobe><alias>) and load http://localhost:10000/mycustompage.html.
Tip. A custom tab template needs only a <script> defining var TemplateCompID, TemplateCompName, a loadTemplate($target, compID) (called once) and an updateTemplate($target, compID) (called every update cycle). The recipe, plus PsyProbe spec settings (ports, locations, aliases, clickable posts), is in the System Guide; a hands-on walk-through is in Tutorials.
Psyclone AIOS · CMLabs