Posts for the month of December 2011

Second 0.4.0 beta out!

Hello,

The main new things is a much improved client syntax as well as fully functional client modules and much improved handling of "Clients".

Get it from the download section (113) or here:

I will post a guide to getting started with 0.4.0 later tonight.

Michael Medin

Full change log:

2011-12-06 MickeM
 * Fixed so command line client wont try to run commands in modules which does not support it.
 * Changed to when no settings is found a default one is created
 * Removed old "location" key from switch context and changed so it use the new number scheme
 
2011-12-06 MickeM
 * Added python unittests to make sure threading is working properly
 * Simpliefied and cleaned up the command line syntax a bit
 * Now --exec is the default option for client mode (but it will notify you it thought so)
 * Added "command-less" execution to PythonScript so you can do --exec --script ... (without having --exec run)
 * Fixed an issue related to python threading
 * Fixed Scheduler header propgation
 * Fixed so all Client module use "complex" API meaning headers are propagated correctly
 * Fixed scheduler alias issue

2011-11-27 MickeM
 * Fixed some NSCA issues (reading from new conf)
 * Fixed some linux build issues (related to refactoring)

2011-11-27 MickeM
 * Major refactoring in the command line interface
 * Added support for alias to many common module (command line)
   so: nscp eventlog (is the same as nscp client --module CheckEventLog)
 * Fixed issue with CheckEventLog message rendering and eventid
 * Refactored all Client modules to all support command line, commands and submissions.
 * Added uniform handling of "everything" to all Client plugins
 * Fixed SyslogClient to work "as advertised" (ie. all hardcoded stuff is removed)
 * Fixed utf8 issue with text strings (now have a working concept which needs to be implementd "all over the place")
 * Many issues and fixes related to clients.
 * Fixed so CheckEvent log (insert) works much better (added new options)

Python Script Performance: 10930 checks/second

This is really about Python threadsafeness I guess (but the numbers sounds cool).

I have had various issues with python through out the development of the module (mainly related to pythons rather strange threading model). After discovering some issues the night before the conferance pressentation I set it upon myself to write some unit-tests for the python script module to make sure the threads are actually safe and works correctly.

And in doing so I got some interesting numbers.

OK: Summary Collected 109989 checks in 10 seconds: 10930/s

At the OSMC conference the other day they presented some numbers comparing Shinken with Nagios and Icinga and the gist of it was that Shinken was around 4 times as fast as Nagios with Shinken running 120k checks in 5 minutes which roughly translates to 400 checks/second.

Now in my python unit test what I do is I run an internal python based check (forwarding the result via internal channels again to Python) but in doing so to be able to force simultaneousness I run 50 threads pumping around 15k checks per second. This means I get (after running around 100000 checks) an average measured from python 10930 checks per second. This at an average 30% CPU load on my machine...

And yes, this is not fair at all, first off I have no idea what kind of hardware they used to run their checks and neither do I do any proper service checks (in fact running 10k+ service checks per second could actually even exhaust my local port stash since each remote check would probably take a few seconds).

Regardless I think it shows that NSClient++ is able to schedule a lot of checks and more importantly for me Python is now thread safe (I hope :) )...

Michael Medin

  • Posted: 2011-12-07 00:07
  • Categories: (none)
  • Comments (0)