Software Engineer


· by jsnby · Read in about 1 min · (211 Words)

Puppetlabs released PuppetDB last Friday. It’s a drop-in replacement for the existing stored configurations backends and the inventory service. Stored configurations have always been a performance bottleneck in my puppet installations, so I was eager to try it out.

I had it up and running, completely puppetized within a couple of hours. This was mainly due to my unfamiliarity with Postgres and having to repurpose some of the existing postgres modules on the forge to suit my needs. Once I had it up and running, I immediately saw a performance boost - my catalog compilation times dropped like a rock to about 33% of where they used to be (notice the big cliff on the right):

PuppetDB exposes a bunch of metrics so you can monitor all sorts of information. I cherry-picked a few and built some Nagios plugins. You can find those on Github.

My only issue so far is that node removal via puppet node clean <node_name> doesn’t appear to be working correctly. This isn’t a big deal for me right now as I’m not spinning down machines very often, but if you’re utilizing the cloud and spinning machines up/down a lot, you might have to figure out a workaround until the guys at Puppetlabs get it sorted out.