Qlik Community

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.

Employee
Employee

UDP appender

Using Apache Log4Net to receive UDP notification for reload failures

The utp appender is also an appender type provided by the Apache Log4Net library which Qlik Sense uses. At its core, the configuration of this appender will require:

  • UTP Server
  • A logger from Qlik Sense to attach in order to trigger email alerts

Examples are provided in this Github Repository.

An example out from this approach using the log4net.Layout.PatternLayout <layout>:

Date: 2018-11-01 16:21:03,193
Task Name: ReloadFailure
AppName:Failure of an App
Error Message: Message from ReloadProvider: Reload failed in Engine. Check engine or script logs.

Or using the log4net.Layout.XmlLayout <layout>:

 

<event logger="System.Scheduler.Scheduler.Slave.Tasks.ReloadTask" timestamp="2018-11-01T16:22:10.7041182-04:00" level="ERROR" thread="80" domain="Scheduler.exe" username="DOMAIN\QlikSenseServiceAccount">
    <message>Message from ReloadProvider: Reload failed in Engine. Check engine or script logs.</message>
    <properties>
        <data name="Duration" value="" />
        <data name="Origin" value="" />
        <data name="Command" value="" />
        <data name="StartTime" value="" />
        <data name="ProxyPackageId" value="" />
        <data name="Context" value="" />
        <data name="StopTime" value="" />
        <data name="ProxySessionId" value="0" />
        <data name="TaskId" value="9981ae16-a0fa-466e-a2c2-b8588eafe395" />
        <data name="AppName" value="Failure of an App" />
        <data name="User" value="DOMAIN\QlikSenseServiceAccount" />
        <data name="TaskName" value="ReloadFailure" />
        <data name="UserId" value="" />
        <data name="ExecutionId" value="b1625eef-1f61-46fe-9bd3-220ddeafb2f0" />
        <data name="Status" value="" />
        <data name="log4net:Identity" value="" />
        <data name="FailureReason" value="" />
        <data name="RequestSequenceId" value="" />
        <data name="Service" value="" />
        <data name="ExecutingNodeId" value="" />
        <data name="UserDirectory" value="" />
        <data name="ExecutingNodeName" value="" />
        <data name="log4net:UserName" value="DOMAIN\QlikSenseServiceAccount" />
        <data name="Description"
value="" />
        <data name="AppId" value="2015e38b-650c-42df-8539-099aa8fef445" />
        <data name="ObjectName" value="" />
        <data name="log4net:HostName" value="QLIKSENSESERVER" />
        <data name="ObjectId" value="" />
        <data name="Result" value="" />
    </properties>
</event>

 

 

5 Comments
balaji_MAC
New Contributor II

Hi Levi,

Hope you are doing well.

Can you please let us know process to implement this solution.

i have seen your video but you missed to share information about nodejs configuration.

Kindly guide us to implement this solution in real time.

thanks in advance.

Regards,

Balaji

0 Likes
54 Views
Employee
Employee

The NodeJS script is simply demo code to visually show the pushes from Qlik Sense. I've uploaded the project to https://github.com/levi-turner/udp-listener. But again, this is demo code. For a production scenario, you'd have some endpoint which would listen to the pushes from Qlik Sense.

0 Likes
47 Views
balaji_MAC
New Contributor II

Hi Levi,

Thanks for your update.

Can we implement UDP appender similar to SMTP appender or do we have any other steps?

Kndly share us with detail steps like SMPT appender 

Thanks in advance

Regards,

Balaji

0 Likes
39 Views
Employee
Employee

The steps are broadly the same. Taking this example:

 

0 Likes
34 Views
balaji_MAC
New Contributor II

Hi Levi,

Thanks for your update.

let me try to implment and keep you posted about results.

Regards,

Balaji

0 Likes
27 Views