To collect useful system metrics in Hosted Graphite such as System CPU, User CPU, Load Average, and Physical Memory you can use a python daemon called Diamond. Diamond runs on your server, and intermittently sends these useful system metrics to Graphite. Here’s a quick primer on how to configure it.
- Download Diamond - Available at https://github.com/BrightcoveOS/Diamond.
- Install Diamond - Follow the installation instructions at https://github.com/BrightcoveOS/Diamond/wiki/Installation.
- Edit the config file - Usually located at /etc/diamond/diamond.conf
- At the top of the config file, add the HostedGraphiteHandler
# Handlers for published metrics. handlers = diamond.handler.hostedgraphite.HostedGraphiteHandler
- Under the [handlers] [[HostedGraphiteHandler]] section, set:
apikey = YOUR_API_KEY timeout = 15 batch = 1
- Under the [[default]] section, you can change how frequently metrics are reported:
interval = 30
- On our servers we also enable collectors for network metrics and MySQL:
[[NetworkCollector]] enabled = True [[MySQLCollector]] enabled = True hosts = username:pass@localhost:3306/mysql, master = True innodb = True
- More collectors - Here is a full list of Diamond collectors for various systems e.g. Hadoop, NetApp, Nginx, Postgres, RabbitMQ, Redis and Zookeeper
- Start Diamond - Usually with /etc/init.d/diamond start but it may differ depending on your OS.
Diamond should now be configured to send data to Hosted Graphite and it will appear under the ‘servers’ entry in your tree of metrics.