{ "info": { "author": "Yun Xu", "author_email": "yunx@zillowgroup.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: System :: Software Distribution" ], "description": "metrics-migration\n=================\n\n.. image:: https://travis-ci.org/yunstanford/metrics-migration.svg?branch=master\n :alt: build status\n :target: https://travis-ci.org/yunstanford/metrics-migration\n\n.. image:: https://coveralls.io/repos/github/yunstanford/metrics-migration/badge.svg?branch=master\n :alt: coverage status\n :target: https://coveralls.io/github/yunstanford/metrics-migration?branch=master\n\n\na simple tool to help you migrate your graphite metrics\n\n\n---------------------------\nWhat is metrics-migration ?\n---------------------------\n\nmetrics-migration a Python3 tool (async io), designed to help graphite users to migrate metrics\nin several ways.\n\n* Migrate whole storage directory.\n* Migrate specific whisper file (with new metric name).\n* Allow schema change during Migration (Provide schema rule).\n\n\n-------------\nInstall\n-------------\n\nYou can install aiographite globally with any Python package manager:\n\n.. code::\n\n pip3 install metrics-migration\n\n\n-------------\nDependency\n-------------\n\nWhisper on pypi only supports python2, we should download whisper egg from github.\n\n.. code::\n\n pip3 install https://github.com/graphite-project/whisper/tarball/feature/py3\n\n\n-------------\nExamples\n-------------\n\nLet's get started with several examples.\n\nExample 1. A simple example to migrate a directory.\n\n.. code::\n\n from migration.migration import Migration\n import asyncio\n\n\n loop = asyncio.get_event_loop()\n host = \"127.0.0.1\"\n port = 2003\n directory = '/Users/yunx/Documents/PROJECTS/metrics-migration/examples'\n\n\n async def go():\n migration_worker = Migration(directory, host, port, loop=loop)\n await migration_worker.connect_to_graphite()\n await migration_worker.run()\n await migration_worker.close_conn_to_graphite()\n\n\n def main():\n loop.run_until_complete(go())\n loop.close()\n\n\n if __name__ == '__main__':\n main()\n\n\nExample 2. Migrate a whipser file with new metric.\n\n.. code::\n\n from migration.migration import Migration\n import asyncio\n\n\n loop = asyncio.get_event_loop()\n host = \"127.0.0.1\"\n port = 2003\n directory = '/Users/yunx/Documents/PROJECTS/metrics-migration/examples'\n storage_dir = '/Users/yunx/Documents/PROJECTS/metrics-migration'\n metric = \"examples.committedPoints\"\n new_metric = 'hello.world'\n\n\n async def go():\n migration_worker = Migration(directory, host, port, loop=loop, debug=True)\n await migration_worker.connect_to_graphite()\n await migration_worker.send_one_wsp(storage_dir, metric, new_metric)\n await migration_worker.close_conn_to_graphite()\n\n\n def main():\n loop.run_until_complete(go())\n loop.close()\n\n\n if __name__ == '__main__':\n main()\n\n\nExample 3. Have Multiple Directories to migrate ?\n\n.. code::\n\n from migration.migration import Migration\n import asyncio\n\n\n loop = asyncio.get_event_loop()\n host = \"127.0.0.1\"\n port = 2003\n directories_and_prefixes = [\n ('/opt/graphite/metrics-migration/zon1', 'zon1'),\n ('/opt/graphite/metrics-migration/zon2', 'zon2'),\n ]\n\n\n async def go():\n migration_worker = Migration(directory, host, port, loop=loop)\n await migration_worker.connect_to_graphite()\n for (directory, prefix) in directories_and_prefixes:\n wait migration_worker.run(directory=directory, prefix=prefix)\n await migration_worker.run()\n await migration_worker.close_conn_to_graphite()\n\n\n def main():\n loop.run_until_complete(go())\n loop.close()\n\n\n if __name__ == '__main__':\n main()\n\n\nExample 4. async with context manager\n\n.. code::\n\n from migration.migration import Migration\n import asyncio\n\n\n loop = asyncio.get_event_loop()\n host = \"127.0.0.1\"\n port = 2003\n directory = '/Users/yunx/Documents/PROJECTS/metrics-migration/examples'\n\n\n async def go():\n \"\"\"\n Use context manager\n \"\"\"\n async with Migration(directory, host, port, loop=loop, debug=True) as migration_worker:\n await migration_worker.run()\n\n\n def main():\n loop.run_until_complete(go())\n loop.close()\n\n\n if __name__ == '__main__':\n main()\n\n\n------------\nDevelopment\n------------\n\nRun unit tests.\n\n.. code::\n \n ./uranium test\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yunstanford/metrics-migration", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "metrics-migration", "package_url": "https://pypi.org/project/metrics-migration/", "platform": "", "project_url": "https://pypi.org/project/metrics-migration/", "project_urls": { "Homepage": "https://github.com/yunstanford/metrics-migration" }, "release_url": "https://pypi.org/project/metrics-migration/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "a simple tool to help you migrate graphite metrics", "version": "0.1.2" }, "last_serial": 2573192, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "bf62fdbe1f70576eeea5842c562f21c4", "sha256": "546a0664404fe925caf600697adb9e697a5e8977c2797415ee4072ae11658e8f" }, "downloads": -1, "filename": "metrics_migration-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf62fdbe1f70576eeea5842c562f21c4", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 6999, "upload_time": "2016-12-27T22:52:06", "url": "https://files.pythonhosted.org/packages/79/d0/d8a2b9f4f351564a4ef95a8e68d3b3752640ac26d5975b8db382319eb5f2/metrics_migration-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4709a2d25fc80270f96df2ec0e39cbec", "sha256": "2f6d5112d64fcdc1769a649cc6bf8f0ab6e42a7a64768981cee5bd57476d47e3" }, "downloads": -1, "filename": "metrics-migration-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4709a2d25fc80270f96df2ec0e39cbec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4336, "upload_time": "2016-12-27T22:52:05", "url": "https://files.pythonhosted.org/packages/66/1a/7693831877f490301371cf16cb60677c9c18883252ac07cf84660dd4a5c3/metrics-migration-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "20e0bb3d2fb77b95322e73eed16dc2db", "sha256": "447d650d5a9b8013b2a7cfd7c3d3f80ff8df0a9d68672abdd5b67f8b5f9cad34" }, "downloads": -1, "filename": "metrics_migration-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20e0bb3d2fb77b95322e73eed16dc2db", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 8294, "upload_time": "2017-01-13T23:21:15", "url": "https://files.pythonhosted.org/packages/ee/f4/1016d836ecec3482dc7149df082dd72f94fcfb1529769951cfac95139bac/metrics_migration-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab7780bc778ec37b97293619aa3770a5", "sha256": "f71ff393410074ca0a1be215b1d37edd5ec0ef36d80ab45e5380045732c15198" }, "downloads": -1, "filename": "metrics-migration-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ab7780bc778ec37b97293619aa3770a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5175, "upload_time": "2017-01-13T23:21:13", "url": "https://files.pythonhosted.org/packages/53/79/98d86ead314592c060efd5b283351a3f1abb50154f803a56c21e1e724b48/metrics-migration-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "20e0bb3d2fb77b95322e73eed16dc2db", "sha256": "447d650d5a9b8013b2a7cfd7c3d3f80ff8df0a9d68672abdd5b67f8b5f9cad34" }, "downloads": -1, "filename": "metrics_migration-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20e0bb3d2fb77b95322e73eed16dc2db", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 8294, "upload_time": "2017-01-13T23:21:15", "url": "https://files.pythonhosted.org/packages/ee/f4/1016d836ecec3482dc7149df082dd72f94fcfb1529769951cfac95139bac/metrics_migration-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab7780bc778ec37b97293619aa3770a5", "sha256": "f71ff393410074ca0a1be215b1d37edd5ec0ef36d80ab45e5380045732c15198" }, "downloads": -1, "filename": "metrics-migration-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ab7780bc778ec37b97293619aa3770a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5175, "upload_time": "2017-01-13T23:21:13", "url": "https://files.pythonhosted.org/packages/53/79/98d86ead314592c060efd5b283351a3f1abb50154f803a56c21e1e724b48/metrics-migration-0.1.2.tar.gz" } ] }