跳转到主要内容

PG Exporter 博客

PG Exporter 的实践文章、设计决策与发布注记。

文章介绍监控实践,设计记录解释架构与取舍,发布注记列出各版本变更。安装和运行当前稳定版,请查阅使用手册。

PG Exporter 博客
PG Exporter v1.5.0 Releasepg_exporterSecurity
目标身份与一致的健康检查响应 DesignPostgreSQLReliability
复制采集器的身份、状态与权限修正 DesignPostgreSQLCompatibilityPrometheus
把 PostgreSQL CSV 日志转成持久指标 设计PostgreSQL日志Prometheus可靠性
把 pgBackRest 指标移出抓取路径 设计pgBackRestPrometheus可靠性
我们最终没有做的 PostgreSQL 可观测性产品 设计产品PostgreSQL可观测性
一个端点,多种来源:Composite Exporter 契约 设计架构PrometheusPgBouncerPatroni
PG Exporter v1.4.1 Releasepg_exporter
PG Exporter v1.4.0 Releasepg_exporter
快照直方图是 Gauge,不是 Counter 设计HistogramPrometheusPostgreSQL
PG Exporter v1.3.0 Releasepg_exporter
PG Exporter v1.2.2 Releasepg_exporter
PG Exporter v1.2.1 Releasepg_exporter
PG Exporter v1.2.0 Releasepg_exporter
PG Exporter v1.1.2 Releasepg_exporter
PG Exporter v1.1.1 Releasepg_exporter
在 Pigsty 中采用 Victoria 可观测性组件 监控
PG Exporter v1.1.0 Releasepg_exporter
PG Exporter v1.0.3 Releasepg_exporter
PG Exporter v1.0.2 Releasepg_exporter
PG Exporter v1.0.1 Releasepg_exporter
PG Exporter v1.0.0 Releasepg_exporter
PG Exporter v0.9.0 Releasepg_exporter
PG Exporter v0.8.1 Releasepg_exporter
PG Exporter v0.8.0 Releasepg_exporter
PG Exporter v0.7.1 Releasepg_exporter
PG Exporter v0.7.0 Releasepg_exporter
暂停代码提交的一周:PGCon.Dev 2024 参会记 PostgreSQLPG生态
PG Exporter v0.6.1 Releasepg_exporter
PostgreSQL 宏观查询优化之 pg_stat_statements PostgreSQLPG管理性能
PG Exporter v0.6.0 Releasepg_exporter
使用 Pigsty 监控现有 PostgreSQL:RDS、PolarDB 与自建数据库 Pigsty监控RDS
PG Exporter v0.5.0 Releasepg_exporter
PG Exporter v0.4.1 Releasepg_exporter
PG Exporter v0.4.0 Releasepg_exporter
PostgreSQL 慢查询诊断方法 PostgreSQLPG管理性能
PG Exporter v0.3.2 Releasepg_exporter
Pigsty 首次发布 Pigsty监控
PG Exporter v0.3.1 Releasepg_exporter
黄金监控指标:错误延迟吞吐饱和 PostgreSQLPG管理监控
PG Exporter v0.3.0 Releasepg_exporter
Pigsty PostgreSQL 监控系统介绍 Pigsty监控PostgreSQL
PostgreSQL的KPI PostgreSQLPG管理监控
PG Exporter v0.2.0 Releasepg_exporter
PG Exporter v0.1.2 Releasepg_exporter
PG Exporter v0.1.1 Releasepg_exporter
PG Exporter v0.1.0 Releasepg_exporter
PG Exporter v0.0.5 Releasepg_exporter
PG Exporter v0.0.4 Releasepg_exporter
PG Exporter v0.0.3 Releasepg_exporter
PG Exporter v0.0.2 Releasepg_exporter
PG Exporter v0.0.1 Releasepg_exporter
PostgreSQL 监控系统概览 PostgreSQL监控PG管理
关系膨胀的监控与治理 PostgreSQLPG管理
监控 PostgreSQL 表大小 PostgreSQLPG管理监控
PostgreSQL 服务器日志配置 PostgreSQLPG管理监控

PostgreSQL的KPI

冯若航 2789 字 6 分钟

PG Load 将每秒累积的事务耗时按选定的并发数归一化。本文推导这一指标,并用案例说明如何将它用于告警与容量评估。

  • PG Exporter v1.5.0

    冯若航 发布于 发布注记 3647 字 8 分钟

    冯若航releaseReleasepg_exporterSecurity

    PG Exporter v1.5.0

    PG Exporter v1.5.0 升级 Go 工具链与依赖,修正复制采集器的身份与状态映射,并修复目标 URL、自动发现、健康检查、采集计划、时间配置和 HTTP 路由六类运行时缺陷。 默认配置仍包含 58 个 YAML 文件、96 个采集器分支、59 个命名空间、460 个不同指标定义。指标数量跨全部版本分支去重,包含默认关闭的采集器和两个尚未展开的 SQL 直方图;它不表示每次抓取都会输出 460 条时序。 变更摘要 连接 URL 更安全: URL 语法、查询参数转义或解码后的参数名非法 …

    PG Exporter v1.5.0 升级 Go 工具链与依赖,修正复制采集器的身份与状态映射,并修复目标 URL、自动发现、健康检查、采集计划、时间配置和 HTTP 路由六类运行时缺陷。 默认配置仍包含 58 个 YAML 文件、96 个采集器分支、59 个命名空间、460 个不同指标定义。指标数量跨全部版本分支去重,包含默认关闭的采集器和两个尚未展开的 SQL 直方图;它不表示每次抓取都会输出 460 条时序。 变更摘要 连接 URL 更安全: URL 语法、查询参数转义或解码后的参数名非法 …

  • 目标身份与一致的健康检查响应

    冯若航 发布于 设计 1901 字 4 分钟

    冯若航designDesignPostgreSQLReliability

    目标身份与一致的健康检查响应

    状态: 已随 v1.5.0 发布。 决策与最后核验日期: 2026-10-23。 范围: v1.5.0,源码 1891254(修复基线 9b378cb),涵盖连接串与数据库身份、由元数据驱动的采集器选择、HTTP 健康状态快照、YAML 时间配置及指标路由校验。 交付: 源码已提交并推送,v1.5.0 标签指向 18912540fe5edce0ed0ee81fac0d989738ecaa87;CI 与正式发布工作流通过,GitHub Release、RPM/DEB/压缩包和 Docker 镜像 …

    状态: 已随 v1.5.0 发布。 决策与最后核验日期: 2026-10-23。 范围: v1.5.0,源码 1891254(修复基线 9b378cb),涵盖连接串与数据库身份、由元数据驱动的采集器选择、HTTP 健康状态快照、YAML 时间配置及指标路由校验。 交付: 源码已提交并推送,v1.5.0 标签指向 18912540fe5edce0ed0ee81fac0d989738ecaa87;CI 与正式发布工作流通过,GitHub Release、RPM/DEB/压缩包和 Docker 镜像 …

  • 复制采集器的身份、状态与权限修正

    冯若航 发布于 设计 3292 字 7 分钟

    冯若航designDesignPostgreSQLCompatibilityPrometheus

    复制采集器的身份、状态与权限修正

    状态: 已随 v1.5.0 发布。 决策日期 / 最近核验: 2026-10-22 / 2026-10-23。 范围: pg_exporter main 提交 d97ba38fc8390984df994b2f9ea58b43ecfc8b89 中的 Collector 修正,基于 72f00a4fa4e6eb7524174f2122b3fe1e1d608db4;PostgreSQL REL_19_RC1 对应 0b8bff042a997fe50fcd1c4c83b9ef1cc9ed8a89,另作 …

    状态: 已随 v1.5.0 发布。 决策日期 / 最近核验: 2026-10-22 / 2026-10-23。 范围: pg_exporter main 提交 d97ba38fc8390984df994b2f9ea58b43ecfc8b89 中的 Collector 修正,基于 72f00a4fa4e6eb7524174f2122b3fe1e1d608db4;PostgreSQL REL_19_RC1 对应 0b8bff042a997fe50fcd1c4c83b9ef1cc9ed8a89,另作 …

  • 把 PostgreSQL CSV 日志转成持久指标

    冯若航 发布于 设计 2652 字 6 分钟

    冯若航design设计PostgreSQL日志Prometheus可靠性

    把 PostgreSQL CSV 日志转成持久指标

    PostgreSQL 日志会记录 SQL 快照可能错过的事件:死锁、认证失败、自动清理取消、检查点、临时文件删除和客户端断连。根据服务端日志策略,还可以记录语句耗时。 状态: 已实现,未发布。 决策日期: 2026-08-24。 最后核验: 2026-10-13。 范围: 源码提交 c0ba58a 的 PostgreSQL 14+ CSV 日志采集器,默认关闭;稳定版 v1.4.1 尚未包含。 取代: 独立可观测性产品提案。 交付进度: 本地测试通过;未合入 main 或发布标签;软件包、部署与 …

    PostgreSQL 日志会记录 SQL 快照可能错过的事件:死锁、认证失败、自动清理取消、检查点、临时文件删除和客户端断连。根据服务端日志策略,还可以记录语句耗时。 状态: 已实现,未发布。 决策日期: 2026-08-24。 最后核验: 2026-10-13。 范围: 源码提交 c0ba58a 的 PostgreSQL 14+ CSV 日志采集器,默认关闭;稳定版 v1.4.1 尚未包含。 取代: 独立可观测性产品提案。 交付进度: 本地测试通过;未合入 main 或发布标签;软件包、部署与 …

  • 把 pgBackRest 指标移出抓取路径

    冯若航 发布于 设计 1410 字 3 分钟

    冯若航design设计pgBackRestPrometheus可靠性

    把 pgBackRest 指标移出抓取路径

    pgbackrest info --output=json 提供备份状态。命令可能访问远程仓库并等待存储响应。若在 Prometheus 请求中执行,数据库监控也要承担这段延迟。 状态: 已实现,未发布。 决策日期: 2026-08-23。 最后核验: 2026-10-13。 范围: 源码提交 c0ba58a 的可选 --pgbackrest 组件;稳定版 v1.4.1 尚未包含。 交付进度: 本地测试通过;未合入 main 或发布标签;软件包、部署与生产运行未核验。 因此,PG …

    pgbackrest info --output=json 提供备份状态。命令可能访问远程仓库并等待存储响应。若在 Prometheus 请求中执行,数据库监控也要承担这段延迟。 状态: 已实现,未发布。 决策日期: 2026-08-23。 最后核验: 2026-10-13。 范围: 源码提交 c0ba58a 的可选 --pgbackrest 组件;稳定版 v1.4.1 尚未包含。 交付进度: 本地测试通过;未合入 main 或发布标签;软件包、部署与生产运行未核验。 因此,PG …

  • 我们最终没有做的 PostgreSQL 可观测性产品

    冯若航 发布于 设计 1113 字 3 分钟

    冯若航design设计产品PostgreSQL可观测性

    我们最终没有做的 PostgreSQL 可观测性产品

    我们最初考虑做一个本地 PostgreSQL 事故工作台:读取结构化日志,重建会话时间线,提供交互过滤与终端界面,后续再作为 Agent 运行。 状态: 已于 2026-08-24 被 PostgreSQL 日志指标方案取代。 决策日期: 2026-08-13 开始研究;2026-08-24 调整范围。 最后核验: 2026-10-13。 范围: 独立 PostgreSQL 事故工作台与 Agent 提案。 交付进度: 止于提案,未实现、发布或部署。 眼前需求更小:从 PostgreSQL 日志 …

    我们最初考虑做一个本地 PostgreSQL 事故工作台:读取结构化日志,重建会话时间线,提供交互过滤与终端界面,后续再作为 Agent 运行。 状态: 已于 2026-08-24 被 PostgreSQL 日志指标方案取代。 决策日期: 2026-08-13 开始研究;2026-08-24 调整范围。 最后核验: 2026-10-13。 范围: 独立 PostgreSQL 事故工作台与 Agent 提案。 交付进度: 止于提案,未实现、发布或部署。 眼前需求更小:从 PostgreSQL 日志 …

  • 一个端点,多种来源:Composite Exporter 契约

    冯若航 发布于 设计 1704 字 4 分钟

    冯若航design设计架构PrometheusPgBouncerPatroni

    一个端点,多种来源:Composite Exporter 契约

    Composite 模式把 PostgreSQL、PgBouncer、Patroni、pgBackRest 和 PostgreSQL 日志指标合并到同一个 /metrics 端点,减少数据库节点上的进程和抓取目标。PostgreSQL 是主数据源;各可选来源独立报告故障和健康状态。 状态: 已实现,未发布。 决策日期: 2026-08-11;2026-08-23 与 2026-08-24 增加缓存组件。 最后核验: 2026-10-13。 范围: 源码提交 c0ba58a 的 Composite …

    Composite 模式把 PostgreSQL、PgBouncer、Patroni、pgBackRest 和 PostgreSQL 日志指标合并到同一个 /metrics 端点,减少数据库节点上的进程和抓取目标。PostgreSQL 是主数据源;各可选来源独立报告故障和健康状态。 状态: 已实现,未发布。 决策日期: 2026-08-11;2026-08-23 与 2026-08-24 增加缓存组件。 最后核验: 2026-10-13。 范围: 源码提交 c0ba58a 的 Composite …

  • PG Exporter v1.4.1

    冯若航 发布于 发布注记 326 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.4.1

    v1.4.1 是一次聚焦监控准确性与 RPM 升级兼容性的维护版本。 变更摘要 修复 pg_subrel_count 在并行逻辑复制工作进程场景下重复计数的问题:先按订阅 ID 与名称去重 pg_stat_subscription,再汇总各订阅关系状态 查询结果缺少配置声明的 LABEL 列时,该采集器本轮采集会整体失败,不再生成空标签或沿用旧结果;其他非致命采集器仍会继续工作 官方 RPM 包名及产物文件名前缀由 pg_exporter 统一为 pg-exporter;新包声明兼容并替换旧包名 …

    v1.4.1 是一次聚焦监控准确性与 RPM 升级兼容性的维护版本。 变更摘要 修复 pg_subrel_count 在并行逻辑复制工作进程场景下重复计数的问题:先按订阅 ID 与名称去重 pg_stat_subscription,再汇总各订阅关系状态 查询结果缺少配置声明的 LABEL 列时,该采集器本轮采集会整体失败,不再生成空标签或沿用旧结果;其他非致命采集器仍会继续工作 官方 RPM 包名及产物文件名前缀由 pg_exporter 统一为 pg-exporter;新包声明兼容并替换旧包名 …

  • PG Exporter v1.4.0

    冯若航 发布于 发布注记 1135 字 3 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.4.0

    v1.4.0 引入快照直方图(Snapshot Histogram)指标类型与新的 pg_xact_age 事务年龄采集器,并对 HTTP 路由、打包与构建链进行了一轮系统性加固。 新功能 新增 HISTOGRAM 列类型:SQL 观测按标签分组为快照分布,派生的 _bucket、_count 和 _sum 三个指标族均为 Gauge。桶边界必须有限且严格递增,自动追加 +Inf。le 为保留标签,重载时替换桶布局 新增 pg_xact_age 采集器:以直方图暴露开放事务年龄 …

    v1.4.0 引入快照直方图(Snapshot Histogram)指标类型与新的 pg_xact_age 事务年龄采集器,并对 HTTP 路由、打包与构建链进行了一轮系统性加固。 新功能 新增 HISTOGRAM 列类型:SQL 观测按标签分组为快照分布,派生的 _bucket、_count 和 _sum 三个指标族均为 Gauge。桶边界必须有限且严格递增,自动追加 +Inf。le 为保留标签,重载时替换桶布局 新增 pg_xact_age 采集器:以直方图暴露开放事务年龄 …

  • 快照直方图是 Gauge,不是 Counter

    冯若航 发布于 设计 1379 字 3 分钟

    冯若航design设计HistogramPrometheusPostgreSQL

    快照直方图是 Gauge,不是 Counter

    一个标量指标无法描述变化中的总体分布。一个 30 分钟事务与一百个 18 秒事务的总年龄相同,但数量、最大年龄和运维影响不同。 状态: 已随 v1.4.0 发布。 决策日期: 2026-07-11;2026-07-17 修订。 最后核验: 2026-10-13。 范围: 稳定版 v1.4.1 的 HISTOGRAM 列与 pg_xact_age 采集器,并对照开发提交 c0ba58a 核验。 交付进度: 已实现、合并、打标签并发布软件包。针对性本地测试已通过;部署与生产运行未核验。 PG …

    一个标量指标无法描述变化中的总体分布。一个 30 分钟事务与一百个 18 秒事务的总年龄相同,但数量、最大年龄和运维影响不同。 状态: 已随 v1.4.0 发布。 决策日期: 2026-07-11;2026-07-17 修订。 最后核验: 2026-10-13。 范围: 稳定版 v1.4.1 的 HISTOGRAM 列与 pg_xact_age 采集器,并对照开发提交 c0ba58a 核验。 交付进度: 已实现、合并、打标签并发布软件包。针对性本地测试已通过;部署与生产运行未核验。 PG …

  • PG Exporter v1.3.0

    冯若航 发布于 发布注记 600 字 2 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.3.0

    v1.3.0 提供对 PostgreSQL 19 新指标的支持,同时刷新默认采集器包、构建链和配置覆盖测试。 变更摘要 默认支持范围从 PostgreSQL 10-18+ 扩展到 10-19+ 默认配置包包含 57 个 config/*.yml 定义文件 构建依赖更新到 Go 1.26.4、lib/pq v1.12.3、Prometheus client v1.23.2、exporter-toolkit v0.16.0。 pg_recovery_state:在恢复节点上采集 …

    v1.3.0 提供对 PostgreSQL 19 新指标的支持,同时刷新默认采集器包、构建链和配置覆盖测试。 变更摘要 默认支持范围从 PostgreSQL 10-18+ 扩展到 10-19+ 默认配置包包含 57 个 config/*.yml 定义文件 构建依赖更新到 Go 1.26.4、lib/pq v1.12.3、Prometheus client v1.23.2、exporter-toolkit v0.16.0。 pg_recovery_state:在恢复节点上采集 …

  • PG Exporter v1.2.2

    冯若航 发布于 发布注记 85 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.2.2

    v1.2.2 将发布构建使用的 Go 更新到 1.26.2。Exporter 功能与配置不变。 校验和 SHA256 校验和 273dfd45ac367f71044998d19171ee27d7deb094ec9410d4b31aef7caacfdcc6 pg-exporter_1.2.2-1_amd64.deb 5e83c8448ee6350bec96ab95550df439a129c6700e5c9c7d0f9411aa9c2e7f40 …

    v1.2.2 将发布构建使用的 Go 更新到 1.26.2。Exporter 功能与配置不变。 校验和 SHA256 校验和 273dfd45ac367f71044998d19171ee27d7deb094ec9410d4b31aef7caacfdcc6 pg-exporter_1.2.2-1_amd64.deb 5e83c8448ee6350bec96ab95550df439a129c6700e5c9c7d0f9411aa9c2e7f40 …

  • PG Exporter v1.2.1

    冯若航 发布于 发布注记 238 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.2.1

    v1.2.1 更新构建工具,统一配置格式,并增加配置一致性测试。采集器行为不变。 变更摘要 刷新构建链:发布流程与 Docker 构建基础镜像升级到 Go 1.26.1 统一配置样式:将当前配置与 Legacy 配置中的内联 description 统一改为双引号写法,并重新生成合并后的 pg_exporter.yml / legacy/pg_exporter.yml 增加配置一致性测试:新增 split/merged config 等价性校验,以及内联指标描述风格检查,减少配置漂移风险 刷新打 …

    v1.2.1 更新构建工具,统一配置格式,并增加配置一致性测试。采集器行为不变。 变更摘要 刷新构建链:发布流程与 Docker 构建基础镜像升级到 Go 1.26.1 统一配置样式:将当前配置与 Legacy 配置中的内联 description 统一改为双引号写法,并重新生成合并后的 pg_exporter.yml / legacy/pg_exporter.yml 增加配置一致性测试:新增 split/merged config 等价性校验,以及内联指标描述风格检查,减少配置漂移风险 刷新打 …

  • PG Exporter v1.2.0

    冯若航 发布于 发布注记 536 字 2 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.2.0

    v1.2.0 更新启动流程、热重载、健康检查和配置校验,并新增 PostgreSQL 9.1–9.6 配置套件。 新功能 支持配置热重载:新增平台相关的信号重载(SIGHUP / SIGUSR1),并强化 POST /reload 工作流,可在不重启进程情况下更新配置与查询计划 启动流程改为非阻塞:即使目标库预检失败,也会先启动 HTTP 服务,便于监控系统先接入后恢复 新增 PostgreSQL 9.1-9.6 Legacy 配置套件:提供 legacy/ 配置目录与 make conf9 目 …

    v1.2.0 更新启动流程、热重载、健康检查和配置校验,并新增 PostgreSQL 9.1–9.6 配置套件。 新功能 支持配置热重载:新增平台相关的信号重载(SIGHUP / SIGUSR1),并强化 POST /reload 工作流,可在不重启进程情况下更新配置与查询计划 启动流程改为非阻塞:即使目标库预检失败,也会先启动 HTTP 服务,便于监控系统先接入后恢复 新增 PostgreSQL 9.1-9.6 Legacy 配置套件:提供 legacy/ 配置目录与 make conf9 目 …

  • PG Exporter v1.1.2

    冯若航 发布于 发布注记 64 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.1.2

    修复 pg_timeline 配置问题,并更新 Go 依赖。 校验和 SHA256 校验和 8cddd57a843914a3145a80a3220bc875047b9bcac0664357c01ba86485436236 pg-exporter_1.1.2-1_amd64.deb f5b25a8ae5c022867a54c17ba1c6493eba20dcb292340460390289336df24f04 pg-exporter_1.1.2-1_arm64.deb …

    修复 pg_timeline 配置问题,并更新 Go 依赖。 校验和 SHA256 校验和 8cddd57a843914a3145a80a3220bc875047b9bcac0664357c01ba86485436236 pg-exporter_1.1.2-1_amd64.deb f5b25a8ae5c022867a54c17ba1c6493eba20dcb292340460390289336df24f04 pg-exporter_1.1.2-1_arm64.deb …

  • PG Exporter v1.1.1

    冯若航 发布于 发布注记 138 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.1.1

    小版本更新,新增采集器和 Bug 修复。 新功能 新增 pg_timeline 采集器,用于时间线监控 新增 pg_sub_16 采集器分支,排除订阅中的并行操作(PostgreSQL 16+ 兼容性) Bug 修复 修复:为 pg_recv 采集器的 slotname 添加 coalesce 以处理 NULL 值 校验和 SHA256 校验和 fd5ee96511676fc11b975115a4870ed0c811056519f79ad7f24ab7ec538fa278 …

    小版本更新,新增采集器和 Bug 修复。 新功能 新增 pg_timeline 采集器,用于时间线监控 新增 pg_sub_16 采集器分支,排除订阅中的并行操作(PostgreSQL 16+ 兼容性) Bug 修复 修复:为 pg_recv 采集器的 slotname 添加 coalesce 以处理 NULL 值 校验和 SHA256 校验和 fd5ee96511676fc11b975115a4870ed0c811056519f79ad7f24ab7ec538fa278 …

  • 在 Pigsty 中采用 Victoria 可观测性组件

    冯若航 发布于 文章 1314 字 3 分钟

    冯若航监控

    在 Pigsty 中采用 Victoria 可观测性组件

    本文记录 2025 年 12 月的 Pigsty v4 测试版。 准备 Pigsty v4.0 时,我将默认的 Prometheus 和 Loki 服务替换为 VictoriaMetrics 与 VictoriaLogs,并加入 VictoriaTraces。目标是降低存储与内存消耗,改善仪表盘和日志查询的响应时间。 之前的使用经验 在探探时,我们用十二台 64 核、256 GB 内存的 Prometheus 节点监控约五千万个时间序列。我的测试中,三节点 VictoriaMetrics 集群可 …

    本文记录 2025 年 12 月的 Pigsty v4 测试版。 准备 Pigsty v4.0 时,我将默认的 Prometheus 和 Loki 服务替换为 VictoriaMetrics 与 VictoriaLogs,并加入 VictoriaTraces。目标是降低存储与内存消耗,改善仪表盘和日志查询的响应时间。 之前的使用经验 在探探时,我们用十二台 64 核、256 GB 内存的 Prometheus 节点监控约五千万个时间序列。我的测试中,三节点 VictoriaMetrics 集群可 …

  • PG Exporter v1.1.0

    冯若航 发布于 发布注记 816 字 2 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.1.0

    更新依赖,使用 Go 1.25.5 构建。 采集器变更 pg_setting:针对 PG10-18 兼容性进行重大重构,支持 missing_ok 新增 15 个指标 …

    更新依赖,使用 Go 1.25.5 构建。 采集器变更 pg_setting:针对 PG10-18 兼容性进行重大重构,支持 missing_ok 新增 15 个指标 …

  • PG Exporter v1.0.3

    冯若航 发布于 发布注记 82 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.0.3

    更新依赖,使用 Go 1.25.4 构建。 修复 #80 与 libpq 环境变量冲突 由 @kadaffy 将 auto-discovery 默认值改为 true 校验和 SHA256 校验和 7efa1a77dfd5b94813c32c7ac015b1d479b1f04fb958f6b1ed5af333e354d015 pg-exporter_1.0.3-1_amd64.deb …

    更新依赖,使用 Go 1.25.4 构建。 修复 #80 与 libpq 环境变量冲突 由 @kadaffy 将 auto-discovery 默认值改为 true 校验和 SHA256 校验和 7efa1a77dfd5b94813c32c7ac015b1d479b1f04fb958f6b1ed5af333e354d015 pg-exporter_1.0.3-1_amd64.deb …

  • PG Exporter v1.0.2

    冯若航 发布于 发布注记 103 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.0.2

    更新依赖,使用 Go 1.25.0 构建。 新增 PG Exporter 独立网站。 使用 GoReleaser 通过 CI/CD 流水线发布更多操作系统/架构: 新增 Windows amd64 支持 新增 Linux ppc64le 支持 校验和 SHA256 校验和 683bf97f22173f2f2ec319a88e136939c2958a1f5ced4f4aa09a1357fc1c44c5 pg-exporter_1.0.2-1_amd64.deb …

    更新依赖,使用 Go 1.25.0 构建。 新增 PG Exporter 独立网站。 使用 GoReleaser 通过 CI/CD 流水线发布更多操作系统/架构: 新增 Windows amd64 支持 新增 Linux ppc64le 支持 校验和 SHA256 校验和 683bf97f22173f2f2ec319a88e136939c2958a1f5ced4f4aa09a1357fc1c44c5 pg-exporter_1.0.2-1_amd64.deb …

  • PG Exporter v1.0.1

    冯若航 发布于 发布注记 91 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.0.1

    新增 Docker Hub 镜像:pgsty/pg_exporter 更新 Go 依赖,使用 Go 1.24.5 构建。 默认禁用 pg_tsdb_hypertable 采集器,因为 timescaledb 目录已变更 校验和 d5e2d6a656eef0ae1b29cd49695f9773 pg_exporter-1.0.1-1.aarch64.rpm cb01bb78d7b216a235363e9342803cb3 pg_exporter-1.0.1-1.x86_64.rpm …

    新增 Docker Hub 镜像:pgsty/pg_exporter 更新 Go 依赖,使用 Go 1.24.5 构建。 默认禁用 pg_tsdb_hypertable 采集器,因为 timescaledb 目录已变更 校验和 d5e2d6a656eef0ae1b29cd49695f9773 pg_exporter-1.0.1-1.aarch64.rpm cb01bb78d7b216a235363e9342803cb3 pg_exporter-1.0.1-1.x86_64.rpm …

  • PG Exporter v1.0.0

    冯若航 发布于 发布注记 185 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v1.0.0

    变更 新增 PostgreSQL 18 采集器分支: 分支 变更 pg_wal_18 移除 write、sync、write_time 和 sync_time;PostgreSQL 已将这些统计移至 pg_stat_io pg_checkpointer_18 新增 num_done 和 slru_written pg_db_18 新增 parallel_workers_to_launch 和 parallel_workers_launched pg_table_18 新增 …

    变更 新增 PostgreSQL 18 采集器分支: 分支 变更 pg_wal_18 移除 write、sync、write_time 和 sync_time;PostgreSQL 已将这些统计移至 pg_stat_io pg_checkpointer_18 新增 num_done 和 slru_written pg_db_18 新增 parallel_workers_to_launch 和 parallel_workers_launched pg_table_18 新增 …

  • PG Exporter v0.9.0

    冯若航 发布于 发布注记 519 字 2 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.9.0

    默认采集器 新增 timescaledb 超表指标采集器 新增 citus 分布式节点指标采集器 新增 pg_wait_sampling 等待事件采集器 pg_slot 全面改进:新增 16/17 pg_replication_slot 指标 允许 pg_slot 采集器从 16/17 开始在从库上运行 重构 pg_wait 采集器,从所有进程聚合 限制 pg_clustering、pg_indexing、pg_vacuuming 只在主库运行 将所有 reset_time 标记为 GAUGE …

    默认采集器 新增 timescaledb 超表指标采集器 新增 citus 分布式节点指标采集器 新增 pg_wait_sampling 等待事件采集器 pg_slot 全面改进:新增 16/17 pg_replication_slot 指标 允许 pg_slot 采集器从 16/17 开始在从库上运行 重构 pg_wait 采集器,从所有进程聚合 限制 pg_clustering、pg_indexing、pg_vacuuming 只在主库运行 将所有 reset_time 标记为 GAUGE …

  • PG Exporter v0.8.1

    冯若航 发布于 发布注记 42 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.8.1

    变更 更新依赖。 升级 golang.org/x/net 从 0.35.0 到 0.36.0 #67 更新 Docker 镜像构建标签 v0.8.1 发布于 2025-03-29 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 更新依赖。 升级 golang.org/x/net 从 0.35.0 到 0.36.0 #67 更新 Docker 镜像构建标签 v0.8.1 发布于 2025-03-29 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.8.0

    冯若航 发布于 发布注记 131 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.8.0

    变更 新增 PgBouncer 1.24 新指标支持(stat、pool、database) 修复:310-pg_size.yml 在日志目录设置不正确时失败 #64,由 @Süleyman Vurucu 贡献 使用最新 Go 1.24 构建并升级所有依赖 使用标准 log/slog 重构日志,替代 go-kit 完整变更日志 v0.8.0 发布于 2025-02-14 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 新增 PgBouncer 1.24 新指标支持(stat、pool、database) 修复:310-pg_size.yml 在日志目录设置不正确时失败 #64,由 @Süleyman Vurucu 贡献 使用最新 Go 1.24 构建并升级所有依赖 使用标准 log/slog 重构日志,替代 go-kit 完整变更日志 v0.8.0 发布于 2025-02-14 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.7.1

    冯若航 发布于 发布注记 86 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.7.1

    变更 使用 dependabot 进行例行更新 功能:支持将配置指定为 Reader,由 @ringerc 在 #62 贡献 升级 golang.org/x/crypto 从 0.21.0 到 0.31.0,由 @dependabot 在 #63 贡献 修复一些拼写错误 完整变更日志 v0.7.1 发布于 2024-12-29 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 使用 dependabot 进行例行更新 功能:支持将配置指定为 Reader,由 @ringerc 在 #62 贡献 升级 golang.org/x/crypto 从 0.21.0 到 0.31.0,由 @dependabot 在 #63 贡献 修复一些拼写错误 完整变更日志 v0.7.1 发布于 2024-12-29 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.7.0

    冯若航 发布于 发布注记 248 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.7.0

    变更 更新代码库以使用 Go 1.22.4。 PostgreSQL 17 指标支持,由 @Vonng 贡献 pg_exporter: 谓词查询功能,由 @ringerc 贡献 在 Dockerfile 中进行干净构建,由 @ringerc 贡献 pg_exporter: “bind: address already in use” 后不再 panic,由 @ringerc 贡献 pg_exporter: 修复 /stat 端点格式,由 @ringerc 贡献 pg_exporter: yaml …

    变更 更新代码库以使用 Go 1.22.4。 PostgreSQL 17 指标支持,由 @Vonng 贡献 pg_exporter: 谓词查询功能,由 @ringerc 贡献 在 Dockerfile 中进行干净构建,由 @ringerc 贡献 pg_exporter: “bind: address already in use” 后不再 panic,由 @ringerc 贡献 pg_exporter: 修复 /stat 端点格式,由 @ringerc 贡献 pg_exporter: yaml …

  • 暂停代码提交的一周:PGCon.Dev 2024 参会记

    冯若航 发布于 文章 8720 字 18 分钟

    冯若航PostgreSQLPG生态

    暂停代码提交的一周:PGCon.Dev 2024 参会记

    本文是 2024 年 6 月的参会记录,职务、软件包数量和技术提案均按当时情况叙述。 PGCon.Dev 的前身 PGCon 从 2007 年至 2023 年在加拿大渥太华举办,是 PostgreSQL 开发者讨论项目方向的年度聚会。2024 年,新的组织团队接替 Dan Langille,将会场移至温哥华的 SFU 港区活动中心。 全都来参会了,谁还在写代码? Peter Eisentraut 在会后统计发现,大会前后相邻的两次 PostgreSQL 代码提交间隔六天十二小时四十九分钟,是二十 …

    本文是 2024 年 6 月的参会记录,职务、软件包数量和技术提案均按当时情况叙述。 PGCon.Dev 的前身 PGCon 从 2007 年至 2023 年在加拿大渥太华举办,是 PostgreSQL 开发者讨论项目方向的年度聚会。2024 年,新的组织团队接替 Dan Langille,将会场移至温哥华的 SFU 港区活动中心。 全都来参会了,谁还在写代码? Peter Eisentraut 在会后统计发现,大会前后相邻的两次 PostgreSQL 代码提交间隔六天十二小时四十九分钟,是二十 …

  • PG Exporter v0.6.1

    冯若航 发布于 发布注记 125 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.6.1

    变更 将 golang.org/x/net 从 v0.10.0 升级到 v0.17.0,并将 golang.org/x/crypto 升级到 v0.17.0,纳入安全修复(#38 对应 x/crypto) 修复 connect-timeout 传递问题(#37),由 @mouchar 贡献 校验和 原始 Release 为压缩包与软件包发布了 MD5 校验和: 107a67ca74b1d6e7bbe773694a48f6ab …

    变更 将 golang.org/x/net 从 v0.10.0 升级到 v0.17.0,并将 golang.org/x/crypto 升级到 v0.17.0,纳入安全修复(#38 对应 x/crypto) 修复 connect-timeout 传递问题(#37),由 @mouchar 贡献 校验和 原始 Release 为压缩包与软件包发布了 MD5 校验和: 107a67ca74b1d6e7bbe773694a48f6ab …

  • PostgreSQL 宏观查询优化之 pg_stat_statements

    冯若航 发布于 文章 8558 字 18 分钟

    冯若航PostgreSQLPG管理性能

    PostgreSQL 宏观查询优化之 pg_stat_statements

    本文记录 2023 年的监控方法,示例采用 PostgreSQL 15 的字段和当时的监控面板。 参考原文:Nikolay Samokhvalov 的 PostgreSQL HowTO: pg_stat_statements 系列(第一篇、第二篇、第三篇)。 慢查询会增加响应时间和资源消耗,也可能延长锁等待,增加连接压力。因此,查询优化是 DBA 的核心工作之一。 在查询优化这条路上,有两种不同的方法: 宏观优化:整体分析工作负载,对其进行剖分下钻,自上而下地识别并改进其中表现最糟糕的部分。 微 …

    本文记录 2023 年的监控方法,示例采用 PostgreSQL 15 的字段和当时的监控面板。 参考原文:Nikolay Samokhvalov 的 PostgreSQL HowTO: pg_stat_statements 系列(第一篇、第二篇、第三篇)。 慢查询会增加响应时间和资源消耗,也可能延长锁等待,增加连接压力。因此,查询优化是 DBA 的核心工作之一。 在查询优化这条路上,有两种不同的方法: 宏观优化:整体分析工作负载,对其进行剖分下钻,自上而下地识别并改进其中表现最糟糕的部分。 微 …

  • PG Exporter v0.6.0

    冯若航 发布于 发布注记 177 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.6.0

    变更 更新依赖,修复已报告的漏洞。 新增 PostgreSQL 16 采集器,并修复 PostgreSQL 15 兼容问题(#35,@japinli)。 新增 ARM64 软件包。 移除 pg_query 查询中固定的 monitor 模式。pg_stat_statements 须通过 search_path 可见,例如安装在 public 中。 配置目录同时接受 .yml 与 .yaml 文件(#34,@japinli)。 将 PgBouncer 版本解析日志从 info 级别改为 …

    变更 更新依赖,修复已报告的漏洞。 新增 PostgreSQL 16 采集器,并修复 PostgreSQL 15 兼容问题(#35,@japinli)。 新增 ARM64 软件包。 移除 pg_query 查询中固定的 monitor 模式。pg_stat_statements 须通过 search_path 可见,例如安装在 public 中。 配置目录同时接受 .yml 与 .yaml 文件(#34,@japinli)。 将 PgBouncer 版本解析日志从 info 级别改为 …

  • 使用 Pigsty 监控现有 PostgreSQL:RDS、PolarDB 与自建数据库

    冯若航 发布于 文章 1683 字 4 分钟

    冯若航Pigsty监控RDS

    使用 Pigsty 监控现有 PostgreSQL:RDS、PolarDB 与自建数据库

    本文记录 2023 年 9 月的 Pigsty 与阿里云使用流程,命令、价格和界面均对应当时版本。 Pigsty 是一个 PostgreSQL 发行版,也可以单独用于监控 PostgreSQL 与主机。本文以阿里云为例,在一台 ECS 上安装 Pigsty,再接入已有的 PolarDB 与 RDS for PostgreSQL。 视频教程 操作流程 教程分为四步: 创建用于部署 Pigsty 的 ECS 服务器。 在 ECS 上完整安装单机版 Pigsty。 配置 PolarDB / RDS 的 …

    本文记录 2023 年 9 月的 Pigsty 与阿里云使用流程,命令、价格和界面均对应当时版本。 Pigsty 是一个 PostgreSQL 发行版,也可以单独用于监控 PostgreSQL 与主机。本文以阿里云为例,在一台 ECS 上安装 Pigsty,再接入已有的 PolarDB 与 RDS for PostgreSQL。 视频教程 操作流程 教程分为四步: 创建用于部署 Pigsty 的 ECS 服务器。 在 ECS 上完整安装单机版 Pigsty。 配置 PolarDB / RDS 的 …

  • PG Exporter v0.5.0

    冯若航 发布于 发布注记 199 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.5.0

    导出器变更 使用 nFPM 构建 RPM 和 DEB 包。 新增 column.default,用指定值替代 NULL。 新增 column.scale,用于数值缩放,例如将微秒转换为秒。 修复 /stat 输出。 新增 pgsty/pg_exporter Docker 镜像。 采集器变更 将 pg_wal、pg_query、pg_db、pg_bgwriter、pg_ssl 和 pgbouncer_stat 的时间指标统一为秒。 将 pg_class 指标移入 pg_table 与 …

    导出器变更 使用 nFPM 构建 RPM 和 DEB 包。 新增 column.default,用指定值替代 NULL。 新增 column.scale,用于数值缩放,例如将微秒转换为秒。 修复 /stat 输出。 新增 pgsty/pg_exporter Docker 镜像。 采集器变更 将 pg_wal、pg_query、pg_db、pg_bgwriter、pg_ssl 和 pgbouncer_stat 的时间指标统一为秒。 将 pg_class 指标移入 pg_table 与 …

  • PG Exporter v0.4.1

    冯若航 发布于 发布注记 163 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.4.1

    变更 对象监控排除 Citus 与 TimescaleDB 内部模式。 移除重复的 pg_statio 行。 新增 PgBouncer 1.16 支持。 修复 PostgreSQL 12 上 pg_repl 采集器分支重叠的问题。 新增 -T、--connect-timeout 和 PG_EXPORTER_CONNECT_TIMEOUT,用于控制本地或远程目标的连接超时。 将 RPM 中的配置文件从 pg_exporter.yaml 改名为 pg_exporter.yml。 v0.4.1 发布于 …

    变更 对象监控排除 Citus 与 TimescaleDB 内部模式。 移除重复的 pg_statio 行。 新增 PgBouncer 1.16 支持。 修复 PostgreSQL 12 上 pg_repl 采集器分支重叠的问题。 新增 -T、--connect-timeout 和 PG_EXPORTER_CONNECT_TIMEOUT,用于控制本地或远程目标的连接超时。 将 RPM 中的配置文件从 pg_exporter.yaml 改名为 pg_exporter.yml。 v0.4.1 发布于 …

  • PG Exporter v0.4.0

    冯若航 发布于 发布注记 118 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.4.0

    变更 新增 PostgreSQL 14 支持。 调整默认指标配置,继续支持旧配置文件。 新增 --auto-discovery、--include-database 和 --exclude-database。 通过自动发现支持多数据库采集。 v0.4.0 发布于 2021-07-12 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 新增 PostgreSQL 14 支持。 调整默认指标配置,继续支持旧配置文件。 新增 --auto-discovery、--include-database 和 --exclude-database。 通过自动发现支持多数据库采集。 v0.4.0 发布于 2021-07-12 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PostgreSQL 慢查询诊断方法

    冯若航 发布于 文章 988 字 2 分钟

    冯若航PostgreSQLPG管理性能

    PostgreSQL 慢查询诊断方法

    本文使用 2021 年 2 月的 Pigsty 沙箱与仪表盘演示。 慢查询会占用连接、持有锁,并消耗 CPU 与 I/O。在备库上,长查询还可能与 WAL 重放冲突。PostgreSQL 会根据备库参数延迟重放或取消冲突查询,具体行为见热备冲突处理。 监控可以帮助我们找到受影响的查询,并比较变更前后的表现。 本例中,查询优化将 CPU 使用率从约 40% 降至 4%。 收集查询统计与日志 pg_stat_statements 扩展汇总相似语句的调用次数、执行时间、读取或影响的行数与 I/O 统计 …

    本文使用 2021 年 2 月的 Pigsty 沙箱与仪表盘演示。 慢查询会占用连接、持有锁,并消耗 CPU 与 I/O。在备库上,长查询还可能与 WAL 重放冲突。PostgreSQL 会根据备库参数延迟重放或取消冲突查询,具体行为见热备冲突处理。 监控可以帮助我们找到受影响的查询,并比较变更前后的表现。 本例中,查询优化将 CPU 使用率从约 40% 降至 4%。 收集查询统计与日志 pg_stat_statements 扩展汇总相似语句的调用次数、执行时间、读取或影响的行数与 I/O 统计 …

  • PG Exporter v0.3.2

    冯若航 发布于 发布注记 43 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.3.2

    变更 修复脱敏连接串的边界情况。 修正文档与拼写错误。 v0.3.2 发布于 2021-02-01 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 修复脱敏连接串的边界情况。 修正文档与拼写错误。 v0.3.2 发布于 2021-02-01 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • Pigsty 首次发布

    冯若航 发布于 文章 955 字 2 分钟

    冯若航Pigsty监控

    Pigsty 首次发布

    本文介绍 2021 年 1 月 Pigsty 首次发布时的产品状态。 今天,我发布了 Pigsty。 官方网站:pigsty.cc Pigsty 是什么? Pigsty 用于监控大规模 PostgreSQL 集群,也提供高可用集群的自动部署方案。它基于开源组件构建,是免费的开源软件。 我希望通过统一的监控界面与部署流程,减少管理 PostgreSQL 集群所需的手工操作。 监控系统 我需要管理一个大规模 PostgreSQL 集群。在尝试一些开源与商业监控产品后,没有找到满足需求的方案,于是开始 …

    本文介绍 2021 年 1 月 Pigsty 首次发布时的产品状态。 今天,我发布了 Pigsty。 官方网站:pigsty.cc Pigsty 是什么? Pigsty 用于监控大规模 PostgreSQL 集群,也提供高可用集群的自动部署方案。它基于开源组件构建,是免费的开源软件。 我希望通过统一的监控界面与部署流程,减少管理 PostgreSQL 集群所需的手工操作。 监控系统 我需要管理一个大规模 PostgreSQL 集群。在尝试一些开源与商业监控产品后,没有找到满足需求的方案,于是开始 …

  • PG Exporter v0.3.1

    冯若航 发布于 发布注记 98 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.3.1

    变更 修复默认配置错误,主要影响 PostgreSQL 13 之前的版本: 将 primary_conninfo 采集限制在支持它的采集器分支。 为 pg_func 增加 funcid 标签,区分同名函数。 将版本输出中的程序名修正为 pg_exporter。 v0.3.1 发布于 2020-12-04 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 修复默认配置错误,主要影响 PostgreSQL 13 之前的版本: 将 primary_conninfo 采集限制在支持它的采集器分支。 为 pg_func 增加 funcid 标签,区分同名函数。 将版本输出中的程序名修正为 pg_exporter。 v0.3.1 发布于 2020-12-04 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • 黄金监控指标:错误延迟吞吐饱和

    冯若航 发布于 文章 1562 字 4 分钟

    冯若航PostgreSQLPG管理监控

    黄金监控指标:错误延迟吞吐饱和

    本文写于 2020 年,指标数量与示例对应当时的部署。 前言 玩数据库和玩车有一个共通之处,就是都需要经常看仪表盘。 仪表盘上的指标显示当前运行状态,帮助我们决定何时采取行动。 车有很多指标:车速,胎压,扭矩,刹车片磨损,各种温度,等等等等,各式各样。 但人的注意力有限,仪表盘空间也有限。 所以,指标可以分两类: 你会去看的:黄金指标 / 关键指标 / 核心指标 你不会看的:黑匣子指标 / 冷指标。 黄金指标就是那几个关键性的核心数据,需要时刻保持关注(或者让自动驾驶系统/报警系统替你时刻保持 …

    本文写于 2020 年,指标数量与示例对应当时的部署。 前言 玩数据库和玩车有一个共通之处,就是都需要经常看仪表盘。 仪表盘上的指标显示当前运行状态,帮助我们决定何时采取行动。 车有很多指标:车速,胎压,扭矩,刹车片磨损,各种温度,等等等等,各式各样。 但人的注意力有限,仪表盘空间也有限。 所以,指标可以分两类: 你会去看的:黄金指标 / 关键指标 / 核心指标 你不会看的:黑匣子指标 / 冷指标。 黄金指标就是那几个关键性的核心数据,需要时刻保持关注(或者让自动驾驶系统/报警系统替你时刻保持 …

  • PG Exporter v0.3.0

    冯若航 发布于 发布注记 146 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.3.0

    变更 更新默认配置,支持 PostgreSQL 13 指标,包括 pg_slru、pg_shmem、pg_query13 和 pg_backup。 新增健康与恢复状态检查的 HTTP 端点。 在初始化完成前提供 HTTP 服务,并报告 pg_up 0。 连接 URL 未指定 sslmode 时,补充 sslmode=disable。 修复程序与拼写错误。 v0.3.0 发布于 2020-10-29 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 更新默认配置,支持 PostgreSQL 13 指标,包括 pg_slru、pg_shmem、pg_query13 和 pg_backup。 新增健康与恢复状态检查的 HTTP 端点。 在初始化完成前提供 HTTP 服务,并报告 pg_up 0。 连接 URL 未指定 sslmode 时,补充 sslmode=disable。 修复程序与拼写错误。 v0.3.0 发布于 2020-10-29 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • Pigsty PostgreSQL 监控系统介绍

    冯若航 发布于 文章 3324 字 7 分钟

    冯若航Pigsty监控PostgreSQL

    Pigsty PostgreSQL 监控系统介绍

    本文介绍 2020 年 5 月的 Pigsty,指标数量与面板名称均对应当时的系统。 我最近开发了一套数据库监控系统,名为 Pigsty。下面介绍它的架构、面板与指标。 Pigsty 使用 Grafana、Prometheus 与 Consul。PIGSTY /pɪɡ staɪ/ 是 “Postgres in Grafana Style” 的缩写。 整体架构 Node、PostgreSQL 与 PgBouncer Exporter 采集指标,Consul 提供服务发现,Prometheus 保存 …

    本文介绍 2020 年 5 月的 Pigsty,指标数量与面板名称均对应当时的系统。 我最近开发了一套数据库监控系统,名为 Pigsty。下面介绍它的架构、面板与指标。 Pigsty 使用 Grafana、Prometheus 与 Consul。PIGSTY /pɪɡ staɪ/ 是 “Postgres in Grafana Style” 的缩写。 整体架构 Node、PostgreSQL 与 PgBouncer Exporter 采集指标,Consul 提供服务发现,Prometheus 保存 …

  • PostgreSQL的KPI

    冯若航 发布于 文章 2789 字 6 分钟

    冯若航PostgreSQLPG管理监控

    PostgreSQL的KPI

    本文写于 2020 年,从 PgBouncer 事务耗时推导负载指标。 PG Load(PG 负载) 将每秒累积的事务耗时除以选定的并发数,同时考虑数据库处理的工作量与耗时。我用它观察负载变化,识别需要排查问题或重新评估容量的实例。 现有指标能说明什么 评估数据库负载,通常需要观察几类指标: 流量:每秒查询数(QPS)和每秒事务数(TPS)。 延迟:查询响应时间(Query RT)和事务响应时间(Xact RT)。 资源使用:机器负载、CPU 利用率、磁盘 I/O 和网络 I/O。 故障与争用 …

    本文写于 2020 年,从 PgBouncer 事务耗时推导负载指标。 PG Load(PG 负载) 将每秒累积的事务耗时除以选定的并发数,同时考虑数据库处理的工作量与耗时。我用它观察负载变化,识别需要排查问题或重新评估容量的实例。 现有指标能说明什么 评估数据库负载,通常需要观察几类指标: 流量:每秒查询数(QPS)和每秒事务数(TPS)。 延迟:查询响应时间(Query RT)和事务响应时间(Xact RT)。 资源使用:机器负载、CPU 利用率、磁盘 I/O 和网络 I/O。 故障与争用 …

  • PG Exporter v0.2.0

    冯若航 发布于 发布注记 62 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.2.0

    变更 新增供 YUM 安装的 RPM 包及 Linux 服务定义。 为查询配置新增 skip 选项。 修复 pgbouncer_up 指标。 新增配置重载支持。 v0.2.0 发布于 2020-03-21 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 新增供 YUM 安装的 RPM 包及 Linux 服务定义。 为查询配置新增 skip 选项。 修复 pgbouncer_up 指标。 新增配置重载支持。 v0.2.0 发布于 2020-03-21 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.1.2

    冯若航 发布于 发布注记 56 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.1.2

    变更 修复 pgbouncer_up 指标。 新增动态配置重载。 移除分片相关逻辑。 在默认配置中新增 bulky 模式。 v0.1.2 发布于 2020-02-20 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 修复 pgbouncer_up 指标。 新增动态配置重载。 移除分片相关逻辑。 在默认配置中新增 bulky 模式。 v0.1.2 发布于 2020-02-20 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.1.1

    冯若航 发布于 发布注记 36 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.1.1

    变更 修复查询失败导致启动挂起的问题。 v0.1.1 发布于 2020-01-10 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 修复查询失败导致启动挂起的问题。 v0.1.1 发布于 2020-01-10 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.1.0

    冯若航 发布于 发布注记 27 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.1.0

    变更 首个稳定版本。 v0.1.0 发布于 2020-01-08 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 首个稳定版本。 v0.1.0 发布于 2020-01-08 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.0.5

    冯若航 发布于 发布注记 121 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.0.5

    这是一个只有 Git 标签、没有独立 GitHub Release 对象的早期版本;本文依据标签提交与历史汇总文档归档。 变更 为每个采集器查询增加超时控制 以 fatal 采集器策略替代早期的 skip_error 行为 调整采集器优先级语义 修复内置的 pg_up 指标 为每个内置采集器补充文档 v0.0.5 发布于 2020-01-08 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    这是一个只有 Git 标签、没有独立 GitHub Release 对象的早期版本;本文依据标签提交与历史汇总文档归档。 变更 为每个采集器查询增加超时控制 以 fatal 采集器策略替代早期的 skip_error 行为 调整采集器优先级语义 修复内置的 pg_up 指标 为每个内置采集器补充文档 v0.0.5 发布于 2020-01-08 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.0.4

    冯若航 发布于 发布注记 35 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.0.4

    变更 在 200 多个生产节点上测试约两周。 v0.0.4 发布于 2019-12-20 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 在 200 多个生产节点上测试约两周。 v0.0.4 发布于 2019-12-20 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.0.3

    冯若航 发布于 发布注记 43 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.0.3

    变更 通过生产环境测试;项目当时仍处于快速开发阶段。 v0.0.3 发布于 2019-12-14 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 通过生产环境测试;项目当时仍处于快速开发阶段。 v0.0.3 发布于 2019-12-14 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.0.2

    冯若航 发布于 发布注记 30 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.0.2

    变更 开放试用的早期版本。 v0.0.2 发布于 2019-12-09 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    变更 开放试用的早期版本。 v0.0.2 发布于 2019-12-09 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PG Exporter v0.0.1

    冯若航 发布于 发布注记 66 字 1 分钟

    冯若航releaseReleasepg_exporter

    PG Exporter v0.0.1

    此早期版本只有 Git 标签,没有独立 GitHub Release。本文依据标签和历史发布摘要整理。 变更 新增 PgBouncer 模式。 v0.0.1 发布于 2019-12-09 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

    此早期版本只有 Git 标签,没有独立 GitHub Release。本文依据标签和历史发布摘要整理。 变更 新增 PgBouncer 模式。 v0.0.1 发布于 2019-12-09 查看发布 源码 · tar.gz 源码 · zip pgsty/pg_exporter

  • PostgreSQL 监控系统概览

    冯若航 发布于 文章 1705 字 4 分钟

    冯若航PostgreSQL监控PG管理

    PostgreSQL 监控系统概览

    本文记录 2018 年 12 月的监控系统,面板与统计收集器机制对应当时版本。 用监控管理 PostgreSQL 管理 PostgreSQL 需要了解数据库的运行状态。监控系统集中展示这些信息,为日常检查、故障诊断与性能优化提供依据。我计划通过一系列文章,介绍这套监控系统的设计、实施与使用。 PostgreSQL 监控面板 下面是我在实际环境中使用的监控面板。最常用的单实例面板分为七个区域:概览、操作系统、数据库活动与会话、复制、检查点与 WAL、数据库冲突、数据库对象统计。 系统架构 这套系统 …

    本文记录 2018 年 12 月的监控系统,面板与统计收集器机制对应当时版本。 用监控管理 PostgreSQL 管理 PostgreSQL 需要了解数据库的运行状态。监控系统集中展示这些信息,为日常检查、故障诊断与性能优化提供依据。我计划通过一系列文章,介绍这套监控系统的设计、实施与使用。 PostgreSQL 监控面板 下面是我在实际环境中使用的监控面板。最常用的单实例面板分为七个区域:概览、操作系统、数据库活动与会话、复制、检查点与 WAL、数据库冲突、数据库对象统计。 系统架构 这套系统 …

  • 关系膨胀的监控与治理

    冯若航 发布于 文章 4313 字 9 分钟

    冯若航PostgreSQLPG管理

    关系膨胀的监控与治理

    本文写于 2018 年,介绍当时基于统计信息估算膨胀及安排维护的方法。 PostgreSQL 使用 MVCC,让事务读取不同的行版本。旧版本可能使表和索引占用的空间超过活数据所需。日常清理让空间可以复用,重写关系则能将多余空间归还文件系统。本文介绍如何衡量膨胀,并选择重整时机。 关系膨胀概述 若一个关系占用 100 GB,压实后的副本只需 60 GB,则估算膨胀率为 (100 - 60) / 100 = 40%。 普通 VACUUM 会回收死元组占用的空间,让表内后续写入复用,也可能截断文件末尾 …

    本文写于 2018 年,介绍当时基于统计信息估算膨胀及安排维护的方法。 PostgreSQL 使用 MVCC,让事务读取不同的行版本。旧版本可能使表和索引占用的空间超过活数据所需。日常清理让空间可以复用,重写关系则能将多余空间归还文件系统。本文介绍如何衡量膨胀,并选择重整时机。 关系膨胀概述 若一个关系占用 100 GB,压实后的副本只需 60 GB,则估算膨胀率为 (100 - 60) / 100 = 40%。 普通 VACUUM 会回收死元组占用的空间,让表内后续写入复用,也可能截断文件末尾 …

  • 监控 PostgreSQL 表大小

    冯若航 发布于 文章 1388 字 3 分钟

    冯若航PostgreSQLPG管理监控

    监控 PostgreSQL 表大小

    本文写于 2018 年,介绍 PostgreSQL 普通表的物理存储。 表的空间布局 普通表包含自身存储,也可能有一张 TOAST 表: 本体表:存储行数据,relkind='r'。 TOAST 表:按需存储行外数据,relkind='t'。部分表没有 TOAST 表。 表本身和它的每个索引都是独立的 关系(Relation): 主体关系:存储元组。 索引关系:存储索引元组。 每个 关系 又可能会有 四种分支: main: 关系的主文件,编号为0 fsm:保存关于main分支中空闲空间的信息,编 …

    本文写于 2018 年,介绍 PostgreSQL 普通表的物理存储。 表的空间布局 普通表包含自身存储,也可能有一张 TOAST 表: 本体表:存储行数据,relkind='r'。 TOAST 表:按需存储行外数据,relkind='t'。部分表没有 TOAST 表。 表本身和它的每个索引都是独立的 关系(Relation): 主体关系:存储元组。 索引关系:存储索引元组。 每个 关系 又可能会有 四种分支: main: 关系的主文件,编号为0 fsm:保存关于main分支中空闲空间的信息,编 …

  • PostgreSQL 服务器日志配置

    冯若航 发布于 文章 1098 字 3 分钟

    冯若航PostgreSQLPG管理监控

    PostgreSQL 服务器日志配置

    本文写于 2018 年。下方表结构对应 PostgreSQL 10 的 23 列 CSV 格式,Filebeat 示例使用当时的 prospectors 配置。 CSV 日志可以导入 PostgreSQL 表,也可以通过 file_fdw 直接查询。 日志配置 log_destination = 'csvlog' logging_collector = on log_directory = 'log' log_filename = 'postgresql-%a.log' …

    本文写于 2018 年。下方表结构对应 PostgreSQL 10 的 23 列 CSV 格式,Filebeat 示例使用当时的 prospectors 配置。 CSV 日志可以导入 PostgreSQL 表,也可以通过 file_fdw 直接查询。 日志配置 log_destination = 'csvlog' logging_collector = on log_directory = 'log' log_filename = 'postgresql-%a.log' …