帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:POST  提取  ext  Extra  tool  Metric  Metrics  pos  
Tool that extracts and provides metrics on your PostgreSQL database

  • 源代码名称:postgresql-metrics
  • 源代码网址:http://www.github.com/spotify/postgresql-metrics
  • postgresql-metrics源代码文档
  • postgresql-metrics源代码下载
  • Git URL:
    git://www.github.com/spotify/postgresql-metrics.git
  • Git Clone代码到本地:
    git clone http://www.github.com/spotify/postgresql-metrics
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/spotify/postgresql-metrics
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • Spotify标准

    用于在PostgreSQL数据库中提取和提供度量的服务。

    这个工具是一个可以被调用来提取统计数据并为你的PostgreSQL数据库集群创建指标的CLI ( 命令行 ) 工具。 CLI在长期运行的流程模式下是可以运行的,它将定期发送。

    默认度量格式是一个度量 2.0兼容 JSON,它是由配置文件中的一组函数列表创建的。

    可以直接输出提取的指标作为CLI工具或者从主机发送的输出,在这里,postgresql度量进程使用 FFWD 运行。

    要注意,格式是通过UDP套接字发送的普通 JSON,所以你可以使用任何UDP套接字端点来理解 JSON,从而使用该标准。

    先决条件

    下面提到的版本可以进行测试,但是这些代码应该在许多未列出的版本上工作。 如果你测试并确认postgresql度量工作在提到的技术的其他版本上,那么就添加一个问题或者发送一个带有缺少先决条件的请求请求。

    • python 2.7
    • PostgreSQL 9.3或者更高版本
    • 如果你想使用包装功能,Debian基于分发

    建筑和安装

    你可以通过在项目 root,e.g. 中调用 debuild 来构建一个Debian软件包:

    debuild -us -uc -b

    注意,sql指标默认包括一个在运行过程中运行的一个新的FFWD脚本,将度量。 你需要在安装配置包之后停止长时间运行的过程。

    sudo stop postgresql-metrics

    注意,如果你想调试进程,默认情况下Upstart进程在 /var/log/upstart/ 下。

    编辑配置

    /etc/postgresql-metrics/postgresql-metrics.yml 和/etc/postgresql-metrics/default/postgresql-metrics.yml 编辑配置。 注意,默认文件夹中的配置将按配置 root 中配置中的值覆盖值。

    如果你对使用缺省配置覆盖功能没有兴趣,只需删除上述配置之一,然后继续使用单个配置文件。

    至少在配置中编辑 postgres 部分的值以匹配你的PostgreSQL集群设置。 请记住,列出数据库你希望从。 注意,在这个上下文中的数据库中,我们指的是你在PostgreSQL集群中创建的数据库名称。

    准备数据库

    在开始提取定义的度量之前,需要使用准备数据库集群CLI调用。 这将为数据库创建必需的扩展,并为度量过程中的统计收集查询使用的一些函数。 配置的度量用户也将被授予访问创建的统计函数和视图的权限。

    你需要向管理员提供 administrator prepare准备db调用,这是工具所能满足的要求。 you ( 在 pg_hba.conf ) 集群locally本地用户( 例如某些分发软件包( 比如 ) 创建的默认用户创建了 db postgres,你无需提供凭据,就可以在本地运行 db 。 Debian ) 你可以按如下方式执行准备数据库调用 比如:

    sudo su -c"postgresql-metrics prepare-db" postgres

    可以安全地调用数据库,为同一数据库服务器多次准备数据库( ) 。

    注意,在PostgreSQL集群中手工运行的SQL 文件夹中也可以运行 SQL,这与准备数据库调用does相同。

    为度量用户授予访问权限

    除了授予对smartart集群( 上一步) 中的统计收集函数和视图的访问权外,还需要向基于主机的访问文件( pg_hba.conf ) 添加访问。

    在要监视的每个数据库中添加一行,以便将它的添加到群集的pg_hba.conf 文件的末尾:

    host my_database_name metrics_user_name 127.0.0.1/32 md5 # metrics user access

    用 above my_database_name metrics配置步骤将 和metrics_user_name替换为你在PostgreSQL度量配置中配置的值。

    你需要在编辑 pg_hba.conf 之后重新加载( 或者重新启动),以便更改生效。

    正在获取度量值

    配置了PostgreSQL标度后,准备好数据库后,可以以通过调用来打印从数据库中提取的所有指标:

    postgresql-metrics all

    你需要调用以上的命令作为可以以访问smartart日志目录的用户,或者者,文件数量将失败。 单一失败的度量调用将不会阻止收集过程的剩余。

    如果使用 Upstart,也可以再次启动长时间运行的进程:

    sudo start postgresql-metrics

    解释收集的度量

    本节解释使用这里工具收集的度量。

    注意,除了Postgres特定度量之外,还应该收集许多系统特定的指标。 我们不收集这些类型的度量,你应该使用其他工具收集这些度量,例如:

    • CPU使用情况
    • 网络使用,每个相关网络接口发送/接收字节
    • 磁盘 I/O 操作
    • i/o 等待时间
    • 磁盘使用量和剩余空间剩余
    • 内存使用

    数据库特定度量

    在Postgres集群内的每个配置数据库中调用一次。

    • 这个度量显示你的每个数据库的大小( 以字节为单位) 。 不要忘记测量数据目录所在磁盘的总磁盘使用情况。

    • get_stats_tx_rate_for_database: 显示自该函数最后一次调用以来每秒执行的事务的速率。 显示执行的回滚的速率也分别。

    • get_stats_seconds_since_last_vacuum_per_table: 这个度量显示了在数据库中每表运行一次后秒内传递的时间量。

    • get_stats_oldest_transaction_timestamp: 这里度量显示数据库中已经打开的最长运行事务的时间。 如果管理员忘记关闭维护连接,则会看到这个值将会上升到零。 长期运行的事务对数据库来说是坏的,因此,只要看到这个指标增加就可以解决这个问题。

    • 这个指标显示了点击表索引的次数和需要通过表进行顺序扫描的读量。 根据表。数据量和创建的索引,索引命中率随时间变化。 你应该充分了解数据,以了解什么时候需要高索引使用率来降低索引使用率。

    • get_stats_table_bloat: 这个度量显示了由于MVCC进程而导致数据库表中浪费的空间量。 对表的删除和更新只标记过时的数据,但并不真正删除它。 真空吸尘器可以释放一些浪费的数据,但是要彻底消除表膨胀,必须创建具有真空完整性的表。 表膨胀度的当前实现相当重,因这里你可以能想要禁用它,以防你看到它的问题。

    数据库集群( 全局) 度量

    每个Postgres群集调用一次。

    • get_stats_client_connections: 这个度量显示了当前数据库打开的连接数量。 实际的度量收集连接在这里也应该是可见的。 注意 Having 打开的连接超过一百个通常是件坏事。 考虑使用连接池,如 pgbouncer 。

    • 这个度量显示被查询等待的锁,以及被授予的锁数量。 通常,对于任何长时间等待锁的查询,都会出现问题,比如重锁争用。

    • 这个指标显示在集群中命中内存缓冲区的数量,以及读取磁盘( 。操作系统上的磁盘高速缓存)的读取数量。 此外,堆命中率是根据以下值计算的。

      注意,读取量不是实际读取查询,而是读取的块数量。 在比较这些数据和事务率时,你将获得对数据库的读取数量的好主意。

    • get_stats_replication_delays: 这里度量显示复制延迟在每个从属节点后面的总字节数。 如果从服务器和主服务器处于同步状态,则复制延迟为零。

    基于的数据库本地目录

    • get_stats_wal_file_amount: 这个图显示数据库集群目录中的文件的数量日志目录。 如果,文件量开始突然增加,你可以能会遇到,存档过程,这可以能导致磁盘填充。

    python-模块概述

    • common.py: 包含整个包的通用代码,比如日志记录和配置解析。
    • default_metrics.py: 负责将统计值转换为默认度量JSON格式。
    • localhost_postgres_stats.py: 用于从本地Postgres数据目录中提取统计信息的函数。 这些调用从数据库集群的角度自动全局化。
    • metrics_gatherer.py: 调用统计提取函数并将结果转换为正确的度量格式的函数。 从 metrics_logic.py. 调用
    • metrics_logic.py: 包含了CLI工具。初始化和调度逻辑。
    • postgres_queries.py: 用于从Postgres数据库中提取统计信息的函数。
    • prepare_db.py: 用于为度量收集过程准备数据库的代码。

    如何添加更多的度量

    如果要向PostgreSQL度量工具中添加更多的度量,则可以通过对源进行以下更改来完成这里操作:

    在你将代码添加到 postgres_queries.py 时,如果你收集度量值,那么你可以通过访问本地Postgres数据目录将代码添加到 localhost_postgres_stats.py 。

    编写一个函数,将收集度量值格式化为想要的格式,如 default_metrics.py 所做的那样。 你可以扩展默认度量,或者将自己的格式写到另一个模块中。

    在第1 个步骤中编写函数,这将调用你在第一步编写的度量提取功能,然后是你在前面步骤上编写的度量值格式函数。

    postgresql中,将度量收集器函数的名称添加到sql度量配置文件中,以调用度量收集功能。 注意,你需要将函数添加到正确的函数列表中,取决于集合整个数据库集群的度量。 基于数据目录的度量必须是'全局'度量。

    用解释你的新指标的解释来更新这个自述文件。



    文章标签:数据  tool  ext  pos  POST  Extra  提取  Postgresql  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语