{ "info": { "author": "Austin Marshall", "author_email": "amarshall@numenta.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python :: 2", "Topic :: Utilities" ], "description": "Numenta Rogue\r\n=============\r\n\r\nMetrics collection agent for the Numenta Rogue showcase application and\r\nconsists of two primary components: A long-running metric collection agent,\r\nwhich periodically polls various metrics and records the results to a local\r\ndatabase, and a separate process for forwarding metrics to a Grok server for\r\nanalysis.\r\n\r\nEach metric collection agent is executed in a continuously-running gevent\r\nGreenlet, with a pre-determined wait interval between samples. Each sample\r\nis cached locally in a dedicated RRDTool database. Individual metrics are\r\nimplemented as subclasses of `avogadro.agent.AvogadroAgent()`, and must\r\nimplement a `collect()` method, which returns the metric value.\r\n\r\nThe `rogue-forward` process fetches metric data from the individual RRDTool\r\ndatabases using the `rrdtool fetch` command, and sends the metric data using\r\nthe Grok Custom Metric API. Each time the `rogue-forward` process is\r\nexecuted, the most recent timestamp is cached locally, and is used as a\r\nstarting point for subsequent requests.\r\n\r\nUsage\r\n-----\r\n\r\nInstall RRDTool::\r\n\r\n brew install rrdtool\r\n\r\nInstall in development mode::\r\n\r\n python setup.py develop --install-dir=... --script-dir=...\r\n\r\nStart key-counter with nohup::\r\n\r\n nohup rogue-keycounter > rogue-keys.stdout 2> rogue-keys.stderr < /dev/null &\r\n\r\nMake sure that iTerm/Terminal is allowed in System Prefrences > Security & Privacy > Privacy > Accessibility!\r\n\r\nStart metric collection agent with nohup::\r\n\r\n nohup rogue-agent --prefix=var/db/ --interval=300 --hearbeat=600 > rogue-agent.stdout 2> rogue-agent.stderr < /dev/null &\r\n\r\nForward pending metric data to Grok once::\r\n\r\n rogue-forward --server=https://localhost --prefix=var/db\r\n\r\nSample crontab entry::\r\n\r\n * * * * * PATH=$PATH:/usr/local/bin PYTHONPATH=... .../rogue-forward --server=... --prefix=... > .../rogue-forward.stdout 2> .../rogue-forward.stderr < /dev/null\r\n\r\nExport to local CSV\r\n~~~~~~~~~~~~~~~~~~~\r\n\r\nAll metric data is written to a local round-robin database, which only retains\r\nthe two most recent weeks of data at any given moment in time. Should you want\r\nthe data exported to CSV, use the `rogue-export` utility::\r\n\r\n rogue-export --prefix=var/db\r\n\r\nThe exporter keeps track of the position of a given metric, so you can run\r\n`rogue-export` as frequently as you like, and the `.csv` files in `var/db/`,\r\nwill be updated accordingly. i.e. you can periodically sync the round-robin\r\ndatabase to a csv file in `var/db/`\r\n\r\n\r\nMetrics\r\n-------\r\n\r\nCPUPercent\r\n~~~~~~~~~~\r\n\r\nTotal CPU utilization as a percentage, as reported by ``psutil.cpu_percent()``.\r\n\r\nMemoryPercent\r\n~~~~~~~~~~~~~\r\n\r\nThe percentage memory usage calculated as `(total - available) / total * 100`,\r\nas reported by ``psutil.virtual_memory().percent``\r\n\r\nDiskReadBytes\r\n~~~~~~~~~~~~~\r\n\r\nNumber of bytes read (total), as reported by\r\n``psutil.disk_io_counters.read_bytes``\r\n\r\nDiskWriteBytes\r\n~~~~~~~~~~~~~\r\n\r\nNumber of bytes written (total), as reported by\r\n``psutil.disk_io_counters.write_bytes``\r\n\r\nDiskReadTime\r\n~~~~~~~~~~~~\r\n\r\nTime spent reading from disk (in milliseconds), as reported by\r\n``psutil.disk_io_counters.read_time``\r\n\r\nDiskWriteTime\r\n~~~~~~~~~~~~~\r\n\r\nTime spent writing to disk (in milliseconds), as reported by\r\n``psutil.disk_io_counters.write_time``\r\n\r\nNetworkBytesSent\r\n~~~~~~~~~~~~~~~~\r\n\r\nNumber of bytes sent, as reported by ``psutil.net_io_counters.bytes_sent()``\r\n\r\nNetworkBytesReceived\r\n~~~~~~~~~~~~~~~~~~~~\r\n\r\nNumber of bytes received, as reported by\r\n``psutil.net_io_counters.bytes_recv()``", "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/numenta/nupic.rogue", "keywords": "htm,numenta,anomaly detection,monitoring,nupic", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "numenta-rogue", "package_url": "https://pypi.org/project/numenta-rogue/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/numenta-rogue/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/numenta/nupic.rogue" }, "release_url": "https://pypi.org/project/numenta-rogue/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Metric collection agent for Numenta Rogue showcase application", "version": "1.0.1" }, "last_serial": 1666029, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "d83fd4a12576f421ad804059aae847ce", "sha256": "6964cb61a17df56286e659706d49442de1d0feceb1d18ba8138e6e6d479d1f97" }, "downloads": -1, "filename": "numenta_rogue-1.0-py2.7.egg", "has_sig": false, "md5_digest": "d83fd4a12576f421ad804059aae847ce", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17407, "upload_time": "2014-08-22T05:01:08", "url": "https://files.pythonhosted.org/packages/b5/64/3f1e59104244b7c364244baaf1bc792d0734f422bd34a4c774136c992ebb/numenta_rogue-1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3c1ccda970fef51f63791a95b30d6236", "sha256": "43e95a3dbe192feeeda29cb47a7d4f5050d8fe92bb98e3ece392ca9939acad02" }, "downloads": -1, "filename": "numenta_rogue-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "3c1ccda970fef51f63791a95b30d6236", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19184, "upload_time": "2014-08-22T05:01:05", "url": "https://files.pythonhosted.org/packages/6b/ed/bf3fc00ccde1383817a9d3176a28d49ecc21678de65aa260eb5602704d1f/numenta_rogue-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd9cc976c05e003ff78707e092a15362", "sha256": "1cdedd1720893f0f02705a2556a4ebe894682c026d93897ca376783c76c80c2d" }, "downloads": -1, "filename": "numenta-rogue-1.0.tar.gz", "has_sig": false, "md5_digest": "bd9cc976c05e003ff78707e092a15362", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11729, "upload_time": "2014-08-22T05:01:02", "url": "https://files.pythonhosted.org/packages/9b/3f/b9dc2107cda7f7741034818b5bc190295b0cc17a38d3eb48987a16a55372/numenta-rogue-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "87f8d72a9a3c285104c4e31503cca7d4", "sha256": "20e642a83427d323207d2a6761bf13220cc08c54b32c1a7df9bfa7f913a5a22e" }, "downloads": -1, "filename": "numenta_rogue-1.0.1-py2.7.egg", "has_sig": false, "md5_digest": "87f8d72a9a3c285104c4e31503cca7d4", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 24633, "upload_time": "2015-08-05T21:17:05", "url": "https://files.pythonhosted.org/packages/4a/c0/c753a065cb7d3032d7711fe47b515a4602f4bd49499ce45d579e2cb4fc5f/numenta_rogue-1.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "101f551ccb1892c82ffe57434d77b575", "sha256": "ac39240a92caadd37c1b8bdbae125d03c360cb420ecc0b63ae8458d13c67a49b" }, "downloads": -1, "filename": "numenta_rogue-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "101f551ccb1892c82ffe57434d77b575", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26573, "upload_time": "2015-08-05T21:17:01", "url": "https://files.pythonhosted.org/packages/e8/06/c4f91d1401f885aa59fb02e711dab81e4d60cedc858967bf10a120a3b414/numenta_rogue-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2cc745767b386c818709a375f86d517", "sha256": "fd95fafa6a14412989792dd9645bb578289b450f53e2ff674c4dec9976afacfd" }, "downloads": -1, "filename": "numenta-rogue-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c2cc745767b386c818709a375f86d517", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25184, "upload_time": "2015-08-05T21:16:58", "url": "https://files.pythonhosted.org/packages/53/5d/d305aea222d5646a0a5485193e3852f7b1a75e3d514b420c8cd7f76cfa39/numenta-rogue-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87f8d72a9a3c285104c4e31503cca7d4", "sha256": "20e642a83427d323207d2a6761bf13220cc08c54b32c1a7df9bfa7f913a5a22e" }, "downloads": -1, "filename": "numenta_rogue-1.0.1-py2.7.egg", "has_sig": false, "md5_digest": "87f8d72a9a3c285104c4e31503cca7d4", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 24633, "upload_time": "2015-08-05T21:17:05", "url": "https://files.pythonhosted.org/packages/4a/c0/c753a065cb7d3032d7711fe47b515a4602f4bd49499ce45d579e2cb4fc5f/numenta_rogue-1.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "101f551ccb1892c82ffe57434d77b575", "sha256": "ac39240a92caadd37c1b8bdbae125d03c360cb420ecc0b63ae8458d13c67a49b" }, "downloads": -1, "filename": "numenta_rogue-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "101f551ccb1892c82ffe57434d77b575", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26573, "upload_time": "2015-08-05T21:17:01", "url": "https://files.pythonhosted.org/packages/e8/06/c4f91d1401f885aa59fb02e711dab81e4d60cedc858967bf10a120a3b414/numenta_rogue-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2cc745767b386c818709a375f86d517", "sha256": "fd95fafa6a14412989792dd9645bb578289b450f53e2ff674c4dec9976afacfd" }, "downloads": -1, "filename": "numenta-rogue-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c2cc745767b386c818709a375f86d517", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25184, "upload_time": "2015-08-05T21:16:58", "url": "https://files.pythonhosted.org/packages/53/5d/d305aea222d5646a0a5485193e3852f7b1a75e3d514b420c8cd7f76cfa39/numenta-rogue-1.0.1.tar.gz" } ] }