Qlik Community

Ask a Question

Qlik Architecture Deep Dive Blog

Deep dives into specific back-end technologies which allow for the extension of Qlik to fit the needs of the enterprise.

QlikWorld Online 2021, May 10-12: Our Free, Virtual, Global Event REGISTER TODAY

An example of using the Apache Log4Net appender, documented in more detail here, to receive email alerts for Qlik Sense Telemetry logging

This is an extension of the original post outlining the SMTP appender.  Another very relevant, but non-obvious use case for this appender is to help alert Administrators of Qlik Sense when an App’s object breaches the specified Telemetry thresholds. If Telemetry in Qlik Sense is new to you, do head over to the Enterprise Architecture’s GitHub Repository on Telemetry.

After configuring thresholds which are appropriate for your environment / SLA requirements, if you wanted to extend this functionality further, you can leverage the stream of Telemetry data which is logged by the Engine which comes to the Qlik Sense Repository Service to trigger an email alert (or any other appender type):



The config example is provided here. Like with reload failure alerting, do review the config examples in the reload failures section of the Repo for examples of how to configure for email servers which require authentication.


  • Deploy the LocalLogConfig.xml file to C:\ProgramData\Qlik\Sense\Repository
  • Be careful with configuring the Telemetry limits too low. If the limits are set at low values, a large number of emails can be sent

Since this stream of Engine data is not logged to the Repository logs, but is streamed, the structure is as follows:

  "ProxySessionId": "79c3641b-2b12-433c-9340-e261bcef6e83",
  "ValidateTime": "0.000000",
  "ProcessTime": "41.000000",
  "TraverseTime": "0.000000",
  "SessionId": "58c29842-e381-4e8e-bfc1-7f31ffce944b",
  "Method": "EngineAPICallMethod",
  "EngineThread": "3952",
  "ProcessId": "4708",
  "ActiveUserId": "UserWhoTriggeredThings",
  "Server Started": "20181109T195035.000+0100",
  "WorkTime": "0.240640",
  "EngineTimestamp": "20181109T195237.277+0100",
  "ObjectType": "<Unknown>",
  "Target": "000002684C8BC110",
  "ObjectId": "5a3c0251-3824-4baf-8162-5a8c9dab4217",
  "PeakRAM": "8768",
  "RequestId": "50",
  "RequestException": "0",
  "Handle": "1",
  "Message": "",
  "ActiveUserDirectory": "USERDIRECTORY",
  "DocId": "5a3c0251-3824-4baf-8162-5a8c9dab4217",
  "CServerId": "06b69733-2789-4cc8-aaaf-9a5c2880db74",
  "AnyException": "0",
  "LockTime": "0.005119",
  "NetRAM": "8512"
1 Comment

Thanks for the great article, Levi. I have a question though:

How can we go about filtering methods in this config file?

We've set up the config file in our server and it works fine. However, we do not want the Doc::Reload methods to be included in these e-mails, they are almost always above our defined thresholds. Ideally, we'd only like to see end-user methods like "get layout".

Thanks for your help.