Configuring InstrumentalD

InstrumentalD accepts a simple config file formatted in toml. Here's an example:

project_token = "PROJECT_TOKEN"
system = ["cpu", "disk", "load", "memory", "network", "swap"]
docker = ["unix:///var/run/docker.sock"]
redis = ["tcp://localhost:6379"]
memcached = ["localhost:11211"]
mongodb = ["localhost:27017"]
nginx = ["http://localhost:80/status"]
mysql = ["root@tcp(localhost:3306)/"]
postgresql = ["postgres://postgres@localhost?sslmode=disable"]

By default, InstrumentalD will look for /etc/instrumentald.toml. Alternatively, you can override that value by passing a path to the process via flag when starting:

instrumentald -c './conf/instrumental.toml'

Config Options

The following options are accepted:

project_token

A project token. Note: Passing a token via the k command line flag will override the value from the config file.

project_token = "PROJECT_TOKEN"

docker

An array of addresses for Docker daemon processes. Both TCP and unix sockets are supported. Note that unix socket is the default Docker configuration, but InstrumentalD needs to be running on the same machine as the Docker daemon for this to work.

docker = ["unix:///var/run/docker.sock"]

TCP URLs are useful when InstrumentalD is running on a different machine than the Docker daemon. They should match this pattern: tcp://[ip]:[port]. More info can be found on the Docker docs.

Learn more about Docker metrics that InstrumentalD collects

memcached

An array of addresses for the memcached servers you want to monitor.

memcached = ["localhost:11211"]

Learn more about Memcached metrics that InstrumentalD collects

mongodb

An array of URIs for the MongoDB servers you want to monitor.

mongodb = ["localhost:27017"]

Learn more about MongoDB metrics that InstrumentalD collects

mysql

An array of URLs for the MySQL servers you want to monitor.

mysql = ["root@tcp(localhost:3306)/"]

URLs must match this pattern:

[username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify]]

Learn more about MySQL metrics that InstrumentalD collects

nginx

An array of URLs for the Nginx servers you want to monitor.

nginx = ["http://localhost:80/status"]

URLs must match this pattern:

[protocol://]address[:port][/path-to-status]

Learn more about Nginx metrics that InstrumentalD collects

postgresql

An array of URLs for the PostgresQL servers you want to monitor.

postgresql = ["postgres://postgres@localhost?sslmode=disable"]

URLs must match this pattern:

postgres://[pqgotest[:password]]@localhost[/dbname]\?sslmode=[disable|verify-ca|verify-full]

Learn more about PostgreSQL metrics that InstrumentalD collects

redis

An array of URLs for the redis servers you want to monitor.

redis = ["tcp://localhost:6379"]

URLs must match this pattern:

[protocol://][:password]@address[:port]

Learn more about Redis metrics that InstrumentalD collects

system

An array of the namespaces of system metrics you want to collect. The following are all of the possible values:

system = ["cpu", "disk", "load", "memory", "network", "swap"]

Pass an empty array ([]) to collect no system metrics. Boolean true and false are also acceptable, and represent "collect all system metrics" and "collect no system metrics" respectively.

Learn more about the system metrics that InstrumentalD collects

Questions? We can help!