Checks packaging and distribution

Hi, fellow sensuers! Hope you have nice time monitoring your servers with sensu.

There is a [0] about possible packaging of sensu checks with blackjack and distributed delivery of checks directly to your server.

If you want to share you criticism - please do so here or at project’s issues[1].

[0] https://github.com/kalabiyau/sensu-poc

[1] https://github.com/kalabiyau/sensu-poc/issues

Hmmm. I don't know what blackjack is in this context? But the
important part of this (to me) is the individual
packaging/versioning/testing of sensu plugins (checks/handlers/other)

I'm torn. On the one hand, testing and individual packaging is super
important to me. Also being able to gem install them would be handy.
Also versions. Plus bundler. This is all good stuff.
(I currently distribute my custom handlers with puppet and hijack it's
rspec for testing. Stock plugins I fpm into a system package and put
into /usr/share/sensu-community-plugins/)

On the other hand, I see a strong case for a central repo. It prevents
people from re-inventing the wheel, and encourages improvements to
filter back to the source.

What if we did both? What if sensu-community-plugins was released *as*
a gem? That would be the analog of nagios-plugins-all for sensu. It
would be versioned (as a whole), but packaged for easy bundling.

Then, separate individual checks checks (if in ruby) could do the
same. I would like to see a decent naming convention. (like for yours,
I think I would prefer sensu-plugin-check-dns maybe?)

PS,
I've never published a Gem before, so take my advice with a grain of salt.

···

On Fri, Apr 25, 2014 at 1:09 AM, Artem Chernikov <skullzeek@gmail.com> wrote:

Hi, fellow sensuers! Hope you have nice time monitoring your servers with
sensu.

There is a [0] about possible packaging of sensu checks with blackjack and
distributed delivery of checks directly to your server.
If you want to share you criticism - please do so here or at project's
issues[1].

[0] https://github.com/kalabiyau/sensu-poc
[1] https://github.com/kalabiyau/sensu-poc/issues

So, other oddity in the mix here is dependencies.

Lets look at this :
https://github.com/sensu/sensu-community-plugins/blob/master/handlers/other/ec2_node.rb
Granted it isn't a "plugin", but a good example of a sensu script that
requires another gem.

Seems like this should be an individual gem with it's own dependencies.

But then how would that be dealt with in the bigger community-plugins gem? :frowning:
You probably wouldn't want to pull in every dependent gem for anything ever.

Seems like, if your plugin depends on another gem (something that
sensu itself doesn't come with), then it hints that it
should be packaged separately, and depend on the version of the gem
you need. (Otherwise it is left as an exercise to the
reader to guess what version of the gem you need, and install it separately)

This would be my vote: Any plugin that has no external dependencies
can be included in the core sensu plugins gem.
Otherwise it should be a separate gem, with separate tests, and a
separate gemspec?

They really are more than just simple scripts, and I think we
shouldn't treat them like that. I think the overhead of making
gems for the more complicated checks is worth it in the long term.

···

On Fri, Apr 25, 2014 at 7:48 AM, Kyle Anderson <kyle@xkyle.com> wrote:

Hmmm. I don't know what blackjack is in this context? But the
important part of this (to me) is the individual
packaging/versioning/testing of sensu plugins (checks/handlers/other)

I'm torn. On the one hand, testing and individual packaging is super
important to me. Also being able to gem install them would be handy.
Also versions. Plus bundler. This is all good stuff.
(I currently distribute my custom handlers with puppet and hijack it's
rspec for testing. Stock plugins I fpm into a system package and put
into /usr/share/sensu-community-plugins/)

On the other hand, I see a strong case for a central repo. It prevents
people from re-inventing the wheel, and encourages improvements to
filter back to the source.

What if we did both? What if sensu-community-plugins was released *as*
a gem? That would be the analog of nagios-plugins-all for sensu. It
would be versioned (as a whole), but packaged for easy bundling.

Then, separate individual checks checks (if in ruby) could do the
same. I would like to see a decent naming convention. (like for yours,
I think I would prefer sensu-plugin-check-dns maybe?)

PS,
I've never published a Gem before, so take my advice with a grain of salt.

On Fri, Apr 25, 2014 at 1:09 AM, Artem Chernikov <skullzeek@gmail.com> wrote:

Hi, fellow sensuers! Hope you have nice time monitoring your servers with
sensu.

There is a [0] about possible packaging of sensu checks with blackjack and
distributed delivery of checks directly to your server.
If you want to share you criticism - please do so here or at project's
issues[1].

[0] https://github.com/kalabiyau/sensu-poc
[1] https://github.com/kalabiyau/sensu-poc/issues