v1.3:PGCAT大修,PGSQL增强,Redis支持
Pigsty v1.3 正式发布,新增 Redis 支持、PGCAT 应用重构、PGSQL 监控增强。

Redis 支持
虽然 PostgreSQL 是世界上最先进的开源关系型数据库,但一个好汉三个帮。Pigsty v1.3 为 PostgreSQL 引入了一位得力的缓存伙伴:世界上最快的数据库 —— Redis。

Redis 性能强悍,单核轻松达到二三十万 QPS。

Pigsty Demo 中已经纳入 Redis 集群样例:

三种部署模式
Redis 有三种经典部署模式:普通主从结构(Standalone)、原生集群(Cluster)、高可用哨兵(Sentinel)。Pigsty v1.3 全部支持。

Redis Overview 首页展示了三个样例集群,分别对应三种部署模式。
声明式配置
定义 Redis 集群的方式与 PostgreSQL 高度一致。声明完成后,使用 redis.yml -l <cluster> 即可创建对应集群:

只需少量必选身份参数即可声明一个 Redis 集群。当然,也可以使用更多参数进行精细配置:


自动监控
使用 Pigsty 创建的 Redis 集群与实例会自动纳入监控系统。

单个 Redis 集群的监控首页,点击具体实例可跳转至实例级监控:

PGCAT 重构
v1.3 重构了 PGCAT 应用,这是一个直接从 Grafana 访问并可视化 PostgreSQL 系统目录的应用。

单个 PostgreSQL 实例的 Catalog 信息:数据库、活动会话、查询语句。

单个 PostgreSQL 实例的 Catalog 信息:配置、复制、内存使用、持久化、角色。

单个 PostgreSQL 数据库的 Catalog 信息,包括数据库内的模式、表、索引、序列等对象。

PGCAT TABLE Dashboard 改版:添加每一列的详细统计信息展示。
无侵入式设计
PGCAT 只需一个可访问的目标数据库 URL 即可使用,无需安装任何 Agent。即使是仅监控模式部署现有实例,也可以完整使用 PGCAT 功能。

在 Pigsty v1.3 的仅监控部署模式中,外部 PostgreSQL 实例也会在 Grafana 中注册并默认启用 PGCAT 功能。
PGSQL 增强
核心 PGSQL 监控应用也有显著改进。

在 Pigsty v1.3 中,PGSQL Cluster 添加了 10 个核心指标的快速导览面板。
PGSQL Instance、PGSQL Cluster 都新增了若干快速导览面板,用于快速定位问题。PGSQL Service 完整重置,更为简洁直观,便于快速理清集群拓扑。其他 Dashboard 也有相应优化与改进。
此外,v1.3 还包含半自动数据库迁移剧本的改进、Profiling 工具支持等功能增强。
v1.3.0 更新日志
Redis 支持
| 功能 | 说明 |
|---|---|
| Redis 部署 | 支持集群、哨兵、主从三种模式 |
| Redis 监控 | 提供总览、集群、实例三级仪表盘 |
PGCAT 大修
| 仪表盘 | 说明 |
|---|---|
| PGCAT Instance | 新增实例级 Catalog 仪表盘 |
| PGCAT Database | 新增数据库级 Catalog 仪表盘 |
| PGCAT Table | 重做表级统计仪表盘 |
PGSQL 增强
| 仪表盘 | 改进内容 |
|---|---|
| PGSQL Cluster | 新增 10 个关键指标面板 |
| PGSQL Instance | 新增 10 个关键指标面板 |
| PGSQL Service | 简化重设计,更清晰直观 |
| 交叉引用 | 在 PGCAT 与 PGSQL 仪表盘间添加导航链接 |
监控部署
- Grafana 数据源在仅监控部署期间自动注册
软件升级
- 将 PostgreSQL 13 添加到默认包列表
- 默认升级到 PostgreSQL 14.1
- 添加 Greenplum RPM 和依赖项
- 添加 Redis RPM 及源码包
- 将 perf 添加为默认包
v1.3.1 更新日志
监控
- PGSQL & PGCAT 仪表盘改进
- 优化 PGCAT Instance & PGCAT Database 布局
- 在 PGSQL Instance 仪表盘中添加关键指标面板,与 PGSQL Cluster 保持一致
- 在 PGCAT Database 中添加表/索引膨胀面板,移除 PGCAT Bloat 仪表盘
- 在 PGCAT Database 仪表盘中添加索引信息
- 修复 Grafana 8.3 中的损坏面板
- 在 Nginx 主页中添加 Redis 索引
部署
- 新增
infra-demo.yml剧本用于一次性引导 - 使用
infra-jupyter.yml剧本部署可选的 Jupyter Lab 服务器 - 使用
infra-pgweb.yml剧本部署可选的 PgWeb 服务器 - 在 Meta 节点上新增
pg别名,可从 admin 用户启动 PostgreSQL 集群 - 根据
timescaledb-tune建议调整所有 Patroni 配置模板中的max_locks_per_transactions - 在配置模板中添加
citus.node_conninfo: 'sslmode=prefer'以便在无 SSL 情况下使用 Citus - 在 PGDG14 包列表中添加所有扩展(除 pgrouting 外)
- 将 node_exporter 升级到 v1.3.1
- 将 PostgREST v9.0.0 添加到包列表,支持从 PostgreSQL Schema 生成 API
错误修复
- Grafana 安全漏洞修复(升级到 v8.3.1,详情)
- 修复
pg_instance&pg_service在register角色中从剧本中间开始时的问题 - 修复在没有
pg_cluster变量的主机上 Nginx 主页渲染问题 - 修复升级到 Grafana 8.3.1 时的样式问题