<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>PGSQL on Pigsty v5.0</title>
    <link>https://pgsty.pro/zh/module/pgsql/</link>
    <description>Recent content in PGSQL on Pigsty v5.0</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    
    
    
      <lastBuildDate>Sat, 11 Jan 2025 00:00:00 +0000</lastBuildDate>
    
    
      <atom:link href="https://pgsty.pro/zh/module/pgsql/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>被动故障切换</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/passive/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/passive/</guid>
        <description>&lt;pre class=&#34;td-infographic-source&#34;&gt;&lt;code class=&#34;language-infographic&#34;&gt;infographic list-row-simple-horizontal-arrow&#xA;data&#xA;  title 租约过期故障切换流程&#xA;  desc 当整个节点宕机，Patroni 无法主动释放租约，只能等待 TTL 过期&#xA;  items&#xA;    - label 租约过期&#xA;      desc Patroni 失联，被动等待主库租约 TTL 过期&#xA;      icon mingcute/close-circle-fill&#xA;    - label 从库检测&#xA;      desc 从库从循环中醒来后发现租约过期，开始竞选&#xA;      icon mingcute/key-2-fill&#xA;    - label 抢锁提拔&#xA;      desc 从库相互比较并抢锁，胜利者提升自己的PG&#xA;      icon mingcute/radar-fill&#xA;    - label 健康检查&#xA;      desc HAPROXY 健康检查发现新主上线，分配流量&#xA;      icon mingcute/arrow-up-circle-fill&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-时序图&#34;&gt;RTO 时序图&#xA;&lt;/h2&gt;&#xA;&lt;script&gt;&#xA;window.OinkEchartsFunctions = window.OinkEchartsFunctions || {};&#xA;(function (registry) {&#xA;var fmt = function(params) { if (!params || !params.length || params[0].name === &#39;&#39;) return &#39;&#39;; return &#39;&lt;b&gt;&#39; + params[0].name + &#39;&lt;/b&gt;&lt;br/&gt;&#39; + params.filter(p =&gt; p.value !== &#39;-&#39; &amp;&amp; p.value != null).map(p =&gt; p.marker + &#39; &#39; + p.seriesName + &#39;: &#39; + p.value + &#39;s&#39;).join(&#39;&lt;br/&gt;&#39;); };&#xA;registry[&#34;fmt&#34;] = fmt;&#xA;})(window.OinkEchartsFunctions);&#xA;&lt;/script&gt;&#xA;&lt;pre class=&#34;td-echarts-source&#34;&gt;&lt;code class=&#34;language-echarts&#34;&gt;tooltip: { trigger: axis, axisPointer: { type: shadow }, formatter: $fn:fmt }&#xA;legend: { top: 0, itemGap: 12, data: [租约过期, 从库检测, 抢锁提拔, 健康检查] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: 秒, nameLocation: end, max: 160, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: true, lineStyle: { type: dashed, opacity: 0.5 } }, minorTick: { show: true, splitNumber: 5 }, minorSplitLine: { show: true, lineStyle: { type: dotted, opacity: 0.2 } } }&#xA;yAxis: { type: category, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: false }, axisLabel: { fontSize: 10, fontFamily: monospace }, data: [wide-max, wide-avg, wide-min, &amp;#34;&amp;#34;, safe-max, safe-avg, safe-min, &amp;#34;&amp;#34;, norm-max, norm-avg, norm-min, &amp;#34;&amp;#34;, fast-max, fast-avg, fast-min] }&#xA;series:&#xA;  - { name: 租约过期, type: bar, stack: main, barWidth: 20, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#e15759&amp;#34; }, data: [120, 110, 100, &amp;#34;-&amp;#34;, 60, 55, 50, &amp;#34;-&amp;#34;, 30, 27, 25, &amp;#34;-&amp;#34;, 20, 17, 15] }&#xA;  - { name: 从库检测, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#edc949&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 抢锁提拔, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#59a14f&amp;#34; }, data: [2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0] }&#xA;  - { name: 健康检查, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#4e79a7&amp;#34; }, data: [8, 6, 4, &amp;#34;-&amp;#34;, 6, 5, 3, &amp;#34;-&amp;#34;, 4, 3, 2, &amp;#34;-&amp;#34;, 2, 2, 1] }&#xA;  - { name: RTO总计, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 1, itemStyle: { color: &amp;#34;#888&amp;#34;, opacity: 0 }, emphasis: { itemStyle: { opacity: 0 } }, data: [150, 127, 104, &amp;#34;-&amp;#34;, 78, 66, 53, &amp;#34;-&amp;#34;, 41, 34, 27, &amp;#34;-&amp;#34;, 29, 23, 16] }&#xA;  - { name: RTO预算, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 0, itemStyle: { color: &amp;#34;rgba(0,0,0,0.08)&amp;#34; }, emphasis: { itemStyle: { color: &amp;#34;rgba(0,0,0,0.12)&amp;#34; } }, data: [150, 150, 150, &amp;#34;-&amp;#34;, 90, 90, 90, &amp;#34;-&amp;#34;, 45, 45, 45, &amp;#34;-&amp;#34;, 30, 30, 30] }&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;故障模型&#34;&gt;故障模型&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;项目&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最好&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最坏&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;平均&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;租约过期&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：即将刷新时宕机&lt;br/&gt;最坏：刚刷新完就宕机&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;从库检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop / 2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：恰好在检测点&lt;br/&gt;最坏：刚错过检测点&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;抢锁提拔&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：直接抢锁提升&lt;br/&gt;最坏：API 超时+Promote&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;健康检查&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：检查前状态变化&lt;br/&gt;最坏：检查后瞬间状态变化&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;被动故障与主动故障的核心区别&lt;/strong&gt;：&lt;/p&gt;</description>
      </item>
    <item>
        <title>默认配置模板的参数优化策略说明</title>
        <link>https://pgsty.pro/zh/docs/pgsql/template/tune/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/template/tune/</guid>
        <description>&lt;p&gt;Pigsty 默认提供了四套场景化参数模板，可以通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/param/#pg_conf&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_conf&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 参数指定并使用。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/tiny/&#34;&gt;&lt;strong&gt;&lt;code&gt;tiny.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;：为小节点、虚拟机、小型演示优化（模板标注为 1-3 核）&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/oltp/&#34;&gt;&lt;strong&gt;&lt;code&gt;oltp.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;：为 OLTP 工作负载和延迟敏感应用优化（4C8GB+）（默认模板）&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/olap/&#34;&gt;&lt;strong&gt;&lt;code&gt;olap.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;：为 OLAP 工作负载和吞吐量优化（4C8G+）&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/crit/&#34;&gt;&lt;strong&gt;&lt;code&gt;crit.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;：为数据一致性和关键应用优化（4C8G+）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Pigsty 会针对这四种默认场景，采取不同的参数优化策略，如下所示：&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 PostgreSQL 数据库集群</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/cluster/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/cluster/</guid>
        <description>&lt;h2 id=&#34;速查手册&#34;&gt;速查手册&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;操作&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;快捷命令&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/#%e5%88%9b%e5%bb%ba%e9%9b%86%e7%be%a4&#34;&gt;&lt;strong&gt;创建集群&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;bin/pgsql-add &amp;lt;cls&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;创建新的 PostgreSQL 集群&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/#%e6%89%a9%e5%ae%b9%e9%9b%86%e7%be%a4&#34;&gt;&lt;strong&gt;扩容集群&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;bin/pgsql-add &amp;lt;cls&amp;gt; &amp;lt;ip...&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;为现有集群添加从库副本&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/#%e7%bc%a9%e5%ae%b9%e9%9b%86%e7%be%a4&#34;&gt;&lt;strong&gt;缩容集群&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;bin/pgsql-rm &amp;lt;cls&amp;gt; &amp;lt;ip...&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;从集群中移除指定实例&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/#%e9%94%80%e6%af%81%e9%9b%86%e7%be%a4&#34;&gt;&lt;strong&gt;销毁集群&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;bin/pgsql-rm &amp;lt;cls&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;销毁整个 PostgreSQL 集群&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/#%e5%88%b7%e6%96%b0%e6%9c%8d%e5%8a%a1&#34;&gt;&lt;strong&gt;刷新服务&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;bin/pgsql-svc &amp;lt;cls&amp;gt; [ip...]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;重载集群的负载均衡配置&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/#%e5%88%b7%e6%96%b0hba&#34;&gt;&lt;strong&gt;刷新HBA&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;bin/pgsql-hba &amp;lt;cls&amp;gt; [ip...]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;重载集群的 HBA 访问规则&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/#%e5%85%8b%e9%9a%86%e9%9b%86%e7%be%a4&#34;&gt;&lt;strong&gt;克隆集群&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;-&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;通过备份集群或 PITR 克隆&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;其他管理任务，请参考：&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;高可用管理&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;管理用户&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/db/&#34;&gt;&lt;strong&gt;管理数据库&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>集群实例</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/cluster/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/cluster/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;根据需求场景选择合适的实例与集群类型，配置出满足需求的 PostgreSQL 数据库集群。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;您可以定义不同类型的实例和集群，下面是 Pigsty 中常见的几种 PostgreSQL 实例/集群类型：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#%e8%af%bb%e5%86%99%e4%b8%bb%e5%ba%93&#34;&gt;读写主库&lt;/a&gt;：定义单一实例集群。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#%e5%8f%aa%e8%af%bb%e4%bb%8e%e5%ba%93&#34;&gt;只读从库&lt;/a&gt;：定义具有一个主库和一个副本的基本 HA 集群。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#%e7%a6%bb%e7%ba%bf%e4%bb%8e%e5%ba%93&#34;&gt;离线从库&lt;/a&gt;：定义专用于 OLAP/ETL/交互式查询的实例&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#%e5%90%8c%e6%ad%a5%e5%a4%87%e5%ba%93&#34;&gt;同步备库&lt;/a&gt;：启用同步提交以确保没有数据丢失。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#%e6%b3%95%e5%ae%9a%e4%ba%ba%e6%95%b0%e6%8f%90%e4%ba%a4&#34;&gt;法定人数提交&lt;/a&gt;：使用多数同步提交获得更高的一致性级别。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#%e5%a4%87%e4%bb%bd%e9%9b%86%e7%be%a4&#34;&gt;备份集群&lt;/a&gt;：克隆现有集群并跟随它&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#%e5%bb%b6%e8%bf%9f%e9%9b%86%e7%be%a4&#34;&gt;延迟集群&lt;/a&gt;：克隆现有集群用于紧急数据恢复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/#citus%e9%9b%86%e7%be%a4&#34;&gt;Citus集群&lt;/a&gt;：定义一个 Citus 分布式数据库集群&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;读写主库&#34;&gt;读写主库&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;我们从最简单的情况开始：由一个主库（Primary）组成的单实例集群：&lt;/p&gt;</description>
      </item>
    <item>
        <title>OLTP 模板</title>
        <link>https://pgsty.pro/zh/docs/pgsql/template/oltp/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/template/oltp/</guid>
        <description>&lt;p&gt;&lt;code&gt;oltp.yml&lt;/code&gt; 是 Pigsty 的默认配置模板，针对 &lt;strong&gt;在线事务处理&lt;/strong&gt;（OLTP）负载进行了优化。适用于 4-128 核 CPU 的服务器，特点是高并发连接、低延迟响应、高事务吞吐量。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;建议同时使用 &lt;a href=&#34;https://pgsty.pro/zh/docs/node/param/#node_tune&#34;&gt;&lt;strong&gt;&lt;code&gt;node_tune&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; = &lt;code&gt;oltp&lt;/code&gt; 进行操作系统级别的配套调优。&lt;/p&gt;</description>
      </item>
    <item>
        <title>内核版本</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/kernel/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/kernel/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在 Pigsty 中选择&amp;quot;内核&amp;quot;意味着确定 PostgreSQL 大版本、模式/发行版、需要安装的包以及要加载的调优模板。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Pigsty v4.5 当前源码支持 PostgreSQL 14 - 18，默认使用 18。下方内容展示如何通过配置文件完成这些选择。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 PostgreSQL 业务用户</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/user/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/user/</guid>
        <description>&lt;h2 id=&#34;快速上手&#34;&gt;快速上手&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 使用声明式管理方式，首先在 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt; 中 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/user/&#34;&gt;&lt;strong&gt;定义用户&lt;/strong&gt;&lt;/a&gt;，然后使用 &lt;code&gt;bin/pgsql-user &amp;lt;cls&amp;gt; &amp;lt;username&amp;gt;&lt;/code&gt; 创建或修改用户。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-408d51e6-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-408d51e6-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_seq&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;1, pg_role&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;primary } }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;vars&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_cluster&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_users&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;dbuser_app, password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#39;DBUser.App&amp;#39;, pgbouncer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# &amp;lt;--- 在这里定义用户列表！&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;脚本&#34; data-td-tab-group=&#34;tab1-tab2-tab3&#34; data-td-tab-value=&#34;tab1&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;脚本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-408d51e6-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-408d51e6-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-user &amp;lt;cls&amp;gt; &amp;lt;username&amp;gt;    &lt;span class=&#34;c1&#34;&gt;# 在 &amp;lt;cls&amp;gt; 集群上创建/修改 &amp;lt;username&amp;gt; 用户&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;剧本&#34; data-td-tab-value=&#34;tab2&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;剧本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-408d51e6-fence-2&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-408d51e6-fence-2-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql-user.yml -l pg-meta -e &lt;span class=&#34;nv&#34;&gt;username&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;dbuser_app    &lt;span class=&#34;c1&#34;&gt;# 直接使用剧本在 &amp;lt;cls&amp;gt; 集群上创建/修改 &amp;lt;username&amp;gt; 用户&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;示例&#34; data-td-tab-value=&#34;tab3&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;示例&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-408d51e6-fence-3&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-408d51e6-fence-3-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-user pg-meta dbuser_app    &lt;span class=&#34;c1&#34;&gt;# 在 pg-meta 集群上创建/修改 dbuser_app 用户&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;关于用户定义参数的完整参考，请查阅 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/user/&#34;&gt;&lt;strong&gt;用户配置&lt;/strong&gt;&lt;/a&gt;。角色与权限模型参见 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/#%e8%a7%92%e8%89%b2%e4%bd%93%e7%b3%bb&#34;&gt;&lt;strong&gt;访问控制&lt;/strong&gt;&lt;/a&gt;，认证与凭据管理参见 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;身份认证&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>主动故障检测</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/active/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/active/</guid>
        <description>&lt;pre class=&#34;td-infographic-source&#34;&gt;&lt;code class=&#34;language-infographic&#34;&gt;infographic list-row-simple-horizontal-arrow&#xA;data&#xA;  title 崩溃故障切换流程&#xA;  desc 当 Patroni 健康，但 PostgreSQL 因故崩溃时的故障切换流程&#xA;  items&#xA;    - label 故障检测&#xA;      desc Patroni 在循环中检测到 PG 崩溃&#xA;      icon mingcute/close-circle-fill&#xA;    - label 重启超时&#xA;      desc Patroni 尝试重启 PG，超时后释放租约&#xA;      icon mingcute/refresh-2-fill&#xA;    - label 从库检测&#xA;      desc 从库从循环中醒来发现租约释放，开始竞选&#xA;      icon mingcute/key-2-fill&#xA;    - label 抢锁提拔&#xA;      desc 从库相互比较并抢锁，胜利者提升自己的 PG&#xA;      icon mingcute/radar-fill&#xA;    - label 健康检查&#xA;      desc HAProxy 健康检查发现新主上线，分配流量&#xA;      icon mingcute/arrow-up-circle-fill&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-时序图&#34;&gt;RTO 时序图&#xA;&lt;/h2&gt;&#xA;&lt;script&gt;&#xA;window.OinkEchartsFunctions = window.OinkEchartsFunctions || {};&#xA;(function (registry) {&#xA;var fmt = function(params) { if (!params || !params.length || params[0].name === &#39;&#39;) return &#39;&#39;; return &#39;&lt;b&gt;&#39; + params[0].name + &#39;&lt;/b&gt;&lt;br/&gt;&#39; + params.filter(p =&gt; p.value !== &#39;-&#39; &amp;&amp; p.value != null).map(p =&gt; p.marker + &#39; &#39; + p.seriesName + &#39;: &#39; + p.value + &#39;s&#39;).join(&#39;&lt;br/&gt;&#39;); };&#xA;registry[&#34;fmt&#34;] = fmt;&#xA;})(window.OinkEchartsFunctions);&#xA;&lt;/script&gt;&#xA;&lt;pre class=&#34;td-echarts-source&#34;&gt;&lt;code class=&#34;language-echarts&#34;&gt;tooltip: { trigger: axis, axisPointer: { type: shadow }, formatter: $fn:fmt }&#xA;legend: { top: 0, itemGap: 12, data: [故障检测, 重启超时, 从库检测, 抢锁提拔, 健康检查] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: 秒, nameLocation: end, max: 160, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: true, lineStyle: { type: dashed, opacity: 0.5 } }, minorTick: { show: true, splitNumber: 5 }, minorSplitLine: { show: true, lineStyle: { type: dotted, opacity: 0.2 } } }&#xA;yAxis: { type: category, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: false }, axisLabel: { fontSize: 10, fontFamily: monospace }, data: [wide-max, wide-avg, wide-min, &amp;#34;&amp;#34;, safe-max, safe-avg, safe-min, &amp;#34;&amp;#34;, norm-max, norm-avg, norm-min, &amp;#34;&amp;#34;, fast-max, fast-avg, fast-min] }&#xA;series:&#xA;  - { name: 故障检测, type: bar, stack: main, barWidth: 20, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#b07aa1&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 重启超时, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#f28e2c&amp;#34; }, data: [95, 95, 0, &amp;#34;-&amp;#34;, 45, 45, 0, &amp;#34;-&amp;#34;, 25, 25, 0, &amp;#34;-&amp;#34;, 15, 15, 0] }&#xA;  - { name: 从库检测, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#edc949&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 抢锁提拔, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#59a14f&amp;#34; }, data: [2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0] }&#xA;  - { name: 健康检查, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#4e79a7&amp;#34; }, data: [8, 6, 4, &amp;#34;-&amp;#34;, 6, 5, 3, &amp;#34;-&amp;#34;, 4, 3, 2, &amp;#34;-&amp;#34;, 2, 2, 1] }&#xA;  - { name: RTO总计, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 1, itemStyle: { color: &amp;#34;#888&amp;#34;, opacity: 0 }, emphasis: { itemStyle: { opacity: 0 } }, data: [145, 122, 4, &amp;#34;-&amp;#34;, 73, 61, 3, &amp;#34;-&amp;#34;, 41, 35, 2, &amp;#34;-&amp;#34;, 29, 24, 1] }&#xA;  - { name: RTO预算, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 0, itemStyle: { color: &amp;#34;rgba(0,0,0,0.08)&amp;#34; }, emphasis: { itemStyle: { color: &amp;#34;rgba(0,0,0,0.12)&amp;#34; } }, data: [150, 150, 150, &amp;#34;-&amp;#34;, 90, 90, 90, &amp;#34;-&amp;#34;, 45, 45, 45, &amp;#34;-&amp;#34;, 30, 30, 30] }&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;故障模型&#34;&gt;故障模型&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;项目&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最好&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最坏&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;平均&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;故障检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：PG 恰好在检测前崩溃&lt;br/&gt;最坏：PG 刚检测完就崩溃&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;重启超时&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：PG 瞬间自愈&lt;br/&gt;最坏：等满 start 超时才释放租约&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;从库检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：恰好在检测点&lt;br/&gt;最坏：刚错过检测点&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;抢锁提拔&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：直接抢锁提升&lt;br/&gt;最坏：API 超时 + Promote&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;健康检查&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：检查前状态变化&lt;br/&gt;最坏：检查后瞬间状态变化&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;主动故障与被动故障的核心区别&lt;/strong&gt;：&lt;/p&gt;</description>
      </item>
    <item>
        <title>OLAP 模板</title>
        <link>https://pgsty.pro/zh/docs/pgsql/template/olap/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/template/olap/</guid>
        <description>&lt;p&gt;&lt;code&gt;olap.yml&lt;/code&gt; 是针对 &lt;strong&gt;在线分析处理&lt;/strong&gt;（OLAP）负载优化的配置模板。适用于 4-128 核 CPU 的服务器，特点是支持大查询、高并行度、宽松的超时设置和激进的 Vacuum 策略。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;建议同时使用 &lt;a href=&#34;https://pgsty.pro/zh/docs/node/param/#node_tune&#34;&gt;&lt;strong&gt;&lt;code&gt;node_tune&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; = &lt;code&gt;olap&lt;/code&gt; 进行操作系统级别的配套调优。&lt;/p&gt;</description>
      </item>
    <item>
        <title>别名翻译</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/alias/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/alias/</guid>
        <description>&lt;p&gt;PostgreSQL 在不同操作系统上的软件包命名规则存在显著差异：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;EL 系统&lt;/strong&gt;（RHEL/Rocky/Alma/&amp;hellip;）使用 &lt;code&gt;pgvector_18&lt;/code&gt;，&lt;code&gt;postgis36_18*&lt;/code&gt; 这样的格式&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Debian/Ubuntu 系统&lt;/strong&gt; 使用 &lt;code&gt;postgresql-18-pgvector&lt;/code&gt;，&lt;code&gt;postgresql-18-postgis-3&lt;/code&gt; 这样的格式&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这种差异给用户带来了额外的认知负担：您需要记住不同系统的包名规则，还要处理 PostgreSQL 版本号嵌入的问题。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 PostgreSQL 业务数据库</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/db/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/db/</guid>
        <description>&lt;h2 id=&#34;快速上手&#34;&gt;快速上手&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 使用声明式管理方式，首先在 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt; 中 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/db/&#34;&gt;&lt;strong&gt;定义数据库&lt;/strong&gt;&lt;/a&gt;，然后使用 &lt;code&gt;bin/pgsql-db &amp;lt;cls&amp;gt; &amp;lt;dbname&amp;gt;&lt;/code&gt; 创建或修改数据库。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4e0bf409-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-4e0bf409-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_seq&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;1, pg_role&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;primary } }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;vars&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_cluster&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_databases&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;some_db }] &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# &amp;lt;--- 在这里定义数据库列表！&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;脚本&#34; data-td-tab-group=&#34;tab1-tab2-tab3&#34; data-td-tab-value=&#34;tab1&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;脚本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4e0bf409-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-4e0bf409-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-db &amp;lt;cls&amp;gt; &amp;lt;dbname&amp;gt;    &lt;span class=&#34;c1&#34;&gt;# 在 &amp;lt;cls&amp;gt; 集群上创建/修改 &amp;lt;dbname&amp;gt; 数据库&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;剧本&#34; data-td-tab-value=&#34;tab2&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;剧本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4e0bf409-fence-2&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-4e0bf409-fence-2-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql-db.yml -l pg-meta -e &lt;span class=&#34;nv&#34;&gt;dbname&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;some_db    &lt;span class=&#34;c1&#34;&gt;# 直接使用剧本在 &amp;lt;cls&amp;gt; 集群上创建/修改 &amp;lt;dbname&amp;gt; 数据库&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;示例&#34; data-td-tab-value=&#34;tab3&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;示例&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4e0bf409-fence-3&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-4e0bf409-fence-3-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-db pg-meta some_db    &lt;span class=&#34;c1&#34;&gt;# 在 pg-meta 集群上创建/修改 some_db 数据库&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;关于数据库定义参数的完整参考，请查阅 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/db/&#34;&gt;&lt;strong&gt;数据库配置&lt;/strong&gt;&lt;/a&gt;。数据库访问权限见 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/#%e6%95%b0%e6%8d%ae%e5%ba%93%e9%9a%94%e7%a6%bb&#34;&gt;&lt;strong&gt;访问控制：数据库隔离&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>CRIT 模板</title>
        <link>https://pgsty.pro/zh/docs/pgsql/template/crit/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/template/crit/</guid>
        <description>&lt;p&gt;&lt;code&gt;crit.yml&lt;/code&gt; 面向一致性和审计要求较高的事务型业务。它强制启用数据校验和与 Patroni 严格同步模式，增加连接日志，并调整部分 WAL、超时和并行查询参数。&lt;/p&gt;&#xA;&lt;p&gt;该模板会增加写入延迟，并可能在没有可用同步副本时阻塞写入。使用前应确认一致性目标、故障域、客户端提交设置和可用性要求。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 Patroni 高可用</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/patroni/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/patroni/</guid>
        <description>&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 使用 Patroni 管理 PostgreSQL 集群，它可以用来修改集群配置，查看集群状态，执行主从切换，重启集群，重做从库等操作。&lt;/p&gt;&#xA;&lt;p&gt;要使用 Patroni 进行管理，您需要有以下两种身份之一：&lt;/p&gt;</description>
      </item>
    <item>
        <title>用户/角色</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/user/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/user/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在本文中，&amp;ldquo;用户&amp;rdquo;（User） 指的是使用 SQL 命令 &lt;code&gt;CREATE USER/ROLE&lt;/code&gt; 创建的，数据库集簇内的逻辑对象。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;在 PostgreSQL 中，用户直接隶属于数据库集簇而非某个具体的数据库。因此在创建业务数据库和业务用户时，应当遵循&amp;quot;先用户，后数据库&amp;quot;的原则。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 PostgreSQL HBA 认证规则</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/hba/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/hba/</guid>
        <description>&lt;h2 id=&#34;快速上手&#34;&gt;快速上手&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 使用声明式管理方式，首先在 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt; 中 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;定义 HBA 规则&lt;/strong&gt;&lt;/a&gt;，然后使用 &lt;code&gt;bin/pgsql-hba &amp;lt;cls&amp;gt;&lt;/code&gt; 刷新规则。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-35985ec3-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;7&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-35985ec3-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_seq&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;1, pg_role&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;primary } }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;vars&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_cluster&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_hba_rules&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# &amp;lt;--- 在这里定义 HBA 规则列表！&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- {&lt;span class=&#34;nt&#34;&gt;user&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;dbuser_app, db&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;app, addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;intra, auth&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pwd, title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;app access&amp;#39;&lt;/span&gt;}&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- {&lt;span class=&#34;nt&#34;&gt;user&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;dbuser_api, db&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;all, addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;world, auth&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ssl, title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;api ssl access&amp;#39;&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;脚本&#34; data-td-tab-group=&#34;tab1-tab2-tab3&#34; data-td-tab-value=&#34;tab1&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;脚本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-35985ec3-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-35985ec3-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-hba &amp;lt;cls&amp;gt;              &lt;span class=&#34;c1&#34;&gt;# 刷新集群的 PostgreSQL 和 Pgbouncer HBA 规则&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-hba &amp;lt;cls&amp;gt; &amp;lt;ip&amp;gt;...      &lt;span class=&#34;c1&#34;&gt;# 刷新集群中特定实例的 HBA 规则&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;剧本&#34; data-td-tab-value=&#34;tab2&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;剧本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-35985ec3-fence-2&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;3&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-35985ec3-fence-2-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql.yml -l &amp;lt;cls&amp;gt; -t pg_hba,pg_reload                 &lt;span class=&#34;c1&#34;&gt;# 仅刷新 PostgreSQL HBA&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql.yml -l &amp;lt;cls&amp;gt; -t pgbouncer_hba,pgbouncer_reload   &lt;span class=&#34;c1&#34;&gt;# 仅刷新 Pgbouncer HBA&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql.yml -l &amp;lt;cls&amp;gt; -t pg_hba,pg_reload,pgbouncer_hba,pgbouncer_reload  &lt;span class=&#34;c1&#34;&gt;# 同时刷新两者&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;示例&#34; data-td-tab-value=&#34;tab3&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;示例&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-35985ec3-fence-3&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;3&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-35985ec3-fence-3-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-hba pg-meta                      &lt;span class=&#34;c1&#34;&gt;# 刷新 pg-meta 集群的 HBA 规则&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-hba pg-meta 10.10.10.10          &lt;span class=&#34;c1&#34;&gt;# 仅刷新特定实例&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-hba pg-meta 10.10.10.11 10.10.10.12  &lt;span class=&#34;c1&#34;&gt;# 刷新多个实例&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;关于规则语法，请查阅 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;HBA 配置&lt;/strong&gt;&lt;/a&gt;；关于认证方法、默认边界与凭据管理，请参考 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;身份认证&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>TINY 模板</title>
        <link>https://pgsty.pro/zh/docs/pgsql/template/tiny/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/template/tiny/</guid>
        <description>&lt;p&gt;&lt;code&gt;tiny.yml&lt;/code&gt; 是针对 &lt;strong&gt;微型实例&lt;/strong&gt; 和资源受限环境优化的配置模板。适用于 1-3 核 CPU 的服务器，特点是最小化资源占用、保守的内存分配、禁用并行查询。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;建议同时使用 &lt;a href=&#34;https://pgsty.pro/zh/docs/node/param/#node_tune&#34;&gt;&lt;strong&gt;&lt;code&gt;node_tune&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; = &lt;code&gt;tiny&lt;/code&gt; 进行操作系统级别的配套调优。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pgbouncer 连接池管理</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/pgbouncer/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/pgbouncer/</guid>
        <description>&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 使用 &lt;a href=&#34;https://www.pgbouncer.org/&#34;&gt;&lt;strong&gt;Pgbouncer&lt;/strong&gt;&lt;/a&gt; 作为 PostgreSQL 的连接池中间件，默认监听 &lt;code&gt;6432&lt;/code&gt; 端口，代理访问本机 &lt;code&gt;5432&lt;/code&gt; 端口上的 PostgreSQL 实例。&lt;/p&gt;&#xA;&lt;p&gt;这是一个 &lt;strong&gt;可选组件&lt;/strong&gt;，如果您并没有海量连接，也不需要事务池化与查询监控指标，可以关闭连接池，直连数据库，或者保留但不使用。&lt;/p&gt;</description>
      </item>
    <item>
        <title>数据库</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/db/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/db/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在本文中，“数据库”（Database） 指的是使用 SQL 命令 &lt;code&gt;CREATE DATABASE&lt;/code&gt; 创建的，数据库集簇内的逻辑对象。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;一组 PostgreSQL 服务器可以同时服务于多个 &lt;strong&gt;数据库&lt;/strong&gt; （Database）。在 Pigsty 中，你可以在集群配置中 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/db/#%e5%ae%9a%e4%b9%89%e6%95%b0%e6%8d%ae%e5%ba%93&#34;&gt;&lt;strong&gt;定义&lt;/strong&gt;&lt;/a&gt; 好所需的数据库。&lt;/p&gt;</description>
      </item>
    <item>
        <title>网络分区</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/partition/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/partition/</guid>
        <description>&lt;pre class=&#34;td-infographic-source&#34;&gt;&lt;code class=&#34;language-infographic&#34;&gt;infographic list-row-simple-horizontal-arrow&#xA;data&#xA;  title 网络分区故障切换流程&#xA;  desc 主库与 DCS 网络分区，Patroni 主动降级防止脑裂，等待 TTL 过期后切换&#xA;  items&#xA;    - label 主库降级&#xA;      desc Patroni 重试超时后主动降级 PG&#xA;      icon mingcute/shield-fill&#xA;    - label 租约过期&#xA;      desc Leader Key TTL 过期&#xA;      icon mingcute/close-circle-fill&#xA;    - label 从库检测&#xA;      desc 从库发现租约过期，开始竞选&#xA;      icon mingcute/key-2-fill&#xA;    - label 抢锁提拔&#xA;      desc 从库抢锁并提升为新主库&#xA;      icon mingcute/radar-fill&#xA;    - label 健康检查&#xA;      desc HAProxy 检测新主上线&#xA;      icon mingcute/arrow-up-circle-fill&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-时序图&#34;&gt;RTO 时序图&#xA;&lt;/h2&gt;&#xA;&lt;script&gt;&#xA;window.OinkEchartsFunctions = window.OinkEchartsFunctions || {};&#xA;(function (registry) {&#xA;var fmt = function(params) { if (!params || !params.length || params[0].name === &#39;&#39;) return &#39;&#39;; return &#39;&lt;b&gt;&#39; + params[0].name + &#39;&lt;/b&gt;&lt;br/&gt;&#39; + params.filter(p =&gt; p.value !== &#39;-&#39; &amp;&amp; p.value != null).map(p =&gt; p.marker + &#39; &#39; + p.seriesName + &#39;: &#39; + p.value + &#39;s&#39;).join(&#39;&lt;br/&gt;&#39;); };&#xA;registry[&#34;fmt&#34;] = fmt;&#xA;})(window.OinkEchartsFunctions);&#xA;&lt;/script&gt;&#xA;&lt;pre class=&#34;td-echarts-source&#34;&gt;&lt;code class=&#34;language-echarts&#34;&gt;tooltip: { trigger: axis, axisPointer: { type: shadow }, formatter: $fn:fmt }&#xA;legend: { top: 0, itemGap: 12, data: [主库降级, 租约过期, 从库检测, 抢锁提拔, 健康检查] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: 秒, nameLocation: end, max: 160, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: true, lineStyle: { type: dashed, opacity: 0.5 } }, minorTick: { show: true, splitNumber: 5 }, minorSplitLine: { show: true, lineStyle: { type: dotted, opacity: 0.2 } } }&#xA;yAxis: { type: category, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: false }, axisLabel: { fontSize: 10, fontFamily: monospace }, data: [wide-max, wide-avg, wide-min, &amp;#34;&amp;#34;, safe-max, safe-avg, safe-min, &amp;#34;&amp;#34;, norm-max, norm-avg, norm-min, &amp;#34;&amp;#34;, fast-max, fast-avg, fast-min] }&#xA;series:&#xA;  - { name: 主库降级, type: bar, stack: main, barWidth: 20, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#76b7b2&amp;#34; }, data: [50, 40, 30, &amp;#34;-&amp;#34;, 30, 25, 20, &amp;#34;-&amp;#34;, 15, 13, 10, &amp;#34;-&amp;#34;, 10, 8, 5] }&#xA;  - { name: 租约过期, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#e15759&amp;#34; }, data: [70, 70, 70, &amp;#34;-&amp;#34;, 30, 30, 30, &amp;#34;-&amp;#34;, 15, 15, 15, &amp;#34;-&amp;#34;, 10, 10, 10] }&#xA;  - { name: 从库检测, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#edc949&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 抢锁提拔, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#59a14f&amp;#34; }, data: [2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0] }&#xA;  - { name: 健康检查, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#4e79a7&amp;#34; }, data: [8, 6, 4, &amp;#34;-&amp;#34;, 6, 5, 3, &amp;#34;-&amp;#34;, 4, 3, 2, &amp;#34;-&amp;#34;, 2, 2, 1] }&#xA;  - { name: RTO总计, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 1, itemStyle: { color: &amp;#34;#888&amp;#34;, opacity: 0 }, emphasis: { itemStyle: { opacity: 0 } }, data: [150, 127, 104, &amp;#34;-&amp;#34;, 78, 66, 53, &amp;#34;-&amp;#34;, 41, 34, 27, &amp;#34;-&amp;#34;, 29, 23, 16] }&#xA;  - { name: RTO预算, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 0, itemStyle: { color: &amp;#34;rgba(0,0,0,0.08)&amp;#34; }, emphasis: { itemStyle: { color: &amp;#34;rgba(0,0,0,0.12)&amp;#34; } }, data: [150, 150, 150, &amp;#34;-&amp;#34;, 90, 90, 90, &amp;#34;-&amp;#34;, 45, 45, 45, &amp;#34;-&amp;#34;, 30, 30, 30] }&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;故障模型&#34;&gt;故障模型&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;项目&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最好&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最坏&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;平均&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;主库降级&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop + retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2 + retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Patroni 检测分区后重试，超时后主动降级&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;租约过期&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop - retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop - retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop - retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;降级后剩余的 TTL 时间（近似常数）&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;从库检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：恰好在检测点&lt;br/&gt;最坏：刚错过检测点&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;抢锁提拔&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：直接抢锁提升&lt;br/&gt;最坏：API 超时+Promote&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;健康检查&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：检查前状态变化&lt;br/&gt;最坏：检查后瞬间状态变化&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;网络分区与节点宕机的核心区别&lt;/strong&gt;：&lt;/p&gt;</description>
      </item>
    <item>
        <title>HBA 规则</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/hba/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/hba/</guid>
        <description>&lt;h2 id=&#34;概述&#34;&gt;概述&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;HBA（Host-Based Authentication）控制“谁可以从哪里、以什么方式连接到数据库”。认证模型和默认规则说明见 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;身份认证&lt;/strong&gt;&lt;/a&gt;。&#xA;Pigsty 通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/hba/#pg_default_hba_rules&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_default_hba_rules&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 与 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/hba/#pg_hba_rules&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_hba_rules&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 让 HBA 规则也能以声明式配置形式管理。&lt;/p&gt;</description>
      </item>
    <item>
        <title>参数配置</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/param/</guid>
        <description>&lt;p&gt;PostgreSQL 参数可以在多个层级进行配置，不同层级的参数设置具有不同的作用范围和优先级。&#xA;Pigsty 支持在四个层级配置 PostgreSQL 参数，从全局到局部依次为：&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;层级&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;作用范围&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;配置方式&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;存储位置&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/param/#%e9%9b%86%e7%be%a4%e7%ba%a7%e5%8f%82%e6%95%b0&#34;&gt;&lt;strong&gt;集群级&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;整个集群所有实例&lt;/td&gt;&#xA;      &lt;td&gt;Patroni DCS / 调优模板&lt;/td&gt;&#xA;      &lt;td&gt;etcd + &lt;code&gt;postgresql.conf&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/param/#%e5%ae%9e%e4%be%8b%e7%ba%a7%e5%8f%82%e6%95%b0&#34;&gt;&lt;strong&gt;实例级&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;单个 PostgreSQL 实例&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pg_parameters&lt;/code&gt; / &lt;code&gt;ALTER SYSTEM&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;postgresql.auto.conf&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/param/#%e6%95%b0%e6%8d%ae%e5%ba%93%e7%ba%a7%e5%8f%82%e6%95%b0&#34;&gt;&lt;strong&gt;数据库级&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;特定数据库的所有会话&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pg_databases[].parameters&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pg_db_role_setting&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/param/#%e7%94%a8%e6%88%b7%e7%ba%a7%e5%8f%82%e6%95%b0&#34;&gt;&lt;strong&gt;用户级&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;特定用户的所有会话&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pg_users[].parameters&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pg_db_role_setting&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;参数优先级从低到高：&lt;strong&gt;集群级 &amp;lt; 实例级 &amp;lt; 数据库级 &amp;lt; 用户级 &amp;lt; 会话级&lt;/strong&gt;（&lt;code&gt;SET&lt;/code&gt; 命令）。&#xA;高优先级的设置会覆盖低优先级的设置。&lt;/p&gt;</description>
      </item>
    <item>
        <title>访问控制</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/acl/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/acl/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;访问控制由角色、对象权限、数据库 ACL 与 HBA 共同决定。本节聚焦配置参数；设计与边界见 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;访问控制概念&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Pigsty 预置了一套精简的 ACL 模型，通过以下参数描述：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_default_roles&lt;/code&gt;：系统角色与系统用户。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_users&lt;/code&gt;：业务用户与角色。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_default_privileges&lt;/code&gt;：管理员/属主新建对象时的默认权限。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_revoke_public&lt;/code&gt;、&lt;code&gt;pg_default_schemas&lt;/code&gt;、&lt;code&gt;pg_default_extensions&lt;/code&gt;：控制 &lt;code&gt;template1&lt;/code&gt; 的默认行为。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这些参数应与 HBA 和数据库定义一起管理，形成可复现的访问控制配置。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 PostgreSQL 组件服务</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/component/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/component/</guid>
        <description>&lt;h2 id=&#34;概述&#34;&gt;概述&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 的 PGSQL 模块由多个组件构成，每个组件都以 systemd 服务的形式运行在节点上。（&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/arch/pgsql/#pgbackrest&#34;&gt;&lt;strong&gt;pgbackrest&lt;/strong&gt;&lt;/a&gt; 除外）&lt;/p&gt;&#xA;&lt;p&gt;了解这些组件及其管理方式，对于维护生产环境中的 PostgreSQL 集群非常重要。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 PostgreSQL 定时任务</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/crontab/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/crontab/</guid>
        <description>&lt;p&gt;Pigsty 使用 crontab 来管理定时任务，用于执行例行备份，冻结老化事务，重整膨胀表索引等维护工作。&lt;/p&gt;&#xA;&lt;h2 id=&#34;速查手册&#34;&gt;速查手册&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;操作&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;快捷命令&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/crontab/#%e9%85%8d%e7%bd%ae%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1&#34;&gt;&lt;strong&gt;配置定时任务&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./pgsql.yml -t pg_crontab -l &amp;lt;cls&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;应用 pg_crontab 配置&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/crontab/#%e6%9f%a5%e7%9c%8b%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1&#34;&gt;&lt;strong&gt;查看定时任务&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;crontab -l&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;以 postgres 用户查看&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/crontab/#pg-backup&#34;&gt;&lt;strong&gt;物理备份&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg-backup [full|diff|incr]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;使用 pgBackRest 执行备份&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/crontab/#pg-vacuum&#34;&gt;&lt;strong&gt;事务冻结&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg-vacuum [database...]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;冻结老化事务，预防 XID 回卷&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/crontab/#pg-repack&#34;&gt;&lt;strong&gt;膨胀治理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg-repack [database...]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;在线重整膨胀的表与索引&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;其他管理任务，请参考：&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/&#34;&gt;&lt;strong&gt;备份管理&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/monitor/&#34;&gt;&lt;strong&gt;监控系统&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;高可用管理&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>升级 PostgreSQL 大小版本</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/upgrade/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/upgrade/</guid>
        <description>&lt;h2 id=&#34;快速上手&#34;&gt;快速上手&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;PostgreSQL 版本升级分为两种类型：&lt;strong&gt;小版本升级&lt;/strong&gt; 和 &lt;strong&gt;大版本升级&lt;/strong&gt;，两者的风险和复杂度差异很大。&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;类型&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;示例&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;停机时间&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;数据兼容性&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;风险等级&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;小版本升级&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;17.2 → 17.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;秒级（滚动重启）&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;完全兼容&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;低&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;大版本升级&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;17 → 18&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;分钟级&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;需要升级数据目录&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;中&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;小版本&#34; data-td-tab-group=&#34;tab1-tab2-tab3&#34; data-td-tab-value=&#34;tab1&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;小版本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-13357907-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-13357907-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 滚动升级：先从库后主库&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ansible &amp;lt;cls&amp;gt; -b -a &lt;span class=&#34;s1&#34;&gt;&amp;#39;yum upgrade -y postgresql17*&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pg restart --role replica --force &amp;lt;cls&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pg switchover &amp;lt;cls&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pg restart &amp;lt;cls&amp;gt; &amp;lt;old-primary&amp;gt; --force&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;大版本&#34; data-td-tab-value=&#34;tab2&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;大版本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-13357907-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;4&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-13357907-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 推荐：逻辑复制迁移&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-add pg-new              &lt;span class=&#34;c1&#34;&gt;# 创建新版本集群&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 配置逻辑复制同步数据...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 切换流量到新集群&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;扩展&#34; data-td-tab-value=&#34;tab3&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;扩展&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-13357907-fence-2&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-13357907-fence-2-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ansible &amp;lt;cls&amp;gt; -b -a &lt;span class=&#34;s1&#34;&gt;&amp;#39;yum upgrade -y postgis36_17*&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;psql -c &lt;span class=&#34;s1&#34;&gt;&amp;#39;ALTER EXTENSION postgis UPDATE;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;关于在线迁移的详细流程，请参考 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/migration/&#34;&gt;&lt;strong&gt;在线迁移&lt;/strong&gt;&lt;/a&gt; 文档。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理 PostgreSQL 扩展插件</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/ext/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/ext/</guid>
        <description>&lt;h2 id=&#34;快速上手&#34;&gt;快速上手&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 提供 &lt;a href=&#34;https://pigsty.cc/ext/list/&#34;&gt;&lt;strong&gt;575 扩展&lt;/strong&gt;&lt;/a&gt;，使用扩展涉及四个步骤：&lt;strong&gt;下载&lt;/strong&gt;、&lt;strong&gt;安装&lt;/strong&gt;、&lt;strong&gt;配置&lt;/strong&gt;、&lt;strong&gt;启用&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f9aacab9-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;9&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f9aacab9-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_seq&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;1, pg_role&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;primary } }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;vars&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_cluster&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_extensions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;postgis, timescaledb, pgvector ]          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# &amp;lt;--- 安装扩展软件包&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_libs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;timescaledb, pg_stat_statements, auto_explain&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# &amp;lt;--- 配置预加载扩展&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_databases&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;extensions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;postgis, timescaledb, vector ]           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# &amp;lt;--- 在数据库中启用&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;脚本&#34; data-td-tab-group=&#34;tab1-tab2-tab3&#34; data-td-tab-value=&#34;tab1&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;脚本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f9aacab9-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f9aacab9-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-ext &amp;lt;cls&amp;gt;           &lt;span class=&#34;c1&#34;&gt;# 在 &amp;lt;cls&amp;gt; 集群上安装配置中定义的扩展&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-ext &amp;lt;cls&amp;gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;ext...&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 在 &amp;lt;cls&amp;gt; 集群上安装命令行参数给出的扩展&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;剧本&#34; data-td-tab-value=&#34;tab2&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;剧本&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f9aacab9-fence-2&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f9aacab9-fence-2-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql.yml -l pg-meta -t pg_ext    &lt;span class=&#34;c1&#34;&gt;# 使用剧本安装扩展&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;示例&#34; data-td-tab-value=&#34;tab3&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;示例&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f9aacab9-fence-3&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f9aacab9-fence-3-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-ext pg-meta                         &lt;span class=&#34;c1&#34;&gt;# 在 pg-meta 集群上安装定义的扩展&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-ext pg-meta pg_duckdb pg_mooncake   &lt;span class=&#34;c1&#34;&gt;# 安装指定扩展&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;关于扩展的完整参考，请查阅 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/&#34;&gt;&lt;strong&gt;扩展插件&lt;/strong&gt;&lt;/a&gt; 章节。关于可用扩展列表，请参考 &lt;a href=&#34;https://pigsty.cc/ext/list/&#34;&gt;&lt;strong&gt;扩展目录&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PG 高可用</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 的 PostgreSQL 集群带有开箱即用的高可用方案，由 &lt;a href=&#34;https://pigsty.cc/docs/patroni&#34;&gt;&lt;strong&gt;Patroni&lt;/strong&gt;&lt;/a&gt;、&lt;a href=&#34;https://etcd.io/&#34;&gt;&lt;strong&gt;Etcd&lt;/strong&gt;&lt;/a&gt; 和 &lt;a href=&#34;http://www.haproxy.org/&#34;&gt;&lt;strong&gt;HAProxy&lt;/strong&gt;&lt;/a&gt; 提供核心能力。&lt;/p&gt;&#xA;&lt;p&gt;当您的 PostgreSQL 集群含有两个或更多实例时，您无需任何配置即拥有了硬件故障自愈的数据库高可用能力 —— 只要集群中有任意实例存活，集群就可以对外提供完整的服务，而客户端只要连接至集群中的任意节点，即可获得完整的服务，而无需关心主从拓扑变化。&lt;/p&gt;</description>
      </item>
    <item>
        <title>RPO 利弊权衡</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/rpo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/rpo/</guid>
        <description>&lt;p&gt;&lt;strong&gt;RPO&lt;/strong&gt;（Recovery Point Objective，恢复点目标）定义了在主库发生故障时，&lt;strong&gt;允许丢失的最大数据量&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;对于金融交易这类数据完整性至关重要的场景，通常要求 RPO = 0，即不允许任何数据丢失；&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL 架构</title>
        <link>https://pgsty.pro/zh/docs/concept/arch/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/arch/pgsql/</guid>
        <description>&lt;p&gt;PGSQL 模块在生产环境中以 &lt;strong&gt;集群&lt;/strong&gt; 的形式组织，这些 &lt;strong&gt;集群&lt;/strong&gt; 是由一组通过 &lt;strong&gt;主-备&lt;/strong&gt; 关联的数据库 &lt;strong&gt;实例&lt;/strong&gt; 组成的 &lt;strong&gt;逻辑实体&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL 模块&lt;/strong&gt;&lt;/a&gt; 包含下列组件，协同提供生产级 PostgreSQL 高可用集群服务：&lt;/p&gt;</description>
      </item>
    <item>
        <title>RTO 利弊权衡</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/rto/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/rto/</guid>
        <description>&lt;p&gt;&lt;strong&gt;RTO&lt;/strong&gt;（Recovery Time Objective，恢复时间目标）定义了在主库发生故障时，&lt;strong&gt;系统恢复写入能力所需的最长时间&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;对于核心交易系统这类可用性至关重要的场景，通常要求 RTO 尽可能短，例如一分钟内。&lt;/p&gt;</description>
      </item>
    <item>
        <title>故障切换模型</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/</guid>
        <description>&lt;p&gt;Patroni 故障按故障对象分类可以分为以下 10 类，按照检测路径不同，可以进一步归纳为五类，在本节内详细展开。&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;#&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;故障场景&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;描述&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;最终走哪条路径&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;1&lt;/td&gt;&#xA;      &lt;td&gt;PG 进程崩溃&lt;/td&gt;&#xA;      &lt;td&gt;crash、OOM killed&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;2&lt;/td&gt;&#xA;      &lt;td&gt;PG 拒绝连接&lt;/td&gt;&#xA;      &lt;td&gt;max_connections&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;3&lt;/td&gt;&#xA;      &lt;td&gt;PG 假活&lt;/td&gt;&#xA;      &lt;td&gt;进程在但无响应&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt; (检测超时)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;4&lt;/td&gt;&#xA;      &lt;td&gt;Patroni 进程崩溃&lt;/td&gt;&#xA;      &lt;td&gt;kill -9、OOM&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;被动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;5&lt;/td&gt;&#xA;      &lt;td&gt;Patroni 假活&lt;/td&gt;&#xA;      &lt;td&gt;进程在但卡住&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;Watchdog&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;6&lt;/td&gt;&#xA;      &lt;td&gt;节点宕机&lt;/td&gt;&#xA;      &lt;td&gt;断电、硬件故障&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;被动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;7&lt;/td&gt;&#xA;      &lt;td&gt;节点假活&lt;/td&gt;&#xA;      &lt;td&gt;IO hang、CPU 饥饿&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;Watchdog&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;8&lt;/td&gt;&#xA;      &lt;td&gt;主库 ↔ DCS 网络中断&lt;/td&gt;&#xA;      &lt;td&gt;防火墙、交换机故障&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;网络分区&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;9&lt;/td&gt;&#xA;      &lt;td&gt;存储故障&lt;/td&gt;&#xA;      &lt;td&gt;磁盘坏、磁盘满、挂载失败&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt; 或 &lt;strong&gt;Watchdog&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;10&lt;/td&gt;&#xA;      &lt;td&gt;手动切换&lt;/td&gt;&#xA;      &lt;td&gt;Switchover/Failover&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;手动触发&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;但是在 RTO 计算上，最终所有故障都会收敛到两条路径上，本节深入探讨了这两种情况下的 RTO 上下限与均值。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复 —— 数据库的时间机器（PITR）</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;当您不小心删除了数据、表、甚至整个数据库时，时间点恢复（Point-in-Time Recovery，PITR）让您可以回到过去。&lt;/p&gt;&#xA;&lt;p&gt;—— 这个曾经只有资深 DBA 才能施展的『魔法』，在 Pigsty 的标准配置中零配置开箱即用。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的工作原理</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/mechanism/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/mechanism/</guid>
        <description>&lt;p&gt;如果把数据库看作一台状态机，那么 &lt;strong&gt;WAL&lt;/strong&gt;（Write-Ahead Log，预写式日志）就是它的完整变更历史 ——&#xA;PostgreSQL 的每一次写入，都会先以日志记录的形式落盘，然后才应用到数据文件上。&#xA;这个为崩溃恢复而生的机制带来了一个副产品：只要把某个时刻的数据文件快照保存下来，&#xA;再持续保留此后产生的 WAL，就可以把数据库 &lt;strong&gt;重放&lt;/strong&gt; 到这段历史所覆盖的任意时间点。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的实现架构</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/arch/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/arch/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/pitr/mechanism/&#34;&gt;&lt;strong&gt;原理&lt;/strong&gt;&lt;/a&gt; 一页就能讲完，工程却没有那么简单：&#xA;归档不能拖垮主库的写入性能，备份放到对象存储上要加密，主从切换之后备份不能中断，&#xA;多套集群共用一个仓库时要相互隔离，海量小文件会拖垮备份吞吐……&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的策略权衡</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/tradeoff/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/tradeoff/</guid>
        <description>&lt;p&gt;备份本质上是一份保险：&lt;strong&gt;保费&lt;/strong&gt; 是存储空间、网络带宽与管理成本，&lt;strong&gt;保额&lt;/strong&gt; 是灾难来临时能挽回多少数据、多快恢复服务。&#xA;和所有保险一样，这里没有免费的午餐 —— 更长的恢复窗口意味着更多的空间，更快的恢复意味着更频繁的备份。&lt;/p&gt;</description>
      </item>
    <item>
        <title>声明式恢复</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/restore/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/restore/</guid>
        <description>&lt;p&gt;备份系统的全部价值，都在恢复的那一刻兑现。而恢复几乎总是发生在最糟糕的时刻 ——&#xA;生产事故、深夜告警、每一分钟都在损失。传统的 PITR 手工流程在这种时刻是残酷的：&#xA;停 HA、停库、写恢复配置、执行还原、盯日志、验证位点、重建元数据、拉起集群……十几个步骤环环相扣，任何一步出错都可能雪上加霜。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的典型场景</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/scenarios/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/scenarios/</guid>
        <description>&lt;p&gt;事故发生时，最贵的不是恢复本身，而是 &lt;strong&gt;决策时间&lt;/strong&gt;。&#xA;恢复的机械步骤已经被 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/pitr/restore/&#34;&gt;&lt;strong&gt;工具编排&lt;/strong&gt;&lt;/a&gt; 好了，真正需要人来回答的只有三个问题：&#xA;&lt;strong&gt;恢复到哪一刻？原地恢复还是克隆恢复？如何验证数据是对的？&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>安全合规</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/</guid>
        <description>&lt;p&gt;数据库通常是信息系统中最敏感的组件：它保存着最有价值的数据，也因此是攻击与故障后果最严重的地方。&#xA;数据库安全并不是某个可以一键开启的功能，而是一系列问题的答案之和：谁能连进来？连进来能做什么？流量会不会被窃听？操作有没有留痕？数据坏了、丢了、被删了，还能不能恢复？&lt;/p&gt;</description>
      </item>
    <item>
        <title>安全模型</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/level/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/level/</guid>
        <description>&lt;p&gt;在讨论具体的安全特性之前，值得先回答两个更基本的问题：&lt;strong&gt;信任的根在哪里&lt;/strong&gt;，以及 &lt;strong&gt;防线有几道&lt;/strong&gt;。&#xA;前者决定了你应该重点保护什么，后者决定了当某一道防线失守时，你还剩下什么。&lt;/p&gt;</description>
      </item>
    <item>
        <title>身份认证</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/auth/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/auth/</guid>
        <description>&lt;p&gt;PostgreSQL 使用 &lt;code&gt;pg_hba.conf&lt;/code&gt; 进行 &lt;strong&gt;基于主机的认证&lt;/strong&gt;（Host-Based Authentication）：谁（用户）、从哪里（来源地址）、访问什么（数据库）、需要以何种方式证明身份（认证方法）。&lt;/p&gt;</description>
      </item>
    <item>
        <title>访问控制</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/ac/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/ac/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;认证&lt;/strong&gt;&lt;/a&gt; 回答“你是谁”，授权回答“你能做什么”。&lt;/p&gt;&#xA;&lt;p&gt;权限失控很少是因为缺少机制 —— PostgreSQL 的 &lt;code&gt;GRANT&lt;/code&gt; 与 &lt;code&gt;REVOKE&lt;/code&gt; 足够精细。问题在于缺少一套被默认执行的约定：&#xA;业务上线时直接把账号设为属主；临时排障授予超级用户后没有及时回收；新表创建后遗漏授权，最终在生产环境触发权限错误。&lt;/p&gt;</description>
      </item>
    <item>
        <title>加密通信</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/ca/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/ca/</guid>
        <description>&lt;p&gt;TLS 可以提供三类保护：&lt;strong&gt;传输加密&lt;/strong&gt;、&lt;strong&gt;服务端身份验证&lt;/strong&gt; 与 &lt;strong&gt;客户端身份验证&lt;/strong&gt;。这三项能力需要分别配置：启用服务端 TLS 并不等于客户端已经验证了服务端身份，也不等于服务端要求客户端证书。&lt;/p&gt;</description>
      </item>
    <item>
        <title>数据安全</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/data/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/data/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/level/#%e7%bd%91%e7%bb%9c%e8%be%b9%e7%95%8c&#34;&gt;&lt;strong&gt;网络边界&lt;/strong&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;身份认证&lt;/strong&gt;&lt;/a&gt; 和 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;权限控制&lt;/strong&gt;&lt;/a&gt; 用于降低事件发生的概率；当硬件损坏、口令泄露或误操作已经发生时，还需要依靠数据层机制控制影响并完成恢复。&lt;/p&gt;&#xA;&lt;p&gt;数据安全要回答四个问题：数据是 &lt;strong&gt;完整&lt;/strong&gt; 的吗？丢了能 &lt;strong&gt;恢复&lt;/strong&gt; 吗？被拿走了会 &lt;strong&gt;泄密&lt;/strong&gt; 吗？发生了什么能 &lt;strong&gt;查清&lt;/strong&gt; 吗？&lt;/p&gt;</description>
      </item>
    <item>
        <title>合规实践</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/compliance/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/compliance/</guid>
        <description>&lt;p&gt;合规不是一个可以购买的产品，而是一种需要持续证明的状态。它由三部分组成：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;配置&lt;/strong&gt;：安全能力是否启用 —— 这部分由 Pigsty 直接提供；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;流程&lt;/strong&gt;：权限审批、变更管理、恢复演练等制度 —— 需要组织自行建立；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;证据&lt;/strong&gt;：能证明前两者持续有效的记录 —— Pigsty 的 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt;、运行日志和 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/monitor/&#34;&gt;&lt;strong&gt;监控系统&lt;/strong&gt;&lt;/a&gt; 可以提供其中一部分。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;本页从上线前的加固清单开始，给出 Pigsty 安全能力与常见合规框架的映射关系。&#xA;这些映射用于方案设计和差距分析，不构成等保测评结论、SOC 2 审计意见或法律建议。&lt;/p&gt;</description>
      </item>
    <item>
        <title>快速上手 PostgreSQL</title>
        <link>https://pgsty.pro/zh/docs/setup/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/setup/pgsql/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.postgresql.org/&#34;&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;/a&gt;（简称 PG）是世界上最先进、最流行的开源关系型数据库，你可以用它来存储和检索多模态数据。&lt;/p&gt;&#xA;&lt;p&gt;本指南面向有基础 Linux 基本命令行操作经验、但对 PostgreSQL 不太熟悉的开发者，带你快速上手 Pigsty 中的 PG。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PostgreSQL Mongo 模式</title>
        <link>https://pgsty.pro/zh/docs/conf/mongo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/conf/mongo/</guid>
        <description>&lt;p&gt;&lt;code&gt;mongo&lt;/code&gt; 配置模板是一个 &lt;strong&gt;PostgreSQL 部署模式&lt;/strong&gt;，而不是独立的 Pigsty 模块。它由以下组件组成：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;由标准 &lt;code&gt;PGSQL&lt;/code&gt; 模块管理的 PostgreSQL 18&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;documentdb&lt;/code&gt; 扩展及其预加载库&lt;/li&gt;&#xA;&lt;li&gt;通过 Pigsty Docker APP 工作流部署的无状态 FerretDB 代理&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;所有数据、高可用、备份、监控与生命周期管理仍由 PostgreSQL 负责；FerretDB 只提供 MongoDB 线协议兼容端点。&lt;/p&gt;</description>
      </item>
    <item>
        <title>运维 SOP 索引</title>
        <link>https://pgsty.pro/zh/docs/sop/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/sop/</guid>
        <description>&lt;h2 id=&#34;上手路线&#34;&gt;上手路线&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;顺序&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;要解决的问题&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;入口&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Pigsty 由哪些模块组成？&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/arch/&#34;&gt;&lt;strong&gt;积木式架构&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/arch/pgsql/&#34;&gt;&lt;strong&gt;PGSQL 架构&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/model/pgsql/&#34;&gt;&lt;strong&gt;PGSQL 集群模型&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;怎么先跑起来？&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/setup/install/&#34;&gt;&lt;strong&gt;快速上手&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/setup/webui/&#34;&gt;&lt;strong&gt;图形界面&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/setup/pgsql/&#34;&gt;&lt;strong&gt;快速上手 PostgreSQL&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;配置文件该怎么看？&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/&#34;&gt;&lt;strong&gt;声明式配置&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/setup/config/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/parameter/&#34;&gt;&lt;strong&gt;配置参数&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;生产部署要准备什么？&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/planning/&#34;&gt;&lt;strong&gt;架构规划&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;资源准备&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/admin/&#34;&gt;&lt;strong&gt;管理机制&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;怎么部署多节点集群？&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/install/&#34;&gt;&lt;strong&gt;生产部署&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/setup/playbook/&#34;&gt;&lt;strong&gt;执行剧本&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/&#34;&gt;&lt;strong&gt;PGSQL 剧本&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;日常怎么管库？&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/&#34;&gt;&lt;strong&gt;PGSQL 日常管理&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/&#34;&gt;&lt;strong&gt;集群管理&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;用户管理&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/db/&#34;&gt;&lt;strong&gt;数据库管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;怎么验证可靠性？&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/&#34;&gt;&lt;strong&gt;PG 高可用&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;Patroni 管理&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/&#34;&gt;&lt;strong&gt;备份恢复&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/restore/&#34;&gt;&lt;strong&gt;恢复操作&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;任务索引&#34;&gt;任务索引&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;任务&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;先看&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;操作入口&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;准备服务器、磁盘、网络、VIP&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;资源准备&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/planning/&#34;&gt;&lt;strong&gt;架构规划&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/ref/linux/&#34;&gt;&lt;strong&gt;Linux 兼容性&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/install/&#34;&gt;&lt;strong&gt;生产部署&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;准备 SSH、Sudo、管理用户&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/admin/&#34;&gt;&lt;strong&gt;管理机制&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/install/&#34;&gt;&lt;strong&gt;生产部署&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;本地或云上搭沙箱&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/sandbox/&#34;&gt;&lt;strong&gt;沙箱环境&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/vagrant/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/terraform/&#34;&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;单机体验&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/setup/install/&#34;&gt;&lt;strong&gt;快速上手&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./configure -g&lt;/code&gt;，&lt;code&gt;./deploy.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;多节点生产部署&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/&#34;&gt;&lt;strong&gt;部署&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/install/&#34;&gt;&lt;strong&gt;生产部署&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./deploy.yml&lt;/code&gt;，&lt;code&gt;./pgsql.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;离线环境部署&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/setup/offline/&#34;&gt;&lt;strong&gt;离线安装&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/infra/admin/repo/&#34;&gt;&lt;strong&gt;软件仓库管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;选择配置模板&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/template/&#34;&gt;&lt;strong&gt;配置模板&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/conf/&#34;&gt;&lt;strong&gt;模板列表&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./configure -c &amp;lt;template&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;规划集群名、库名、用户名&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/model/pgsql/&#34;&gt;&lt;strong&gt;PGSQL 集群模型&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_cluster&lt;/code&gt;，&lt;code&gt;pg_databases&lt;/code&gt;，&lt;code&gt;pg_users&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;创建数据库集群&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/&#34;&gt;&lt;strong&gt;集群实例配置&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/&#34;&gt;&lt;strong&gt;集群管理&lt;/strong&gt;&lt;/a&gt;，&lt;code&gt;./pgsql.yml -l &amp;lt;cluster&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;新增业务用户&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/user/&#34;&gt;&lt;strong&gt;用户/角色配置&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;用户管理&lt;/strong&gt;&lt;/a&gt;，&lt;code&gt;./pgsql-user.yml -l &amp;lt;cluster&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;新增业务数据库&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/db/&#34;&gt;&lt;strong&gt;数据库配置&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/db/&#34;&gt;&lt;strong&gt;数据库管理&lt;/strong&gt;&lt;/a&gt;，&lt;code&gt;./pgsql-db.yml -l &amp;lt;cluster&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;配置访问入口&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/service/&#34;&gt;&lt;strong&gt;服务/接入&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_services&lt;/code&gt;，&lt;code&gt;pg_default_services&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;修改 HBA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;HBA 配置&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/hba/&#34;&gt;&lt;strong&gt;HBA 管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;主从切换&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;Patroni 管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;patronictl switchover&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;HA 故障演练&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/&#34;&gt;&lt;strong&gt;PG 高可用&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/rpo/&#34;&gt;&lt;strong&gt;RPO&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/rto/&#34;&gt;&lt;strong&gt;RTO&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/tutorial/drill/&#34;&gt;&lt;strong&gt;3坏2应急处理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;配置 VIP&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/svc/&#34;&gt;&lt;strong&gt;HA 服务接入&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/tutorial/pg-vip/&#34;&gt;&lt;strong&gt;配置 PG VIP&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;配置备份策略&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/policy/&#34;&gt;&lt;strong&gt;备份策略&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/admin/&#34;&gt;&lt;strong&gt;备份管理命令&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;做 PITR 时间点恢复&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/pitr/&#34;&gt;&lt;strong&gt;时间点恢复&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/restore/&#34;&gt;&lt;strong&gt;恢复操作&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;误删数据、表、库&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/tutorial/drop/&#34;&gt;&lt;strong&gt;误删处理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/tutorial/pitr/&#34;&gt;&lt;strong&gt;手工恢复&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;克隆恢复集群&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/cluster/&#34;&gt;&lt;strong&gt;克隆数据库集群&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/tutorial/pg-fork/&#34;&gt;&lt;strong&gt;Fork 实例&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;使用 Silo 存备份&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/minio/&#34;&gt;&lt;strong&gt;MINIO 模块&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/minio/config/&#34;&gt;&lt;strong&gt;Silo 配置&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/backup/repository/&#34;&gt;&lt;strong&gt;备份仓库&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;查看监控告警&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/monitor/&#34;&gt;&lt;strong&gt;监控系统&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/monitor/&#34;&gt;&lt;strong&gt;PGSQL 监控&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/dashboard/&#34;&gt;&lt;strong&gt;PGSQL 仪表盘&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;排查数据库故障&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/faq/&#34;&gt;&lt;strong&gt;PGSQL 常见问题&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/tutorial/failure/&#34;&gt;&lt;strong&gt;故障排查&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/component/&#34;&gt;&lt;strong&gt;组件管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;扩容、缩容 PG 集群&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/cluster/&#34;&gt;&lt;strong&gt;集群实例配置&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/cluster/&#34;&gt;&lt;strong&gt;集群管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;升级 PostgreSQL&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/upgrade/&#34;&gt;&lt;strong&gt;版本升级&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/kernel/&#34;&gt;&lt;strong&gt;内核版本&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;安装或启用扩展&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/&#34;&gt;&lt;strong&gt;扩展插件&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/ext/&#34;&gt;&lt;strong&gt;扩展管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;迁移已有数据库&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/migration/&#34;&gt;&lt;strong&gt;数据迁移&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-migrationyml&#34;&gt;&lt;strong&gt;迁移剧本&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;做安全加固&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/security/&#34;&gt;&lt;strong&gt;安全考量&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;访问控制&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ca/&#34;&gt;&lt;strong&gt;CA 与证书&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;管理域名与 Web 入口&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/infra/admin/domain/&#34;&gt;&lt;strong&gt;域名管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/infra/admin/portal/&#34;&gt;&lt;strong&gt;Nginx 管理&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;维护基础设施&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/infra/admin/&#34;&gt;&lt;strong&gt;INFRA 管理预案&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;infra.yml&lt;/code&gt;，&lt;code&gt;infra-rm.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;维护 Etcd&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/etcd/config/&#34;&gt;&lt;strong&gt;ETCD 配置&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/etcd/admin/&#34;&gt;&lt;strong&gt;ETCD 管理&lt;/strong&gt;&lt;/a&gt;，&lt;a href=&#34;https://pgsty.pro/zh/docs/etcd/faq/&#34;&gt;&lt;strong&gt;ETCD FAQ&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;部署应用模板&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.cc/docs/app/&#34;&gt;&lt;strong&gt;应用&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/docker/usage/&#34;&gt;&lt;strong&gt;Docker 模块&lt;/strong&gt;&lt;/a&gt;，&lt;code&gt;./app.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;准备与部署&#34;&gt;准备与部署&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;生产部署先看 &lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/planning/&#34;&gt;&lt;strong&gt;架构规划&lt;/strong&gt;&lt;/a&gt; 和 &lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;资源准备&lt;/strong&gt;&lt;/a&gt;。这两篇解决节点数量、磁盘、文件系统、网络、VIP、域名、软件源这些问题。&lt;/p&gt;</description>
      </item>
    <item>
        <title>模块：PGSQL</title>
        <link>https://pgsty.pro/zh/docs/pgsql/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/</guid>
        <description>&lt;p&gt;PGSQL 是 Pigsty 的核心模块：通过 Ansible 清单声明 PostgreSQL 集群，以 Patroni 与 etcd 提供高可用编排，以 pgBackRest 提供备份/PITR，并通过 HAProxy、VIP、DNS、PgBouncer 与完整可观测性栈提供数据库服务。&lt;/p&gt;</description>
      </item>
    <item>
        <title>配置指南</title>
        <link>https://pgsty.pro/zh/docs/pgsql/_div_concept/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/_div_concept/</guid>
        <description></description>
      </item>
    <item>
        <title>PGSQL 集群模型</title>
        <link>https://pgsty.pro/zh/docs/concept/model/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/model/pgsql/</guid>
        <description>&lt;p&gt;PGSQL 模块在生产环境中以 &lt;strong&gt;集群&lt;/strong&gt; 的形式组织，这些 &lt;strong&gt;集群&lt;/strong&gt; 是由一组由 &lt;strong&gt;主-备&lt;/strong&gt; 关联的数据库 &lt;strong&gt;实例&lt;/strong&gt; 组成的 &lt;strong&gt;逻辑实体&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;每个集群都是一个 &lt;strong&gt;自治&lt;/strong&gt; 的业务单元，由至少一个 &lt;strong&gt;主库实例&lt;/strong&gt; 组成，并通过服务向外暴露能力。&lt;/p&gt;</description>
      </item>
    <item>
        <title>集群配置</title>
        <link>https://pgsty.pro/zh/docs/pgsql/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/config/</guid>
        <description>&lt;p&gt;Pigsty 是一个“配置驱动”的 PostgreSQL 平台：所有行为都来自 &lt;code&gt;~/pigsty/conf/*.yml&lt;/code&gt; 清单与 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/param/&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt; 参数&lt;/a&gt; 的组合。&lt;/p&gt;&#xA;&lt;p&gt;只要写好配置，你就能在几分钟内复刻出一套包含实例、用户、数据库、访问控制、扩展与调优策略的定制集群。&lt;/p&gt;</description>
      </item>
    <item>
        <title>服务/接入</title>
        <link>https://pgsty.pro/zh/docs/pgsql/service/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/service/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;分离读写操作，正确路由流量，稳定可靠地交付 PostgreSQL 集群提供的能力。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/service/#%e6%9c%8d%e5%8a%a1%e6%a6%82%e8%bf%b0&#34;&gt;服务&lt;/a&gt; 是一种抽象：它是数据库集群对外提供能力的形式，并封装了底层集群的细节。&lt;/p&gt;&#xA;&lt;p&gt;服务对于生产环境中的 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/service/#%e6%8e%a5%e5%85%a5%e6%9c%8d%e5%8a%a1&#34;&gt;稳定接入&lt;/a&gt; 至关重要，在 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/&#34;&gt;高可用&lt;/a&gt; 集群自动故障时方显其价值，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/service/#%e5%8d%95%e6%9c%ba%e7%94%a8%e6%88%b7&#34;&gt;单机用户&lt;/a&gt; 通常不需要操心这个概念。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PostgreSQL 安全</title>
        <link>https://pgsty.pro/zh/docs/pgsql/security/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/security/</guid>
        <description>&lt;p&gt;PostgreSQL 安全由身份认证、权限控制、网络边界、加密通信、数据保护和运维流程共同构成。Pigsty 提供这些机制的配置入口，但部署方仍需根据环境完成加固、验证和持续审计。&lt;/p&gt;</description>
      </item>
    <item>
        <title>用户/角色</title>
        <link>https://pgsty.pro/zh/docs/pgsql/misc/user/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/misc/user/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在这里的上下文中，用户指的是使用 SQL 命令 &lt;code&gt;CREATE USER/ROLE&lt;/code&gt; 创建的，数据库集簇内的逻辑对象。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;在 PostgreSQL 中，用户直接隶属于数据库集簇而非某个具体的数据库。因此在创建业务数据库和业务用户时，应当遵循&amp;quot;先用户，后数据库&amp;quot;的原则。&lt;/p&gt;</description>
      </item>
    <item>
        <title>数据库</title>
        <link>https://pgsty.pro/zh/docs/pgsql/misc/db/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/misc/db/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在这里的上下文中，数据库指的是使用 SQL 命令 &lt;code&gt;CREATE DATABASE&lt;/code&gt; 创建的，数据库集簇内的逻辑对象。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;一组 PostgreSQL 服务器可以同时服务于多个 &lt;strong&gt;数据库&lt;/strong&gt; （Database）。在 Pigsty 中，你可以在集群配置中 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/misc/db/#%e5%ae%9a%e4%b9%89%e6%95%b0%e6%8d%ae%e5%ba%93&#34;&gt;定义&lt;/a&gt; 好所需的数据库。&lt;/p&gt;</description>
      </item>
    <item>
        <title>服务/接入</title>
        <link>https://pgsty.pro/zh/docs/pgsql/misc/svc/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/misc/svc/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;分离读写操作，正确路由流量，稳定可靠地交付 PostgreSQL 集群提供的能力。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/misc/svc/#%e6%9c%8d%e5%8a%a1%e6%a6%82%e8%bf%b0&#34;&gt;服务&lt;/a&gt; 是一种抽象：它是数据库集群对外提供能力的形式，并封装了底层集群的细节。&lt;/p&gt;&#xA;&lt;p&gt;服务对于生产环境中的 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/misc/svc/#%e6%8e%a5%e5%85%a5%e6%9c%8d%e5%8a%a1&#34;&gt;稳定接入&lt;/a&gt; 至关重要，在 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/&#34;&gt;高可用&lt;/a&gt; 集群自动故障时方显其价值，&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/misc/svc/#%e5%8d%95%e6%9c%ba%e7%94%a8%e6%88%b7&#34;&gt;单机用户&lt;/a&gt; 通常不需要操心这个概念。&lt;/p&gt;</description>
      </item>
    <item>
        <title>认证 / HBA</title>
        <link>https://pgsty.pro/zh/docs/pgsql/misc/hba/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/misc/hba/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Pigsty 中基于主机的身份认证 HBA（Host-Based Authentication）详解。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;认证是 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/&#34;&gt;访问控制&lt;/a&gt; 与 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/#%e9%bb%98%e8%ae%a4%e6%9d%83%e9%99%90&#34;&gt;默认权限&lt;/a&gt; 的基础，PostgreSQL 支持多种 &lt;a href=&#34;https://www.postgresql.org/docs/current/client-authentication.html&#34;&gt;认证&lt;/a&gt; 方法。&lt;/p&gt;&#xA;&lt;p&gt;这里主要介绍 HBA：Host Based Authentication，HBA 规则定义了哪些用户能够通过哪些方式从哪些地方访问哪些数据库。&lt;/p&gt;</description>
      </item>
    <item>
        <title>访问控制</title>
        <link>https://pgsty.pro/zh/docs/pgsql/misc/acl/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/misc/acl/</guid>
        <description>&lt;p&gt;Pigsty 的访问控制文档已按用途拆分：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;访问控制概念&lt;/strong&gt;&lt;/a&gt;：角色模型、默认权限、数据库 ACL 和实例隔离边界。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/acl/&#34;&gt;&lt;strong&gt;访问控制配置&lt;/strong&gt;&lt;/a&gt;：&lt;code&gt;pg_default_roles&lt;/code&gt;、&lt;code&gt;pg_users&lt;/code&gt;、&lt;code&gt;pg_default_privileges&lt;/code&gt; 等参数。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;身份认证&lt;/strong&gt;&lt;/a&gt;：HBA、SCRAM、证书认证与凭据管理。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;HBA 配置&lt;/strong&gt;&lt;/a&gt;：PostgreSQL 与 PgBouncer 规则语法。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;用户管理&lt;/strong&gt;&lt;/a&gt;：在现有集群中创建、更新和删除用户。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;dbrole_offline&lt;/code&gt; 只提供独立的只读对象权限，不会自动限制实例范围。若要仅允许其访问离线实例，应为对应 HBA 规则显式设置 &lt;code&gt;role: offline&lt;/code&gt;，并验证在线与离线实例生成的 &lt;code&gt;pg_hba.conf&lt;/code&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>管理任务</title>
        <link>https://pgsty.pro/zh/docs/pgsql/_div_admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/_div_admin/</guid>
        <description>&lt;p&gt;数据库管理与运维任务&lt;/p&gt;</description>
      </item>
    <item>
        <title>日常管理</title>
        <link>https://pgsty.pro/zh/docs/pgsql/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/admin/</guid>
        <description></description>
      </item>
    <item>
        <title>故障排查</title>
        <link>https://pgsty.pro/zh/docs/pgsql/tutorial/failure/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/tutorial/failure/</guid>
        <description>&lt;p&gt;本文档列举了 PostgreSQL 和 Pigsty 中可能出现的故障，以及定位、处理、分析问题的 SOP。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;磁盘空间写满&#34;&gt;磁盘空间写满&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;磁盘空间写满是最常见的故障类型。&lt;/p&gt;&#xA;&lt;h3 id=&#34;现象&#34;&gt;现象&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;当数据库所在磁盘空间耗尽时，PostgreSQL 将无法正常工作，可能出现以下现象：数据库日志反复报错&amp;quot;no space left on device&amp;quot;（磁盘空间不足），&#xA;新数据无法写入，甚至 PostgreSQL 可能触发 PANIC 强制关闭。&lt;/p&gt;</description>
      </item>
    <item>
        <title>误删处理</title>
        <link>https://pgsty.pro/zh/docs/pgsql/tutorial/drop/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/tutorial/drop/</guid>
        <description>&lt;h2 id=&#34;误删数据&#34;&gt;误删数据&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;如果是小批量 &lt;code&gt;DELETE&lt;/code&gt; 误操作，可以考虑使用 &lt;a href=&#34;https://pigsty.cc/ext/e/pg_surgery&#34;&gt;&lt;code&gt;pg_surgery&lt;/code&gt;&lt;/a&gt; 或者 &lt;a href=&#34;https://pigsty.cc/ext/e/pg_dirtyread&#34;&gt;&lt;code&gt;pg_dirtyread&lt;/code&gt;&lt;/a&gt; 扩展进行原地手术恢复。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-41a0051e-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;sql&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-41a0051e-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 立即关闭此表上的 Auto Vacuum 并中止 Auto Vacuum 本表的 worker 进程&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;ALTER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;some_table&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;SET&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;autovacuum_enabled&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;off&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;toast&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;autovacuum_enabled&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;off&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EXTENSION&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pg_dirtyread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pg_dirtyread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;tablename&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;type1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;col2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;type2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;...);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;如果被删除的数据已经被 VACUUM 回收，那么使用通用的误删处理流程。&lt;/p&gt;</description>
      </item>
    <item>
        <title>数据迁移</title>
        <link>https://pgsty.pro/zh/docs/pgsql/migration/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/migration/</guid>
        <description>&lt;p&gt;Pigsty 内置了一个剧本 &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/pgsql-migration.yml&#34;&gt;&lt;code&gt;pgsql-migration.yml&lt;/code&gt;&lt;/a&gt;，基于逻辑复制来实现在线数据库迁移。&lt;/p&gt;&#xA;&lt;p&gt;通过预生成的自动化脚本，应用停机时间可以缩减到几秒内。但请注意，逻辑复制需要 PostgreSQL 10 以上的版本才能工作。&lt;/p&gt;&#xA;&lt;p&gt;当然如果您有充足的停机时间预算，那么总是可以使用 &lt;code&gt;pg_dump | psql&lt;/code&gt; 的方式进行停机迁移。&lt;/p&gt;</description>
      </item>
    <item>
        <title>参考资料</title>
        <link>https://pgsty.pro/zh/docs/pgsql/_div_reference/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/_div_reference/</guid>
        <description>&lt;p&gt;参数配置与参考文档&lt;/p&gt;</description>
      </item>
    <item>
        <title>监控系统</title>
        <link>https://pgsty.pro/zh/docs/pgsql/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/monitor/</guid>
        <description>&lt;p&gt;本文介绍了 Pigsty 的监控系统架构，包括监控指标，日志，与目标管理的方式。以及如何 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/monitor/#%e7%9b%91%e6%8e%a7%e7%8e%b0%e6%9c%89%e9%9b%86%e7%be%a4&#34;&gt;监控现有PG集群&lt;/a&gt; 与远程 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/monitor/#%e7%9b%91%e6%8e%a7rds&#34;&gt;RDS服务&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;监控概览&#34;&gt;监控概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 使用现代的可观测技术栈对 PostgreSQL 进行监控：&lt;/p&gt;</description>
      </item>
    <item>
        <title>监控面板</title>
        <link>https://pgsty.pro/zh/docs/pgsql/dashboard/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/dashboard/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Pigsty 为 PostgreSQL 提供了诸多开箱即用的 Grafana 监控仪表盘： &lt;a href=&#34;https://demo.pigsty.cc/ui/d/pgsql-overview&#34;&gt;Demo&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://github.com/pgsty/pigsty/wiki/Gallery&#34;&gt;Gallery&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;当前源码共提供 31 个 PostgreSQL 相关面板：&lt;code&gt;files/grafana/pgsql&lt;/code&gt; 中有 29 个 PostgreSQL / PGCAT 面板，&lt;code&gt;files/grafana/app&lt;/code&gt; 中另有 2 个 PGLOG 面板。它们按层次分为总览、集群、实例、数据库四大类，按数据来源分为 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/dashboard/#%e6%80%bb%e8%a7%88&#34;&gt;PGSQL&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/dashboard/#pgcat&#34;&gt;PGCAT&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/dashboard/#pglog&#34;&gt;PGLOG&lt;/a&gt; 三类。&lt;/p&gt;</description>
      </item>
    <item>
        <title>指标列表</title>
        <link>https://pgsty.pro/zh/docs/pgsql/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/metric/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 模块包含有 638 类可用监控指标。&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Metric Name&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Labels&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Description&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ALERTS&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;category&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;alertname&lt;/code&gt;, &lt;code&gt;alertstate&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ALERTS_FOR_STATE&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;category&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;alertname&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cls:pressure1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cls:pressure15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cls:pressure5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A summary of the pause duration of garbage collection cycles.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_goroutines&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of goroutines that currently exist.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;version&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Information about the Go environment.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_alloc_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes allocated and still in use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_alloc_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes allocated, even if freed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_buck_hash_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes used by the profiling bucket hash table.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_frees_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of frees.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_gc_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes used for garbage collection system metadata.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_heap_alloc_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of heap bytes allocated and still in use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_heap_idle_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of heap bytes waiting to be used.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_heap_inuse_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of heap bytes that are in use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_heap_objects&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of allocated objects.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_heap_released_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of heap bytes released to OS.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_heap_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of heap bytes obtained from system.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_last_gc_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of seconds since 1970 of last garbage collection.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of pointer lookups.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_mallocs_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of mallocs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_mcache_inuse_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes in use by mcache structures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_mcache_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes used for mcache structures obtained from system.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_mspan_inuse_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes in use by mspan structures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_mspan_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes used for mspan structures obtained from system.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_next_gc_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of heap bytes when next garbage collection will take place.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_other_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes used for other system allocations.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_stack_inuse_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes in use by the stack allocator.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_stack_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes obtained from system for stack allocator.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_sys_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes obtained from system.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_threads&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of OS threads created.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ins:pressure1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ins:pressure15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ins:pressure5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_cluster_unlocked&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if the cluster is unlocked, 0 if locked.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_dcs_last_seen&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Epoch timestamp when DCS was last contacted successfully by Patroni.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_failsafe_mode_is_active&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if failsafe mode is active, 0 if inactive.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_is_paused&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if auto failover is disabled, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_master&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if this node is the leader, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_pending_restart&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if the node needs a restart, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_postgres_in_archive_recovery&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if Postgres is replicating from archive, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_postgres_running&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if Postgres is running, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_postgres_server_version&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Version of Postgres (if running), 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_postgres_streaming&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if Postgres is streaming, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_postgres_timeline&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Postgres timeline of this node (if running), 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_postmaster_start_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Epoch seconds since Postgres started.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_primary&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if this node is the leader, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_replica&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if this node is a replica, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_standby_leader&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if this node is the standby_leader, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_sync_standby&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if this node is a sync standby replica, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_version&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Patroni semver without periods.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_xlog_location&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current location of the Postgres transaction log, 0 if this node is not the leader.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_xlog_paused&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if the Postgres xlog is paused, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_xlog_received_location&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current location of the received Postgres transaction log, 0 if this node is not a replica.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_xlog_replayed_location&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current location of the replayed Postgres transaction log, 0 if this node is not a replica.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;patroni_xlog_replayed_timestamp&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;scope&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current timestamp of the replayed Postgres transaction log, 0 if null.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:active_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:active_time_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:active_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:active_time_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:age&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:buf_alloc_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:buf_clean_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:buf_flush_backend_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:buf_flush_checkpoint_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:cpu_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:cpu_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:cpu_usage_15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:cpu_usage_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:cpu_usage_5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:db_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:file_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:ixact_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:ixact_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:lag_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:lag_seconds&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:leader&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:load1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:load15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:load5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:lock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:locks&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:log_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:lsn_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:members&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:num_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:partition&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:receiver&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:rlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:saturation1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:saturation15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:saturation5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:sender&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:session_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:slot_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:slot_retained_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:standby_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:sync_state&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:timeline&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:tup_deleted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:tup_fetched_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:tup_inserted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:tup_modified_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:tup_returned_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:wal_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_commit_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_commit_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_commit_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_rollback_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_rollback_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_rollback_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_total_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_total_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xact_total_sigma15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:cls:xlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:active_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:active_time_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:active_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:active_time_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:age&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:age_deriv1h&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:age_exhaust&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:blk_io_time_seconds_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:blk_read_time_seconds_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:blk_write_time_seconds_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:blks_access_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:blks_hit_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:blks_hit_ratio1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:blks_read_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:conn_limit&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:conn_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:db_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:ixact_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:ixact_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:lock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:num_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:rlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:session_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:temp_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:temp_files_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:tup_deleted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:tup_fetched_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:tup_inserted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:tup_modified_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:tup_returned_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:wlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_commit_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_commit_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_commit_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_rollback_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_rollback_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_rollback_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_total_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_total_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_total_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xact_total_sigma15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:db:xlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:active_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:active_time_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:active_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:active_time_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:age&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:cpu_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:cpu_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:cpu_usage_15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:cpu_usage_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:cpu_usage_5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:ixact_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:ixact_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:lag_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:lag_seconds&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:lsn_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:session_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:tup_deleted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:tup_fetched_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:tup_inserted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:tup_modified_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:tup_returned_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_commit_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_commit_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_commit_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_rollback_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_rollback_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_rollback_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_total_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_total_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:env:xact_total_sigma15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:active_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:active_time_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:active_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:active_time_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:age&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:blks_hit_ratio1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:buf_alloc_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:buf_clean_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:buf_flush_backend_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:buf_flush_checkpoint_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:ckpt_1h&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:ckpt_req_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:ckpt_timed_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:conn_limit&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:conn_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:cpu_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:cpu_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:cpu_usage_15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:cpu_usage_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:cpu_usage_5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:db_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:file_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:fs_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:is_leader&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:ixact_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:ixact_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:lag_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:lag_seconds&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:load1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:load15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:load5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:lock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:locks&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;mode&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:log_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:lsn_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:mem_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:num_backends&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:rlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:saturation1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:saturation15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:saturation5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:session_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:slot_retained_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:space_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:status&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:sync_state&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:target_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:timeline&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:tup_deleted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:tup_fetched_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:tup_inserted_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:tup_modified_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:tup_returned_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:wal_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:wlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_commit_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_commit_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_commit_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_rollback_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_rollback_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_rollback_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_total_rate15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_total_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_total_rate5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xact_total_sigma15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:ins:xlock_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:query:call_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:query:rt_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg:table:scan_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_activity_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Count of connection among (datname,state)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_activity_max_conn_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Max backend session duration since state change among (datname, state)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_activity_max_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Max duration since last state change among (datname, state)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_activity_max_tx_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Max transaction duration since state change among (datname, state)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_archiver_failed_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of failed attempts for archiving WAL files&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_archiver_finish_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of WAL files that have been successfully archived&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_archiver_last_failed_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time of the last failed archival operation&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_archiver_last_finish_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time of the last successful archive operation&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_archiver_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time at which archive statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_backend_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Database backend process count by backend_type&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_buffers_alloc&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffers allocated&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_buffers_backend&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffers written directly by a backend&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_buffers_backend_fsync&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times a backend had to execute its own fsync call&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_buffers_checkpoint&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffers written during checkpoints&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_buffers_clean&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffers written by the background writer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_checkpoint_sync_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_checkpoint_write_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_checkpoints_req&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of requested checkpoints that have been performed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_checkpoints_timed&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of scheduled checkpoints that have been performed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_maxwritten_clean&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times the background writer stopped a cleaning scan because it had written too many buffers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_bgwriter_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time at which bgwriter statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_boot_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;unix timestamp when postmaster boot&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_checkpoint_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint location&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_elapse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Seconds elapsed since latest checkpoint in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_full_page_writes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s full_page_writes enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_newest_commit_ts_xid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s newestCommitTsXid&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_next_multi_offset&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s NextMultiOffset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_next_multixact_id&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s NextMultiXactId&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_next_oid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s NextOID&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_next_xid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s NextXID xid&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_next_xid_epoch&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s NextXID epoch&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_oldest_active_xid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s oldestActiveXID&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_oldest_commit_ts_xid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s oldestCommitTsXid&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_oldest_multi_dbid&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s oldestMulti&amp;rsquo;s DB OID&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_oldest_multi_xid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s oldestMultiXid&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_oldest_xid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s oldestXID&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_oldest_xid_dbid&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s oldestXID&amp;rsquo;s DB OID&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_prev_tli&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s PrevTimeLineID&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_redo_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s REDO location&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time of latest checkpoint&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_checkpoint_tli&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latest checkpoint&amp;rsquo;s TimeLineID&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_conf_reload_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds since last configuration reload&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_active_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent executing SQL statements in this database, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_age&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Age of database calculated from datfrozenxid&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_allow_conn&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;If false(0) then no one can connect to this database.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_blk_read_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent reading data file blocks by backends in this database, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_blk_write_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent writing data file blocks by backends in this database, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_blks_access&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times disk blocks that accessed read+hit&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_blks_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times disk blocks were found already in the buffer cache&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_blks_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of disk blocks read in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_cks_fail_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time at which the last data page checksum failure was detected in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_cks_fails&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of data page checksum failures detected in this database, -1 for not enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_confl_confl_bufferpin&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries in this database that have been canceled due to pinned buffers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_confl_confl_deadlock&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries in this database that have been canceled due to deadlocks&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_confl_confl_lock&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries in this database that have been canceled due to lock timeouts&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_confl_confl_snapshot&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries in this database that have been canceled due to old snapshots&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_confl_confl_tablespace&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries in this database that have been canceled due to dropped tablespaces&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_conflicts&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries canceled due to conflicts with recovery in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_conn_limit&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Sets maximum number of concurrent connections that can be made to this database. -1 means no limit.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_datid&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;OID of the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_deadlocks&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of deadlocks detected in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_frozen_xid&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;All transaction IDs before this one have been frozened&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_is_template&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;If true(1), then this database can be cloned by any user with CREATEDB privileges&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_ixact_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent idling while in a transaction in this database, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_numbackends&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of backends currently connected to this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time at which database statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_session_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent by database sessions in this database, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_sessions&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of sessions established to this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_sessions_abandoned&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of database sessions to this database that were terminated because connection to the client was lost&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_sessions_fatal&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of database sessions to this database that were terminated by fatal errors&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_sessions_killed&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of database sessions to this database that were terminated by operator intervention&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_temp_bytes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of data written to temporary files by queries in this database.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_temp_files&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of temporary files created by queries in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_tup_deleted&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows deleted by queries in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_tup_fetched&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows fetched by queries in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_tup_inserted&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows inserted by queries in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_tup_modified&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows modified by queries in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_tup_returned&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows returned by queries in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_tup_updated&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows updated by queries in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_xact_commit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of transactions in this database that have been committed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_xact_rollback&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of transactions in this database that have been rolled back&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_db_xact_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of transactions in this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_downstream_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Count of corresponding state&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_agent_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_last_scrape_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_query_cache_ttl&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times to live of query cache&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_query_scrape_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds query spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_query_scrape_error_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times the query failed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_query_scrape_hit_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;numbers been scrapped from this query&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_query_scrape_metric_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;numbers of metrics been scrapped from this query&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_query_scrape_total_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter server was scraped for metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_scrape_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_scrape_error_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter was scraped for metrics and failed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_scrape_total_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter was scraped for metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_server_scrape_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter server spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_server_scrape_error_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_server_scrape_total_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter server was scraped for metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_server_scrape_total_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter server spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_up&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;always be 1 if your could retrieve metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_exporter_uptime&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds since exporter primary server inited&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_flush_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;primary only, location of current wal syncing&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_func_calls&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;funcname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times this function has been called&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_func_self_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;funcname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total time spent in this function itself, not including other functions called by it, in ms&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_func_total_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;funcname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total time spent in this function and all other functions called by it, in ms&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_in_recovery&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;server is in recovery mode? 1 for yes 0 for no&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_index_idx_blks_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;relid&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;idxname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffer hits in this index&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_index_idx_blks_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;relid&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;idxname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of disk blocks read from this index&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_index_idx_scan&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;relid&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;idxname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of index scans initiated on this index&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_index_idx_tup_fetch&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;relid&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;idxname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of live table rows fetched by simple index scans using this index&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_index_idx_tup_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;relid&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;idxname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of index entries returned by scans on this index&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_index_relpages&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;relid&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;idxname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the on-disk representation of this index in pages&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_index_reltuples&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;relid&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;idxname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Estimate relation tuples&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_insert_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;primary only, location of current wal inserting&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_evictions&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times a block has been written out from a shared or local buffer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_extend_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent in extend operations in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_extends&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of relation extend operations, each of the size specified in op_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_fsync_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent in fsync operations in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_fsyncs&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of fsync calls. These are only tracked in context normal&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_hits&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of times a desired block was found in a shared buffer.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_op_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of bytes per unit of I/O read, written, or extended. 8192 by default&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_read_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent in read operations in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_reads&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of read operations, each of the size specified in op_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp at which these statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_reuses&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of times an existing buffer in reused&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_write_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent in write operations in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_writeback_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent in writeback operations in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_writebacks&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of units of size op_bytes which the process requested the kernel write out to permanent storage.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_io_writes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;context&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of write operations, each of the size specified in op_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_is_in_recovery&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1 if in recovery mode&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_is_wal_replay_paused&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1 if wal play paused&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_lag&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;replica only, replication lag in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_last_replay_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;time when last transaction been replayed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_lock_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;mode&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of locks of corresponding mode and database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;log sequence number, current write location&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_meta_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;extensions&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;primary_conninfo&lt;/code&gt;, &lt;code&gt;conf_path&lt;/code&gt;, &lt;code&gt;hba_path&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cluster_id&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;listen_port&lt;/code&gt;, &lt;code&gt;wal_level&lt;/code&gt;, &lt;code&gt;ver_num&lt;/code&gt;, &lt;code&gt;cluster_name&lt;/code&gt;, &lt;code&gt;data_dir&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;constant 1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_calls&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times the statement was executed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_exec_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total time spent executing the statement, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_io_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total time the statement spent reading and writing blocks, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_rows&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of rows retrieved or affected by the statement&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_sblk_dirtied&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of shared blocks dirtied by the statement&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_sblk_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of shared block cache hits by the statement&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_sblk_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of shared blocks read by the statement&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_sblk_written&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of shared blocks written by the statement&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_query_wal_bytes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of WAL bytes generated by the statement&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_receive_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;replica only, location of wal synced to disk&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_backup_end_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Backup end location&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_backup_start_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Backup start location&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_min_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Minimum recovery ending location&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_min_timeline&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Min recovery ending loc&amp;rsquo;s timeline&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_block_distance&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many blocks ahead the prefetcher is looking&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks not prefetched because they were already in the buffer pool&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_io_depth&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many prefetches have been initiated but are not yet known to have completed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_prefetch&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks prefetched because they were not in the buffer pool&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time at which these recovery prefetch statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_skip_fpw&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks not prefetched because a full page image was included in the WAL&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_skip_init&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks not prefetched because they would be zero-initialized&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_skip_new&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks not prefetched because they didn&amp;rsquo;t exist yet&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_skip_rep&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks not prefetched because they were already recently prefetched&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_prefetch_wal_distance&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many bytes ahead the prefetcher is looking&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recovery_require_record&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;End-of-backup record required&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_flush_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last write-ahead log location already received and flushed to disk&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_flush_tli&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timeline number of last write-ahead log location received and flushed to disk&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_init_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;First write-ahead log location used when WAL receiver is started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_init_tli&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;First timeline number used when WAL receiver is started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_msg_recv_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Receipt time of last message received from origin WAL sender&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_msg_send_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Send time of last message received from origin WAL sender&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_pid&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Process ID of the WAL receiver process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_reported_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last write-ahead log location reported to origin WAL sender&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_reported_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time of last write-ahead log location reported to origin WAL sender&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time of current snapshot&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_recv_write_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;state&lt;/code&gt;, &lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;sender_host&lt;/code&gt;, &lt;code&gt;sender_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last write-ahead log location already received and written to disk, but not flushed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_relkind_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;relkind&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of relations of corresponding relkind&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_backend_xmin&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;This standby&amp;rsquo;s xmin horizon reported by hot_standby_feedback.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_client_port&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;TCP port number that the client is using for communication with this WAL sender, or -1 if a Unix socket is used&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_flush_diff&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last log position flushed to disk by this standby server diff with current lsn&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_flush_lag&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_flush_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last write-ahead log location flushed to disk by this standby server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_launch_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time when this process was started, i.e., when the client connected to this WAL sender&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current log position on this server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_replay_diff&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last log position replayed into the database on this standby server diff with current lsn&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_replay_lag&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_replay_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last write-ahead log location replayed into the database on this standby server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_reply_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Send time of last reply message received from standby server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_sent_diff&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last log position sent to this standby server diff with current lsn&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_sent_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last write-ahead log location sent on this connection&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_state&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current WAL sender encoded state 0-4 for streaming startup catchup backup stopping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_sync_priority&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Priority of this standby server for being chosen as the synchronous standby&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_sync_state&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Encoded synchronous state of this standby server, 0-3 for async potential sync quorum&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current timestamp in unix epoch&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_write_diff&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last log position written to disk by this standby server diff with current lsn&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_write_lag&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_repl_write_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pid&lt;/code&gt;, &lt;code&gt;usename&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;appname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last write-ahead log location written to disk by this standby server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_replay_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;replica only, location of wal applied&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_seq_blks_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;seqname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffer hits in this sequence&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_seq_blks_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;seqname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of disk blocks read from this sequence&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_seq_last_value&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;seqname&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The last sequence value written to disk&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_block_size&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;pg page block size, 8192 by default&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_data_checksums&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;whether data checksum is enabled, 1 enabled 0 disabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_max_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;number of concurrent connections to the database server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_max_locks_per_transaction&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;no more than this many distinct objects can be locked at any one time&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_max_prepared_transactions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;maximum number of transactions that can be in the prepared state simultaneously&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_max_replication_slots&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;maximum number of replication slots&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_max_wal_senders&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;maximum number of concurrent connections from standby servers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_max_worker_processes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;maximum number of background processes that the system can support&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_setting_wal_log_hints&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;whether wal_log_hints is enabled, 1 enabled 0 disabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;File size in bytes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_active&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;True(1) if this slot is currently actively being used&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_catalog_xmin&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The oldest transaction affecting the system catalogs that this slot needs the database to retain.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_confirm_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The address (LSN) up to which the logical slot&amp;rsquo;s consumer has confirmed receiving data.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;When statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_restart_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The address (LSN) of oldest WAL which still might be required by the consumer of this slot&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_retained_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of bytes that retained for this slot&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_safe_wal_size&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;bytes that can be written to WAL which will not make slot into lost&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_spill_bytes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes that spilled to disk due to logical decode mem exceeding&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_spill_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Xacts that spilled to disk due to logical decode mem exceeding (a xact can be spilled multiple times)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_spill_txns&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Xacts that spilled to disk due to logical decode mem exceeding (subtrans included)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_stream_bytes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes that streamed to decoding output plugin after mem exceed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_stream_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Xacts that streamed to decoding output plugin after mem exceed  (a xact can be streamed multiple times)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_stream_txns&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Xacts that streamed to decoding output plugin after mem exceed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_temporary&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;True(1) if this is a temporary replication slot.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_total_bytes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of decoded bytes sent to the decoding output plugin for this slot&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_total_txns&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of decoded xacts sent to the decoding output plugin for this slot&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_wal_status&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;WAL reserve status 0-3 means reserved,extended,unreserved,lost, -1 means other&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slot_xmin&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;slot_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The oldest transaction that this slot needs the database to retain.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_blks_exists&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks checked for existence for this SLRU&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_blks_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times disk blocks were found already in the SLRU, so that a read was not necessary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_blks_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of disk blocks read for this SLRU&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_blks_written&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of disk blocks written for this SLRU&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_blks_zeroed&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of blocks zeroed during initializations&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_flushes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of flushes of dirty data for this SLRU&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time at which these statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_slru_truncates&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of truncates for this SLRU&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_ssl_disabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of client connection that does not use ssl&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_ssl_enabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of client connection that use ssl&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_sync_standby_enabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;names&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Synchronous commit enabled, 1 if enabled, 0 if disabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_age&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Age of this table in vacuum cycles&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_analyze_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times this table has been manually analyzed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_autoanalyze_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times this table has been analyzed by the autovacuum daemon&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_autovacuum_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times this table has been vacuumed by the autovacuum daemon&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_frozenxid&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;All txid before this have been frozen on this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_heap_blks_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffer hits in this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_heap_blks_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of disk blocks read from this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_idx_blks_hit&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of buffer hits in all indexes on this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_idx_blks_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of disk blocks read from all indexes on this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_idx_scan&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of index scans initiated on this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_idx_tup_fetch&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of live rows fetched by index scans&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_kind&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Relation kind r/table/114&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_dead_tup&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Estimated number of dead rows&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_ins_since_vacuum&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Estimated number of rows inserted since this table was last vacuumed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_live_tup&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Estimated number of live rows&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_mod_since_analyze&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Estimated number of rows modified since this table was last analyzed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_tup_del&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows deleted&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_tup_hot_upd&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows HOT updated (i.e with no separate index update required)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_tup_ins&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows inserted&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_tup_mod&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows modified (insert + update + delete)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_tup_newpage_upd&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows updated where the successor version goes onto a new heap page&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_n_tup_upd&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of rows updated (includes HOT updated rows)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_ncols&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of columns in the table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_pages&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the on-disk representation of this table in pages&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_relid&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Relation oid of this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_seq_scan&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of sequential scans initiated on this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_seq_tup_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of live rows fetched by sequential scans&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total bytes of this table (including toast, index, toast index)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_size_indexsize&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes of all related indexes of this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_size_relsize&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes of this table itself (main, vm, fsm)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_size_toastsize&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes of toast tables of this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_tbl_scan&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of scans initiated on this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_tup_read&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of live rows fetched by scans&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_tuples&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;All txid before this have been frozen on this table&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_table_vacuum_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;relname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times this table has been manually vacuumed (not counting VACUUM FULL)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_timestamp&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;database current timestamp&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_up&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;last scrape was able to connect to the server: 1 for yes, 0 for no&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_uptime&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds since postmaster start&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_version&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;server version number&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wait_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;event&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Count of WaitEvent on target database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_buffers_full&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times WAL data was written to disk because WAL buffers became full&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_bytes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of WAL generated in bytes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_fpi&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of WAL full page images generated&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_records&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of WAL records generated&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_reset_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;When statistics were last reset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_sync&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times WAL files were synced to disk via issue_xlog_fsync request&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_sync_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of time spent syncing WAL files to disk via issue_xlog_fsync request, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_write&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times WAL buffers were written out to disk via XLogWrite request.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_wal_write_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of time spent writing WAL buffers to disk via XLogWrite request in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_write_lsn&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;primary only, location of current wal writing&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_xact_xmax&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;First as-yet-unassigned txid. txid &amp;gt;= this are invisible.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_xact_xmin&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Earliest txid that is still active&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pg_xact_xnum&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current active transaction count&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:cls:load1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:cls:load15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:cls:load5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:conn_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:conn_usage_reserve&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:pool_current_conn&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:pool_disabled&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:pool_max_conn&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:pool_paused&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:pool_reserve_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:db:pool_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:free_clients&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:free_servers&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:load1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:load15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:load5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:login_clients&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:pool_databases&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:pool_users&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:pools&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer:ins:used_clients&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_database_current_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of connections for this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_database_disabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;True(1) if this database is currently disabled, else 0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_database_max_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum number of allowed connections for this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_database_min_pool_size&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Minimum number of server connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_database_paused&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;True(1) if this database is currently paused, else 0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_database_pool_size&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum number of server connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_database_reserve_pool&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;real_datname&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum number of additional connections for this database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_agent_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_last_scrape_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_query_cache_ttl&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times to live of query cache&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_query_scrape_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds query spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_query_scrape_error_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times the query failed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_query_scrape_hit_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;numbers been scrapped from this query&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_query_scrape_metric_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;numbers of metrics been scrapped from this query&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_query_scrape_total_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter server was scraped for metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_scrape_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_scrape_error_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter was scraped for metrics and failed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_scrape_total_count&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter was scraped for metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_server_scrape_duration&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter server spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_server_scrape_total_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;times exporter server was scraped for metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_server_scrape_total_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds exporter server spending on scrapping&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_up&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;always be 1 if your could retrieve metrics&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_exporter_uptime&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;seconds since exporter primary server inited&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_in_recovery&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;server is in recovery mode? 1 for yes 0 for no&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_list_items&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;list&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of corresponding pgbouncer object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_active_cancel_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Client connections that have forwarded query cancellations to the server and are waiting for the server response.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_active_cancel_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server connections that are currently forwarding a cancel request&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_active_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Client connections that are linked to server connection and can process queries&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_active_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server connections that are linked to a client&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_cancel_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Client connections that have not forwarded query cancellations to the server yet.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_cancel_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cancel requests have completed that were sent to cancel a query on this server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_idle_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server connections that are unused and immediately usable for client queries&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_login_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server connections currently in the process of logging in&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_maxwait&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How long the first(oldest) client in the queue has waited, in seconds, key metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_maxwait_us&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Microsecond part of the maximum waiting time.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_tested_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server connections that are currently running reset or check query&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_used_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server connections that have been idle for more than server_check_delay (means have to run check query)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_pool_waiting_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;pool_mode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Client connections that have sent queries but have not yet got a server connection&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_avg_query_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Average queries per second in last stat period&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_avg_query_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Average query duration, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_avg_recv&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Average received (from clients) bytes per second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_avg_sent&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Average sent (to clients) bytes per second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_avg_wait_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent by clients waiting for a server, in seconds (average per second).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_avg_xact_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Average transactions per second in last stat period&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_avg_xact_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Average transaction duration, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_total_query_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of SQL queries pooled by pgbouncer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_total_query_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of seconds spent when executing queries&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_total_received&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total volume in bytes of network traffic received by pgbouncer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_total_sent&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total volume in bytes of network traffic sent by pgbouncer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_total_wait_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time spent by clients waiting for a server, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_total_xact_count&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of SQL transactions pooled by pgbouncer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_stat_total_xact_time&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of seconds spent when in a transaction&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_up&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;last scrape was able to connect to the server: 1 for yes, 0 for no&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pgbouncer_version&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;server version number&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;process_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total user and system CPU time spent in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;process_max_fds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum number of open file descriptors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;process_open_fds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of open file descriptors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;process_resident_memory_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Resident memory size in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;process_start_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Start time of the process since unix epoch in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;process_virtual_memory_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Virtual memory size in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;process_virtual_memory_max_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum amount of virtual memory available in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promhttp_metric_handler_requests_in_flight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of scrapes being served.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promhttp_metric_handler_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;code&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrapes by HTTP status code.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;scrape_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;scrape_samples_post_metric_relabeling&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;scrape_samples_scraped&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;scrape_series_added&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;</description>
      </item>
    <item>
        <title>3坏2应急处理</title>
        <link>https://pgsty.pro/zh/docs/pgsql/tutorial/drill/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/tutorial/drill/</guid>
        <description>&lt;p&gt;如果经典3节点高可用部署同时出现两台（多数主体）故障，系统通常无法自动完成故障切换，需要人工介入：&lt;/p&gt;&#xA;&lt;p&gt;首先判断另外两台服务器的情况，如果短时间内可以拉起，优先选择拉起另外两台服务。否则进入 &lt;strong&gt;紧急止血流程&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>使用 VIP-Manager 为 PostgreSQL 集群配置二层 VIP</title>
        <link>https://pgsty.pro/zh/docs/pgsql/tutorial/pg-vip/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/tutorial/pg-vip/</guid>
        <description>&lt;p&gt;您可以在 PostgreSQL 集群上绑定一个可选的 L2 VIP —— 前提条件是：集群中的所有节点都在一个二层网络中。&lt;/p&gt;&#xA;&lt;p&gt;这个 L2 VIP 强制使用 Master - Backup 模式，Master 始终指向在数据库集群主库实例所在的节点。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Citus 集群部署</title>
        <link>https://pgsty.pro/zh/docs/pgsql/tutorial/citus/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/tutorial/citus/</guid>
        <description>&lt;p&gt;Citus 是一个 PostgreSQL 扩展，可以将 PostgreSQL 原地转换为一个分布式数据库，并实现在多个节点上水平扩展，以处理大量数据和大量查询。&lt;/p&gt;&#xA;&lt;p&gt;Patroni 在 v3.0 后，提供了对 Citus 原生高可用的支持，简化了 Citus 集群的搭建，Pigsty 也对此提供了原生支持。&lt;/p&gt;</description>
      </item>
    <item>
        <title>预置剧本</title>
        <link>https://pgsty.pro/zh/docs/pgsql/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/playbook/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Pigsty 提供了一系列剧本，用于集群上下线扩缩容，用户/数据库管理，监控、备份恢复或迁移已有实例。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;剧本&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;功能&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsqlyml&#34;&gt;&lt;code&gt;pgsql.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;初始化 PostgreSQL 集群或添加新的从库&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-rmyml&#34;&gt;&lt;code&gt;pgsql-rm.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;移除 PostgreSQL 集群，或移除某个实例&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-useryml&#34;&gt;&lt;code&gt;pgsql-user.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;在现有的 PostgreSQL 集群中添加新的业务用户&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-dbyml&#34;&gt;&lt;code&gt;pgsql-db.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;在现有的 PostgreSQL 集群中添加新的业务数据库&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-monitoryml&#34;&gt;&lt;code&gt;pgsql-monitor.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;将远程 PostgreSQL 实例纳入监控中&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-migrationyml&#34;&gt;&lt;code&gt;pgsql-migration.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;为现有的 PostgreSQL 集群生成迁移手册和脚本&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-pitryml&#34;&gt;&lt;code&gt;pgsql-pitr.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;执行 PostgreSQL 时间点恢复 (PITR)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;保护机制&#34;&gt;保护机制&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;使用 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/a&gt; 剧本时需要 &lt;strong&gt;特别注意&lt;/strong&gt;，剧本 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsqlyml&#34;&gt;&lt;code&gt;pgsql.yml&lt;/code&gt;&lt;/a&gt; 与 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/playbook/#pgsql-rmyml&#34;&gt;&lt;code&gt;pgsql-rm.yml&lt;/code&gt;&lt;/a&gt; 使用不当会有误删数据库的风险！&lt;/p&gt;</description>
      </item>
    <item>
        <title>扩展插件</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/</guid>
        <description>&lt;p&gt;Pigsty 提供 &lt;a href=&#34;https://pigsty.cc/ext/list/&#34;&gt;&lt;strong&gt;575 个已打包扩展&lt;/strong&gt;&lt;/a&gt;，覆盖时序、地理、向量、全文检索、分析、特性增强等 16 大类别，开箱即用。&lt;/p&gt;&#xA;&lt;p&gt;在 Pigsty 中使用扩展涉及四个核心步骤：&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/download/&#34;&gt;&lt;strong&gt;下载&lt;/strong&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/install/&#34;&gt;&lt;strong&gt;安装&lt;/strong&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/config/&#34;&gt;&lt;strong&gt;配置/加载&lt;/strong&gt;&lt;/a&gt; 与 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/create/&#34;&gt;&lt;strong&gt;启用&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-1df4aed2-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;9&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-1df4aed2-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_seq&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;1, pg_role&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;primary } }&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;vars&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_cluster&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;pg-meta&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_databases&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;extensions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;postgis, timescaledb, vector ]  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 启用：在数据库中创建扩展&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_libs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;timescaledb, pg_stat_statements, auto_explain&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 配置：预加载扩展库&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_extensions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;postgis, timescaledb, pgvector ] &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 安装：安装扩展软件包&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/pigsty/ecosystem.png&#34; alt=&#34;Pigsty PostgreSQL 扩展生态&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;</description>
      </item>
    <item>
        <title>PostgreSQL</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/postgres/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/postgres/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.postgresql.org/&#34;&gt;PostgreSQL&lt;/a&gt; 是世界上最先进和最受欢迎的开源数据库。&lt;/p&gt;&#xA;&lt;p&gt;默认安装 PostgreSQL 18，支持 PostgreSQL 14 ~ 18，并提供 575 个 PG 扩展。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;快速开始&#34;&gt;快速开始&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;使用 &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/pgsql.yml&#34;&gt;&lt;code&gt;pgsql&lt;/code&gt;&lt;/a&gt; 配置模板 &lt;a href=&#34;https://pgsty.pro/zh/docs/setup/install/&#34;&gt;&lt;strong&gt;安装&lt;/strong&gt;&lt;/a&gt; Pigsty。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Citus</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/citus/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/citus/</guid>
        <description>&lt;p&gt;Pigsty 原生支持 Citus。这是一个基于原生 PostgreSQL 内核的分布式水平扩展插件。&lt;/p&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/pigsty/citus.jpg&#34; alt=&#34;Citus&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;安装&#34;&gt;安装&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Citus 是一个 PostgreSQL &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/&#34;&gt;扩展插件&lt;/a&gt;，可以按照标准插件安装的流程，在原生 PostgreSQL 集群上加装启用。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-8fcc0cd5-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-8fcc0cd5-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql.yml -t pg_extension -e &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;pg_extensions&amp;#34;:[&amp;#34;citus&amp;#34;]}&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;配置&#34;&gt;配置&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;要定义一个 citus 集群，您需要指定以下参数：&lt;/p&gt;</description>
      </item>
    <item>
        <title>Babelfish</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/babelfish/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/babelfish/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://babelfishpg.org/&#34;&gt;Babelfish&lt;/a&gt; 是一个提供 MS SQL Server 线缆协议兼容性的内核分支 + 扩展，由 AWS 开源。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 允许您使用 &lt;code&gt;mssql&lt;/code&gt; 模式部署 Babelfish 内核，在 PostgreSQL 上提供：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL Server 线缆协议兼容（TDS 协议，&lt;code&gt;1433&lt;/code&gt; 端口）&lt;/li&gt;&#xA;&lt;li&gt;T-SQL 语法兼容&lt;/li&gt;&#xA;&lt;li&gt;与 Pigsty 现有能力（高可用、备份、监控、IaC）统一集成&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;在 Pigsty v4 中，Babelfish 支持 &lt;strong&gt;PostgreSQL 17/18&lt;/strong&gt;，默认模板使用 &lt;code&gt;pg_version: 17&lt;/code&gt;，并已经纳入 Pigsty 标准交付链路。支持所有 Linux 平台。&lt;/p&gt;</description>
      </item>
    <item>
        <title>IvorySQL</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/ivorysql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/ivorysql/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.ivorysql.org/&#34;&gt;IvorySQL&lt;/a&gt; 是一个开源的，旨在基于 PG 提供 “Oracle 兼容性” 的 PostgreSQL 内核分支。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty PGSQL 仓库直接提供 IvorySQL 5.4 软件包，兼容 PostgreSQL 18.4，并覆盖当前支持的 EL、Debian、Ubuntu 与双架构平台。&#xA;在线安装使用 Pigsty 的 &lt;code&gt;pgsql&lt;/code&gt; 仓库；商业版同时提供对应平台的离线交付方案。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PolarDB PG</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/polardb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/polardb/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 允许使用 PolarDB 创建带有 “国产化信创资质” 的 PostgreSQL 集群！&lt;/p&gt;&#xA;&lt;p&gt;PolarDB for PostgreSQL 当前以 PostgreSQL 17 为基线，Pigsty 中的 &lt;code&gt;polar&lt;/code&gt; 模板、默认路径与扩展说明也已经同步到 PG17。任何兼容 PostgreSQL 线缆协议的客户端工具都可以访问 PolarDB 集群。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PolarDB Oracle</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/polardb-o/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/polardb-o/</guid>
        <description>&lt;p&gt;Pigsty 允许使用 PolarDB 创建带有 “国产化信创资质” 的 PolarDB for Oracle 集群！&lt;/p&gt;&#xA;&lt;p&gt;根据 【&lt;a href=&#34;http://www.itsec.gov.cn/aqkkcp/cpgg/202312/t20231226_162074.html&#34;&gt;安全可靠测评结果公告（2023年第1号）&lt;/a&gt;】，附表三、集中式数据库。PolarDB v2.0 属于自主可控，安全可靠的国产信创数据库。&lt;/p&gt;&#xA;&lt;p&gt;PolarDB for Oracle 是基于 PolarDB for PostgreSQL 进行二次开发的 Oracle 兼容版本，两者共用同一套内核，通过 &lt;code&gt;--compatibility-mode&lt;/code&gt; 参数进行区分。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Percona</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/percona/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/percona/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.percona.com/postgresql/software/postgresql-distribution&#34;&gt;Percona Postgres&lt;/a&gt; 是一个带有 &lt;a href=&#34;https://docs.percona.com/pg-tde/index.html&#34;&gt;&lt;code&gt;pg_tde&lt;/code&gt;&lt;/a&gt;（透明数据加密）扩展的补丁 Postgres 内核。&lt;/p&gt;&#xA;&lt;p&gt;Pigsty 从 v4.4.0 起将 Percona PostgreSQL 打包到私有前缀 &lt;code&gt;/usr/pgtde-$v&lt;/code&gt;，v4.5.0 延续这一布局&#xA;（PostgreSQL 18 对应 &lt;code&gt;/usr/pgtde-18&lt;/code&gt;）。&lt;code&gt;pgtde&lt;/code&gt; 包别名会同时安装内核包&#xA;与 contrib 包，其中包含 &lt;code&gt;pg_tde&lt;/code&gt;、PostGIS、pgvector、wal2json、pg_repack、&#xA;pgaudit、pg_stat_monitor 等常用组件。&lt;/p&gt;</description>
      </item>
    <item>
        <title>openHalo</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/openhalo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/openhalo/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.openhalo.org/&#34;&gt;OpenHalo&lt;/a&gt; 是一个开源的 PostgreSQL 内核，提供 MySQL 线协议兼容性。&lt;/p&gt;&#xA;&lt;p&gt;openHalo 基于 PostgreSQL 14.18 内核版本，提供与 MySQL 5.7.32-log / 8.0 版本的线协议兼容性。Pigsty 通过 &lt;code&gt;pg_mode: mysql&lt;/code&gt; 与 &lt;code&gt;openhalo&lt;/code&gt; 包别名交付。&lt;/p&gt;&#xA;&lt;p&gt;Pigsty 在所有支持的 Linux 平台上为 OpenHalo 提供部署支持。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Greenplum</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/greenplum/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/greenplum/</guid>
        <description>&lt;p&gt;Pigsty 支持部署 Greenplum 集群，及其衍生发行版 YMatrixDB，并提供了将现有 Greenplum 部署纳入 Pigsty 监控的能力。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Greenplum / YMatrix 集群部署能力仅在专业版本/企业版本中提供，目前不对外开源。&lt;/p&gt;</description>
      </item>
    <item>
        <title>OrioleDB</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/orioledb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/orioledb/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://orioledb.com/&#34;&gt;OrioleDB&lt;/a&gt; 是一个 PostgreSQL 存储引擎扩展，声称能够提供 4 倍 OLTP 性能，没有 xid 环绕和表膨胀问题，并具有&amp;quot;云原生&amp;quot;（数据存储在 S3）能力。&lt;/p&gt;&#xA;&lt;p&gt;OrioleDB 当前在 Pigsty 中支持 PostgreSQL 16、17、18 三个兼容系，当前基线版本为 OrioleDB 1.8 beta16。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Cloudberry</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/cloudberry/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/cloudberry/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://cloudberry.apache.org/&#34;&gt;Cloudberry&lt;/a&gt; 是一个源自 Greenplum 社区的开源 MPP 数据仓库内核，适合大规模并行分析场景。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 Pigsty 中，Cloudberry 沿用 &lt;code&gt;gpsql&lt;/code&gt; 模式接入，与 Greenplum / MatrixDB 共享一套身份模型、监控逻辑与目录约定。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Neon</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/neon/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/neon/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://github.com/neondatabase/neon&#34;&gt;&lt;strong&gt;Neon&lt;/strong&gt;&lt;/a&gt; 采用了存储与计算分离架构，提供了丝滑的自动扩缩容，Scale to Zero，以及数据库版本分叉等独家能力。&lt;/p&gt;&#xA;&lt;p&gt;Neon 官网：https://neon.tech/&lt;/p&gt;</description>
      </item>
    <item>
        <title>AgensGraph</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/agensgraph/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/agensgraph/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://github.com/skaiworldwide-oss/agensgraph&#34;&gt;AgensGraph&lt;/a&gt; 是基于 PostgreSQL 的属性图数据库内核，支持 openCypher 查询，并允许 Cypher 与 SQL 混合使用。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 通过 &lt;code&gt;pg_mode: agens&lt;/code&gt; 接入 AgensGraph，并保留标准 PostgreSQL 集群的大部分运维体验。&lt;/p&gt;</description>
      </item>
    <item>
        <title>pgEdge</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/pgedge/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/pgedge/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.pgedge.com/&#34;&gt;&lt;strong&gt;pgEdge&lt;/strong&gt;&lt;/a&gt; 是面向边缘场景的分布式 PostgreSQL 发行版，核心能力建立在 &lt;a href=&#34;https://docs.pgedge.com/spock-v5&#34;&gt;&lt;strong&gt;Spock&lt;/strong&gt;&lt;/a&gt; 多主逻辑复制之上。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 通过 &lt;code&gt;pg_mode: pgedge&lt;/code&gt; 接入 pgEdge，并用标准 PG 集群编排流程交付其核心组件：&lt;/p&gt;</description>
      </item>
    <item>
        <title>DocumentDB</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/documentdb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/documentdb/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pigsty.cc/ext/e/documentdb&#34;&gt;&lt;strong&gt;DocumentDB&lt;/strong&gt;&lt;/a&gt; 是微软开源维护的 PostgreSQL 文档数据库扩展，&lt;a href=&#34;https://github.com/FerretDB/FerretDB&#34;&gt;&lt;strong&gt;FerretDB&lt;/strong&gt;&lt;/a&gt; 是构建在其上的无状态协议转换代理。&#xA;两者组合，让标准 PostgreSQL 内核对外提供 MongoDB 线协议兼容端点——使用 MongoDB 驱动的应用程序可以直接对接，请求被转换为对 PostgreSQL 的操作。&lt;/p&gt;</description>
      </item>
    <item>
        <title>内核分支</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/</link>
        <pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/</guid>
        <description>&lt;p&gt;在 Pigsty 中，您可以使用不同 &amp;ldquo;&lt;strong&gt;风味&lt;/strong&gt;&amp;rdquo; 的 PostgreSQL 分支替换 &amp;ldquo;原生 PG 内核&amp;rdquo;，实现特殊的功能与效果。&lt;/p&gt;&#xA;&lt;p&gt;Pigsty 支持多种 PostgreSQL 内核和兼容分支，让您能够在同一套运维体系中获得兼容性、多主复制、图查询、MPP 数仓、透明加密等不同能力。&lt;/p&gt;</description>
      </item>
    <item>
        <title>场景模板</title>
        <link>https://pgsty.pro/zh/docs/pgsql/template/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/template/</guid>
        <description>&lt;p&gt;Pigsty 提供四种预置的 Patroni/PostgreSQL 配置模板，针对不同的使用场景进行了参数优化：&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;模板&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;CPU 核心&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;适用场景&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;特点&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/oltp/&#34;&gt;&lt;strong&gt;&lt;code&gt;/docs/pgsql/template/oltp.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4-128C&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;OLTP 事务处理&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;高并发、低延迟、高吞吐&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/olap/&#34;&gt;&lt;strong&gt;&lt;code&gt;/docs/pgsql/template/olap.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4-128C&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;OLAP 分析处理&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;大查询、高并行、长事务&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/crit/&#34;&gt;&lt;strong&gt;&lt;code&gt;/docs/pgsql/template/crit.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4-128C&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;一致性优先业务&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;一致性优先、详细审计&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/tiny/&#34;&gt;&lt;strong&gt;&lt;code&gt;/docs/pgsql/template/tiny.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1-3C&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;微型实例&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;资源受限、低配环境&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;您可以通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/param/#pg_conf&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_conf&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 参数来选择使用哪个配置模板，默认为 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/template/oltp/&#34;&gt;&lt;strong&gt;&lt;code&gt;/docs/pgsql/template/oltp.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>快速开始</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/start/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/start/</guid>
        <description>&lt;p&gt;在 Pigsty 中使用扩展需要四个步骤：&lt;strong&gt;下载&lt;/strong&gt;、&lt;strong&gt;安装&lt;/strong&gt;、&lt;strong&gt;配置&lt;/strong&gt;、&lt;strong&gt;启用&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;下载&lt;/strong&gt;：将扩展软件包下载到本地仓库（默认本地仓库只保证基础内核与 &lt;code&gt;pgsql-main&lt;/code&gt; 包集）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;安装&lt;/strong&gt;：在集群节点上安装扩展软件包&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;配置&lt;/strong&gt;：部分扩展需要预加载或配置参数&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;启用&lt;/strong&gt;：在数据库中执行 &lt;code&gt;CREATE EXTENSION&lt;/code&gt; 创建扩展&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;声明式配置&#34;&gt;声明式配置&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 Pigsty 配置清单中声明扩展，集群初始化时自动完成安装与启用：&lt;/p&gt;</description>
      </item>
    <item>
        <title>扩展简介</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/intro/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/intro/</guid>
        <description>&lt;p&gt;扩展是 PostgreSQL 的灵魂所在。Pigsty 收录了 575 个预编译、开箱即用的扩展插件，充分释放 PostgreSQL 的潜能。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;扩展是什么&#34;&gt;扩展是什么&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;PostgreSQL 扩展（Extension）是一种模块化机制，允许在不修改核心代码的情况下增强数据库功能。&#xA;一个扩展通常包含三部分：&lt;/p&gt;</description>
      </item>
    <item>
        <title>软件包</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/pkg/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/pkg/</guid>
        <description>&lt;p&gt;Pigsty 使用 &lt;strong&gt;包别名&lt;/strong&gt; 机制简化扩展的安装与管理。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;包别名机制&#34;&gt;包别名机制&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;管理扩展涉及多个层面的名称映射：&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;层面&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;示例 &lt;code&gt;pgvector&lt;/code&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;示例 &lt;code&gt;postgis&lt;/code&gt;&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;扩展名&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vector&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgis&lt;/code&gt;, &lt;code&gt;postgis_topology&lt;/code&gt;, &amp;hellip;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;包别名&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgvector&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgis&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;RPM 包名&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgvector_18&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgis36_18*&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;DEB 包名&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgresql-18-pgvector&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgresql-18-postgis-3*&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Pigsty 提供 &lt;strong&gt;包别名&lt;/strong&gt; 抽象层，让用户无需关心具体的 RPM/DEB 包名：&lt;/p&gt;</description>
      </item>
    <item>
        <title>下载扩展</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/download/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/download/</guid>
        <description>&lt;p&gt;在安装扩展前，需要确保扩展软件包已下载到本地仓库或可从上游获取。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;默认行为&#34;&gt;默认行为&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 默认会把基础 PostgreSQL 18 内核包下载到本地软件仓库。默认额外下载集为 &lt;code&gt;repo_extra_packages_default: [ pgsql-main ]&lt;/code&gt;，包含 PostgreSQL 内核、客户端、过程语言，以及 &lt;code&gt;pg_repack&lt;/code&gt;、&lt;code&gt;wal2json&lt;/code&gt;、&lt;code&gt;pgvector&lt;/code&gt; 等基础扩展包。&lt;/p&gt;</description>
      </item>
    <item>
        <title>安装扩展</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/install/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/install/</guid>
        <description>&lt;p&gt;Pigsty 使用操作系统的包管理器（yum/apt）安装扩展软件包。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;相关参数&#34;&gt;相关参数&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;两个参数用于指定要安装的扩展：&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;参数&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;用途&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;默认行为&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/param/#pg_packages&#34;&gt;&lt;code&gt;pg_packages&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;全局通用软件包&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;确保存在（不升级）&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/param/#pg_extensions&#34;&gt;&lt;code&gt;pg_extensions&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;集群特定扩展&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;安装最新版本&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;pg_packages&lt;/code&gt; 通常用于指定所有集群都需要的基础组件（PostgreSQL 内核、Patroni、pgBouncer 等）和必选扩展。&lt;/p&gt;</description>
      </item>
    <item>
        <title>配置扩展</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/config/</guid>
        <description>&lt;p&gt;部分扩展需要预加载动态库或配置参数后才能使用，本节介绍如何配置扩展。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;预加载扩展&#34;&gt;预加载扩展&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;大多数扩展安装后可直接使用 &lt;code&gt;CREATE EXTENSION&lt;/code&gt; 启用，但部分使用 PostgreSQL Hook 机制的扩展需要 &lt;strong&gt;预加载&lt;/strong&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>启用扩展</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/create/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/create/</guid>
        <description>&lt;p&gt;安装扩展软件包后，需要在数据库中执行 &lt;code&gt;CREATE EXTENSION&lt;/code&gt; 才能使用扩展功能。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;查看可用扩展&#34;&gt;查看可用扩展&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;安装扩展软件包后，可以查看可用的扩展：&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-ab3ceabd-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;sql&#34; data-td-line-count=&#34;8&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-ab3ceabd-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查看所有可用扩展&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pg_available_extensions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查看特定扩展&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pg_available_extensions&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;WHERE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;vector&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- 查看已启用的扩展&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SELECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pg_extension&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;创建扩展&#34;&gt;创建扩展&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;使用 &lt;code&gt;CREATE EXTENSION&lt;/code&gt; 在数据库中启用扩展：&lt;/p&gt;</description>
      </item>
    <item>
        <title>更新扩展</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/update/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/update/</guid>
        <description>&lt;p&gt;扩展更新涉及两个层面：&lt;strong&gt;软件包更新&lt;/strong&gt;（操作系统层面）和 &lt;strong&gt;扩展对象更新&lt;/strong&gt;（数据库层面）。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;更新软件包&#34;&gt;更新软件包&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;使用包管理器更新扩展的软件包：&lt;/p&gt;</description>
      </item>
    <item>
        <title>移除扩展</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/remove/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/remove/</guid>
        <description>&lt;p&gt;移除扩展涉及两个层面：&lt;strong&gt;删除扩展对象&lt;/strong&gt;（数据库层面）和 &lt;strong&gt;卸载软件包&lt;/strong&gt;（操作系统层面）。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;删除扩展对象&#34;&gt;删除扩展对象&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;使用 &lt;code&gt;DROP EXTENSION&lt;/code&gt; 从数据库中删除扩展：&lt;/p&gt;</description>
      </item>
    <item>
        <title>常见问题</title>
        <link>https://pgsty.pro/zh/docs/pgsql/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;我当前执行安装的用户为何不能使用-pg-管理别名&#34;&gt;我当前执行安装的用户为何不能使用 &lt;code&gt;pg&lt;/code&gt; 管理别名？&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;从 Pigsty v4.0 开始，使用 &lt;code&gt;pg&lt;/code&gt; 管理别名管理全局的 Patroni / PostgreSQL 集群的权限被收紧到了管理节点上的管理员分组（&lt;code&gt;admin&lt;/code&gt;）。&lt;/p&gt;</description>
      </item>
    <item>
        <title>默认扩展</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/extension/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/extension/</guid>
        <description>&lt;p&gt;Pigsty 在初始化 PostgreSQL 集群时，会默认安装和启用一些核心扩展。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;默认安装的扩展&#34;&gt;默认安装的扩展&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/param/#pg_packages&#34;&gt;&lt;code&gt;pg_packages&lt;/code&gt;&lt;/a&gt; 默认安装的扩展：&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;扩展&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_repack&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;在线处理表膨胀，重要的维护工具&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;wal2json&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;逻辑解码输出 JSON 格式变更，CDC 场景常用&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgvector&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;向量数据类型与索引，默认随 &lt;code&gt;pgsql-main&lt;/code&gt; 安装&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/param/#pg_extensions&#34;&gt;&lt;code&gt;pg_extensions&lt;/code&gt;&lt;/a&gt; 的默认值为空数组 &lt;code&gt;[]&lt;/code&gt;。如需安装其他扩展，可以按需声明，例如：&lt;/p&gt;</description>
      </item>
    <item>
        <title>扩展仓库</title>
        <link>https://pgsty.pro/zh/docs/pgsql/ext/repo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/ext/repo/</guid>
        <description>&lt;p&gt;Pigsty 提供补充扩展仓库，在 PGDG 官方仓库基础上提供额外的扩展包。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;yum-仓库&#34;&gt;YUM 仓库&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;适用于 EL 8/9/10 及其兼容系统（RHEL、Rocky、AlmaLinux、CentOS 等）。&lt;/p&gt;</description>
      </item>
    <item>
        <title>其他说明</title>
        <link>https://pgsty.pro/zh/docs/pgsql/misc/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/misc/</guid>
        <description></description>
      </item>
    <item>
        <title>服务接入</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/svc/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/svc/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;分离读写操作，正确路由流量，稳定可靠地交付 PostgreSQL 集群提供的能力。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/svc/#%e6%9c%8d%e5%8a%a1%e6%a6%82%e8%bf%b0&#34;&gt;服务&lt;/a&gt; 是一种抽象：它是数据库集群对外提供能力的形式，并封装了底层集群的细节。&lt;/p&gt;&#xA;&lt;p&gt;服务对于生产环境中的 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/svc/#%e6%8e%a5%e5%85%a5%e6%9c%8d%e5%8a%a1&#34;&gt;稳定接入&lt;/a&gt; 至关重要，在 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/&#34;&gt;高可用&lt;/a&gt; 集群自动故障时方显其价值，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/svc/#%e5%8d%95%e6%9c%ba%e7%94%a8%e6%88%b7&#34;&gt;单机用户&lt;/a&gt; 通常不需要操心这个概念。&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
