Skip to main content

用于 PostgreSQL 服务器活动监控的命令行工具。

项目描述

pg_activity

用于 PostgreSQL 服务器活动监控的命令行工具。

最新的 PyPI 版本 皮棉 测试

pg_activity 截图

从包安装(推荐)

pg_activity 在许多 Linux 发行版中都可用;PostgreSQL 全球开发组 (PGDG) 还为基于 RPM 的 ( https://yum.postgresql.org/ ) 和基于 Debian 的发行版 ( https://wiki.postgresql.org/wiki/Apt ) 提供软件包:

$ sudo yum install pg_activity

$ sudo apt install pg-activity

使用分发包是安装 pg_activity 的推荐方式。

从 pip 安装

或者,可以在 Python 3.7 或更高版本以及 psycopg2(2.8 或更高版本)上使用 pip 安装 pg_activity:

$ python3 -m pip install pg_activity psycopg2-binary

如果您$PATH尚未包含它,则完整路径为:

$ ~/.local/bin/pg_activity

从 git 存储库安装

这只需要测试开发版本。首先,克隆存储库:

$ git clone https://github.com/dalibo/pg_activity.git

必要时更改分支。然后创建一个专用环境,安装依赖项,然后从 repo 安装 pg_activity:

$ cd pg_activity
$ python3 -m venv .venv
$ . .venv/bin/activate
(.venv) $ pip install psycopg2-binary .
(.venv) $ pg_activity

要退出此环境并销毁它:

$ deactivate
$ rm -r .venv

用法

pg_activity在本地或远程工作。在本地执行上下文中,为了获得足够的权限来显示系统信息,运行的系统用户 pg_activity必须是运行postgresql服务器的同一用户(postgres默认),或者拥有更多的权限,如root. 否则,pg_activity可以回退到降级模式而不显示系统信息。同理,用于连接数据库的 PostgreSQL 用户必须是超级用户。前任:

sudo -u postgres pg_activity -U postgres

选项

pg_activity [options]

Options:
    --version             Show program's version number and exit
    -U USERNAME, --username=USERNAME
                          Database user name (default: "postgres").
    -p PORT, --port=PORT  Database server port (default: "5432").
    -h HOSTNAME, --host=HOSTNAME
                          Database server host or socket directory (default:
                          "localhost").
    -d DBNAME, --dbname=DBNAME
                          Database name to connect to (default: "postgres").
    --blocksize=BLOCKSIZE Filesystem blocksize (default: 4096).
    --rds                 Enable support for AWS RDS.
    --output=FILEPATH     Store running queries as CSV.
    --help                Show this help message and exit.
    --no-db-size          Skip total size of DB.
    --duration-mode=DURATION_MODE
                          Duration mode. Values: 1-QUERY(default),
                          2-TRANSACTION, 3-BACKEND
    --min-duration        Don't display queries with smaller than specified
                          duration (in seconds).
    --filter=FIELD:REGEX  Filter activities with a (case insensitive) regular
                          expression applied on selected fields. Known fields
                          are: dbname.
    --verbose-mode=VERBOSE_MODE
                          Queries display mode. Values: 1-TRUNCATED,
                          2-FULL(default), 3-INDENTED


Display options, you can exclude some columns by using them :
    --no-database         Disable DATABASE.
    --no-user             Disable USER.
    --no-client           Disable CLIENT.
    --no-cpu              Disable CPU%.
    --no-mem              Disable MEM%.
    --no-read             Disable READ/s.
    --no-write            Disable WRITE/s.
    --no-time             Disable TIME+.
    --no-wait             Disable W.
    --no-app-name         Disable App.

笔记

报告的 SQL 查询文本的长度pg_activity取决于 PostgreSQL 参数track_activity_query_size。默认值为1024(以字节表示)。如果您的 SQL 查询文本看起来被截断,您应该增加 track_activity_query_size.

交互命令

钥匙 行动
r 按 READ/s 降序排序
w 按 WRITE/s 排序,降序
c 按 CPU% 排序,降序
m 按 MEM% 降序排列
t 按 T​​IME+ 排序,降序
T 更改持续时间模式:查询、事务、后端
Space 暂停开/关
v 更改查询显示模式:完整、缩进、截断
UP/DOWN 滚动进程列表
k/j 滚动进程列表
q 退出
+ 增加刷新时间。最大值:5s
- 减少刷新时间。最小值:0.5s
F1/1 运行查询列表
F2/2 等待查询列表
F3/3 阻塞查询列表
h 帮助页面
R 刷新
D 刷新数据库大小(包括应用 --no-dbzise 选项时)

导航模式

钥匙 行动
UP/k 上移光标
DOWN/j 向下移动光标
K 终止当前后端/标记的后端
C 取消当前后端/标记的后端
Space 标记或取消标记进程
q 退出
Other 返回活动

常问问题

我看不到我的查询,只显示 TPS

pg_activitypg_stat_activity使用 0.5 到 5 秒之间的用户定义刷新时间扫描视图。可以在界面中用+-键进行修改。不会显示在两次扫描之间执行的任何查询。

更重要的是,pg_activity使用不同的查询来获得:

  • 设置来自pg_settings
  • 版本信息使用version()
  • 查询和连接数pg_stat_activity
  • 锁从pg_locks
  • 使用和 pg_database_pg_stat_get_db_xact_commit()pg_stat_get_db_xact_rollback()
  • 和更多(例如:pg_cancel_backend()pg_terminate_backend()

这些查询不能在查询选项卡中看到,因为从pg_activity后端发出的所有查询都被视为噪声并且不会显示。另一方面,用于获取pg_activity报告信息的事务仍然由pg_stat_get_db_xact_commit() 和中的 postgres 计算pg_stat_get_db_xact_commit()。因此pg_activity,即使数据库上没有活动和/或屏幕上没有显示活动,也会显示非零 TPS。

如何指定身份验证密码?

pg_activity 使用 libpq 访问 PostgreSQL,因此所有传统方法都可用。

您可以在密码文件中传递数据库连接的密码。信息也可以通过 PostgreSQL 的环境变量(PGPASSFILE 或 PGPASSWORD)或通过连接字符串参数给出。

密码文件是首选,因为它更安全(安全性被推迟到操作系统)。请不惜一切代价避免在连接字符串中使用密码。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pg_activity-3.0.0.tar.gz (299.1 kB 查看哈希)

已上传 source

内置分布

pg_activity-3.0.0-py3-none-any.whl (70.3 kB 查看哈希

已上传 py3