{ "info": { "author": "wqy", "author_email": "qiyingwangwqy@gmail.com", "bugtrack_url": null, "classifiers": [ "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# aidockermon\n\n[![Build Status](https://travis-ci.org/WqyJh/aidockermon.svg?branch=master)](https://travis-ci.org/WqyJh/aidockermon)\n[![license](https://img.shields.io/badge/LICENCE-GPLv3-brightgreen.svg)](https://raw.githubusercontent.com/WqyJh/aidockermon/master/LICENSE)\n\nMonitor system load of the server running the nvidia/cuda docker containers.\n\n## Feature\n\n- sysinfo: system static info\n- sysload: system cpu/memory load\n- gpu: nvidia gpu load\n- disk: disk load\n- containers: containers' load that based on the nvidia/cuda image\n\n## Prerequisite\n\nPython >= 3\n\n## Installation\n\n```bash\npip install aidockermon\n```\n\nOr use `setuptools`\n```bash\npython setup.py install\n```\n\n## Usage\n\n```\n$ aidockermon -h\nusage: aidockermon [-h] [-v] {query,create-esindex,delete-esindex} ...\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --version show program's version number and exit\n\ncommand:\n {query,create-esindex,delete-esindex}\n query Query system info, log them via syslog protocol\n create-esindex Create elasticsearch index\n delete-esindex Delete elasticsearch index\n```\n\n```\n$ aidockermon query -h\nusage: aidockermon query [-h] [-l] [-r REPEAT] [-f FILTERS [FILTERS ...]] type\n\npositional arguments:\n type info type: sysinfo, sysload, gpu, disk, containers\n\noptional arguments:\n -h, --help show this help message and exit\n -l, --stdout Print pretty json to console instead of send a log\n -r REPEAT, --repeat REPEAT\n n/i repeat n times every i seconds\n -f FILTERS [FILTERS ...], --filters FILTERS [FILTERS ...]\n Filter the disk paths for disk type; filter the\n container names for containers type\n```\n\n**For example:**\n\nShow sysinfo\n\n```bash\n$ aidockermon query -l sysinfo\n{\n \"gpu\": {\n \"gpu_num\": 2,\n \"driver_version\": \"410.104\",\n \"cuda_version\": \"10.0\"\n },\n \"mem_tot\": 67405533184,\n \"kernel\": \"4.4.0-142-generic\",\n \"cpu_num\": 12,\n \"docker\": {\n \"version\": \"18.09.3\"\n },\n \"system\": \"Linux\"\n}\n```\n\nShow sys load\n\n```bash\n$ aidockermon query -l sysload\n{\n \"mem_free\": 11866185728,\n \"mem_used\": 8023793664,\n \"cpu_perc\": 57.1,\n \"mem_perc\": 12.8,\n \"mem_avail\": 58803163136,\n \"mem_tot\": 67405533184\n}\n```\n\nShow gpu load\n\n```bash\n$ aidockermon query -l gpu\n{\n \"mem_tot\": 11177,\n \"gpu_temperature\": 76.0,\n \"mem_free\": 1047,\n \"mem_used\": 10130,\n \"gpu_perc\": 98.0,\n \"gpu_id\": 0,\n \"mem_perc\": 46.0\n}\n{\n \"mem_tot\": 11178,\n \"gpu_temperature\": 66.0,\n \"mem_free\": 3737,\n \"mem_used\": 7441,\n \"gpu_perc\": 95.0,\n \"gpu_id\": 1,\n \"mem_perc\": 44.0\n}\n```\n\nShow disk usage\n\n```bash\n$ aidockermon query disk -l -f /\n{\n \"path\": \"/\",\n \"device\": \"/dev/nvme0n1p3\",\n \"total\": 250702176256,\n \"used\": 21078355968,\n \"free\": 216865271808,\n \"percent\": 8.9\n}\n\n$ aidockermon query disk -l -f / /disk\n{\n \"path\": \"/\",\n \"device\": \"/dev/nvme0n1p3\",\n \"total\": 250702176256,\n \"used\": 21078355968,\n \"free\": 216865271808,\n \"percent\": 8.9\n}\n{\n \"path\": \"/disk\",\n \"device\": \"/dev/sda1\",\n \"total\": 1968874311680,\n \"used\": 1551374692352,\n \"free\": 317462949888,\n \"percent\": 83.0\n}\n```\n\nShow containers' load\n\nNote that the `app_name` would be read from environment variable `APP_NAME`, which\nis a short description for this training program.\n\n```bash\n$ aidockermon query containers -l -f DianAI\n{\n \"proc_name\": \"python3 test_run.py\",\n \"app_name\": \"\u6d4b\u8bd5\u7a0b\u5e8f\",\n \"pid\": 13540,\n \"container\": \"DianAI\",\n \"started_time\": 1554698236,\n \"running_time\": 9343,\n \"mem_used\": 9757\n}\n{\n \"proc_name\": \"python train.py\",\n \"app_name\": \"\",\n \"pid\": 15721,\n \"container\": \"DianAI\",\n \"started_time\": 1554698236,\n \"running_time\": 19343,\n \"mem_used\": 1497\n}\n{\n \"mem_limit\": 67481047040,\n \"net_output\": 47863240948,\n \"block_read\": 1327175626752,\n \"net_input\": 18802869033,\n \"mem_perc\": 14.637655604461704,\n \"block_write\": 132278439936,\n \"name\": \"DianAI\",\n \"cpu_perc\": 0.0,\n \"mem_used\": 9877643264\n}\n```\n\n## Config\n\n### logging\n```yaml\ndebug: false\nlog:\n version: 1\n\n # This is the default level, which could be ignored.\n # CRITICAL = 50\n # FATAL = CRITICAL\n # ERROR = 40\n # WARNING = 30\n # WARN = WARNING\n # INFO = 20\n # DEBUG = 10\n # NOTSET = 0\n #level: 20\n disable_existing_loggers: false\n formatters:\n simple:\n format: '%(levelname)s %(message)s'\n monitor:\n format: '%(message)s'\n filters:\n require_debug_true:\n (): 'aidockermon.handlers.RequireDebugTrue'\n handlers:\n console:\n level: DEBUG\n class: logging.StreamHandler\n formatter: simple\n filters: [require_debug_true]\n monitor:\n level: INFO\n class: rfc5424logging.handler.Rfc5424SysLogHandler\n address: [127.0.0.1, 1514]\n enterprise_id: 1\n loggers:\n runtime:\n handlers: [console]\n level: DEBUG\n propagate: false\n monitor:\n handlers: [monitor, console]\n level: INFO\n propagate: false\n\n```\n\nThis is the default config, which should be located at `/etc/aidockermon/config.yml`.\n\nYou can modify the `address` value to specify the logging target.\n- `address: [127.0.0.1, 1514]`: UDP to 127.0.0.1:1514\n- `address: /var/log/aidockermon`: unix domain datagram socket\n\nIf you add an `socktype` argument, you can specify whether to use UDP or TCP as transport protocol.\n- `socktype: 1`: TCP\n- `socktype: 2`: UDP\n\nEnable TLS/SSL:\n```yaml\ntls_enable: true\ntls_verify: true\ntls_ca_bundle: /path/to/ca-bundle.pem\n```\n\nSet `debug` as `true`, you can see message output in the console.\n\n### Cronjob\n\n```bash\nsudo cp etc/cron.d/aidockermon /etc/cron.d\nsudo systemctl restart cron\n```\n\n### syslog-ng\n\nUsing syslog-ng to collect logs and send them to elasticsearch \nfor future use such as visualization with kibana.\n\n```bash\ncp etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/\nsudo systemctl restart syslog-ng\n```\n\nSample config:\n\n```bash\n@version: 3.20\n\ndestination d_elastic {\n\telasticsearch2(\n\t\tindex(\"syslog-ng\")\n\t\ttype(\"${.SDATA.meta.type}\")\n\t\tflush-limit(\"0\")\n\t\tcluster(\"es-syslog-ng\")\n\t\tcluster-url(\"http://localhost:9200\")\n\t\tclient-mode(\"http\")\n\t\tclient-lib-dir(/usr/share/elasticsearch/lib)\n\t\ttemplate(\"${MESSAGE}\\n\")\n\t);\n};\n\nsource s_python {\n #unix-dgram(\"/var/log/aidockermon\");\n\tsyslog(ip(127.0.0.1) port(1514) transport(\"udp\") flags(no-parse));\n};\n\nlog {\n\tsource (s_python);\n parser { syslog-parser(flags(syslog-protocol)); };\n\tdestination (d_elastic);\n};\n```\nModify it to specify the elasticsearch server and the log source's port and protocol.\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/WqyJh/aidockermon", "keywords": "docker,nvidia/cuda,linux,monitor", "license": "", "maintainer": "", "maintainer_email": "", "name": "aidockermon", "package_url": "https://pypi.org/project/aidockermon/", "platform": "", "project_url": "https://pypi.org/project/aidockermon/", "project_urls": { "Homepage": "https://github.com/WqyJh/aidockermon" }, "release_url": "https://pypi.org/project/aidockermon/0.10.3/", "requires_dist": [ "certifi (==2019.3.9)", "chardet (==3.0.4)", "docker (==3.7.2)", "docker-pycreds (==0.4.0)", "idna (==2.8)", "psutil (==5.6.1)", "pytz (==2018.9)", "pyyaml (==5.1)", "requests (==2.21.0)", "rfc5424-logging-handler (==1.4.1)", "six (==1.12.0)", "tzlocal (==1.5.1)", "urllib3 (==1.24.1)", "websocket-client (==0.56.0)" ], "requires_python": "", "summary": "Monitor system load of the server running the nvidia/cuda docker containers.", "version": "0.10.3" }, "last_serial": 5982845, "releases": { "0.10.2": [ { "comment_text": "", "digests": { "md5": "003cabeb1caef275ced613236cf71acb", "sha256": "0d6a5ab648e33eb1fd8fbd76b4a92f432624cb264c3beb974adf926ad908209c" }, "downloads": -1, "filename": "aidockermon-0.10.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "003cabeb1caef275ced613236cf71acb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28942, "upload_time": "2019-10-16T10:13:33", "url": "https://files.pythonhosted.org/packages/9d/89/090f2910252562d2f3c87b59ac289d622a4675925ff7d11928d2e54e9fa8/aidockermon-0.10.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "937104bdfbc478484ea76cc81c968515", "sha256": "c65b0ed92819084c2f71916c5bccf311eefc73a5f9196918bc9faeefc8aea39a" }, "downloads": -1, "filename": "aidockermon-0.10.2.tar.gz", "has_sig": false, "md5_digest": "937104bdfbc478484ea76cc81c968515", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17098, "upload_time": "2019-10-16T10:13:35", "url": "https://files.pythonhosted.org/packages/50/4d/32aabd6bfa473a2b74c9e0ccbc40fe55f6c274f842b51bd7114cda2ce725/aidockermon-0.10.2.tar.gz" } ], "0.10.3": [ { "comment_text": "", "digests": { "md5": "2c38e5b5979cfbdc48f08aff20550587", "sha256": "d04ef92a1b808d2aebb812b30a091647b21c51aa18004a580fe4326c21b28850" }, "downloads": -1, "filename": "aidockermon-0.10.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c38e5b5979cfbdc48f08aff20550587", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28940, "upload_time": "2019-10-16T12:17:02", "url": "https://files.pythonhosted.org/packages/a2/41/4559f69c81d5de7ff4d689a73d16271be7c8098eb0c872d2d12521a767ad/aidockermon-0.10.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3cf3906ba8cf65686167269b123b576", "sha256": "b2e31419d70ea16b6ec8e8f8803ce95e94484fe833d414bd0ca95193ced4ff86" }, "downloads": -1, "filename": "aidockermon-0.10.3.tar.gz", "has_sig": false, "md5_digest": "e3cf3906ba8cf65686167269b123b576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17095, "upload_time": "2019-10-16T12:17:03", "url": "https://files.pythonhosted.org/packages/fa/b9/d6eacd7cb733d89293ce4544b4bc3ff50da34971a2e06e22573cc20c5e96/aidockermon-0.10.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b91e0d83d85cf94ee0c9a53fbe8c5abe", "sha256": "ed75d2e609d513a686fef805410aa40105fb201ae9b1a1815b914492e4b64be4" }, "downloads": -1, "filename": "aidockermon-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b91e0d83d85cf94ee0c9a53fbe8c5abe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21278, "upload_time": "2019-04-06T15:04:19", "url": "https://files.pythonhosted.org/packages/14/3d/0f5559facfc8bf178e667015271f5c870f18b669e0a9071f6e0f4a226d37/aidockermon-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05cd33248f0ff2e132a2094af0018d05", "sha256": "2c9ead8402954c4f8b1809991698d52a24702816513c5ed52284a69a526ca39c" }, "downloads": -1, "filename": "aidockermon-0.5.0.tar.gz", "has_sig": false, "md5_digest": "05cd33248f0ff2e132a2094af0018d05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9474, "upload_time": "2019-04-06T15:04:22", "url": "https://files.pythonhosted.org/packages/bf/64/37b5deaae50770e2bfc6e99b7361e0c9af0bbdee69d06e67299b8c6b2a82/aidockermon-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "eb57f52a84d3985a8e960e129006f0b7", "sha256": "4c9e1ef5c46a29eb0586012c4602a393b6d8e2b6cec3be712fbb6c5f3d529f51" }, "downloads": -1, "filename": "aidockermon-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb57f52a84d3985a8e960e129006f0b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23300, "upload_time": "2019-04-07T10:35:35", "url": "https://files.pythonhosted.org/packages/ee/21/ecb9a40e921d453bca274bb6d46f0a5f688e8eb9a487dfcf07d7e193ae48/aidockermon-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10724a19b880783b7576f94a555cfc7c", "sha256": "b90612119f8c12cc4173f6096d958bd09843c71ad46f563a4f3ce55c4d67dd25" }, "downloads": -1, "filename": "aidockermon-0.6.0.tar.gz", "has_sig": false, "md5_digest": "10724a19b880783b7576f94a555cfc7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13736, "upload_time": "2019-04-07T10:35:37", "url": "https://files.pythonhosted.org/packages/ea/cc/1f4ee047909b78deb6698b10297d7a6e55bcf6164c7efb4e11e827c1ced8/aidockermon-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "6e38cc72381f66cd57ef0f0bcc9cd0c1", "sha256": "d9836ca8a257b00271f3e7df98b0b1796cb260f1e160d833f5bd83e8d60eddc1" }, "downloads": -1, "filename": "aidockermon-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e38cc72381f66cd57ef0f0bcc9cd0c1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14898, "upload_time": "2019-04-07T14:48:48", "url": "https://files.pythonhosted.org/packages/79/65/1d4a1e7b91a563a02b6c8b8521a867cda17f6283f51fcd3af1eedc55fed2/aidockermon-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac7c7d042f1804d7abf5f0786352cffc", "sha256": "11803b7be1fe17ac5f7f317b66d7b5561d2d99490e2ff80a1d7b11661c2754fd" }, "downloads": -1, "filename": "aidockermon-0.7.0.tar.gz", "has_sig": false, "md5_digest": "ac7c7d042f1804d7abf5f0786352cffc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14048, "upload_time": "2019-04-07T14:48:50", "url": "https://files.pythonhosted.org/packages/39/43/b759f3f39b4a53293e6b69215d43ec8638a4eb0e6363fb0e8bc6c16e238b/aidockermon-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "68fa013193d81a399eba176aa1d55460", "sha256": "c1c4d32dbde5325b149534f0005971fde4674a16625d8037fbe5ff2530f4dc39" }, "downloads": -1, "filename": "aidockermon-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68fa013193d81a399eba176aa1d55460", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27028, "upload_time": "2019-04-09T01:06:46", "url": "https://files.pythonhosted.org/packages/9b/ce/6024bb05daa8677cc4ddc592423fa725421c5ac719214231f2bdc11727a5/aidockermon-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c0f97d42e0087d00314616e63a7102c", "sha256": "8218f6c16ecce189a630207920eb21c5fa1bcacd135d578b8c398006c26c690d" }, "downloads": -1, "filename": "aidockermon-0.8.0.tar.gz", "has_sig": false, "md5_digest": "4c0f97d42e0087d00314616e63a7102c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14212, "upload_time": "2019-04-09T01:06:48", "url": "https://files.pythonhosted.org/packages/bb/eb/9d2f4c123b70a8d9bc368e85019485166794316530397a9a156d5f859c4f/aidockermon-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "0fda528309dc9e6b83e2675013e76e96", "sha256": "4bc6183ecfbfab9336d1483fac57b91249b4798547d10b1ca3bd6ff736b1ce43" }, "downloads": -1, "filename": "aidockermon-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0fda528309dc9e6b83e2675013e76e96", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27035, "upload_time": "2019-04-10T08:20:00", "url": "https://files.pythonhosted.org/packages/cd/42/1b878607c8a1f174510b30ee9486ab2be31a55c7fe1aca53f5c8e80d19ca/aidockermon-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a32a083b29edb95e142bd3e844344339", "sha256": "5fc320e21a32333d6b0ee7eb126eb040b7bb1399617eff6d6a13e98394a2870f" }, "downloads": -1, "filename": "aidockermon-0.9.0.tar.gz", "has_sig": false, "md5_digest": "a32a083b29edb95e142bd3e844344339", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14225, "upload_time": "2019-04-10T08:20:02", "url": "https://files.pythonhosted.org/packages/a5/2c/374f26f3cfb63ae2f49754a235bd1eb61f992498d2906131eb5a34c28792/aidockermon-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "d0e42ababba8f6dbdaa09724dd8ac023", "sha256": "5e258c71989a8d40c94eee5ecb377a13f7dc48d9ed6bf3e8b16aa1273a61b915" }, "downloads": -1, "filename": "aidockermon-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d0e42ababba8f6dbdaa09724dd8ac023", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26994, "upload_time": "2019-04-10T08:28:39", "url": "https://files.pythonhosted.org/packages/32/9e/59e0d345df66453c5ee2fb61f3e47579bfd96d8538038caca7c58bedfcbe/aidockermon-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae6d3bf93a0bc184ebf97ca4cf5f24e4", "sha256": "b159a29e1bcce503d37913b23882beaf0a714dc23cb491fc5a11ca3d5e626b99" }, "downloads": -1, "filename": "aidockermon-0.9.1.tar.gz", "has_sig": false, "md5_digest": "ae6d3bf93a0bc184ebf97ca4cf5f24e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14131, "upload_time": "2019-04-10T08:28:41", "url": "https://files.pythonhosted.org/packages/23/e1/80927ffad2d8e48caeb55260d6ce5f8ae45fb30965a7df2fb9c5bb200e93/aidockermon-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "be1988244209ec832c1a23f783a50888", "sha256": "b552826b7c93dc541cda1f1698199d0b2430ffd6231fec157e2117b12b9204f8" }, "downloads": -1, "filename": "aidockermon-0.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "be1988244209ec832c1a23f783a50888", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28691, "upload_time": "2019-04-11T06:07:12", "url": "https://files.pythonhosted.org/packages/8b/68/c69475da6a55ae67b4427d877acf1787d6846589cbb6903a2d6d5c228887/aidockermon-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d0dd17af0cef2ef969cfde26532a0a4", "sha256": "756e1aaaca00d4385dbdbfe42fbca4db6d1efafe20eed7ed6341994856bbc8e0" }, "downloads": -1, "filename": "aidockermon-0.9.2.tar.gz", "has_sig": false, "md5_digest": "9d0dd17af0cef2ef969cfde26532a0a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15891, "upload_time": "2019-04-11T06:07:14", "url": "https://files.pythonhosted.org/packages/d0/8d/b3ce3eb9e353ebb360ebad16b48238f0b7f70efb8e3ef7c5e16098ae067b/aidockermon-0.9.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2c38e5b5979cfbdc48f08aff20550587", "sha256": "d04ef92a1b808d2aebb812b30a091647b21c51aa18004a580fe4326c21b28850" }, "downloads": -1, "filename": "aidockermon-0.10.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c38e5b5979cfbdc48f08aff20550587", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28940, "upload_time": "2019-10-16T12:17:02", "url": "https://files.pythonhosted.org/packages/a2/41/4559f69c81d5de7ff4d689a73d16271be7c8098eb0c872d2d12521a767ad/aidockermon-0.10.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3cf3906ba8cf65686167269b123b576", "sha256": "b2e31419d70ea16b6ec8e8f8803ce95e94484fe833d414bd0ca95193ced4ff86" }, "downloads": -1, "filename": "aidockermon-0.10.3.tar.gz", "has_sig": false, "md5_digest": "e3cf3906ba8cf65686167269b123b576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17095, "upload_time": "2019-10-16T12:17:03", "url": "https://files.pythonhosted.org/packages/fa/b9/d6eacd7cb733d89293ce4544b4bc3ff50da34971a2e06e22573cc20c5e96/aidockermon-0.10.3.tar.gz" } ] }