Getting Started with InstrumentalD

InstrumentalD is a server agent created by the Instrumental team to make it as easy to possible to collect both system metrics and service metrics. It's fast, reliable, runs on *nix, is simple to configure and deploy, and has a small memory footprint.

InstrumentalD is open source, and we encourage you to review the code! You'll probably notice that it relies on Telegraf internally. Telegraf provides a great framework for gathering and sending metrics to any service, and InstrumentalD builds on that in a few key ways. Here's what you get out of the box:

  • 1-line configuration for every supported service
  • Normalized metric names so all your metrics are easier to remember and use
  • Updated metric names that work well with the Instrumental Query Language
  • Only the most important metrics are reported

InstrumentalD is the best way to get system and service metrics into Instrumental.

Kick The Tires

You'll probably want to kick the tires before running a new process on your production servers. We certainly would!

Here's how to send system stats from your development machine. (If you're ready to install in production, go here for details.)

If you've got Homebrew installed:

brew install instrumental/instrumentald/instrumentald

Otherwise, you can download the instrumentald pkg from GitHub and manually install it.

First, add our packagecloud.io repo to apt.

curl https://packagecloud.io/install/repositories/expectedbehavior/instrumental/script.deb.sh | sudo bash

Feel free to review the shell script before executing. We would. :)

Then, install the instrumentald package:

sudo apt-get install instrumentald

First, add our packagecloud.io repo to yum.

curl https://packagecloud.io/install/repositories/expectedbehavior/instrumental/script.rpm.sh | sudo bash

Feel free to review the shell script before executing. We would. :)

Then, install the instrumentald package:

sudo yum install instrumentald

Next, run it!

instrumentald -k <PROJECT_TOKEN>

Once the process is running, you'll see system metrics in your project. This page includes the full list of metrics and what they mean.

To get a sense for them, make a graph with the metric expression system.*.

Next: Configuration

instrumentald collects system metrics without any configuration. However, to collect metrics from services like MySQL, Redis, and memcached, you'll need a configuration file.