Skip to content

@mountaindude mountaindude released this Jun 10, 2021

Nothing major:

  • Updated dependencies to latest versions
  • Switched to using GitHub Actions for building linux/amd64 images.
Assets 2

@mountaindude mountaindude released this Apr 22, 2021

A PDF walking you through installing Butler SOS on Windows as been added to the docs folder.

The walkthrough covers Butler SOS 5.0.1. Things have changed since then - new features added, config parameters changed.
Still, it's a good read as it shows what basic steps are needed!

Assets 2

@mountaindude mountaindude released this Apr 22, 2021

Some good new features in this release, most notably the detailed session start/stop and connection open/close (when users login/logout and open/close apps, respectively) have moved from the Butler project to its new home here in Butler SOS.
That particular feature has a much more natural home in Butler SOS, so this is where it will live from here on.

New features

  1. Added exclude lists for user sessions. If some user accounts (such as system accounts) should not be included in the tracking of user sessions, just add them to the exclude list in the config file. (#62)
  2. Copy user activity tracking ("user events") concept from Butler. That feature belongs to the domain handled by Butler SOS, so it's moved here instead. Future development will happen here rather than in the Butler project. (#147
  3. Added user exclude list to user events config. #151
  4. Added the ability to specify arbitrary tags that is attached to the user event metrics when stored in InfluxDB. #153)
  5. Anonymous telemtry added. The data included in the telemetry data is a) what kinf of computer (Windows/Linux, Node.js version etc) Butler SOS runs on, and b) which features are enabled. That's it - no identifiable data what so ever, and of course no actual metrics. (#148)
  6. Documented the dependency on InfluxDB 1.x, rather than the most recent version 2.x. The latest version is awesome but has some breaking changes which cause it to fail when used with Butler SOS. (#152)

Fixes and patches

  1. Dependencies updated to stay sharp and secure.
  2. Fixed some typos, made some log texts more descriptive. (#149 and more)
  3. Replaced the end-of-life Moment.js library with Luxon.js. (#150)
  4. A bit saner logging in Butler log files when some Sense servers in a cluster were not described in Butler SOS config file. (#155)

Changed behavior and/or breaking changes

  1. The Butler SOS config file has not been very consistent when it comes to using "enable", "enabled" and variants thereof. Confusing. With this version we're cleaning up some of those variants.
    Going forward "enable" is used in Butler SOS (and also in more and more of the other Butler tools. Most of the cases fixed in this release, some remain as todos.
    Using the latest config file syntax is strongly recommended, but efforts have been made to ensure that the old "enabled" variants also work for time being.). (#154)
Assets 2

@mountaindude mountaindude released this Jan 9, 2021

Updated dependencies to stay sharp and secure.

Assets 2

@mountaindude mountaindude released this Nov 16, 2020

Minor release to bring used libraries and dependencies up to date.

Assets 2

@mountaindude mountaindude released this Oct 25, 2020

Minor release to bring used libraries and dependencies up to date.

Assets 2

@mountaindude mountaindude released this Jul 15, 2020

This is a minor release, yet a milestone.

Arm CPUs are no longer just something used in mobile gadgets, they are quickly becoming a real option also for server workloads.
For that reason Butler SOS now builds Docker images for the Arm64 and Arm architectures, and publish these on Docker Hub.

This might seem like a less than relevant development, but it opens up for running Butler SOS in pretty much any kind of Docker or Kubernetes environment, including Arm based ones.

On a more concrete level you can now run Butler SOS on Arm powered AWS EC2 instances. Again - why is this important? Well, these instances offer better price/energy/performance than x86 ditto instances. Money rules.

Or on a Raspberry Pi - the newer Raspi 4 is preferred, but even several of the older 32 bit ones are supported. No, you should not use Raspberry Pis for production scenarios, but it's a pretty cool demo to use them in a super cheap, low power usage Kubernetes cluster used to monitor a Qlik Sense environment.

More info at

Assets 2

@mountaindude mountaindude released this Jun 25, 2020

This release both adds some nice new features, as well as enhancing existing ones and fixing some bugs. Let's take a look at the highlights.

  • Track in detail what apps are loaded into each Sense server.
  • Regular apps and session apps are handled separately, making app metrics easier to understand and more relevant
  • Sample dashboards are now built using the brand new, shiny and all together awesome Grafana 7. Did I mention that Grafana 7 is awesome? Awesome.
  • Ever wondered how long Butler SOS has been running or how much memory it uses? The new uptime messages have you covered.
  • You are properly impressed with the uptime messages - good. Why not store them to Influxdb, so you can also visualize Butler SOS’ own memory use? It’s just a couple of changes in the config file away.
  • Better control over what features are enabled. Don't need Docker health checks? Now you can turn that (and other) feature off.
  • Ah, you are a serious Sense user and have separate DEV and PROD environments? Good - now Butler SOS supports multiple instances running on a single server.
  • Who will monitor the monitor? Butler SOS can now send heartbeats to customisable URLs at desired intervals. Perfect if you want to monitor Butler SOS using for example Very, very cool actually.
  • Bugs, bugs and bugs. The known ones have been fixed. Keep reporting new ones!
  • Update all dependencies to latest versions, to ensure security concerns are adressed.

More info at

Assets 2

@mountaindude mountaindude released this May 5, 2020

This is a minor release.
The names of loaded/in-memory/active apps are now sorted alphabetically before they are stored in Influxdb. Makes it easier to scan through the list when its presented in for example a Grafana dashboard.

List of changes:

#101 Session data not correctly extracted in 5.2.0.
#102 Sort app names.

Assets 2

@mountaindude mountaindude released this May 3, 2020

  • Extract app names for all apps currently loaded in the Qlik Sense server's memory. This is probably the single most requested feature over the past couple of years. Being able to look at a list of what apps are currently loaded into RAM (showing the actual app names!) makes it a lot easier to understand what might be causing high server load or RAM usage.
  • When setting the log level to debug or silly, Butler SOS will now log its own RAM usage to the log files. This is useful when you want to understand how much memory Butler SOS itself uses, and to make sure its memory usage doesn't increase over time (i.e. to ensure there are no memory leaks).
  • When setting the log level to verbose, debug or silly, Butler SOS will nog log its current uptime to the log files. I.e. tell in human readable form that Butler SOS has been running for "x days, y hours, z minutes". Useful to determine if there have been any unexpected restarts.
  • Butler SOS can now (optionally) send heartbeat messages to infrastructure monitoring tools. This is a key feature when it comes to making Butler SOS enterprise grade: It's now possible to alert when Butler SOS for some reason goes offline.
  • Replace the Request Node.js library with Axios. Request was sunset, while Axios is a more modern option for getting stuff from http APIs.
  • Update all dependencies to latest versions, to ensure security concerns are adressed.
Assets 2