Diamond

To collect useful system metrics in Hosted Graphite such as System CPU, User CPU, Load Average, and Physical Memory we recommend a great 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.

Configuring Diamond

  • 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
    1. At the top of the config file, add the HostedGraphiteHandler
    # Handlers for published metrics.
    handlers =  diamond.handler.hostedgraphite.HostedGraphiteHandler
    
    1. Under the [handlers] [[HostedGraphiteHandler]] section, set:
    apikey = YOUR_API_KEY
    timeout = 15
    batch = 1
    
    1. Under the [[default]] section, you can change how frequently metrics are reported:
    interval = 30
    
    1. 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.