Butler SOS v2.0 – Real-time error and warning dashboards for Qlik Sense

This one is long overdue, but finally here: Butler SOS v2.0

The new version is an almost complete re-write of v1.0. Changes are plentiful and include

  • All warnings and errors stored by Sense in its log database are now pulled into Butler SOS, from where it can be graphed and acted upon.
    This is a big deal, as it was previously not possible to get notifications or alerts when errors or warnings started to pile up in the logs.
  • Operational health metrics are still pulled from Qlik Sense, but this is now done directly from the QIX engine rather than via a hard-to-secure virtual proxy.
  • Using certificates for authentication with Sense removes potential security issues with v1.0.
  • Config file is now YAML instead of JSON. More human readable and with inline comments.
  • Config file now allows for more fine-grained control of Butler SOS.
  • Several bugs fixed, especially around sending metrics to MQTT.

The readme file on GitHub has all the details, here are some screen shots to get you started though:


The new version is available on GitHub.


PS. This is blog post # 100. Yaaay!!!

8 Replies to “Butler SOS v2.0 – Real-time error and warning dashboards for Qlik Sense”

  1. Hello ,

    First of all thanx for this amazing job .I rellay admire it . I’m trying to make it work but I’m pretty stuck at this point ;

    C:\Users\user\Documents\butler-sos-2.0>node butler-sos.js
    2018-02-14T12:48:36.279Z – info: Starting Butler SOS
    2018-02-14T12:48:36.280Z – info: Log level is: verbose
    2018-02-14T12:48:36.322Z – info: Connected to Influx database.
    2018-02-14T12:48:41.282Z – verbose: Event started: Statistics collection
    2018-02-14T12:48:41.283Z – verbose: Getting stats for server: desktop-m9kf5do
    2018-02-14T12:48:41.293Z – verbose: Getting stats for server: desktop-m9kf5do
    2018-02-14T12:48:41.375Z – verbose: Received ok response from desktop-m9kf5do

    TypeError: Cannot read property ‘committed’ of undefined
    at postHealthToMQTT (C:\Users\user\Documents\butler-sos-2.0\butler-sos.js:199:14)
    at Request._callback (C:\Users\user\Documents\butler-sos-2.0\butler-sos.js:309:11)
    at Request.self.callback (C:\Users\user\Documents\butler-sos-2.0\node_modules\request\request.js:186:22)
    at Request.emit (events.js:159:13)
    at Request. (C:\Users\user\Documents\butler-sos-2.0\node_modules\request\request.js:1163:10)
    at Request.emit (events.js:159:13)
    at IncomingMessage. (C:\Users\user\Documents\butler-sos-2.0\node_modules\request\request.js:1085:12)
    at Object.onceWrapper (events.js:254:19)
    at IncomingMessage.emit (events.js:164:20)
    at endReadableNT (_stream_readable.js:1062:12)

    Thanx for you help,

    1. Great that you got it working!
      Out of curiosity – are you using Qlik Sense Desktop?
      I have not tried Butler SOS on that version of Sense, I didn’t think it would work… but maybe it does?

  2. Hi, I have the same error Ondre mentioned, do you know how to fix it? It must have something to do with MQTT but it is the first time I am working with Mosquitto. If I get this to work it will be very useful. Thank you.

    TypeError: Cannot read property ‘committed’ of undefined
    at postHealthToMQTT (…/butler-sos/butler-sos.js:186:14)

    1. Mike,

      are you using Sense Desktop?
      Butler SOS is only intended to be used with (and tested with) Sense Enterprise, i.e. the server based version. Some features in Butler SOS may work with Sense Desktop, but no guarantees.

      If you ARE using Sense Enterprise, can you provide some more context on your setup? Helps understanding what’s happening.

  3. I am receiving this error message when trying to run Butler. Please help.

    C:\Program Files\Tools\butler-sos>node butler-sos.js
    WARNING: No configurations found in configuration directory:C:\Program Files\Tools\butler-sos\config
    WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.
    C:\Program Files\Tools\butler-sos\node_modules\config\lib\config.js:203
    throw new Error(‘Configuration property “‘ + property + ‘” is not defined’);

    Error: Configuration property “Butler-SOS.logLevel” is not defined
    at Config.get (C:\Program Files\Tools\butler-sos\node_modules\config\lib\config.js:203:11)
    at Object. (C:\Program Files\Tools\butler-sos\globals.js:18:19)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object. (C:\Program Files\Tools\butler-sos\butler-sos.js:6:15)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)

Leave a Reply

Your email address will not be published.