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

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

Tab | What it shows
--- | ---
System Component Communication | Matrix of amount and speed of traffic between components
System Node Communication | Same matrix between nodes
System Contexts | Active/inactive contexts, expandable to the triggers/posts under each
System Subscriptions | All subscriptions, hierarchical by message type; every trigger/post has a [test] button to fire it manually
Node Performance | Input/output, queues, CPU and memory over the last 1/10/30 s
Node Info | Spaces per node with status and statistics
Whiteboard Stored Messages | Stored messages with a filter line: text, count, size, age
Component Performance | Per-component 1/10/30 s statistics
Component Activity | Last 10 incoming + 10 outgoing messages, auto-updating
Component Subscriptions | Active/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 HTTP — `GET /api/getcomponentdata?compid=15&name=MyDataName&format=text` (formats: text/xml/json/html/binary); use manually or from AJAX.
3. RequestStore Catalog — `GET /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.
PreviousServices & Interfaces NextPsySpec XML Reference