{ "info": { "author": "Gavin M. Roy", "author_email": "gavinmroy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 2 :: Only", "Topic :: System :: Monitoring" ], "description": "NewRelic Plugin Agent\n=====================\n\nAn agent that polls supported backend systems and submits the results to the\nNewRelic platform. Currently supported backend systems are:\n\n- Alternative PHP Cache\n- Apache HTTP Server\n- CouchDB\n- Elasticsearch\n- HAProxy\n- Memcached\n- MongoDB\n- Nginx\n- pgBouncer\n- PHP FPM\n- PostgreSQL\n- RabbitMQ\n- Redis\n- Riak\n- uWSGI\n\nBase Requirements\n-----------------\nThe agent requires Python 2.6 or 2.7 and ``pip`` for installation. Individual plugin backends may require additional libraries and are detailed below.\n\nConfiguration File Note\n-----------------------\nThe configuration file uses YAML as its format. Most tickets for non-working installs are due to configuration file formatting errors. Please make sure you are properly formatting your configuration file prior to submitting a ticket. YAML is a whitespace dependent markup format. More information on writing proper YAML can be found at http://yaml.org.\n\nInstallation Instructions\n-------------------------\n1. Install via ``pip``*:\n\n::\n\n $ pip install newrelic-plugin-agent\n\n* See ``pip`` installation instructions at http://www.pip-installer.org/en/latest/installing.html\n\n2. Copy the configuration file example from ``/opt/newrelic-plugin-agent/newrelic-plugin-agent.cfg`` to ``/etc/newrelic/newrelic-plugin-agent.cfg`` and edit the configuration in that file.\n\n3. Make a ``/var/log/newrelic`` directory and make sure it is writable by the user specified in the configuration file\n\n4. Make a ``/var/run/newrelic`` directory and make sure it is writable by the user specified in the configuration file\n\n5. Run the app:\n\n::\n\n $ newrelic-plugin-agent -c PATH-TO-CONF-FILE [-f]\n\nWhere ``-f`` is to run it in the foreground instead of as a daemon.\n\nSample configuration and init.d scripts are installed to ``/opt/newrelic-plugin-agent`` in addition to a PHP script required for APC monitoring.\n\nInstalling Additional Requirements\n----------------------------------\n\nTo use the MongoDB the ``mongodb`` library is required. For the pgBouncer or PostgreSQL plugin you must install the ``psycopg2`` library. To easily do\nthis, make sure you have the latest version of ``pip`` installed (http://www.pip-installer.org/). This should be done after installing the agent itself:\n\n::\n\n $ pip install newrelic-plugin-agent[mongodb]\n\nor::\n\n $ pip install newrelic-plugin-agent[pgbouncer]\n\nor::\n\n $ pip install newrelic-plugin-agent[postgresql]\n\nIf this does not work for you, make sure you are running a recent copy of ``pip`` (>= 1.3).\n\nPlugin Configuration Stanzas\n----------------------------\nEach plugin can support gathering data from a single or multiple targets. To support multiple targets for a plugin, you create a list of target stanzas:\n\n::\n\n plugin_name:\n - name: target_name\n host: localhost\n foo: bar\n - name: target_name\n host: localhost\n foo: bar\n\nWhile you can use the multi-target format for a plugin's configuration stanza like:\n\n::\n\n plugin_name:\n - name: target_name\n host: localhost\n foo: bar\n\nYou can also use a single mapping like follows:\n\n::\n\n plugin_name:\n name: target_name\n host: localhost\n foo: bar\n\nThe fields for plugin configurations can vary due to a plugin's configuration requirements. The name value in each stanza is only required when using multiple targets in a plugin. If it is only a single target, the name will be taken from the server's hostname.\n\nAPC Installation Notes\n----------------------\nCopy the ``apc-nrp.php`` script to a directory that can be served by your web server or ``php-fpm`` application. Edit the ``newrelic-plugin-agent`` configuration to point to the appropriate URL.\n\nApache HTTPd Installation Notes\n-------------------------------\nEnable the HTTPd server status page in the default virtual host. The following example configuration snippet for Apache HTTPd 2.2 demonstrates how to do this:\n\n::\n\n \n SetHandler server-status\n Order deny,allow\n Deny from all\n Allow from 127.0.0.1\n \n\nFor HTTPd 2.4, it should look something like:\n\n::\n\n \n SetHandler server-status\n Require ip 127.0.0.1\n \n\nThe agent requires the extended information to parse metrics. If you are not seeing any metrics on your graphs for Apache verify that you have enabled ``ExtendedStatus``, the default is off so you must enable it. In your global Apache HTTP configuration you need to enable exetended status using:\n\n::\n\n ExtendedStatus On\n\nIf you are monitoring Apache HTTPd via a HTTPS connection you can use the ``verify_ssl_cert`` configuration value in the httpd configuration section to disable SSL certificate verification.\n\nMemcached Installation Notes\n----------------------------\nThe memcached plugin can communicate either over UNIX domain sockets using the path configuration variable or TCP/IP using the host and port variables. Do not include both.\n\nMongoDB Installation Notes\n--------------------------\nYou need to install the pymongo driver, either by running ``pip install pymongo`` or by following the \"`Installing Additional Requirements`_\" above. Each database you wish to collect metrics for must be enumerated in the configuration.\n\nThere are two configuration stanza formats for MongoDB. You must use one or the other, they can not be mixed. For non-authenticated polling, you can simply enumate the databases you would like stats from as a list:\n\n::\n\n mongodb:\n name: hostname\n host: localhost\n port: 27017\n #admin_username: foo\n #admin_password: bar\n #ssl: False\n #ssl_keyfile: /path/to/keyfile\n #ssl_certfile: /path/to/certfile\n #ssl_cert_reqs: 0 # Should be 0 for ssl.CERT_NONE, 1 for ssl.CERT_OPTIONAL, 2 for ssl.CERT_REQUIRED\n #ssl_ca_certs: /path/to/cacerts file\n databases:\n - database_name_1\n - database_name_2\n\nIf your MongoDB server requires authentication, you must provide both admin credentials and database level credentials and the stanza is formatted as a nested array:\n\n::\n\n mongodb:\n name: hostname\n host: localhost\n port: 27017\n #admin_username: foo\n #admin_password: bar\n #ssl: False\n #ssl_keyfile: /path/to/keyfile\n #ssl_certfile: /path/to/certfile\n #ssl_cert_reqs: 0 # Should be 0 for ssl.CERT_NONE, 1 for ssl.CERT_OPTIONAL, 2 for ssl.CERT_REQUIRED\n #ssl_ca_certs: /path/to/cacerts file\n databases:\n database_name_1:\n username: foo\n password: bar\n database_name_2:\n username: foo\n password: bar\n\nNginx Installation Notes\n------------------------\nEnable the Nginx ``stub_status`` setting on the default site in your configuration. The following example configuration snippet for Nginx demonstates how to do this:\n\n::\n\n location /nginx_stub_status {\n stub_status on;\n allow 127.0.0.1;\n deny all;\n }\n\nIf you are monitoring Nginx via a HTTPS connection you can use the ``verify_ssl_cert`` configuration value in the httpd configuration section to disable SSL certificate verification.\n\npgBouncer Installation Notes\n----------------------------\nThe user specified must be a stats user.\n\nPostgreSQL Installation Notes\n-----------------------------\nBy default, the specified user must be superuser to get PostgreSQL\ndirectory listings. To skip those checks that require superuser\npermissions, use the ``superuser: False`` setting in the configuration\nfile.\n\nSeveral of the checks take O(N) time where N is the number of relations\nin the database. If you need to use this on a database with a very large\nnumber of relations, you can skip these, using ``relation_stats: False``.\n\nE.g.:\n\n::\n\n postgresql:\n host: localhost\n port: 5432\n user: newrelic\n dbname: postgres\n password: newrelic\n superuser: False\n relation_stats: False\n\nRabbitMQ Installation Notes\n---------------------------\nThe user specified must have access to all virtual hosts you wish to monitor and should have either the Administrator tag or the Monitoring tag.\n\nIf you are monitoring RabbitMQ via a HTTPS connection you can use the ``verify_ssl_cert`` configuration value in the httpd configuration section to disable SSL certificate verification.\n\nRedis Installation Notes\n------------------------\nFor Redis daemons that are password protected, add the password configuration value, otherwise omit it. The Redis configuration section allows for multiple redis servers. The syntax to poll multiple servers is in the example below.\n\nThe Redis plugin can communicate either over UNIX domain sockets using the path configuration variable or TCP/IP using the host and port variables. Do not include both.\n\nRiak Installation Notes\n-----------------------\nIf you are monitoring Riak via a HTTPS connection you can use the ``verify_ssl_cert`` configuration value in the httpd configuration section to disable SSL certificate verification.\n\nUWSGI Installation Notes\n------------------------\nThe UWSGI plugin can communicate either over UNIX domain sockets using the path configuration variable or TCP/IP using the host and port variables. Do not include both.\n\nMake sure you have `enabled stats server \n`_ in your uwsgi config.\n\nConfiguration Example\n---------------------\n\n::\n\n %YAML 1.2\n ---\n Application:\n license_key: REPLACE_WITH_REAL_KEY\n poll_interval: 60\n #newrelic_api_timeout: 10\n #proxy: http://localhost:8080\n\n apache_httpd:\n - name: hostname1\n scheme: http\n host: localhost\n port: 80\n path: /server-status\n #verify_ssl_cert: true\n - name: hostname2\n scheme: http\n host: localhost\n port: 80\n path: /server-status\n #verify_ssl_cert: true\n\n couchdb:\n - name: localhost\n host: localhost\n port: 5984\n #verify_ssl_cert: true\n #username: foo\n #password: bar\n - name: localhost\n host: localhost\n port: 5984\n #verify_ssl_cert: true\n #username: foo\n #password: bar\n\n elasticsearch:\n name: clustername\n host: localhost\n port: 9200\n\n haproxy:\n name: my-haproxy-server\n host: localhost\n port: 80\n path: /haproxy?stats;csv\n scheme: http\n #verify_ssl_cert: true\n #username: foo\n #password: bar\n\n mongodb:\n name: hostname\n host: localhost\n port: 27017\n admin_username: foo\n admin_password: bar\n databases:\n database_name_1:\n username: foo\n password: bar\n database_name_2:\n username: foo\n password: bar\n\n memcached:\n - name: localhost\n host: localhost\n port: 11211\n path: /path/to/unix/socket\n - name: localhost\n host: localhost\n port: 11211\n path: /path/to/unix/socket\n\n nginx:\n - name: hostname\n host: localhost\n port: 80\n path: /nginx_stub_status\n #verify_ssl_cert: true\n - name: hostname\n host: localhost\n port: 80\n path: /nginx_stub_status\n #verify_ssl_cert: true\n\n pgbouncer:\n - host: localhost\n port: 6000\n user: stats\n\n php_apc:\n scheme: http\n host: localhost\n port: 80\n path: /apc-nrp.php\n #username: foo\n #password: bar\n #verify_ssl_cert: t\n\n php_fpm:\n - name: fpm-pool\n scheme: https\n host: localhost\n port: 443\n path: /fpm_status\n query: json\n\n postgresql:\n - host: localhost\n port: 5432\n user: postgres\n dbname: postgres\n superuser: True\n\n rabbitmq:\n - name: rabbitmq@localhost\n host: localhost\n port: 15672\n username: guest\n password: guest\n #verify_ssl_cert: true\n api_path: /api\n\n redis:\n - name: localhost\n host: localhost\n port: 6379\n db_count: 16\n password: foobar\n #path: /var/run/redis/redis.sock\n - name: localhost\n host: localhost\n port: 6380\n db_count: 16\n password: foobar\n #path: /var/run/redis/redis.sock\n\n riak:\n - name: localhost\n host: localhost\n port: 8098\n #verify_ssl_cert: true\n\n Daemon:\n user: newrelic\n pidfile: /var/run/newrelic/newrelic-plugin-agent.pid\n\n Logging:\n formatters:\n verbose:\n format: '%(levelname) -10s %(asctime)s %(process)-6d %(processName) -15s %(threadName)-10s %(name) -25s %(funcName) -25s L%(lineno)-6d: %(message)s'\n handlers:\n file:\n class : logging.handlers.RotatingFileHandler\n formatter: verbose\n filename: /var/log/newrelic/newrelic-plugin-agent.log\n maxBytes: 10485760\n backupCount: 3\n loggers:\n newrelic-plugin-agent:\n level: INFO\n propagate: True\n handlers: [console, file]\n requests:\n level: ERROR\n propagate: True\n handlers: [console, file]\n\nTroubleshooting\n---------------\n- If the installation does not install the ``newrelic-plugin-agent`` application in ``/usr/bin`` then it is likely that ``setuptools`` or ``distribute`` is not up to date. The following commands can be run to install ``distribute`` and ``pip`` for installing the application:\n\n::\n\n $ curl http://python-distribute.org/distribute_setup.py | python\n $ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python\n\n- If the application installs but doesn't seem to be submitting status, check the logfile which at ``/tmp/newrelic-plugin-agent.log`` if the default example logging configuration is used.\n- If the agent starts but dies shortly after ensure that ``/var/log/newrelic`` and ``/var/run/newrelic`` are writable by the same user specified in the daemon section of the configuration file.\n- If the agent has died and won't restart, remove any files found in ``/var/run/newrelic/``\n- If using the Apache HTTP plugin and your stats are blank, ensure the ExtendedStatus directive is on.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gmr/newrelic-plugin-agent", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "newrelic_plugin_agent", "package_url": "https://pypi.org/project/newrelic_plugin_agent/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/newrelic_plugin_agent/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/gmr/newrelic-plugin-agent" }, "release_url": "https://pypi.org/project/newrelic_plugin_agent/1.3.0/", "requires_dist": null, "requires_python": null, "summary": "Python based agent for collecting metrics for NewRelic", "version": "1.3.0" }, "last_serial": 1095052, "releases": { "1.0.13": [ { "comment_text": "", "digests": { "md5": "9e82041eb4d3505e0822dcd6edba4f1f", "sha256": "801339072c1d1a8f85aa9c7fccb1efb56733e33c8a3790d268e3a4cec360ea5c" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.0.13.tar.gz", "has_sig": false, "md5_digest": "9e82041eb4d3505e0822dcd6edba4f1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30630, "upload_time": "2013-07-19T01:46:45", "url": "https://files.pythonhosted.org/packages/03/07/179628da56a1b0566918c48d85ae8d58927569ad68b63808d0b9221638c0/newrelic_plugin_agent-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "e3f351700c7e0774add3c1b91acc899d", "sha256": "0369373e5a076c422673be456d6807ca021b496602a80746e7578d0b1a86360d" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.0.14.tar.gz", "has_sig": false, "md5_digest": "e3f351700c7e0774add3c1b91acc899d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30714, "upload_time": "2013-07-19T02:33:12", "url": "https://files.pythonhosted.org/packages/a1/c6/cffecd9652fb3994030d2b8be478b54d94f1ebb5d138b068e047e171ec38/newrelic_plugin_agent-1.0.14.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "c508fb52fe53f53f4690b7d9ba2ead97", "sha256": "1fa3f406444470fd2c862b6bd2ac60228c3e31558620cd52ca3c2b46c9a6860d" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c508fb52fe53f53f4690b7d9ba2ead97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30909, "upload_time": "2013-08-04T04:50:19", "url": "https://files.pythonhosted.org/packages/ca/10/3b36a33a068b3294ac4a640c06f06e7302981ae808b9b2b432af33a5ee9a/newrelic_plugin_agent-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "e084010f38e5bb01d4a8aa49d26195ee", "sha256": "b3987673e026deda41e84dc609b1b24a82df53df054e2ad47783adf919a501a0" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.2.0.tar.gz", "has_sig": false, "md5_digest": "e084010f38e5bb01d4a8aa49d26195ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34571, "upload_time": "2013-11-05T22:38:42", "url": "https://files.pythonhosted.org/packages/65/89/ce6856df865c27fb59d5320b3f2ce626663a9d0f41a935883e0b712f98c8/newrelic_plugin_agent-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "05f6d391eb4012db6844ea706bd19fa1", "sha256": "51e5679146186785e75fd5acc45891c7c0dedf1f943ce38cc87fe1c3ceaaa1d9" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.2.1.tar.gz", "has_sig": false, "md5_digest": "05f6d391eb4012db6844ea706bd19fa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34687, "upload_time": "2013-11-05T23:48:06", "url": "https://files.pythonhosted.org/packages/91/d6/a3fc71b47c717863705db2682d2ccd87e774911bc3fa90a3b488252bec3b/newrelic_plugin_agent-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "d0c16ffdf491752483608b170af15a9d", "sha256": "33e96f3d4623502b4084908b76b17f4689081078b2c9058454d9eb47db376fce" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d0c16ffdf491752483608b170af15a9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34688, "upload_time": "2013-11-06T00:14:48", "url": "https://files.pythonhosted.org/packages/d9/a1/f21cce51dfc586cfbc39f17bc39b9d39b490cb6228bceb0666086e8533aa/newrelic_plugin_agent-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "8dbc079eb08dc9d03d8b0003947b2c10", "sha256": "912fcd6e0d64d08beea6884d6eec1193d714e257a5bc6b4a34bfde0d58a7f792" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.2.3.tar.gz", "has_sig": false, "md5_digest": "8dbc079eb08dc9d03d8b0003947b2c10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35038, "upload_time": "2014-03-03T17:46:35", "url": "https://files.pythonhosted.org/packages/55/d5/7c88913fedc082c3ee7d550b3276ee146a9039653342ebba5b6102dd7264/newrelic_plugin_agent-1.2.3.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "8855e9802cd0476d862ebb12ed22bd32", "sha256": "4e10666ad7a9713074942eb0409f7473cfff5a27efcab3d97075cb90f4ea2b81" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8855e9802cd0476d862ebb12ed22bd32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33421, "upload_time": "2014-05-16T21:00:08", "url": "https://files.pythonhosted.org/packages/8f/16/023893cf6cb28a2a1d355111c038d77502d09249ab5bffb520cb9bdb53b5/newrelic_plugin_agent-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8855e9802cd0476d862ebb12ed22bd32", "sha256": "4e10666ad7a9713074942eb0409f7473cfff5a27efcab3d97075cb90f4ea2b81" }, "downloads": -1, "filename": "newrelic_plugin_agent-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8855e9802cd0476d862ebb12ed22bd32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33421, "upload_time": "2014-05-16T21:00:08", "url": "https://files.pythonhosted.org/packages/8f/16/023893cf6cb28a2a1d355111c038d77502d09249ab5bffb520cb9bdb53b5/newrelic_plugin_agent-1.3.0.tar.gz" } ] }