Version information
Start using this module
Add this module to your Puppetfile:
mod 'newrelic-newrelic_plugins', '1.1.0'
Learn more about managing modules with a PuppetfileDocumentation
#New Relic Plugins
####Table of Contents
- Overview
- Module Description - What the does the module do?
- Setup - The basics of getting started with New Relic Plugins
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- License
- Contact - Contributing to the module or feedback
##Overview
This module installs, configures and manages as a service, New Relic Plugins on Debian/RHEL.
To use the module, add it to your Puppet modules path under the name newrelic_plugins
.
##Module Description
The following New Relic plugins are supported through this module:
- AWS Cloudwatch
- MySQL
- F5
- Memcached (Java)
- Memcached (Ruby)
- Rackspace Load Balancers
- Example
- Wikipedia Example Java
- Wikipedia Example Ruby
##Setup
###Requirements
The AWS Cloudwatch, F5, Example and Wikipedia Example Ruby plugins require:
- Ruby >= 1.8.7
- Rubygems >= 1.8
The MySQL and Wikipedia Example Java plugins require:
- Java Runtime Environment (JRE) >= 1.6
There are several Java and Ruby Puppet Modules available on Puppet Forge.
###What New Relic Plugins affect
- Creates installation path
- Curls and extracts distribution file(s) (e.g. tarball)
- Creates configuration files
- Installs bundler gem (ruby plugins)
- Creates and manages service init script
##Usage
An example of using the AWS Cloudwatch and MySQL plugins with two classes. See the below sections for plugin specifics.
class { 'newrelic_plugins::aws_cloudwatch':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic',
aws_access_key => 'AWS_ACCESS_KEY',
aws_secret_key => 'AWS_SECRET_KEY',
agents => [ 'ec2', 'ebs', 'elb' ]
}
class { 'newrelic_plugins::mysql':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic',
java_options => '-Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=12345',
servers => [
{
name => 'Production 1',
host => 'localhost',
metrics => 'status,newrelic',
mysql_user => 'USER',
mysql_passwd => 'CLEAR_TEXT_PASSWORD'
}
]
}
###AWS Cloudwatch Plugin
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_aws_cloudwatch_plugin
.
user
- (required) User to run as
aws_access_key
- (required) AWS Cloudwatch Access Key
aws_secret_key
- (required) AWS Cloudwatch Secret Key
agents
- (required) Array of AWS Cloudwatch agents. Valid values are ec
, ec2
, ebs
, elb
, rds
, sqs
, and sns
version
- (optional) Plugin version. Defaults to latest release version.
regions
- (optional) Array of AWS Cloudwatch regions. e.g. us-east-1
. Defaults to all available regions
####Class
class { 'newrelic_plugins::aws_cloudwatch':
license_key => 'NEW_RELIC_LICENSE_KEY',
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
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_example_plugin
.
user
- (required) User to run as
####Class
class { 'newrelic_plugins::example_plugin':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic'
}
For additional info, see https://github.com/newrelic-platform/newrelic_example_plugin
###F5 Plugin
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_f5_plugin
.
user
- (required) User to run as
agents
- (required) Array of F5 agents that require a name, host, port and snmp_community
version
- (optional) Plugin version. Defaults to latest release version
####Class
class { 'newrelic_plugins::f5':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic',
agents => [
{
name => 'My F5',
host => 'my-f5',
port => 161,
snmp_community => 'community'
}
]
}
For additional info, see https://github.com/newrelic-platform/newrelic_f5_plugin
###Memcached (Java)
####Parameters
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_memcached_java_plugin
.
user
- (required) User to run as
servers
- (required) Array of Memcached server information
version
- (optional) Plugin version. Defaults to latest release version
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
(max 128mb heap size) but may be overridden.
####Class
class { 'newrelic_plugins::memcached_java':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic',
java_options => '-Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=12345',
servers => [
{
name => 'Production Master',
host => 'host.example.com',
port => 11211
},
{
name => 'Memcached Host - 2',
host => 'host2.example.com'
}
]
}
For additional info, see https://github.com/newrelic-platform/newrelic_memcached_java_plugin
###Memcached (Ruby)
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_memcached_ruby_plugin
.
user
- (required) User to run as
agents
- (required) Array of Memcached hosts that require a name and host and take an optional port.
version
- (optional) Plugin version. Defaults to latest release version
####Class
class { 'newrelic_plugins::memcached_ruby':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic',
agents => [
{
name => 'Memcached Host - 1',
endpoint => 'memcached.example.com',
port => 11211
}
]
}
For additional info, see https://github.com/newrelic-platform/newrelic_memcached_plugin
###MySQL Plugin
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_mysql_plugin
.
user
- (required) User to run as
servers
- (required) Array of MySQL server information
metrics
- (optional) Default set of metrics. Can be overriden in servers
mysql_user
- (optional) Default user name. Can be overriden in servers
mysql_passwd
- (optional) Default clear text password. Can be overriden in servers
version
- (optional) Plugin version. Defaults to latest release version
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
(max 128mb heap size) but may be overridden.
####Class
class { 'newrelic_plugins::mysql':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic',
metrics => 'status,newrelic',
mysql_user => 'USER_NAME_HERE',
mysql_passwd => 'USER_CLEAR_TEXT_PASSWORD_HERE',
java_options => '-Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=12345',
servers => [
{
name => 'Production Master',
host => 'master-host'
},
{
name => 'Production Slave',
host => 'slave-host'
}
]
}
class { 'newrelic_plugins::mysql':
license_key => 'NEW_RELIC_LICENSE_KEY',
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 Plugin
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_rackspace_load_balancers_plugin
.
user
- (required) User to run as
username
- (required) Username for Rackspace Load Balancers
api_key
- (required) API Key for Rackspace Load Balancers
region
- (required) Region for Rackspace Load Balancers. Valid regions are: ord
, dfw
, and lon
.
version
- (optional) Plugin version. Defaults to latest release version
####Class
class { 'newrelic_plugins::rackspace_load_balancers':
license_key => 'NEW_RELIC_LICENSE_KEY',
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
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_wikipedia_example_java_plugin
.
user
- (required) User to run as
version
- (optional) Plugin version. Defaults to latest release version.
####Class
class { 'newrelic_plugins::wikipedia_example_java':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic'
}
For additional info, see https://github.com/newrelic-platform/newrelic_java_wikipedia_plugin
###Wikipedia Example Ruby
####Parameters
license_key
- (required) New Relic License Key
install_path
- (required) Install Directory. Any downloaded files will be placed here. The plugin will be installed within this directory at newrelic_wikipedia_example_ruby_plugin
.
user
- (required) User to run as
version
- (optional) Plugin version. Defaults to latest release version.
####Class
class { 'newrelic_plugins::wikipedia_example_ruby':
license_key => 'NEW_RELIC_LICENSE_KEY',
install_path => '/path/to/plugin',
user => 'newrelic'
}
For additional info, see https://github.com/newrelic-platform/newrelic_ruby_wikipedia_plugin
##Limitations
This module supports:
- Debian
- Ubuntu
- CentOS
- Red Hat
- Fedora
- Amazon
- FreeBSD
License
This cookbook is under the included MIT License.
Contact
Contribute to this Cookbook at https://github.com/newrelic-platform/newrelic_plugins_puppet. Any other feedback or support related questions can be sent to support @ newrelic.com.
CHANGELOG
1.1.0 - 2014-09-25
- Added enabled and ensured service parameters
- Updating MySQL baseurl to work with curl
- No longer use sudo for service management but runs as the provided user
- Fix init daemon bug for restarts
- Updated MySQL, Memcached (Java), and Wikipedia (Java) plugins to version 2.0.0+
1.0.0 - 2014-01-29
- Initial release
Dependencies
- puppetlabs/stdlib (>= 2.4.0)
The MIT License Copyright (c) 2014 New Relic, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.