Cloudinsight Agent 在 4.7.0 版本,将 Agent 名称从 oneapm-ci-agent 更换至 cloudinsight-agent。若您在使用过程中,出现无法正常工作的情况,请加入售后群:433349863
X

PostgreSQL

PostgreSQL 是自由的对象-关系型数据库服务器(数据库管理系统),在灵活的 BSD-风格许可证下发行。它在其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统比如 Oracle、Sybase、IBM 的DB2 和 Microsoft SQL Server 之外,为用户又提供了一种选择。

Cloudinsight 通过授权收集 PostgreSQL 操作数据,可视化 PostgreSQL 性能。


性能指标

Cloudinsight 采集 PostgreSQL 以下性能指标:

指标 单位 具体含义
postgresql.bgwriter.buffers_alloc 被分配的缓冲区数量
postgresql.bgwriter.buffers_backend buffers 被一个后端直接写的缓冲区数量
postgresql.bgwriter.buffers_backend_fsync 一个后端不得不自己执行 fsync 调用的次数(通常即使后端自己进行写操作,后台写进程也会处理这些)
postgresql.bgwriter.buffers_checkpoint 在检查点期间被写的缓冲区数目
postgresql.bgwriter.buffers_clean 被后台写进程写的缓冲区数目
postgresql.bgwriter.checkpoints_requested 已经被执行的请求检查点的数量
postgresql.bgwriter.checkpoints_timed 已经被执行的计划中检查点的数量
postgresql.bgwriter.maxwritten_clean 后台写进程由于已经写了太多缓冲区而停止清洁扫描的次数
postgresql.bgwriter.sync_time milliseconds 在文件被同步到磁盘中的检查点处理部分花费的总时间
postgresql.bgwriter.write_time milliseconds 在文件被写入磁盘的检查点处理部分花费的总时间
postgresql.buffer_hit hits/second 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取
postgresql.commits transactions/second 在这个数据库中提交的事务数
postgresql.connections connections 这个数据库的活跃连接数
postgresql.database_size bytes 这个数据库使用的磁盘空间
postgresql.dead_rows rows 估计的死行数
postgresql.deadlocks 在这个数据库中被检测到的死锁数
postgresql.disk_read blocks/second 从这个数据库中读取的磁盘块数
postgresql.heap_blocks_hit hits/second 在这个表中的缓冲区命中数量
postgresql.heap_blocks_read blocks/second 从这个表读取的磁盘块数量
postgresql.index_blocks_hit hits/second 在这个表上的所有索引中的缓冲区命中数量
postgresql.index_blocks_read blocks/second 从这个表上所有索引中读取的磁盘块数
postgresql.index_rows_fetched rows/second 被使用这个索引的简单索引扫描取得的活行数
postgresql.index_rows_read rows/second 在这个索引上由扫描返回的索引项数量
postgresql.index_scans 在这个索引上发起的索引扫描次数
postgresql.index_size bytes 附加到指定表的索引使用的总磁盘空间
postgresql.live_rows rows 估计的活行数
postgresql.locks locks 在这个数据库中的活锁数
postgresql.max_connections connections 允许这个数据库的客户端连接的最大数量
postgresql.percent_usage_connections fractions 这个数据库的连接数,是允许的最大连接数的一部分
postgresql.rollbacks transactions/second 在这个数据库中已经被回滚的事务的数量
postgresql.rows_deleted rows/second 在这个数据库中被查询删除的行数
postgresql.rows_fetched rows/second 在这个数据库中被查询取出的行数
postgresql.rows_hot_updated rows/second 被更新的 HOT 行数(即不要求独立索引更新的行更新)
postgresql.rows_inserted rows/second 在这个数据库中被查询插入的行数
postgresql.rows_returned rows/second 在这个数据库中被查询返回的行数
postgresql.rows_updated rows/second 在这个数据库中被查询更新的行数
postgresql.seq_rows_read rows/second 通过顺序扫描获取的活行数
postgresql.seq_scans 在这个表上发起的顺序扫描的次数
postgresql.table.count tables 此数据库中的用户表数
postgresql.table_size bytes 指定表使用的总磁盘空间。包括 TOAST,Free Space Map 和 Visibility Map,不包括索引
postgresql.temp_bytes bytes/second 在这个数据库中被查询写到临时文件中的数据总量
postgresql.temp_files files/second 在这个数据库中被查询创建的临时文件的数量
postgresql.toast_blocks_hit hits/second 在这个表的 TOAST 表(如果有)中的缓冲区命中数量
postgresql.toast_blocks_read blocks/second 从这个表的 TOAST 表(如果有)读取的磁盘块数
postgresql.toast_index_blocks_hit blocks/second 在这个表的 TOAST 表索引(如果有)中的缓冲区命中数量
postgresql.toast_index_blocks_read blocks/second 从这个表的 TOAST 表索引(如果有)中读取的磁盘块数
postgresql.total_size bytes 表所使用的总磁盘空间,包括索引和 TOAST 数据

配置 PostgreSQL 监控

创建 Cloudinsight 访问权限

为您的 PostgreSQL 服务器建立 Cloudinsight 只读权限。

在 PostgreSQL 中启动 psql,并执行以下指令。

create user oneapm with password 'YourPassword';
  grant SELECT ON pg_stat_database to oneapm;

您可以通过以下指令,查看用户是否创建成功,权限是否正确。

psql -h localhost -U oneapm postgres -c "select * from pg_stat_database LIMIT(1);"  
   && echo -e "\e[0;32mPostgres connection - OK\e[0m" || \ ||  
  echo -e "\e[0;31mCannot connect to Postgres\e[0m"

当出现密码输入提示时,请输入密码:

YourPassword

编辑配置文件

编辑配置文件 conf.d/postgresql.yaml,使 Cloudinsight Agent 可以与 PostgreSQL 通信。

init_config:

instances:
  - host: localhost
    port: 5432
    username: oneapm
    password: YourPassword
    tags:
      - tag_key1:tag_value1
      - tag_key2:tag_value2

重启 Agent

重启 Cloudinsight Agent,使配置生效。

您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功'。

Checks
======

[...]

postgres
--------
  - instance #0 [OK]
  - Collected 8 metrics & 0 events

有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloudinsight Agent 常用操作


常见问题


如果您对 Cloudinsight 感兴趣,可以选择试用我们的产品,只需要点击下面的按钮免费注册即可。


立即注册 Cloudinsight