Hacker News new | ask | show | jobs
by thwarted 5664 days ago
This is exactly why I wrote https://github.com/thwarted/nodebot, as a I ran into problems scaling and securing things like supybot, and integrating it with shell scripts. nodebot is announce only, and doesn't join the channels (so your IRC server needs to be setup to allow that), and since it's not centralized, high traffic from one node/service that ends up getting rate throttled by the server doesn't delay messages from other nodes/services. Each machine has an identity, but it can be configured to have a different identity (because I'd rather that git messages come from "git" rather than from the machine that ran the hook).

We use it at yelp for monitoring all manner of system status. There's separate channels for scribe log processing, nagios alerts, code deployments, and load balancer status. Our git hooks announce when developers push and merges are happening, and who's branches are being deployed. We get announcements when config files change. And it's all on-demand, if you're not interested in seeing it, you don't need to join the channel, IRC is perfect for these kinds of updates.

1 comments

Nice. Last.fm has a nice post at http://www.metabrew.com/article/how-we-use-irc-at-lastfm.

We also have separate channels for each message type. IRC is pub-sub, yay! Plus you can direct-message a bot and it will DM you back, to not pollute the channel you're currently in.

Do you have any bots that take commands? I think that's where it gets really useful.

I've considered it, but that wasn't the use case for nodebot. In order to do some of that, you'd need to be able to run commands on the machine the bot is running on, or have the bot keep some log of state as messages are fed into it, both of which are somewhat non-trivial in terms of storage/query-ability or security. We have a few modified bots (supybot is the most common, I think) that developers have written and run themselves, but I don't think any of them are much more than playthings.

I could definitely see having the ability to allow a bot change the topic of a channel though, so, for example, the deployment status channel's topic shows the most recent version deployed, or the status of the current deployment, for those case where you're not sitting in the channel. Also, the ability to control nagios from IRC would be interesting, but we just use shell scripts for that right now (which is non-ideal in other ways).