Skip to content
This repository was archived by the owner on Sep 29, 2021. It is now read-only.

Logging

Jesse Paris edited this page Jul 24, 2018 · 4 revisions

Enable Telemetry 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.

Set Threshold Parameters

  • 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.ini file. 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
    
  • Save and close the file.
  • Restart the Qlik Sense Engine Service Windows service.
  • Repeat for each engine for which telemetry should be enabled.

Parameter Descriptions

  • ErrorPeakMemory: Default 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: Default 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: Default 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: Default 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.

Reading the logs

  • Telemetry data is logged to C:\ProgramData\Qlik\Sense\Log\Engine\Trace\<hostname>_QixPerformance_Engine.txt and rolls to the ArchiveLog folder 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 http://help.qlik.com/en-US/sense/November2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Server-Logging-Tracing-Log-File-Format-Common-Fields.htm, fields relevent 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).

Important Engine Operations

The Method column details each engine operation and are too numerous to completely detail. The most relevent 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
Doc::DoSave Saving an application
GenericObject::GetLayout Calculating a hypercube (e.g. chart object)

Comments

  • 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.ini file and it provides a means to log relevant information without generating overly verbose log files.
Clone this wiki locally