Xymon Mailing List Archive search

Merging some add-ons into Xymon source code

list Bruce Ferrell
Wed, 27 Mar 2019 07:27:30 -0700
Message-Id: <user-f8b3a3637040@xymon.invalid>

On 3/27/19 3:59 AM, SebA wrote:

On Tue, 26 Mar 2019 at 23:15, Bruce Ferrell <user-24fbf1912cfe@xymon.invalid <mailto:user-24fbf1912cfe@xymon.invalid>> wrote:

    On 3/26/19 11:49 AM, SebA wrote:
I think merging some add-ons into the Xymon source code should
    be considered where those add-ons would be widely used, subject to
    licensing restrictions.

For example, and I have not yet tested this add-on, but a way to
    alert on processes using too much memory looks increasingly useful
    to me (together with graphing of memory for
certain processes):
http://tools.rebel-it.com.au/xymon-procmem/
Ideally the shell code that add-on uses would be converted to
    support in the C code so that this could be configured in
    analysis.cfg rather than hosts.cfg though.

Another example is Xymondash:
https://github.com/daduke/Xymondash
I haven't used it yet either, but it sounds good. Having said
    that, development on that shouldn't be stymied by locking it to
    Xymon releases - and it requires Python >= 3.5 (or
3.4).  Maybe as a post-installation task Xymon could ask if you
    wish to install it, check dependencies, ask a few questions,
    download and install it?
It would be good to be able to present a more modern GUI as part
    of Xymon.

Kind regards,

SebA
    If you've not tested the functionality, why on earth would you
    think it should be merged? *just* because it's JS/JSON?

I didn't say it should be merged.  I was just giving a few examples of add-ons that cover functionality that should be considered for merging / adding to the Xymon core package.  Maybe the subject of the thread and initial wording was misleading, and I apologize for that.

    The procmem tool is somewhat interesting but if you KNOW have a
    process that needs to be monitored for it's memory use, don't you
    think that an indication of an issue with that
    process that needs fixing? Ya know, memory leaks ARE kind of
    considered very to be bad form, or maybe that's just me.


Well, maybe we could just monitor the memory usage of all processes on the same rrd chart - that way it shouldn't get too big - is that correct?

    That said, I do a "kill -9" on devmon and restart it via cron
    because I know it balloons on my system;  I know it because xymon
    told me something was using up memory.  Once I did
    the diagnosis of what and how often, my remedial action was to
    just kill it off and restart it.  Inelegant perhaps, but I seem to
    be the only one experiencing this particular
    issue.  Why would I do monitoring on it rather than fixing the
    issue if not the process?  Seems like asking how many angels can I
    get to dance on the head of a pin and when exactly
    do they start falling off.


How did you do the diagnosis of how often it would need restarting?  Process memory monitoring is what you need to determine how bad the memory leak is and how often something would need restarting.  Maybe you ran ps via cron and put that into a log file and then analysed that - but it's easier to look at a chart.

Kind regards,

SebA
Actually, I did use a chart, the same chart that was already logging overall memory use (all processes in aggregate)... The existing memory monitor RRD chart.

I knew WHEN I'd begun use of devmon and until that point it was clear there had been no problem.  Using that chart, while not exact, it was a good indicator of what the rate of change was due to devmon and what interval I might want to use to keep the system functional.

It was already giving me what I needed, a chart of memory use. I did of course have to find WHAT process was causing the issue... And it's clear procmem doesn't do diagnosis, just charts problem activity once identified.

In your scenario, we'd see the issue in the main chart, do the diagnosis, configure procmem, and then collect and chart a separate set of data to reflect ONLY the problem process?  More work for me and additional load on my system. Yes it's small, but, again, why? What is the gain?

In the job that pays my bills, I often encounter people who do very similar things to what you suggested... Monitoring the memory of every process as though it were of free all "costs". And as long as the amount of monitoring isn't too large, it IS effectively free of "cost".  So it works, until it doesn't... Things become slower and slower, system loads go higher and higher and they wonder why.  It becomes like the story of a frog in a pot.  If the water is boiling, it will jump right out...  If the temperature is slowly raised, it will sit there fat, dumb and happy and cook to death.

And now I will return to my original question:

     If you've not used the tools, WHY are they good tools?  To use your own words, "examples of add-ons that cover functionality that SHOULD be considered for merging" to xymon.

I've pointed out why I feel, at least one, does NOT actually add anything but "make work" at both the development level for xymon and for systems admins.  I think we all have more than enough to do. Thats why we use tools like xymon.  To lighten that load.

Plug-ins/extensions work well and have nearly twenty years, why does bloating the core mean better?