Working with Kanzi Monitor services¶
Kanzi Monitor provides several services that you can use to profile, debug, and inspect your Kanzi application at runtime. Each service addresses a specific diagnostic task and can be enabled or disabled independently in the Kanzi Monitor configuration file.
Profiling Trace Service¶
Collects runtime profiling data from the Kanzi Engine and writes it to a JSON trace file compatible with the Perfetto trace viewer. Use this service to analyze frame timing, rendering stages, and engine operations.
Command Processor Service¶
Provides a command-line interface for interacting with the Kanzi Engine at runtime. You can send commands through a local terminal, a remote TCP connection, or a serial port (UART).
UI Service¶
Renders graphical overlays on top of the regular Kanzi application content to display runtime information and help identify rendering issues. Other services, such as the Log service, can also register their own overlay screens.
Log Service¶
Captures Kanzi Engine log messages into an in-memory ring buffer. You can view log entries through the console, on-screen overlay, or as part of a profiling trace.
Performance Service¶
Continuously measures runtime performance metrics such as frame rate, frame timing, and rendering statistics. These metrics are exported as counter tracks in the Perfetto trace viewer.
Overwatch Service¶
Provides JSON-based remote introspection of a running Kanzi application.
Exposes the scene graph, node properties, resources, textures, performance metrics, and more through a set of overwatch.* commands.
Monitor Web UI¶
A browser-based graphical interface for remotely inspecting and debugging Kanzi applications. Connects to the Overwatch service through a Python WebSocket bridge and provides visual tools for browsing the scene graph, editing properties, previewing textures, and capturing traces.
Capture Service¶
Records a bounded sequence of screen frames into memory as a keep-last-N ring, so you can stop after something interesting happens and replay the frames that led up to it. Frames are fetched afterwards with per-frame metadata, and the service reports what the recording costs in framerate.
Setting property breakpoints¶
Break, log, capture a screenshot, or run a console command when a node property reaches a value. The condition is evaluated inside the assignment that changed the property, so with a debugger attached execution stops on the code that wrote the value rather than a frame later.
MCP Server¶
A Python tool that exposes all Overwatch commands as structured tools for AI assistants such as Claude Code and Claude Desktop. Connects over TCP or serial and enables AI agents to inspect and control a running Kanzi application through the Model Context Protocol.
See Using the Kanzi Monitor MCP server