# Preparing inhouse Ruby plugins for Sensu Go

**URL:** <https://discourse.sensu.io/t/preparing-inhouse-ruby-plugins-for-sensu-go/1854>\
**Category:** Sensu Go\
**Created:** [June 5, 2020, 6:59pm UTC](https://discourse.sensu.io/t/preparing-inhouse-ruby-plugins-for-sensu-go/1854 "2020-06-05T18:59:25Z")\
**Posts on this page:** 2\
**Page:** 1

<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:** [June 5, 2020, 6:59pm UTC](https://discourse.sensu.io/t/preparing-inhouse-ruby-plugins-for-sensu-go/1854/1 "2020-06-05T18:59:25Z")

</div>

I had a conversation with Dr. Ogg user in slack this week, and I thought it was important to summarize here so people doing Google searches have a chance to find it as it may help them with similar  
Okay here’s the editted conversation.

**Dr. Ogg** i have some ruby gem’s / plugins i have written for the legacy sensu, and i would like to build a package for sensu go, anyone have a good guide on how to do this? some of the gems have lots of dependencies (other gems and some have libc). Thanks.  
**jspaleta** hey, yeah so if they are packages as gems you definitely have a way forward  
**Dr. Ogg** yah they are all gems

**jspaleta** If you just want to use them as ruby gems… you don’t have to do much different… other than provide a ruby env to install them in.

**jspaleta** for assets, you can follow the same pattern we are using for the gems under the sensu-plugins repository if you want to package Sensu assets you can build against the ruby runtime asset docker images we use.  
**jspaleta** So the one thing you might have to do when building assets… if your ruby deps need C libraries installed… you may have to provide custom build scripting to supplement what we have setup as an addon repo  
**jspaleta** anything terribly complicated using a lot of other commands via shell spawns…like calling chrome browser… might not be worth trying to create as an asset… but you always have the ability to install your gems ahead of time… you dont have to use assets… assets are new… old way of pre-provisioning checks into your target hosts is still fine

**Dr. Ogg** yah will take a look, was hoping to use assets

**jspaleta** the big difference now in Sensu Go, is because sensu itself doesn’t rely on a specific language interpreter (like Ruby) you have to make sure your targets have a Ruby env available  
**jspaleta** you may find a way to bundle all of what you need in an asset… its not impossible…but it might not be worth putting chrome into the asset…and just make sure your targets have needed additional commands installed ahead of time. That’s workable for in-house assets, but problematic for anything you want to share with others on Bonsai.

**jspaleta** let me find you a couple of examples that have to use a custom Docker file because of C library deps in the gem deps

**jspaleta** let me show you a simple example… without the need for the override  
**jspaleta** sensu-plugins-disk-checks… is the easy case… no native C library extensions needed in the gem deps… in that repo the travis.yml is a little simplier and just uses the Dockerfiles from the helper repo

**jspaleta** Okay take a look at sensu-plugins-postgres repo right now. Its a good example with a little bit of complexity. Because it needs the libpg library… we had to override the default Dockerfiles used by the asset build helper repo in the travisCI build automation.  
**jspaleta** in the travis.yml you’ll see a before\_deploy: section where the override Dockerfiles are copied over

**jspaleta** if you want to add additional binaries or libraries into the asset /bin lib/ you can… your automation will proably just looking veyr different than what we set up to support sensu-plugins  
**jspaleta** and as always keep in mind that alpine doesn’t use glibc… so you have ot build special for alpine

---

<div class="post-metadata">

**Author:** ![Dr\_Ogg](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@Dr\_Ogg](https://discourse.sensu.io/u/Dr_Ogg)\
**Post date:** [June 8, 2020, 11:20pm UTC](https://discourse.sensu.io/t/preparing-inhouse-ruby-plugins-for-sensu-go/1854/2 "2020-06-08T23:20:14Z")

</div>

[https://manual.sr375.com/generate-sensu-go-packages-from-internal-ruby-gems/](https://manual.sr375.com/generate-sensu-go-packages-from-internal-ruby-gems/) is what i have come up with to produce some simple assets for sensu go… no travis ci required
