Here are some of the highlights of the release v3.20.
See the detailed changelog for a complete list of changes.

The agents plugin introduced with in v3.10 is a config tool extension and can be used
to manage SNClient installations.
Note: you need to enable this plugin first, it is not enabled by default.

There had been many changes in this plugin to add support for the latest new check plugins
in the snclient agent. It is now also has a dry run mode for the command line tool.

Besides that, you can add rules to add additional custom snclient based checks.

<Component Thruk::Agents>
  <snclient>
    <extra_service_checks>
      # on which host / sections should this serice be created
      host    = ANY
      section = ANY

      name    = dns           # the actual service description
      check   = check_dns     # snclient check
      args    = -H thruk.org  # check arguments
      # add arbitray naemon config attributes here as well
      first_notification_delay = 30
    </extra_service_checks>
  </snclient>
</Component>
    

The SNClient is a multi-platform agent designed to replace NSClient++ and NRPE.
Read more here:

The BP plugin can now revert changes in case the core has issues reloading. This usually indicates
issues with the config.
In this case you can continue to edit the business process and try again.
While on it, Icinga2 support has been improved.
Also, the aggregation functions at_least() and not_more() do support percentage thresholds now.

The rest api got some improvements as well.
It is possible to do calculations in the query itself, ex.:

%> thruk r '/hosts?columns=name,num_services_crit+num_services_unknown+num_services_warn as num_services_problems'
    

This sums those num_services* columns into a combined value.
Read more about calculations in the rest api docs.