In a previous article (https://community.interop.io/t/understanding-logs-in-io-connect/36/1) we covered some logs io.Connect stores and how to configure them based on our needs and context. In this article we'll go through some sample use cases and common scenarios, and show where to look to find the root cause.
How to identify the start of a run
To identify the version of the component and how many runs you have in the log file, search for the string "===== " (5 equal symbols and an empty space) in application.log. Each run will begin with logging the mentioned string. In the example below you can see GlueDesktop being started 6 times over the reviewed log - you have 6 different hits searching with "===== ". Note that if you omit the empty space at the end of the search string, you need to divide the result by 2 since the equal sign string is used twice on each line:
How to check components versions and Environment & Region
Right under the io.Connect Desktop version, you can see other details such as the user environment, host OS settings, system configuration, all versions of the different components comprising the io.Connect Desktop, and the command line used to start the inner .exe. This is useful because sometimes there are extra parameters here that could explain certain behaviors.
Here is an example of the components visualized in a .json format:
Check which version of the components you are reviewing. Sometimes, the resolution is in a newer version.
How to check the full system configuration
Search for the “full system config” string to find the system configuration. The data is in .json format and can be additionally formatted for easier reading. As mentioned, issues can stem solely from configuration. Keep in mind that the io.Connect Desktop configuration can be locally based or fetched from a remote server during your analysis.
How to check running application list
To see a running app list, search with the string ‘app-mgr - app list’. Note that this list will change over time, as not all applications are loaded at startup - some are initiated by user clicks or intents from other applications as part of a workflow.
How to check all auto started applications
To search for all applications that are auto-start configured, search for the “auto-start-apps” string:
How to check the life cycle of a specific application
To see all starts of a particular application you are interested in, use the string "app - starting".
This is used not only to check whether an application started (or attempted to), but also to track the full lifetime of the app. A token (eqyKWn3I3g in the screenshot below) will be created for each start, which can later be used to track the application in the bridge.log file. This allows you to cross-check between different log files.
Using the same approach, you can also see and obtain the window ID(15380_2 in the screenshot below), which you can use to track the lifetime of the app window.
How to track layout restoration
To track the layout restoration, search for “restoring layout name”. You can copy and explore the restore options and the full layout definition. You can also get the token from the layout/manager call and track the restore operation. In the screenshot below, the token is [Hde_9GOUn2]. To check the completion event, search for “restore successful, duration:”
How to track workspace restoration
To track workspace restoration, search for “Received control operation openWorkspace”
If no frame is available -> “Creating new frame for workspace”
If frame is available -> “Creating new workspace 4sXYbDX1g8 in frame 50736_sf_2”
How to check Protocol handler usage
The protocol handler is invoked when a URL is clicked in the browser, or a file is opened in the file explorer. It goes to gilding.exe, which sends the request to the Electron main process via a pipe message. You can cross-check this in the gilding logs and in the application log.
1.1 Gilding logs - look at the startup arguments. These startup arguments will be missing in the gilding logs if the protocol handler is invoked when the system is already running.
1.2 Application logs - search for "pipe-manager" and "protocol-handler"
How to monitor CPU and memory usage
To check CPU and memory usage, search for “perf-log“ in the application log to see the total system CPU and memory usage and identify an application that might be consuming a suspicious number of resources.
Please note that logging is evolving, and some logs might appear only in newer versions, or others can be changed or deprecated.
Top comments (0)