# Checks packaging and distribution

**URL:** <https://discourse.sensu.io/t/checks-packaging-and-distribution/181>\
**Category:** Sensu Classic (EOL)\
**Created:** [April 25, 2014, 8:09am UTC](https://discourse.sensu.io/t/checks-packaging-and-distribution/181 "2014-04-25T08:09:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Artem\_Chernikov](https://avatars.discourse-cdn.com/v4/letter/a/a587f6/32.png) [@Artem\_Chernikov](https://discourse.sensu.io/u/Artem_Chernikov)\
**Post date:** [April 25, 2014, 8:09am UTC](https://discourse.sensu.io/t/checks-packaging-and-distribution/181/1 "2014-04-25T08:09:32Z")

</div>

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](https://github.com/kalabiyau/sensu-poc)

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

---

<div class="post-metadata">

**Author:** ![Kyle\_Anderson](https://avatars.discourse-cdn.com/v4/letter/k/e5b9ba/32.png) [@Kyle\_Anderson](https://discourse.sensu.io/u/Kyle_Anderson)\
**Post date:** [April 25, 2014, 2:48pm UTC](https://discourse.sensu.io/t/checks-packaging-and-distribution/181/2 "2014-04-25T14:48:32Z")

</div>

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] [GitHub - kalabiyau/sensu-poc: RFC for sensu plugins packaging](https://github.com/kalabiyau/sensu-poc)  
> > [1] [Issues · kalabiyau/sensu-poc · GitHub](https://github.com/kalabiyau/sensu-poc/issues)

---

<div class="post-metadata">

**Author:** ![Kyle\_Anderson](https://avatars.discourse-cdn.com/v4/letter/k/e5b9ba/32.png) [@Kyle\_Anderson](https://discourse.sensu.io/u/Kyle_Anderson)\
**Post date:** [April 25, 2014, 3:06pm UTC](https://discourse.sensu.io/t/checks-packaging-and-distribution/181/3 "2014-04-25T15:06:27Z")

</div>

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](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? ☹  
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] [GitHub - kalabiyau/sensu-poc: RFC for sensu plugins packaging](https://github.com/kalabiyau/sensu-poc)  
> > > [1] [Issues · kalabiyau/sensu-poc · GitHub](https://github.com/kalabiyau/sensu-poc/issues)

---

<div class="post-metadata">

**Author:** ![jspaleta](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.sensu.io/jspaleta/32/141_2.png) [@jspaleta](https://discourse.sensu.io/u/jspaleta)\
**Post date:** [November 22, 2018, 2:05am UTC](https://discourse.sensu.io/t/checks-packaging-and-distribution/181/4 "2018-11-22T02:05:13Z")

</div>

Closed on November 22, 2018, 2:05am UTC


