Home

Awesome

Archived header

New Relic Plugin's Cookbook

Overview

This cookbook installs, configures and manages as a service New Relic Plugins on Debian/RHEL.

To use the cookbook, add it to your Chef cookbooks path under the name newrelic_plugins.

Recipes for the following plugins are provided:

Requirements

Chef 0.10.10+ and Ohai 6.10+ for platform_family support.

The AWS Cloudwatch, Example, F5, Memcached (Ruby), Rackspace Load Balancers, and Wikipedia Example (Ruby) plugins require:

The MySQL, Memcached (Java) and Wikipedia Example (Java) plugins require:

There are several Java and Ruby Chef Cookbooks available on the Chef Community site.

Platforms

Usage

An example of using the AWS Cloudwatch and MySQL plugins with a defined role. See the below sections for plugin specifics.

name "newrelic_plugins"
description "System that run New Relic plugins"
run_list(
  "recipe[newrelic_plugins::aws_cloudwatch]",
  "recipe[newrelic_plugins::mysql]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "aws_cloudwatch" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic",
      "aws_access_key" => "AWS_ACCESS_KEY",
      "aws_secret_key" => "AWS_SECRET_KEY",
      "agents" => [
        "ec2",
        "ebs",
        "elb"
      ]
    },
    "mysql" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic",
      "servers" => [
        {
          "name"          => "Production 1",
          "host"          => "localhost",
          "metrics"       => "status,newrelic",
          "mysql_user"    => "USER",
          "mysql_passwd"  => "CLEAR_TEXT_PASSWORD"
        }
      ]
    }
  }
)

AWS Cloudwatch Plugin

Attributes:

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:aws_cloudwatch][:install_path] - (required) Install directory. Defaults to /opt/newrelic. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_aws_cloudwatch_plugin.

node[:newrelic][:aws_cloudwatch][:user] - (required) User to run as

node[:newrelic][:aws_cloudwatch][:aws_access_key] - (required) AWS Cloudwatch Access Key

node[:newrelic][:aws_cloudwatch][:aws_secret_key] - (required) AWS Cloudwatch Secret Key

node[:newrelic][:aws_cloudwatch][:agents] - (required) Array of AWS Cloudwatch agents. Valid values are ec, ec2, ebs, elb, rds, sqs, and sns

node[:newrelic][:aws_cloudwatch][:regions] - (optional) Array of AWS Cloudwatch regions. e.g. us-east-1. Defaults to all available regions.

Usage:

name "newrelic_aws_cloudwatch_plugin"
description "System that monitors AWS Cloudwatch"
run_list(
  "recipe[newrelic_plugins::aws_cloudwatch]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "aws_cloudwatch" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic",
      "aws_access_key" => "AWS_ACCESS_KEY",
      "aws_secret_key" => "AWS_SECRET_KEY",
      "agents" => [
        "ec2",
        "ebs",
        "elb"
      ]
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_aws_cloudwatch_plugin

Example Plugin

Attributes:

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:example][:install_path] - (required) Install directory. Defaults to /opt/newrelic. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_example_plugin.

node[:newrelic][:example][:user] - (required) User to run as

Usage:

name "newrelic_example_plugin"
description "System that runs the Example Plugin"
run_list(
  "recipe[newrelic_plugins::example]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "example" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic"
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_example_plugin

F5 Plugin

Attributes:

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:f5][:install_path] - (required) Install directory. Defaults to /opt/newrelic. The plugin will be installed within this directory at newrelic_f5_plugin.

node[:newrelic][:f5][:user] - (required) User to run as

node[:newrelic][:f5][:agents] - (required) Array of F5 agents to monitor.

Usage:

name "newrelic_f5_plugin"
description "System that monitors F5"
run_list(
  "recipe[newrelic_plugins::f5]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "f5" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic",
      "agents" => [
        {
          "name"           => "f5",
          "hostname"       => "localhost",
          "port"           => 651
          "snmp_community" => "community"
        }
      ]
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_f5_plugin

Memcached (Java)

Attributes:

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:memcached_java][:install_path] - (required) Install directory. Defaults to /opt/newrelic. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_memcached_java_plugin.

node[:newrelic][:memcached_java][:user] - (required) User to run as.

node[:newrelic][:memcached_java][:servers] - (required) Array of Memcached Servers. If using the default port, the port attribute can be left off.

node[:newrelic][:memcached_java][:java_options] - (optional) String of java options that will be passed to the init script java command. E.g. -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=12345 for proxy support. Defaults to -Xmx128m for max 128mb heap size, but can be overridden.

Usage:

name "newrelic_memcached_java_plugin"
description "System that monitors Memcached Servers"
run_list(
  "recipe[newrelic_plugins::memcached_java]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "memcached_java" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic",
      "java_options" => "-Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=12345",
      "servers" => [
        {
          "name" => "Host - 1",
          "host" => "host.example.com",
          "port" => 11211
        },
        {
          "name" => "Host - 2",
          "host" => "host2.example.com"        
        }
      ]
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_memcached_java_plugin

Memcached (Ruby)

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:memcached_ruby][:install_path] - (required) Install directory. Defaults to /opt/newrelic. The plugin will be installed within this directory at newrelic_memcached_ruby_plugin.

node[:newrelic][:memcached_ruby][:user] - (required) User to run as.

node[:newrelic][:memcached_ruby][:agents] - (required) Array of Memcached hosts to monitor.

Usage:

name "newrelic_memcached_ruby_plugin"
description "System that monitors Memcached"
run_list(
  "recipe[newrelic_plugins::memcached_ruby]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "memcached_ruby" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic",
      "agents" => [
        {
          "name"      => "Host - 1",
          "endpoint"  => "localhost",
          "port"      => 11211
        }
      ]
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_memcached_plugin

MySQL Plugin

Attributes:

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:msyql][:install_path] - (required) Install directory. Defaults to /opt/newrelic. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_mysql_plugin.

node[:newrelic][:mysql][:user] - (required) User to run as. Defaults to root.

node[:newrelic][:mysql][:servers] - (required) Array of MySQL Servers. If using the default username and password, the user and passwd attributes can be left off.

node[:newrelic][:mysql][:java_options] - (optional) String of java options that will be passed to the init script java command. E.g. -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=12345 for proxy support. Defaults to -Xmx128m for max 128mb heap size, but can be overridden.

Usage:

name "newrelic_mysql_plugin"
description "System that monitors MySQL Servers"
run_list(
  "recipe[newrelic_plugins::mysql]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "mysql" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic",
      "java_options" => "-Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=12345",
      "servers" => [
        {
          "name"          => "Production Master",
          "host"          => "master-host",
          "metrics"       => "status,newrelic,master",
          "mysql_user"    => "USER_NAME_HERE",
          "mysql_passwd"  => "USER_CLEAR_TEXT_PASSWORD_HERE"
        },
        {
          "name"          => "Production Slave",
          "host"          => "slave-host",
          "metrics"       => "status,newrelic,slave",
          "mysql_user"    => "USER_NAME_HERE",
          "mysql_passwd"  => "USER_CLEAR_TEXT_PASSWORD_HERE"
        }
      ]
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_mysql_java_plugin

Rackspace Load Balancers

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:rackspace_load_balancers][:install_path] - (required) Install directory. Defaults to /opt/newrelic. The plugin will be installed within this directory at newrelic_rackspace_load_balancers_plugin.

node[:newrelic][:rackspace_load_balancers][:user] - (required) User to run as.

node[:newrelic][:rackspace_load_balancers][:username] - (required) Username for Rackspace Load Balancers

node[:newrelic][:rackspace_load_balancers][:api_key] - (required) API Key for Rackspace Load Balancers

node[:newrelic][:rackspace_load_balancers][:region] - (required) Region for Rackspace Load Balancers. Valid values: ord, dfw, or lon

Usage:

name "newrelic_rackspace_load_balancers_plugin"
description "System that monitors Rackspace Load Balancers"
run_list(
  "recipe[newrelic_plugins::rackspace_load_balancers]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "rackspace_load_balancers" => {
      "install_path" => "/path/to/plugin",
      "user"         => "newrelic",
      "username"     => "RACKSPACE_USERNAME",
      "api_key"      => "RACKSPACE_API_KEY",
      "region"       => "dfw"
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_rackspace_load_balancers_plugin

Wikipedia Example Java Plugin

Attributes:

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:wikipedia_example_java][:install_path] - (required) Install directory. Defaults to /opt/newrelic. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_wikipedia_example_java_plugin.

node[:newrelic][:wikipedia_example_java][:user] - (required) User to run as.

Usage:

name "newrelic_wikipedia_example_java_plugin"
description "System that monitors Wikipedia"
run_list(
  "recipe[newrelic_plugins::wikipedia_example_java]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "wikipedia_example_java" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic"
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_java_wikipedia_plugin

Wikipedia Example Ruby Plugin

Attributes:

node[:newrelic][:license_key] - (required) New Relic License Key

node[:newrelic][:wikipedia_example_ruby][:install_path] - (required) Install directory. Defaults to /opt/newrelic. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_wikipedia_example_ruby_plugin.

node[:newrelic][:wikipedia_example_ruby][:user] - (required) User to run as.

Usage:

name "newrelic_wikipedia_example_ruby_plugin"
description "System that monitors Wikipedia"
run_list(
  "recipe[newrelic_plugins::wikipedia_example_ruby]"
)
default_attributes(
  "newrelic" => {
    "license_key" => "NEW_RELIC_LICENSE_KEY",
    "wikipedia_example_ruby" => {
      "install_path" => "/path/to/plugin",
      "user" => "newrelic"
    }
  }
)

For additional info, see https://github.com/newrelic-platform/newrelic_wikipedia_plugin

License

This cookbook is under the included MIT License.

Contact

Contribute to this Cookbook at https://github.com/newrelic-platform/newrelic_plugins_chef. Any other feedback or support related questions can be sent to support @ newrelic.com.