Skip to main content

Whittling down the MySQL process list

Project description

Maintainer: k dot shenk at gmail dot com

The aim of mypsl is to provide a simple interface for querying and filtering the MySQL process list. Over time the available options have become bloated, so some cases may not be so simple.

Installation

Via PIP: pip install mypsl

Usage

usage: mypsl [-h] [-H HOST] [-p PORT] [-u USER] [-P PASSWD] [-ch CHARSET]
     [--config CONNECT_CONFIG] [-sm SALT_MINION]
     [-l LOOP_SECOND_INTERVAL] [-lm LOOP_MAX] [-dft] [-c COMMAND]
     [-s STATE] [-t TIME] [-d DATABASE] [-q QUERY] [-i] [-isr]
     [--debug] [-o ORDER_BY] [-T] [-v] [--slack] [--kill]
     [-kt KILL_THRESHOLD] [-ka] [-ky] [-kl KILL_LOG] [-klo]

(mypsl: mypsl: 0.19) :: MySQL Process list watcher & query
killer.

optional arguments:
  -h, --help            show this help message and exit

Connection Options:
  -H HOST, --host HOST  The host to get the process list from. If localhost,
                        we will attempt to find and use the socket file first.
                        (default: localhost)
  -p PORT, --port PORT  The host's port. If the host is localhost, we will
                        attempt to find and use the socket file first.
                        (default: 3306)
  -u USER, --user USER  The user to connect to the host as. (default: root)
  -P PASSWD, --pass PASSWD
                        The password for authentication. (default: )
  -ch CHARSET, --charset CHARSET
                        Charset to use with the database. (default: utf8)
  --config CONNECT_CONFIG
                        Load connection configuration from a file in
                        /root/.mypsl. Just provide the filename. This will
                        override any other connection information provided
                        (default: None)
  -sm SALT_MINION, --salt-minion SALT_MINION
                        Connect to mysql running on a salt minion. Do not use
                        any other connection options with this.
                        mysql:connection:user and mysql:connection:pass must
                        exist in pillar data. (default: None)

Configuration Options:
  -l LOOP_SECOND_INTERVAL, --loop LOOP_SECOND_INTERVAL
                        Time in seconds between getting the process list.
                        (default: 0)
  -lm LOOP_MAX, --loop_max LOOP_MAX
                        If specified we will stop execution when the loop
                        interval reaches this number (default: None)
  -dft, --default       Run with defaults. Loop interval: 3 seconds, command
                        like query or connect, order by time asc, id asc,
                        truncate query to 1000. (default: False)
  -c COMMAND, --command COMMAND
                        Lookup processes running as this command. (default:
                        None)
  -s STATE, --state STATE
                        Lookup processes running in this state. (default:
                        None)
  -t TIME, --time TIME  Lookup processes running longer than the specified
                        time in seconds. (default: None)
  -d DATABASE, --database DATABASE
                        Lookup processes running against this database.
                        (default: None)
  -q QUERY, --query QUERY
                        Lookup processes where the query starts with this
                        specification. (default: None)
  -i, --id              Only print back the ID of the processes. (default:
                        False)
  -isr, --ignore_system_user
                        Ignore the 'system user' (default: False)
  --debug               Provide debug output. (default: False)
  -o ORDER_BY, --order_by ORDER_BY
                        Order the results by a particular column: "user", "db
                        asc", "db desc", "time desc"...etc (default: None)
  -T, --trim_info       Trim the info field (the query) to 1000 (default:
                        False)
  -v, --version         Show the installed program version and quit. (default:
                        False)
  --slack               Send a notification to slack anytime we kill a query.
                        Slack Auth/Config file must exist @ ~/.slack_auth
                        (default: False)

Kill Options:
  --kill                Kill the queries that we find. (default: False)
  -kt KILL_THRESHOLD, --kill_threshold KILL_THRESHOLD
                        The kill threshold. If a number is provided, we'll
                        need to hit that many total connections before killing
                        queries. You can set this to 'off' as well, which
                        kills queries no matter how many connections there
                        are. (default: 100)
  -ka, --kill_all       If this flag is provided, we'll attempt to kill
                        everything, not only select queries. Use with
                        caution! (default: False)
  -ky, --kill_yes       If this is provided we won't stop to ask if you are
                        sure that you want to kill queries. (default: False)
  -kl KILL_LOG, --kill_log KILL_LOG
                        Where to log killed queries to, granting permissions
                        to write to this file. (default:
                        /var/log/killed_queries.log)
  -klo, --kill_log_only
                        Only log the queries that would be killed, do not
                        actually kill them (default: False)

Contributing

Suggestions and contributions are welcome. Please fork me and create PRs back to the develop branch.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mypsl-0.32.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

mypsl-0.32-py2.py3-none-any.whl (18.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file mypsl-0.32.tar.gz.

File metadata

  • Download URL: mypsl-0.32.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

File hashes

Hashes for mypsl-0.32.tar.gz
Algorithm Hash digest
SHA256 28c56266536ebbb806ea09830f9215a5e9a1d4a37b5604570beba794019ca562
MD5 a9a33756851da0723b0d24d04e2faff4
BLAKE2b-256 bfe4cfe6738ee946ba77bca24fd009c8edf7ea73027734a50cd28ad88bbe3001

See more details on using hashes here.

File details

Details for the file mypsl-0.32-py2.py3-none-any.whl.

File metadata

  • Download URL: mypsl-0.32-py2.py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

File hashes

Hashes for mypsl-0.32-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6b399ce77b5613465134ff6e822448d1229cdb489428826f4c89b7212fa9a258
MD5 236fdd847f81638eabb070b8b5bc266b
BLAKE2b-256 a7a61190938a9c134ea210473cfa677ce7901672fead36f776fac1a45697af67

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page