-
Couldn't load subscription status.
- Fork 3
Logging
-
In the Qlik Sense Management Console, navigate to Engines > choose an engine > Logging > QIX Performance log level. Choose a value:
- Off: No logging will occur
- Error: Activity meeting the ‘error’ threshold will be logged
- Warning: Activity meeting the ‘error’ and ‘warning’ thresholds will be logged
- Info: All activity will be logged
- Debug: All activity will be logged
- Fatal: Only fatal activities will be logged
Note that the Fatal log level is not applicable in this scenario, and that the Debug log level will mimic what the Info level does. For consistency, please use only Off, Info, Warning or Error level for this log file, unless otherwise instructed by Qlik Support or Services.
-
Repeat for each engine for which telemetry should be enabled.
- Please note – this will only take effect if you are on the Feb 2018 Qlik Sense release, or newer.
- For each engine in your site/environment, edit the
C:\ProgramData\Qlik\Sense\Engine\Settings.inifile. If the file does not exist, create it. You may need to open the file as an administrator to make changes. - Set the values below. It is recommended to start with high threshold values and only decrease them as you become more aware of how your particular environment performs. Too low of values will create very large log files. You can change these to meet your needs.
[Settings 7] ErrorPeakMemory=2147483648 WarningPeakMemory=1073741824 ErrorProcessTimeMs=60000 WarningProcessTimeMs=30000 -
Note: Ensure that there is a blank line at the end of the
Settings.inifile. - Save and close the file.
- Restart the Qlik Sense Engine Service Windows service.
- Repeat for each engine for which telemetry should be enabled.
- ErrorPeakMemory: Recommended 2147483648 bytes (2 Gb). If an engine operation requires more than this value of Peak Memory, a record is logged with log level 'error'. Peak Memory is the maximum, transient amount of RAM an operation uses.
- WarningPeakMemory: Recommended 1073741824 bytes (1 Gb). If an engine operation requires more than this value of Peak Memory, a record is logged with log level 'warning'. Peak Memory is the maximum, transient amount of RAM an operation uses.
- ErrorProcessTimeMs: Recommended 60000 millisecond (60 seconds). If an engine operation requires more than this value of process time, a record is logged with log level 'error'. Process Time is the end-to-end clock time of a request.
- WarningProcessTimeMs: Recommended 30000 millisecond (30 seconds). If an engine operation requires more than this value of process time, a record is logged with log level 'warning'. Process Time is the end-to-end clock time of a request.
Note that is possible to track only process time or peak memory. It is not required to track both metrics. However, if you set ErrorPeakMemory, you must set WarningPeakMemory. If you set ErrorProcessTimeMs, you must set WarningProcessTimeMs.
- Telemetry data is logged to
C:\ProgramData\Qlik\Sense\Log\Engine\Trace\<hostname>_QixPerformance_Engine.txtand rolls to the ArchivedLogsFolder in your ServiceCluster share (this is the default location, and could have been modified to a different location). - In addition to the common fields found described here, fields relevant to telemetry are:
- Level: The logging level threshold the engine operation met.
- ActiveUserId: The User ID of the user performing the operation.
- Method: The engine operation itself. See Important Engine Operations below for more.
- DocId: The ID of the Qlik application.
- ObjectId: For chart objects, the Object ID of chart object.
- PeakRAM: The maximum RAM an engine operation used.
- NetRAM: The net RAM an engine operation used. For hypercubes that support a chart object, the Net RAM is often lower than Peak RAM as temporary RAM can be used to perform set analysis, intermediate aggregations, and other calculations.
- ProcessTime: The end-to-end clock time for a request including internal engine operations to return the result.
- WorkTime: Effectively the same as ProcessTime excluding internal engine operations to return the result. Will report very slightly shorter time than ProcessTime.
- TraverseTime: Time spent running the inference engine (i.e, the green, white, and grey).
The Method column details each engine operation and are too numerous to completely detail. The most relevant methods to investigate are as follows and will be the most common methods that show up in the logs if a Warning or Error log entry is written.
| Method | Description |
|---|---|
| Global::OpenApp | Opening an application |
| Doc::DoReload, Doc::DoReloadEx | Reloading an application |
| GenericObject::GetLayout | Rendering a visualization and it's underlying hypercube |
- For more specific descriptions on Engine Methods, please refer to the Qlik Engine JSON API Reference.
- For best overall representation of the time it takes for an operation to complete, use ProcessTime.
-
About ERROR and WARNING log level designations: These designations were used because it conveniently fit into the existing logging and QMC frameworks. A row of telemetry information written out as an error or warning does not at all mean the engine had a warning or error condition that should require investigation or remedy unless you are interested in optimizing performance. It is simply a means of reporting on the thresholds set within the engine
Settings.inifile and it provides a means to log relevant information without generating overly verbose log files.