This document explains how to gather instrumentation logs, session logs, and other diagnostic information from a running Dart Analysis Server (DAS) process.
To collect an instrumentation log, DAS needs to be launched with the --instrumentation-log-file option, specifying a path for the log file. Since the IDE launches DAS, the steps are different for each IDE.
dart.server.additional.arguments property, and set it's value to --instrumentation-log-file=/some/file.txt. If there are other arguments listed, which you wish to keep, add this new argument to the existing value, separated by whitespace.After doing those steps, DAS will write an instrumentation log to the specified file (/some/file.txt above).
See the steps outlined at the Dart Code documentation.
A session communications log records all communications between the IDE and the analysis server. It is useful for capturing an exact sequence of editor interactions to reproduce bugs or evaluate performance.
For detailed steps on recording a session log (interactively via the Analyzer Insights page or at startup via --session-log), see Recording a session communications log.
DAS serves a variety of “insights pages” (previously known as the “diagnostics pages”) as a website on localhost. Since the IDE launches DAS, the method of opening this website is different for each IDE.
The first of the analyzer insights pages is the Status page. This page shows general information about the DAS process, including version information.
TODO
TODO
TODO
This page shows all system environment variables as seen from DAS.
TODO
This page displays information about each legacy analyzer plugin which is configured for the current workspace.
This page is available when DAS is launched as an LSP server, and shows the current Client and Server LSP Capabilities.
This page shows current memory and CPU usage of DAS.
This page displays information about each “new” analyzer plugin (which uses the plugin system introduced in Dart 3.10) which is configured for the current workspace.
This page allows recording communications between the analysis server and the IDE (or other client process) without restarting the server. It is useful for capturing a sequence of events to reproduce a bug or investigate unexpected server behavior.
The server automatically maintains an in-memory cache of essential startup entries (initialization requests, workspace configurations, and open document notifications). When you click Start capturing entries, subsequent messages are captured into a buffer.
To record a session from this page:
For more details and alternative command-line options, see Recording a session communications log.
TODO