{ "info": { "author": "Amit Rathi", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "[![PyPI version](https://badge.fury.io/py/rubix.svg)](https://badge.fury.io/py/rubix)\n\n### What is Rubix?\nPython library that makes it easy to perform common DevOps tasks inside Jupyter Notebooks. E.g. plot Cloudwatch metrics, rollback your ECS/kubernetes app etc.\n\n### When to use it?\nWhile Rubix can be used in many contexts, it's most useful for writing incident runbooks/playbooks. On-call can read instructions & execute steps right from the Jupyter Notebook. I wrote more about the use case [here](https://hackernoon.com/simplify-devops-with-jupyter-notebook-c700fb6b503c).\n\n### Why Jupyter Notebook?\n - Jupyter allows interleaving instructions and executable code. Ideal for quick incident response.\n - Rich HTML output makes it easy to plot graphs, show deployment status etc.\n - Low friction way to edit/view/execute notebooks in a browser.\n\n# Live In Action\nCheckout this 1-minute debugging session to see how Rubix helped root cause API latency issue.\n\n[![Demo Video](https://uploads-ssl.webflow.com/5adf07174a787c7249ade79f/5b0cfeb0db589c364b44ee72_Video_Thumbnail_2.png)](https://www.youtube.com/watch?v=vvLXSAHCGF8&rel=0&autoplay=0 \"API Latency Demo\")\n\n# Documentation\nCurrently following integrations are supported in Rubix, would love to add more. Note that Jupyter Notebook supports executing [shell commands](http://docs.nurtch.com/en/latest/nurtch-platform/index.html#run-shell-commands-in-notebook) & [SQL queries](http://docs.nurtch.com/en/latest/nurtch-platform/index.html#run-sql-queries-in-notebook) out of the box.\n* [Rubix](http://docs.nurtch.com/en/latest/rubix-library/index.html)\n * [Cloudwatch](http://docs.nurtch.com/en/latest/rubix-library/aws/cloudwatch.html)\n * [Elastic Container Service (ECS)](http://docs.nurtch.com/en/latest/rubix-library/aws/ecs.html)\n * [Kubernetes](http://docs.nurtch.com/en/latest/rubix-library/kubernetes.html#api-usage)\n\n# Installation\nRubix exclusively works with Jupyter notebooks. You can [install Jupyter](http://jupyter.org/install) locally or use [JupyterHub](https://jupyterhub.readthedocs.io/en/stable/#) multi user setup. I also built built [nurtch](http://nurtch.com) (commercial) for easy multi user Jupyter setup.\n* For your Jupyter/JupyterHub setup, just execute the following at the top of any notebook. Bang operator tells Jupyter to execute this as a terminal command.\n```\n!pip install rubix\n```\n* Rubix is pre-installed with [nurtch](http://nurtch.com) multi-user Jupyter setup.\n\n# Usage\nComplete documentation is linked above. Here are some usage examples.\n\n### Plot Cloudwatch Metrics\n![Cloudwatch Metrics Example](http://docs.nurtch.com/en/latest/_images/plot_metric_example.png)\n\n### Rollback Service in ECS\n![ECS Rollback Example](http://docs.nurtch.com/en/latest/_images/ecs_rollback.png)\n\n# Contribute\nIf you see any problem, open an issue or send a pull request. For additional integrations open an issue with `Feature Request` tag & clearly describe the operations you want to perform. You can write to me at [amit@nurtch.com](mailto:amit@nurtch.com) or DM me on [twitter](https://twitter.com/amittrathi).\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "DevOps,Jupyter,nurtch", "license": "GNU Lesser General Public License v3.0", "maintainer": "", "maintainer_email": "", "name": "rubix", "package_url": "https://pypi.org/project/rubix/", "platform": "", "project_url": "https://pypi.org/project/rubix/", "project_urls": null, "release_url": "https://pypi.org/project/rubix/0.0.9/", "requires_dist": [ "wheel", "plotly", "pandas", "boto3", "kubernetes", "ipywidgets", "ipython-sql", "psycopg2-binary" ], "requires_python": "", "summary": "Python package to enables DevOps tasks in Jupyter Notebooks", "version": "0.0.9" }, "last_serial": 4159613, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "41a9547e9db8987e83c7a88e53b8d90f", "sha256": "55a8ac00d03badbe18fbcd1ead0d5e3b484d8ca6cb9c4704749ac07f19c511a6" }, "downloads": -1, "filename": "rubix-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "41a9547e9db8987e83c7a88e53b8d90f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6745, "upload_time": "2018-07-05T07:19:06", "url": "https://files.pythonhosted.org/packages/f6/6f/276da4f1cdf1618df4b04e6775890f10577ffba7a8cd93b40675fee24a8e/rubix-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e902104648ec4d0d38cf409850181a16", "sha256": "0422901d800363c5a2099a2d58e38988f0210413bb2f14df8e716ba09e63ddfd" }, "downloads": -1, "filename": "rubix-0.0.2.tar.gz", "has_sig": false, "md5_digest": "e902104648ec4d0d38cf409850181a16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5282, "upload_time": "2018-07-05T07:19:08", "url": "https://files.pythonhosted.org/packages/21/3a/9a1229bfe12d201072a0a7f1e31a9344af28640402e3b1f976c34902f29d/rubix-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "60f822d32d0266c901f6b6d7a233bff4", "sha256": "38ed71fabc8afdf6142d9ec9d05c41c832f28cd8d8aa68d4317480c65e72d217" }, "downloads": -1, "filename": "rubix-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "60f822d32d0266c901f6b6d7a233bff4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6843, "upload_time": "2018-07-05T08:46:19", "url": "https://files.pythonhosted.org/packages/ef/ee/859ebdc414de406672891cc321b64c8b13aeaaf92a08e2c2d16edd0ceccb/rubix-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9df9b9c5a20cfe92272358b35825f250", "sha256": "ebad843dcfde3d97c468138a32b58d9636587eb05b3691a273f1c42b8e28f5c9" }, "downloads": -1, "filename": "rubix-0.0.3.tar.gz", "has_sig": false, "md5_digest": "9df9b9c5a20cfe92272358b35825f250", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5379, "upload_time": "2018-07-05T08:46:20", "url": "https://files.pythonhosted.org/packages/46/5d/473c381c34afc7dc98a1d41b14b8edc36857d1af05b341f3dfcd22a03c54/rubix-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "08b4030634a65ac7ec80307908f26f23", "sha256": "0ac8515acee03d026155f36662db0e5cfa2fc8bf16d5b7e286a92a61cd255b9c" }, "downloads": -1, "filename": "rubix-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "08b4030634a65ac7ec80307908f26f23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8728, "upload_time": "2018-07-06T07:31:45", "url": "https://files.pythonhosted.org/packages/f4/d1/58eff7f9b527c750e0ff63a121b6423f26c6d480566c4f04cf57cb4c4420/rubix-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d332af2dcd033807ba755782833f7815", "sha256": "a709e8c8a524ea94f2f8bf3556448e43f915cb8d0ae6d7ab138ad753a4994552" }, "downloads": -1, "filename": "rubix-0.0.4.tar.gz", "has_sig": false, "md5_digest": "d332af2dcd033807ba755782833f7815", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7366, "upload_time": "2018-07-06T07:31:46", "url": "https://files.pythonhosted.org/packages/78/69/03a27422d6b8216fb26840b991d8aa6be056974be99279c111439a1c9e0b/rubix-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "e15b586359caabd222eb2d74f1945dcd", "sha256": "6a5575b32f8a74f1f50e2c45fb86273bd6e3cda4d4bb87c4f5c572a90da7a340" }, "downloads": -1, "filename": "rubix-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "e15b586359caabd222eb2d74f1945dcd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8770, "upload_time": "2018-07-17T10:46:27", "url": "https://files.pythonhosted.org/packages/05/31/ef07fa47e86d5284922ae054538964e705c752fe52beb36f5325bb3c9d57/rubix-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca22ec77c94f2dc4b5c6bdb226f506e2", "sha256": "0bd0d627e5168fa5da6e1718f7f54b80d7ef0da1360fc9e5f0fd92290f82adbb" }, "downloads": -1, "filename": "rubix-0.0.5.tar.gz", "has_sig": false, "md5_digest": "ca22ec77c94f2dc4b5c6bdb226f506e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7415, "upload_time": "2018-07-17T10:46:28", "url": "https://files.pythonhosted.org/packages/f5/47/e6900a781c65ee3b0a1f581284c8372a8128c6e6f421eedcbe97b062f813/rubix-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "d058bde6071196b2f74f020b29254670", "sha256": "5b0375d4f7a30e3d9036913d15d443bfd5cbbad9d7b7273bcf1ea3754a41b3ba" }, "downloads": -1, "filename": "rubix-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "d058bde6071196b2f74f020b29254670", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8764, "upload_time": "2018-07-17T11:10:34", "url": "https://files.pythonhosted.org/packages/16/cf/56350eb71c39dce45d2a5425e3a356fc24798c74e45393d70649e2bc9fb2/rubix-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0704a2c912f5be661d732504c02493ed", "sha256": "e183b2374413358292e3c042493f2857fa240f7c3ef86fbcda92b6f66173d8fe" }, "downloads": -1, "filename": "rubix-0.0.6.tar.gz", "has_sig": false, "md5_digest": "0704a2c912f5be661d732504c02493ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7400, "upload_time": "2018-07-17T11:10:35", "url": "https://files.pythonhosted.org/packages/c8/f3/1f6965326ba92b0450bf72a9ad826c78a1773d0a4c89f9748388417ddd9c/rubix-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "91503481b783b84c5b3eca3b70f8231a", "sha256": "463d71804fb8977af8f29119ec3381f645fc341aba9127efa0e1c025286cd190" }, "downloads": -1, "filename": "rubix-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "91503481b783b84c5b3eca3b70f8231a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8762, "upload_time": "2018-07-17T11:44:44", "url": "https://files.pythonhosted.org/packages/ab/78/1b101abaf33903ddc161adfe0be179035a2cc3c42e45e179404096d8bd29/rubix-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb9ea35777fe63fef1faa9e235fa463c", "sha256": "a9f7a3b2c3aea53e94205e2b9e9472371c921620dbb69327896871d53111113b" }, "downloads": -1, "filename": "rubix-0.0.7.tar.gz", "has_sig": false, "md5_digest": "bb9ea35777fe63fef1faa9e235fa463c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7407, "upload_time": "2018-07-17T11:44:45", "url": "https://files.pythonhosted.org/packages/80/0f/8ac1502e5492c9ff18fdaaefff72c7cbed6c5a8778415d4c967fc0d3e4ab/rubix-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "c78f163e147d9a2367360506bfc92a20", "sha256": "5bc4671b582750437490eb568016999bffac78ace1eb2850e3ecc6b14e8bce73" }, "downloads": -1, "filename": "rubix-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "c78f163e147d9a2367360506bfc92a20", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8775, "upload_time": "2018-07-26T11:00:39", "url": "https://files.pythonhosted.org/packages/d9/6f/625cae3dc017c42bbce4a3207693daf945817f6c4f457759c4dc7f585b1b/rubix-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9b5fefd4e00f8f38447466dc4dd8634", "sha256": "102073aed0cef780aae84d0b084f9044c784ef8601a000beee29eb4b3c88acc8" }, "downloads": -1, "filename": "rubix-0.0.8.tar.gz", "has_sig": false, "md5_digest": "e9b5fefd4e00f8f38447466dc4dd8634", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7414, "upload_time": "2018-07-26T11:00:41", "url": "https://files.pythonhosted.org/packages/a2/08/b4329acf3d6addf39c486327eaff89b5cb91cf7672ce8a9bce3f240d479c/rubix-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "545a9d18f375673125e6882667e95d0a", "sha256": "65dbfdbd68d95db62dee0807b57d03604a572882a8dff6286c782d2dff00ae41" }, "downloads": -1, "filename": "rubix-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "545a9d18f375673125e6882667e95d0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8788, "upload_time": "2018-08-11T12:37:13", "url": "https://files.pythonhosted.org/packages/e5/6e/ad1165d525b56c3e483eafe765e60652f8999221e294368805552a669c71/rubix-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec9ff89b9a75fd13a891533ea4462e1c", "sha256": "111ee15f01abe8f5c9339d0bea5f3797c43d01df35cf1c1b60965dfab47deb77" }, "downloads": -1, "filename": "rubix-0.0.9.tar.gz", "has_sig": false, "md5_digest": "ec9ff89b9a75fd13a891533ea4462e1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7444, "upload_time": "2018-08-11T12:37:14", "url": "https://files.pythonhosted.org/packages/db/50/ee8a215d98b494b31556cac41886ce633031170e25dbc2f8b9ff5abe53e0/rubix-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "545a9d18f375673125e6882667e95d0a", "sha256": "65dbfdbd68d95db62dee0807b57d03604a572882a8dff6286c782d2dff00ae41" }, "downloads": -1, "filename": "rubix-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "545a9d18f375673125e6882667e95d0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8788, "upload_time": "2018-08-11T12:37:13", "url": "https://files.pythonhosted.org/packages/e5/6e/ad1165d525b56c3e483eafe765e60652f8999221e294368805552a669c71/rubix-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec9ff89b9a75fd13a891533ea4462e1c", "sha256": "111ee15f01abe8f5c9339d0bea5f3797c43d01df35cf1c1b60965dfab47deb77" }, "downloads": -1, "filename": "rubix-0.0.9.tar.gz", "has_sig": false, "md5_digest": "ec9ff89b9a75fd13a891533ea4462e1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7444, "upload_time": "2018-08-11T12:37:14", "url": "https://files.pythonhosted.org/packages/db/50/ee8a215d98b494b31556cac41886ce633031170e25dbc2f8b9ff5abe53e0/rubix-0.0.9.tar.gz" } ] }