We've made our new monitoring agent, scoutd, publicly available. This new agent brings new capabilities to Scout's monitoring service - the most visible being seamless realtime charts on your dashboards. So what's different from the traditional scout agent, and what's in store for scoutd's future?
Some History, What's New?
Until now, our agent has been written in Ruby and distributed as a RubyGem. You'd install the gem and create a crontab entry so that it would run from cron every minute. While this is a reliable and easy way to report your system metrics to us, we want to lay the groundwork for some exciting things we have planned that only an always-running daemon could provide. So how does scoutd compare to the RubyGem agent?
Installed as a system package
scoutd is installed by your system's package manager (yum/apt/etc). We also have a one-line install/upgrade command that makes new installs and upgrades from the old agent super simple:
No more cron entries - scoutd runs as a daemon
scoutd is started by your server at boot and runs continuously. This allows instant communication between your server and Scout and lets us do things like instant realtime charts.
Simple config file, standard locations
scoutd is easily configured via
account_key: abcd hostname: db1.scout.dev environment: development roles: database
Local plugins, account key, etc are now located in
Written in Go
While scoutd is written in Go, it doesn't introduce any new dependencies as we build distro-specific binaries. Scoutd still requires Ruby to be installed on the server, but our goal is to eventually drop this so you'll have a dependency-free monitoring agent that's guaranteed to work. Pretty cool, huh?
"The Future, Conan?"
Yes. The future, Andy.
The future of scoutd is full of good things. Some features that we are eyeing for scoutd in the future:
Windows, Solaris, FreeBSD
scoutd can already fire up instant realtime charts on demand. We'll be making other things instant, like plugin installs and plugin configuration updates.
scoutd will be able to report system metrics without needing Ruby or any other dependencies.
Multiple plugin languages
Support for sending metrics to scoutd from the network, simple shell scripts, etc.
Our new scoutd agent is key in our effort to provide the best and most useful monitoring available.
Want to Know More?
What's under the hood? What did we encounter while building scoutd? What's our build process? What's the airspeed velocity of an unladen swallow? Glad you asked. We'll dig deep into scoutd in the coming weeks and talk about the details of building scoutd for MOAR.