{ "info": { "author": "Omer Murat Yildirim, Cenk Alti", "author_email": "omermuratyildirim@gmail.com, cenkalti@gmail.com", "bugtrack_url": null, "classifiers": [], "description": ".. image:: https://badge.fury.io/py/kimo.svg\n :target: https://badge.fury.io/py/kimo\n\nkimo\n====\n\n``kimo`` (means *who is it* in Turkish) is a tool for finding OS processes of MySQL queries.\n\nInstallation\n------------\n``kimo`` works only with Python3.\n\n::\n\n pip3 install kimo\n\nUsage\n-----\n\n``kimo`` is consisted of two parts: ``kimo-server`` and ``kimo client``.\n\n\n**Server-Side**\n\n\nFirst, we need to run ``kimo-server`` on each server that makes MySQL queries. We need to do this because ``kimo-server`` gets connections from the host that ``kimo-server`` runs on it and provides connections to client via HTTP API.\n\n::\n\n sudo kimo-server\n\n**Client-Side**\n\n``kimo`` client can be used via command line or inside python program.\n\n**Command Line**\n\nThere are some optional arguments for command line interface:\n\n\n::\n\n optional arguments:\n -h, --help show this help message and exit\n --logging-level {debug,info,warning,error}\n Print debug logs\n --host HOST Host of database\n --user USER User for database\n --password PASSWORD Password for database\n --mysql-config-file MYSQL_CONFIG_FILE\n --kimo-server-port KIMO_SERVER_PORT\n --tcpproxy-mgmt-port TCPPROXY_MGMT_PORT\n --filter-query-id FILTER_QUERY_ID\n Filter by query ID\n --filter-db FILTER_DB\n Filter by database\n --filter-user FILTER_USER\n Filter by user\n --sort-asc {db,user,id,host,process_host}\n Sort output by field in ascending order.\n --sort-desc {db,user,id,host,process_host}\n Sort output by field in descending order.\n --output-format {table,vertical}\n\n\n**Python Program**\n\n::\n\n from kimo import kimo\n\n config = {\n 'mysql_host': '127.0.0.1',\n 'mysql_port': 3306,\n 'mysql_user': 'root',\n 'mysql_password': '',\n 'tcpproxy_mgmt_port': 3307,\n 'kimo_server_port': 6000,\n }\n result = kimo(config)\n print result[0]\n\n >> EnhancedProcess(process=Process(id=1504, user=u'root', host=u'127.0.0.1:54553', db=u'information_schema', command=u'Query', time=547, state=u'User sleep', info=u'select sleep(100)'), details=ProcessDetails(pid=16430, name=u'python', cmdline=u'python -m putio.shell', hostname=u'vagrant.putio.club', connection_status=u'ESTABLISHED'))\n\nThat's it!\n\n**TcpProxy**\n\n``kimo`` also works well if there is one or multiple `tcpproxy `_ proxy servers between MySQL and clients.\n\nExample\n-------\n\n*Server-Side*\n\nFirst, we must start ``kimo-server``:\n\n::\n\n sudo kimo-server --logging-level DEBUG --port 6000\n\n\n*Client-Side*\n\nWe can get the output in vertical or table format.\n\nVertical Output:\n\n::\n\n kimo --output-format vertical --filter-query-id 1001\n\n::\n\n [2017-02-19 19:37:11,817] Thread(127.0.0.1:50212) INFO kimo:request_kimo_server:147 - Getting connections from kimo-server at: 127.0.0.1\n [2017-02-19 19:37:11,900] Thread(MainThread) INFO kimo:main:87 - 1 rows in set (0.09 sec)\n *********************** 1. row ***********************\n id: 1001\n user: root\n host: 127.0.0.1:50212\n db: information_schema\n command: Query\n time: 165\n state: User sleep\n info: SELECT SLEEP(500)\n pid: 4796\n name: python\n cmdline: python -m putio.shell\n hostname: vagrant.putio.club\n connection_status: ESTABLISHED\n\n\nTable Output:\n\n::\n\n kimo --output-format table --sort-asc id\n\n::\n\n +------+------+-----------------+--------------------+---------+------+------------+-------------------+------+--------+-----------------------+--------------------+-------------------+\n | id | user | host | db | command | time | state | info | pid | name | cmdline | hostname | connection_status |\n +------+------+-----------------+--------------------+---------+------+------------+-------------------+------+--------+-----------------------+--------------------+-------------------+\n | 1202 | root | 127.0.0.1:54668 | information_schema | Query | 18 | User sleep | select sleep(800) | 4796 | python | python -m putio.shell | vagrant.putio.club | ESTABLISHED |\n +------+------+-----------------+--------------------+---------+------+------------+-------------------+------+--------+-----------------------+--------------------+-------------------+\n | 1207 | root | 127.0.0.1:54593 | information_schema | Query | 46 | User sleep | select sleep(1000) | 13630 | python | python -m putio.shell | vagrant.putio.club | ESTABLISHED |\n +------+------+-----------------+--------------------+---------+------+------------+--------------------+-------+--------+-----------------------+--------------------+-------------------+", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/putdotio/kimo", "keywords": "kimo mysql query monitor diagnostic", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "kimo", "package_url": "https://pypi.org/project/kimo/", "platform": "", "project_url": "https://pypi.org/project/kimo/", "project_urls": { "Homepage": "https://github.com/putdotio/kimo" }, "release_url": "https://pypi.org/project/kimo/2.0.5/", "requires_dist": null, "requires_python": ">=3.5.2", "summary": "Finds owner processes of MySQL queries.", "version": "2.0.5" }, "last_serial": 3876132, "releases": { "0.0.29": [ { "comment_text": "", "digests": { "md5": "43a974bb1a1be7ca29b5a7525689f3dd", "sha256": "5556cf4c8622d3ff717796e2a8c961bbd3dab905d7ddba0314f3da0351b4f99d" }, "downloads": -1, "filename": "kimo-0.0.29.tar.gz", "has_sig": false, "md5_digest": "43a974bb1a1be7ca29b5a7525689f3dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3877, "upload_time": "2017-02-09T12:01:57", "url": "https://files.pythonhosted.org/packages/74/ad/27c8598f2adf3f57edae6879365ff8468eab4ad77a58a961e3b598a3303b/kimo-0.0.29.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "6855be628f700d07eb8a53b8f0f44b1d", "sha256": "cbebbfe848da4fd94e45ac8b490acc0e86e89927d7751eb9fb8e9009ba97346b" }, "downloads": -1, "filename": "kimo-1.0.0.tar.gz", "has_sig": false, "md5_digest": "6855be628f700d07eb8a53b8f0f44b1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6706, "upload_time": "2017-02-17T13:02:53", "url": "https://files.pythonhosted.org/packages/be/10/9055962b33abf9257bd41497358b65c8cab6ed673ee0a072ade21c9cac18/kimo-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "c4041164fd3998e685153782c48490bd", "sha256": "c438fddd625dc0bdea393e18c26cdca560f5320bda812610615a7ed8c43cbd6c" }, "downloads": -1, "filename": "kimo-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c4041164fd3998e685153782c48490bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6720, "upload_time": "2017-02-17T13:20:07", "url": "https://files.pythonhosted.org/packages/37/8a/4b6d9e60bef8c9ce671510f1f25a15ac1a0adf2ee1b80ddf58dbf7cf4622/kimo-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "4e0ea088af528f97388626d8cded66ff", "sha256": "032f6e38442d3e2bce89e4b7e045bc3c1bbf43271df79fb8a3437bb2518faa48" }, "downloads": -1, "filename": "kimo-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4e0ea088af528f97388626d8cded66ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8190, "upload_time": "2017-02-20T12:15:09", "url": "https://files.pythonhosted.org/packages/5b/78/8ea6bf34d1e66fa16a5d69a37e3a9870dc6e09e6d21c7a592cb2b75b84b5/kimo-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "e38514091248f117e14a71ef742092a7", "sha256": "d08ecf64b768b9b109660c940f57f99cffb65228881306c457eb903c3e8b7c02" }, "downloads": -1, "filename": "kimo-1.0.3.tar.gz", "has_sig": false, "md5_digest": "e38514091248f117e14a71ef742092a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8190, "upload_time": "2017-02-23T13:18:47", "url": "https://files.pythonhosted.org/packages/4d/b6/a1bbb9dd6d4d1396952f82721712914cab2a9f32f40182f5513938cbfc84/kimo-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "a62f900822604a2bf6ab991ea0d3d947", "sha256": "3a381872b2ce76ba0071fefd0d6bd0a91f31e724bdb18c3ef8c76118538fd0fa" }, "downloads": -1, "filename": "kimo-1.0.4.tar.gz", "has_sig": false, "md5_digest": "a62f900822604a2bf6ab991ea0d3d947", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8234, "upload_time": "2017-07-13T08:50:39", "url": "https://files.pythonhosted.org/packages/99/98/1d17b90281b8f72ec81434e1c5eb8f380839c9f3beef064fa69a30b83654/kimo-1.0.4.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "504ab85a66f6a613358a24fde323e86a", "sha256": "5f0acc5b26702d76c8ec0be3d54ed865f6ce989f8b4d912f9cac6d4593688814" }, "downloads": -1, "filename": "kimo-1.2.tar.gz", "has_sig": false, "md5_digest": "504ab85a66f6a613358a24fde323e86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8422, "upload_time": "2017-10-07T13:17:41", "url": "https://files.pythonhosted.org/packages/a9/7d/4cd568a862641e927661c5ab5ee00dcde3074b4683c6cc9f64b95658d8bd/kimo-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "98fd957ccf3e6210d4aa8b05614998bb", "sha256": "7e3f20345bc06dd21ed7aeee216bf007c5583b93e29d0bd43db26cd871aa8104" }, "downloads": -1, "filename": "kimo-1.2.1.tar.gz", "has_sig": false, "md5_digest": "98fd957ccf3e6210d4aa8b05614998bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8430, "upload_time": "2017-11-27T13:09:32", "url": "https://files.pythonhosted.org/packages/ed/a9/d4312f0de6bbc26f4ff4b39528b18d8f460907d1fbbb17413a814a0319be/kimo-1.2.1.tar.gz" } ], "2": [ { "comment_text": "", "digests": { "md5": "041c0ad70cc0aa089cc5c8fa63078c93", "sha256": "e5706d3f88f3b9367822f9c8ddcacc9301af34ab9ccbd822f7a445e0c72d7484" }, "downloads": -1, "filename": "kimo-2.tar.gz", "has_sig": false, "md5_digest": "041c0ad70cc0aa089cc5c8fa63078c93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8417, "upload_time": "2018-05-16T14:00:11", "url": "https://files.pythonhosted.org/packages/dd/d9/021b09c301ca521d3b2c2806bdfcf33bc37478edb7a9c1099d1519b4e8b1/kimo-2.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "fc86523e816b6455a2a36b83b696421c", "sha256": "6b10bb385919387b352cee22067fa21b1db41c6d562888742b27bdec56448b4c" }, "downloads": -1, "filename": "kimo-2.0.1.tar.gz", "has_sig": false, "md5_digest": "fc86523e816b6455a2a36b83b696421c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.2", "size": 8466, "upload_time": "2018-05-16T14:21:52", "url": "https://files.pythonhosted.org/packages/c0/e8/815c8c8bad099b36ff766d3e2e1e035d0676e2cddd70bc70c090de6a76bc/kimo-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "6f9febdee26e45a8affbf5c4599c226a", "sha256": "3c2f85a22bcc5494922a5e8dec283a94ea417f29dd8b8278380b6e8588986186" }, "downloads": -1, "filename": "kimo-2.0.2.tar.gz", "has_sig": false, "md5_digest": "6f9febdee26e45a8affbf5c4599c226a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.2", "size": 8486, "upload_time": "2018-05-16T15:01:57", "url": "https://files.pythonhosted.org/packages/87/c9/3e5a648c9552ceea716a2c091288a54627ecf4c97e1cb83bd94d4141e99b/kimo-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "a0dbb1cbcff5dc892e04d184537ee057", "sha256": "6e7a51e8768239f01704555a1df641a93b5874303f27696a6730732b18422504" }, "downloads": -1, "filename": "kimo-2.0.3.tar.gz", "has_sig": false, "md5_digest": "a0dbb1cbcff5dc892e04d184537ee057", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.2", "size": 8597, "upload_time": "2018-05-17T13:08:12", "url": "https://files.pythonhosted.org/packages/85/a5/02a7666565fb6e7ca69b5aded4bf480847bc755f0acc401eddcd65cc10be/kimo-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "488813b58373e7e75ef7affa90128bf0", "sha256": "7a6c47f933aaee7f0d697c9a33214eff6bbf7866d32573c72c79529c1a103e60" }, "downloads": -1, "filename": "kimo-2.0.4.tar.gz", "has_sig": false, "md5_digest": "488813b58373e7e75ef7affa90128bf0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.2", "size": 8594, "upload_time": "2018-05-17T13:55:46", "url": "https://files.pythonhosted.org/packages/b6/b5/b7bc169f37e6f4415d3ba207dafda5c73150600c539cc0eb3e22c75a32a9/kimo-2.0.4.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "34bec96d3525ffa621b1f8a15a29067d", "sha256": "ac37cac8b79e3b8a580dfc7a00f363c1e683dc4090dc1e568af06adeacc838b6" }, "downloads": -1, "filename": "kimo-2.0.5.tar.gz", "has_sig": false, "md5_digest": "34bec96d3525ffa621b1f8a15a29067d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.2", "size": 8749, "upload_time": "2018-05-18T13:56:04", "url": "https://files.pythonhosted.org/packages/4d/04/91d631d1d285348403ab43ebeefc7bbd5335b1e43d2d663a5a8b845a7862/kimo-2.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "34bec96d3525ffa621b1f8a15a29067d", "sha256": "ac37cac8b79e3b8a580dfc7a00f363c1e683dc4090dc1e568af06adeacc838b6" }, "downloads": -1, "filename": "kimo-2.0.5.tar.gz", "has_sig": false, "md5_digest": "34bec96d3525ffa621b1f8a15a29067d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.2", "size": 8749, "upload_time": "2018-05-18T13:56:04", "url": "https://files.pythonhosted.org/packages/4d/04/91d631d1d285348403ab43ebeefc7bbd5335b1e43d2d663a5a8b845a7862/kimo-2.0.5.tar.gz" } ] }