since I get asked quite often, here’s some hints.
Read the development docs.
dashing-icinga2 project is a demo playground I’ve been hacking for my Icinga Camp talks. I consider it feature complete.
If you think different, feel free to fork the GitHub project and modify it for your own needs. If you’re using the Git master, best is create a separate branch with your modifications.
git checkout -b feature/my-modifications
In case of changes upstream, follow the fork/update mechanism from GIthub.
git remote add upstream https://github.com/dnsmichi/dashing-icinga2.git git fetch upstream git checkout feature/my-modifications git rebase upstream/master <heal and fix, if there are conflicts> git add <fixed files> git rebase --continue
You can learn more about these Git strategies in my training sessions.
The whole project has a development documentation, starting from the dashboards to widgets to jobs and the custom library which provides the native interface to the Icinga 2 REST API and collecting data.
Filter by Hostgroup
lib/icinga2.rb and especially the
getServiceObjects() functions. They are prepared for fetching all data, and return a hash set of all objects. These are used in other functions like the severity sorted list, or problem counts.
These functions are prepared for taking a filter as additional parameter (right now it is just
Your task is to
- add a filter and test it
- if you encounter problems with the metrics fetched from /v1/status, use the object counts everywhere
- make this a configuration option being read further up, similar to how you configure the icingaweb2 URL.
Look into the existing widget code and understand how they work (follow the development docs). Once you’ve figured out how Coffeescript fires the event handlers when data is received from the job
send_event methods, play around with it.
Playing sounds for instance isn’t really possible since Chrome and others browsers are blocking the auto-play of tabs. Still, let yourself inspire you … https://gist.github.com/windowfinn/9ec0f617989f6a721d20
Go on and try it. As said before, the interfaces, libraries and widgets are prepared for more modifications.