Known issues¶
Kanzi Monitor disables the local console of the Command Processor when running in Kanzi Studio Preview. You can use the remote console in Kanzi Studio Preview.
Kanzi can load plugins from dynamic libraries in an unpredictable order. If other plugins depend on Kanzi Monitor during their initialization, explicitly load Kanzi Monitor from the application during startup. This lets the application make sure that the Kanzi Monitor plugin loads first.
When you enable the remote console, Kanzi Monitor attempts to open a remote console and bind to a socket port. This can fail if another application or another Kanzi Monitor instance already uses that port. To resolve this issue, choose a different port number, or avoid running another Kanzi Monitor instance with the remote console enabled at the same time.
When you enable the serial console, Kanzi Monitor attempts to open the configured serial port. This can fail if the port does not exist, another application uses it, or it requires elevated privileges. On Windows, virtual COM port drivers (such as com0com) can require test-signed driver mode.
On Android, Kanzi Monitor resolves the trace output directory at startup via JNI (
Context.getFilesDir()). If the resolution fails (for example, when the plugin loads before any Java entry point has run), the log recordsCould not resolve Context.getFilesDir() via JNI; leaving SampleCollector output directory unchanged.and trace files land in whichever directory theSampleCollectordefaults to instead of the app’s internal files directory. If trace files don’t appear where you expect on Android, check the log for this warning.The
perfetto-producertrace writer requires the plugin to be built with-DKZMONITOR_PERFETTO_PRODUCER=ON(pre-built Android binaries already are) AND a platform tracing daemon (Androidtracedor Linuxperfetto). On Windows and platforms without a daemon, the writer is silently a no-op — use the in-process capture mode viaPerfettoProducerCaptureSecondsto drive a session yourself, or stay onchrometrace/perfettofor offline output.Android Studio Profiler (Iguana 2023.2 and later) does not expose the Perfetto
track_eventdata source in its “Capture System Activities” task. As a result, a System Trace captured from inside AS Profiler does not show thekanzi.*tracks even when Kanzi Monitor is streaming them through theperfetto-producerwriter. Workaround: capture the trace externally withadb shell perfetto -c <config> --txt -o <trace>.pftrace, then open the resulting file in AS Profiler with File → Open — thekanzi.*track-event categories render normally. Android Performance Analyzer (a separate tool) does exposetrack_eventconfiguration and works as expected. See Using the Profiling Trace service for an exampleperfettoconfig.On Android, the kzTrace subsystem (the
overwatch.kztracecommand, also exposed by the Monitor Web UI Trace tab when “kzTrace (Engine)” is selected and by the MCP server’scapture_kztracetool) writes to/sdcard/independently of Kanzi Monitor’s own trace output directory. The Kanzi engine’slogTraceToFile()ignores the path Kanzi Monitor passes and uses its own destination on Android. Capturing a kzTrace from any of these surfaces therefore requires the host application to declareWRITE_EXTERNAL_STORAGE(SDK below 30) orMANAGE_EXTERNAL_STORAGE(SDK 30 and later) inAndroidManifest.xmland to request the runtime permission. If the permission is missing,overwatch.kztracereturns a JSON error of the form{"error":"kzTrace file was not written","hint":"...AndroidManifest..."}and the trace file is not written. The example application underexamples/monitor_example/does not declare these permissions because the Monitor plugin itself no longer needs them; add them to your own host app if you want kzTrace on Android. The Monitor profiling trace (chrometrace,perfetto, andperfetto-producerwriters) continues to work on Android without any storage permissions.