<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pigsty v5.0 Documentation on Pigsty v5.0</title>
    <link>https://pgsty.pro/</link>
    <description>Recent content in Pigsty v5.0 Documentation on Pigsty v5.0</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Sat, 15 Aug 2026 00:00:00 +0000</lastBuildDate>
    
    
      <atom:link href="https://pgsty.pro/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>PGSQL Cluster</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-cluster/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-cluster/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Main dashboard for a PGSQL cluster: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-cluster&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Cluster is the main dashboard for a single PostgreSQL cluster, providing cluster-level core metrics overview.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-cluster&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-cluster.webp&#34; alt=&#34;pgsql-cluster&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Database</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-database/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-database/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Main dashboard for a single PGSQL database: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-database&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Database is the main dashboard for a single PostgreSQL database, providing comprehensive database-level metrics.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-database&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-database.webp&#34; alt=&#34;pgsql-database&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Instance</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-instance/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-instance/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Main dashboard for a single PGSQL instance: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-instance&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Instance is the main dashboard for a single PostgreSQL instance, providing comprehensive instance-level metrics.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-instance&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-instance.webp&#34; alt=&#34;pgsql-instance&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Overview</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/overview/pgsql-overview/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/overview/pgsql-overview/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Main dashboard for the PGSQL module: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-overview&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Overview is the main dashboard for the PostgreSQL module, providing a global overview of the entire PGSQL module.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-overview&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-overview.webp&#34; alt=&#34;pgsql-overview&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PIGSTY</title>
        <link>https://pgsty.pro/docs/_div_pigsty/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/_div_pigsty/</guid>
        <description></description>
      </item>
    <item>
        <title>PGCAT Database</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-database/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-database/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Database info from database catalog: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-database&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGCAT Database shows database-level information retrieved directly from PostgreSQL system catalog.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-database&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgcat-database.webp&#34; alt=&#34;pgcat-database&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGRDS Cluster</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgrds-cluster/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgrds-cluster/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;RDS version of PGSQL Cluster: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgrds-cluster&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGRDS Cluster is the RDS version of PGSQL Cluster, focusing on PostgreSQL-native metrics without host-level metrics.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgrds-cluster&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgrds-cluster.webp&#34; alt=&#34;pgrds-cluster&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGRDS Instance</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgrds-instance/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgrds-instance/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;RDS version of PGSQL Instance: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgrds-instance&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGRDS Instance is the RDS version of PGSQL Instance, focusing on PostgreSQL-native metrics without host-level metrics.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgrds-instance&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgrds-instance.webp&#34; alt=&#34;pgrds-instance&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Alert</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/overview/pgsql-alert/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/overview/pgsql-alert/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Global key metrics and alert events for PGSQL: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-alert&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Alert provides a global overview of core metrics and alert events for PostgreSQL clusters.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-alert&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-alert.webp&#34; alt=&#34;pgsql-alert&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGCAT Instance</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgcat-instance/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgcat-instance/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Instance info from database catalog: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-instance&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGCAT Instance shows instance-level information retrieved directly from PostgreSQL system catalog.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-instance&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgcat-instance.webp&#34; alt=&#34;pgcat-instance&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Activity</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-activity/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-activity/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Session/load/QPS/TPS/locks for PGSQL cluster: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-activity&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Activity focuses on session activity, load, QPS, TPS, and lock status for a PostgreSQL cluster.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-activity&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-activity.webp&#34; alt=&#34;pgsql-activity&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Shard</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/overview/pgsql-shard/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/overview/pgsql-shard/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Overview of horizontally sharded PGSQL clusters: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-shard&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Shard provides cross-shard metric comparison for horizontally sharded PGSQL clusters such as CITUS or GPSQL.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-shard&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-shard.webp&#34; alt=&#34;pgsql-shard&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Tables</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-tables/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-tables/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Table/index access metrics: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-tables&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Tables shows table and index access metrics for all objects within a single PostgreSQL database.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-tables&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-tables.webp&#34; alt=&#34;pgsql-tables&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Persist</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-persist/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-persist/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Persistence metrics for PGSQL instance: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-persist&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Persist focuses on persistence-related metrics: WAL generation, XID consumption, checkpoints, archiving, and I/O patterns.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-persist&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-persist.webp&#34; alt=&#34;pgsql-persist&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Replication</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-replication/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-replication/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Replication, slots, and pub/sub for PGSQL cluster: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-replication&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Replication focuses on replication status, replication slots, and logical replication (pub/sub) for a PostgreSQL cluster.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-replication&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-replication.webp&#34; alt=&#34;pgsql-replication&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Table</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-table/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-table/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Detailed info for a single table: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-table&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Table shows detailed metrics for a single table including QPS, response time, index usage, and sequence info.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-table&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-table.webp&#34; alt=&#34;pgsql-table&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGCAT Table</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-table/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-table/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Detailed table info from catalog: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-table&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGCAT Table shows detailed table information from database catalog including statistics and bloat analysis.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-table&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgcat-table.webp&#34; alt=&#34;pgcat-table&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Proxy</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-proxy/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-proxy/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Detailed metrics for HAProxy: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-proxy&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Proxy shows detailed metrics for a single HAProxy load balancer instance serving PostgreSQL traffic.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-proxy&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-proxy.webp&#34; alt=&#34;pgsql-proxy&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Service</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-service/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-service/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Service, proxy, routing, and load balancing for PGSQL cluster: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-service&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Service focuses on service endpoints, proxy routing, and load balancing status for a PostgreSQL cluster.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-service&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-service.webp&#34; alt=&#34;pgsql-service&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Databases</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-databases/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-databases/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Database CRUD, slow queries, and table statistics: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-databases&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Databases focuses on database-level CRUD operations, slow queries, and table statistics across all instances in a cluster.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-databases&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-database.webp&#34; alt=&#34;pgsql-databases&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Pgbouncer</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-pgbouncer/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-pgbouncer/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Metrics overview for Pgbouncer: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-pgbouncer&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Pgbouncer shows connection pooling metrics for a single Pgbouncer instance.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-pgbouncer&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-pgbouncer.webp&#34; alt=&#34;pgsql-pgbouncer&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Query</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-query/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgsql-query/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Detailed info for a query type: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-query&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Query shows detailed metrics for a specific query type including QPS and response time distribution.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-query&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-query.webp&#34; alt=&#34;pgsql-query&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGCAT Query</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-query/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-query/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Query details from database catalog: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-query&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGCAT Query shows query details from database catalog including SQL text and execution statistics.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-query&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgcat-query.webp&#34; alt=&#34;pgcat-query&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Patroni</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-patroni/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-patroni/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;HA status and Patroni component status: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-patroni&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Patroni focuses on high-availability status and Patroni component health for a PostgreSQL cluster.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-patroni&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-patroni.webp&#34; alt=&#34;pgsql-patroni&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Session</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-session/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-session/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Session and active/idle time metrics: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-session&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Session focuses on session statistics and active/idle time distribution for a single PostgreSQL instance.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-session&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-session.webp&#34; alt=&#34;pgsql-session&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGCAT Locks</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-locks/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-locks/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Activity and lock wait info: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-locks&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGCAT Locks shows active sessions and lock wait information from database catalog.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-locks&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgcat-locks.webp&#34; alt=&#34;pgcat-locks&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL PITR</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-pitr/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/cluster/pgsql-pitr/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;PITR context for point-in-time recovery: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-pitr&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL PITR provides context information for point-in-time recovery operations, showing backup status and WAL timeline.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-pitr&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-pitr.webp&#34; alt=&#34;pgsql-pitr&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Xacts</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-xacts/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-xacts/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Transaction, lock, TPS/QPS metrics: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-xacts&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Xacts focuses on transaction processing, lock activity, and TPS/QPS metrics for a single PostgreSQL instance.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-xacts&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-xacts.webp&#34; alt=&#34;pgsql-xacts&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGCAT Schema</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-schema/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/database/pgcat-schema/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Schema info from database catalog: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-schema&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGCAT Schema shows schema-level information from database catalog including tables, indexes, and sequences.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgcat-schema&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgcat-schema.webp&#34; alt=&#34;pgcat-schema&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Exporter</title>
        <link>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-exporter/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/dashboard/instance/pgsql-exporter/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Self-monitoring metrics for exporters: &lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-exporter&#34;&gt;Demo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;PGSQL Exporter shows self-monitoring metrics for the Postgres exporter and Pgbouncer exporter components.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/ui/d/pgsql-exporter&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/panel/pgsql-exporter.webp&#34; alt=&#34;pgsql-exporter&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Cluster / Instance</title>
        <link>https://pgsty.pro/docs/pgsql/config/cluster/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/cluster/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Choose the appropriate instance and cluster types based on your requirements to configure PostgreSQL database clusters that meet your needs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;You can define different types of instances and clusters. Here are several common PostgreSQL instance/cluster types in Pigsty:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#primary&#34;&gt;Primary&lt;/a&gt;: Define a single instance cluster.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#replica&#34;&gt;Replica&lt;/a&gt;: Define a basic HA cluster with one primary and one replica.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#offline&#34;&gt;Offline&lt;/a&gt;: Define an instance dedicated to OLAP/ETL/interactive queries&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#sync-standby&#34;&gt;Sync Standby&lt;/a&gt;: Enable synchronous commit to ensure no data loss.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#quorum-commit&#34;&gt;Quorum Commit&lt;/a&gt;: Use quorum sync commit for a higher consistency level.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#standby-cluster&#34;&gt;Standby Cluster&lt;/a&gt;: Clone an existing cluster and follow it&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#delayed-cluster&#34;&gt;Delayed Cluster&lt;/a&gt;: Clone an existing cluster for emergency data recovery&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/#citus-cluster&#34;&gt;Citus Cluster&lt;/a&gt;: Define a Citus distributed database cluster&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;primary&#34;&gt;Primary&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;We start with the simplest case: a single instance cluster consisting of one primary:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Managing PostgreSQL Clusters</title>
        <link>https://pgsty.pro/docs/pgsql/admin/cluster/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/cluster/</guid>
        <description>&lt;h2 id=&#34;quick-reference&#34;&gt;Quick Reference&#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;Action&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Command&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/cluster/#create-cluster&#34;&gt;&lt;strong&gt;Create Cluster&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;Create a new PostgreSQL cluster&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/docs/pgsql/admin/cluster/#expand-cluster&#34;&gt;&lt;strong&gt;Expand Cluster&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;Add replica to existing cluster&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/docs/pgsql/admin/cluster/#shrink-cluster&#34;&gt;&lt;strong&gt;Shrink Cluster&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;Remove instance from cluster&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/docs/pgsql/admin/cluster/#remove-cluster&#34;&gt;&lt;strong&gt;Remove Cluster&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;Destroy entire PostgreSQL cluster&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/docs/pgsql/admin/cluster/#reload-service&#34;&gt;&lt;strong&gt;Reload Service&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;Reload cluster load balancer config&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/docs/pgsql/admin/cluster/#reload-hba&#34;&gt;&lt;strong&gt;Reload 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;Reload cluster HBA access rules&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/docs/pgsql/admin/cluster/#clone-cluster&#34;&gt;&lt;strong&gt;Clone Cluster&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;Clone via standby cluster or 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;For other management tasks, see: &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;HA Management&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;Manage Users&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/db/&#34;&gt;&lt;strong&gt;Manage Databases&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Model of Patroni Passive Failure</title>
        <link>https://pgsty.pro/docs/concept/ha/failure/passive/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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;&#xA;  desc Lease Expiration Stages&#xA;  items&#xA;    - label Lease Expiration&#xA;    - label Replica Detect&#xA;    - label Elect &amp;amp; Promote&#xA;    - label Haproxy Up&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-timeline&#34;&gt;RTO Timeline&#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: [Lease Expiration, Replica Detection, Lock Contest &amp;amp; Promote, Health Check] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: Seconds, 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: Lease Expire, 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: Replica Detect, 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: Elect &amp;amp; Promote, 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: HAProxy Check, 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: Total 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 Budget, 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;failure-model&#34;&gt;Failure Model&#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;Phase&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Best&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Worst&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Average&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Lease Expiration&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;Best: crash just before refresh&lt;br/&gt;Worst: crash right after refresh&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Replica Detect&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;Best: exactly at check point&lt;br/&gt;Worst: just missed check point&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Election Promote&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;Best: direct lock and promote&lt;br/&gt;Worst: API timeout + 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;HAProxy Check&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;Best: state change before check&lt;br/&gt;Worst: state change right after check&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;Key Difference Between Passive and Active Failover&lt;/strong&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Features</title>
        <link>https://pgsty.pro/docs/about/feature/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/feature/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;&lt;strong&gt;P&lt;/strong&gt;ostgreSQL &lt;strong&gt;I&lt;/strong&gt;n &lt;strong&gt;G&lt;/strong&gt;reat &lt;strong&gt;STY&lt;/strong&gt;le&amp;rdquo;: &lt;strong&gt;P&lt;/strong&gt;ostgres, &lt;strong&gt;I&lt;/strong&gt;nfras, &lt;strong&gt;G&lt;/strong&gt;raphics, &lt;strong&gt;S&lt;/strong&gt;ervice, &lt;strong&gt;T&lt;/strong&gt;oolbox, it&amp;rsquo;s all &lt;strong&gt;Y&lt;/strong&gt;ours.&lt;/p&gt;&#xA;&lt;p&gt;—— &lt;strong&gt;Battery-included, local-first PostgreSQL distribution, open-source RDS alternative&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;value-propositions&#34;&gt;Value Propositions&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/img/pigsty/ecosystem.png&#34;&gt;&lt;strong&gt;Extensibility&lt;/strong&gt;&lt;/a&gt;: Powerful &lt;a href=&#34;https://pigsty.io/ext/list&#34;&gt;&lt;strong&gt;extensions&lt;/strong&gt;&lt;/a&gt; out of the box: deep integration of &lt;strong&gt;PostGIS&lt;/strong&gt;, &lt;strong&gt;TimescaleDB&lt;/strong&gt;, &lt;strong&gt;Citus&lt;/strong&gt;, &lt;strong&gt;PGVector&lt;/strong&gt;, &lt;a href=&#34;https://pigsty.io/ext/list/&#34;&gt;&lt;strong&gt;575&lt;/strong&gt;&lt;/a&gt; plugins, and &lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/&#34;&gt;&lt;strong&gt;12 PG kernels&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/img/pigsty/arch.png&#34;&gt;&lt;strong&gt;Reliability&lt;/strong&gt;&lt;/a&gt;: Quickly create &lt;a href=&#34;https://pgsty.pro/docs/concept/ha/&#34;&gt;&lt;strong&gt;high-availability&lt;/strong&gt;&lt;/a&gt;, self-healing &lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;/a&gt; clusters with built-in &lt;a href=&#34;https://pgsty.pro/docs/concept/pitr/&#34;&gt;&lt;strong&gt;point-in-time recovery&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;access control&lt;/strong&gt;&lt;/a&gt;, a self-signed &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ca/&#34;&gt;&lt;strong&gt;CA&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ca/&#34;&gt;&lt;strong&gt;TLS&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/img/pigsty/dashboard.jpg&#34;&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/a&gt;: Based on &lt;a href=&#34;https://pgsty.pro/docs/infra/#victoria-observability-suite&#34;&gt;&lt;strong&gt;Prometheus&lt;/strong&gt;&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://pgsty.pro/docs/infra/#grafana&#34;&gt;&lt;strong&gt;Grafana&lt;/strong&gt;&lt;/a&gt; modern observability stack, providing stunning monitoring best practices. Modular design, can be used independently: &lt;a href=&#34;https://github.com/pgsty/pigsty/wiki/Gallery&#34;&gt;&lt;strong&gt;Gallery&lt;/strong&gt;&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://demo.pigsty.io&#34;&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/img/pigsty/ha.png&#34;&gt;&lt;strong&gt;Availability&lt;/strong&gt;&lt;/a&gt;: Deliver stable, reliable, auto-routed, transaction-pooled, read-write separated high-performance database &lt;a href=&#34;https://pgsty.pro/docs/pgsql/service/#default-service&#34;&gt;&lt;strong&gt;services&lt;/strong&gt;&lt;/a&gt;, with flexible &lt;a href=&#34;https://pgsty.pro/docs/pgsql/service/#access-service&#34;&gt;&lt;strong&gt;access&lt;/strong&gt;&lt;/a&gt; modes via HAProxy, Pgbouncer, and VIP.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/img/pigsty/iac.jpg&#34;&gt;&lt;strong&gt;Maintainability&lt;/strong&gt;&lt;/a&gt;: &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;Easy to use&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/&#34;&gt;&lt;strong&gt;Infrastructure as Code&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/&#34;&gt;&lt;strong&gt;Management SOPs&lt;/strong&gt;&lt;/a&gt;, auto-tuning, local software repository, &lt;a href=&#34;https://pgsty.pro/docs/deploy/vagrant/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt; &lt;a href=&#34;https://pgsty.pro/docs/deploy/sandbox/&#34;&gt;&lt;strong&gt;sandbox&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/terraform/&#34;&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt; templates, zero-downtime &lt;a href=&#34;https://pgsty.pro/docs/pgsql/migration/&#34;&gt;&lt;strong&gt;migration&lt;/strong&gt;&lt;/a&gt; solutions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/img/pigsty/sandbox.png&#34;&gt;&lt;strong&gt;Composability&lt;/strong&gt;&lt;/a&gt;: &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/#modules&#34;&gt;&lt;strong&gt;Modular&lt;/strong&gt;&lt;/a&gt; architecture design, reusable &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;Infra&lt;/strong&gt;&lt;/a&gt;, various optional &lt;a href=&#34;https://pgsty.pro/docs/ref/module/&#34;&gt;&lt;strong&gt;modules&lt;/strong&gt;&lt;/a&gt;: &lt;a href=&#34;https://pgsty.pro/docs/redis/&#34;&gt;&lt;strong&gt;Redis&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;Silo object storage&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;ETCD&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pigsty.io/docs/pilot/duckdb/&#34;&gt;&lt;strong&gt;DuckDB&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pigsty.io/docs/app/&#34;&gt;&lt;strong&gt;Docker&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://github.com/pgsty/pigsty/tree/master/app/supabase&#34;&gt;&lt;strong&gt;Supabase&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/pigsty/banner.png&#34; alt=&#34;Pigsty feature overview&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty is a better local open-source RDS for PostgreSQL alternative:&lt;/p&gt;</description>
      </item>
    <item>
        <title>E-R Model of Infra Cluster</title>
        <link>https://pgsty.pro/docs/concept/model/infra/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/model/infra/</guid>
        <description>&lt;p&gt;The INFRA module plays a special role in Pigsty: it&amp;rsquo;s not a traditional &amp;ldquo;cluster&amp;rdquo; but rather a management hub composed of a group of &lt;strong&gt;infrastructure nodes&lt;/strong&gt;, providing core services for the entire Pigsty deployment.&#xA;Each INFRA node is an &lt;strong&gt;autonomous&lt;/strong&gt; infrastructure service unit running core components like Nginx, Grafana, and VictoriaMetrics, collectively providing observability and management capabilities for managed database clusters.&lt;/p&gt;&#xA;&lt;p&gt;There are two core entities in Pigsty&amp;rsquo;s INFRA module:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameter Optimization Policy</title>
        <link>https://pgsty.pro/docs/pgsql/template/tune/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/template/tune/</guid>
        <description>&lt;p&gt;Pigsty provides four scenario-based parameter templates by default, which can be specified and used through the &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_conf&#34;&gt;&lt;code&gt;pg_conf&lt;/code&gt;&lt;/a&gt; parameter.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;tiny.yml&lt;/code&gt;: Optimized for small nodes, VMs, and demos (the template is labeled for 1-3 cores)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;oltp.yml&lt;/code&gt;: Optimized for OLTP workloads and latency-sensitive applications (4C8GB+) (default template)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;olap.yml&lt;/code&gt;: Optimized for OLAP workloads and throughput (4C8G+)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;crit.yml&lt;/code&gt;: Optimized for data consistency and critical applications (4C8G+)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Pigsty adopts different parameter optimization strategies for these four default scenarios, as shown below:&lt;/p&gt;</description>
      </item>
    <item>
        <title>RPO Trade-offs</title>
        <link>https://pgsty.pro/docs/concept/ha/rpo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/ha/rpo/</guid>
        <description>&lt;p&gt;&lt;strong&gt;RPO&lt;/strong&gt; (Recovery Point Objective) defines the &lt;strong&gt;maximum amount of data loss&lt;/strong&gt; allowed when the primary fails.&lt;/p&gt;&#xA;&lt;p&gt;For scenarios where data integrity is critical, such as financial transactions, RPO = 0 is typically required, meaning no data loss is allowed.&lt;/p&gt;&#xA;&lt;p&gt;However, stricter RPO targets come at a cost: higher write latency, reduced system throughput, and the risk that replica failures may cause primary unavailability.&#xA;For typical scenarios, some data loss is acceptable in exchange for higher availability and performance.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Model of Patroni Active Failure</title>
        <link>https://pgsty.pro/docs/concept/ha/failure/active/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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;  desc When Patroni is healthy but PostgreSQL crashes&#xA;  items&#xA;    - label Crash Found&#xA;    - label Restart Timeout&#xA;    - label Replica Detect&#xA;    - label Elect Promote&#xA;    - label HAProxy Check&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-timeline&#34;&gt;RTO Timeline&#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: [ Crash Found, Restart Timeout, Replica Detection, Elect Promote, HAProxy Check] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: Seconds, 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: Crash Found, 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: Restart Timeout, 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: Replica Detect, 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: Elect Promote, 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: HAProxy Check, 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 Total, 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 Budget, 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;failure-model&#34;&gt;Failure Model&#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;Item&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Best&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Worst&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Average&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Crash Found&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;Best: PG crashes right before check&lt;br/&gt;Worst: PG crashes right after check&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Restart Timeout&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;Best: PG recovers instantly&lt;br/&gt;Worst: Wait full start timeout before releasing lease&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Replica Detect&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;Best: Right at check point&lt;br/&gt;Worst: Just missed check point&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Elect Promote&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;Best: Acquire lock and promote directly&lt;br/&gt;Worst: API timeout + 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;HAProxy Check&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;Best: State changes before check&lt;br/&gt;Worst: State changes right after check&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;Key Difference Between Active and Passive Failure&lt;/strong&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>History</title>
        <link>https://pgsty.pro/docs/about/history/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/history/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;historical-origins&#34;&gt;Historical Origins&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The Pigsty project began in 2018-2019, originating from &lt;a href=&#34;https://tantanapp.com/en&#34;&gt;&lt;strong&gt;Tantan&lt;/strong&gt;&lt;/a&gt;.&#xA;Tantan is an internet dating app — China&amp;rsquo;s Tinder, now acquired by Momo.&#xA;Tantan was a Nordic-style startup with a Swedish engineering founding team.&lt;/p&gt;&#xA;&lt;p&gt;Tantan had excellent technical taste, using PostgreSQL and Go as its core technology stack.&#xA;The entire Tantan system architecture was modeled after Instagram, designed entirely around the PostgreSQL database.&#xA;Up to several million daily active users, millions of TPS, and hundreds of TB of data, the data component &lt;a href=&#34;https://pigsty.io/blog/pg/just-use-pg&#34;&gt;&lt;strong&gt;used only PostgreSQL&lt;/strong&gt;&lt;/a&gt;.&#xA;Almost all business logic was implemented using PG stored procedures — even including 100ms recommendation algorithms!&#xA;It was arguably the most complex PostgreSQL-at-scale use case in China at the time.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Kernel Version</title>
        <link>https://pgsty.pro/docs/pgsql/config/kernel/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/kernel/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Choosing a &amp;ldquo;kernel&amp;rdquo; in Pigsty means determining the PostgreSQL major version, mode/distribution, packages to install, and tuning templates to load.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The Pigsty v4.5 source currently supports PostgreSQL 14-18 and uses 18 by default. The following content shows how to make these choices through configuration files.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;major-version-and-packages&#34;&gt;Major Version and Packages&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_version&lt;/code&gt;: Specify the PostgreSQL major version (default 18). Pigsty will automatically map to the correct package name prefix based on the version.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_packages&lt;/code&gt;: Define the core package set to install, supports using &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/alias/&#34;&gt;package aliases&lt;/a&gt; (default &lt;code&gt;pgsql-main pgsql-common&lt;/code&gt;, includes kernel + patroni/pgbouncer/pgbackrest and other common tools).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_extensions&lt;/code&gt;: List of additional extension packages to install, also supports aliases; defaults to empty meaning only core dependencies are installed.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-c485c3e3-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-c485c3e3-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;all&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;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_version&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;m&#34;&gt;18&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_packages&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;pgsql-main, pgsql-common ]&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, pgml ]&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;blockquote&gt;&#xA;&lt;p&gt;Effect: Ansible will pull packages corresponding to &lt;code&gt;pg_version=18&lt;/code&gt; during installation, pre-install extensions to the system, and database initialization scripts can then directly &lt;code&gt;CREATE EXTENSION&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>OLTP Template</title>
        <link>https://pgsty.pro/docs/pgsql/template/oltp/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/template/oltp/</guid>
        <description>&lt;p&gt;&lt;code&gt;oltp.yml&lt;/code&gt; is Pigsty&amp;rsquo;s default config template, optimized for &lt;strong&gt;online transaction processing&lt;/strong&gt; (OLTP). Designed for 4-128 core CPUs with high concurrency, low latency, and high throughput.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Pair with &lt;a href=&#34;https://pgsty.pro/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; for OS-level tuning.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;use-cases&#34;&gt;Use Cases&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;OLTP template is ideal for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;E-commerce&lt;/strong&gt;: Order processing, inventory, user transactions&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Social apps&lt;/strong&gt;: User feeds, messaging, following relationships&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gaming backends&lt;/strong&gt;: Player data, leaderboards, game state&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SaaS applications&lt;/strong&gt;: Multi-tenant business systems&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Web apps&lt;/strong&gt;: CRUD-intensive workloads&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Workload characteristics&lt;/strong&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>E-R Model of PostgreSQL Cluster</title>
        <link>https://pgsty.pro/docs/concept/model/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/model/pgsql/</guid>
        <description>&lt;p&gt;The PGSQL module organizes PostgreSQL in production as &lt;strong&gt;clusters&lt;/strong&gt;—&lt;strong&gt;logical entities&lt;/strong&gt; composed of a group of database &lt;strong&gt;instances&lt;/strong&gt; associated by &lt;strong&gt;primary-replica&lt;/strong&gt; relationships.&lt;/p&gt;&#xA;&lt;p&gt;Each cluster is an &lt;strong&gt;autonomous&lt;/strong&gt; business unit consisting of at least one &lt;strong&gt;primary instance&lt;/strong&gt;, exposing capabilities through services.&lt;/p&gt;&#xA;&lt;p&gt;There are four core entities in Pigsty&amp;rsquo;s PGSQL module:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cluster&lt;/strong&gt;: An autonomous PostgreSQL business unit serving as the top-level namespace for other entities.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Service&lt;/strong&gt;: A named abstraction that exposes capabilities, routes traffic, and exposes services using node ports.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Instance&lt;/strong&gt;: A single PostgreSQL server consisting of running processes and database files on a single node.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Node&lt;/strong&gt;: A hardware resource abstraction running Linux + Systemd environment—can be bare metal, VM, container, or Pod.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Along with two business entities—&amp;ldquo;Database&amp;rdquo; and &amp;ldquo;Role&amp;rdquo;—these form the complete logical view as shown below:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Managing PostgreSQL Users</title>
        <link>https://pgsty.pro/docs/pgsql/admin/user/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/user/</guid>
        <description>&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses declarative management: first &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/user/&#34;&gt;&lt;strong&gt;define users&lt;/strong&gt;&lt;/a&gt; in the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt;, then use &lt;code&gt;bin/pgsql-user &amp;lt;cls&amp;gt; &amp;lt;username&amp;gt;&lt;/code&gt; to create or modify.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d1a0b689-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-d1a0b689-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;--- Define user list here!&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;Script&#34; data-td-tab-group=&#34;script-playbook-example&#34; data-td-tab-value=&#34;script&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Script&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d1a0b689-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-d1a0b689-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;# Create/modify &amp;lt;username&amp;gt; user on &amp;lt;cls&amp;gt; cluster&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;Playbook&#34; data-td-tab-value=&#34;playbook&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Playbook&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d1a0b689-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-d1a0b689-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;# Use playbook to create/modify user&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;Example&#34; data-td-tab-value=&#34;example&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Example&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d1a0b689-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-d1a0b689-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;# Create/modify dbuser_app user on pg-meta cluster&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;For the complete user definition reference, see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/user/&#34;&gt;&lt;strong&gt;User Configuration&lt;/strong&gt;&lt;/a&gt;. See &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/#role-system&#34;&gt;&lt;strong&gt;Access Control&lt;/strong&gt;&lt;/a&gt; for roles and privileges, and &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/a&gt; for credential management.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Managing PostgreSQL Databases</title>
        <link>https://pgsty.pro/docs/pgsql/admin/db/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/db/</guid>
        <description>&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses declarative management: first &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/db/&#34;&gt;&lt;strong&gt;define databases&lt;/strong&gt;&lt;/a&gt; in the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt;, then use &lt;code&gt;bin/pgsql-db &amp;lt;cls&amp;gt; &amp;lt;dbname&amp;gt;&lt;/code&gt; to create or modify.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a251855c-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-a251855c-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;--- Define database list here!&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;Script&#34; data-td-tab-group=&#34;script-playbook-example&#34; data-td-tab-value=&#34;script&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Script&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a251855c-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-a251855c-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;# Create/modify &amp;lt;dbname&amp;gt; database on &amp;lt;cls&amp;gt; cluster&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;Playbook&#34; data-td-tab-value=&#34;playbook&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Playbook&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a251855c-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-a251855c-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;# Use playbook to create/modify database&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;Example&#34; data-td-tab-value=&#34;example&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Example&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a251855c-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-a251855c-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;# Create/modify some_db database on pg-meta cluster&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;For the complete database definition reference, see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/db/&#34;&gt;&lt;strong&gt;Database Configuration&lt;/strong&gt;&lt;/a&gt;. For database access permissions, see &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/#database-isolation&#34;&gt;&lt;strong&gt;Access Control: Database Isolation&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>News &amp; Events</title>
        <link>https://pgsty.pro/docs/about/event/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/event/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;recent-news&#34;&gt;Recent News&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;2026-07-10&lt;/strong&gt;: &lt;strong&gt;Pigsty v4.4.0 officially released: PG19 beta support and 531 extensions&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Release Notes: &lt;a href=&#34;https://pgsty.pro/blog/release/4.4.0/&#34;&gt;v4.4.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Highlights: PostgreSQL 18.4 / 19 beta support, 531 total extensions, kernel and package updates, and Pig CLI improvements.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;2026-05-01&lt;/strong&gt;: &lt;strong&gt;Pigsty v4.3.0 officially released: 510 extensions, Ubuntu 26 support&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Release Notes: &lt;a href=&#34;https://pgsty.pro/blog/release/4.3.0/&#34;&gt;v4.3.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Highlights: Infra / PGSQL / kernel package batch updates, Ubuntu 26.04 offline package coverage, and 510 total extensions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;2026-03-06&lt;/strong&gt;: &lt;strong&gt;Pigsty v4.2.1 released! Drop PG13, 464 extensions&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>OLAP Template</title>
        <link>https://pgsty.pro/docs/pgsql/template/olap/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/template/olap/</guid>
        <description>&lt;p&gt;&lt;code&gt;olap.yml&lt;/code&gt; is optimized for &lt;strong&gt;online analytical processing&lt;/strong&gt; (OLAP). Designed for 4-128 core CPUs with support for large queries, high parallelism, relaxed timeouts, and aggressive vacuum.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Pair with &lt;a href=&#34;https://pgsty.pro/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; for OS-level tuning.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;use-cases&#34;&gt;Use Cases&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;OLAP template is ideal for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data warehouses&lt;/strong&gt;: Historical data storage, multidimensional analysis&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;BI reports&lt;/strong&gt;: Complex report queries, dashboard data sources&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ETL processing&lt;/strong&gt;: Data extraction, transformation, loading&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Data analysis&lt;/strong&gt;: Ad-hoc queries, data exploration&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HTAP mixed workloads&lt;/strong&gt;: Analytical replicas&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Workload characteristics&lt;/strong&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Package Alias</title>
        <link>https://pgsty.pro/docs/pgsql/config/alias/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/alias/</guid>
        <description>&lt;p&gt;PostgreSQL package naming conventions vary significantly across different operating systems:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;EL systems&lt;/strong&gt; (RHEL/Rocky/Alma/&amp;hellip;) use formats like &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 systems&lt;/strong&gt; use formats like &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;This difference adds cognitive burden to users: you need to remember different package name rules for different systems, and handle the embedding of PostgreSQL version numbers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;package-alias&#34;&gt;Package Alias&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty solves this problem through the &lt;strong&gt;Package Alias&lt;/strong&gt; mechanism: you only need to use unified aliases, and Pigsty will handle all the details:&lt;/p&gt;</description>
      </item>
    <item>
        <title>CRIT Template</title>
        <link>https://pgsty.pro/docs/pgsql/template/crit/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/template/crit/</guid>
        <description>&lt;p&gt;&lt;code&gt;crit.yml&lt;/code&gt; targets transactional workloads with elevated consistency and audit requirements. It forces data checksums and Patroni strict synchronous mode, adds connection logging, and adjusts selected WAL, timeout, and parallel-query parameters.&lt;/p&gt;&#xA;&lt;p&gt;The template increases write latency and may block writes when no synchronous replica is available. Before use, confirm consistency objectives, failure domains, client commit settings, and availability requirements.&lt;/p&gt;&#xA;&lt;p&gt;Also evaluate &lt;a href=&#34;https://pgsty.pro/docs/node/param/#node_tune&#34;&gt;&lt;strong&gt;&lt;code&gt;node_tune: crit&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, although host tuning and database parameters can be selected independently.&lt;/p&gt;</description>
      </item>
    <item>
        <title>E-R Model of Etcd Cluster</title>
        <link>https://pgsty.pro/docs/concept/model/etcd/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/model/etcd/</guid>
        <description>&lt;p&gt;The ETCD module organizes ETCD in production as &lt;strong&gt;clusters&lt;/strong&gt;—&lt;strong&gt;logical entities&lt;/strong&gt; composed of a group of ETCD &lt;strong&gt;instances&lt;/strong&gt; associated through the &lt;strong&gt;Raft&lt;/strong&gt; consensus protocol.&lt;/p&gt;&#xA;&lt;p&gt;Each cluster is an &lt;strong&gt;autonomous&lt;/strong&gt; distributed key-value storage unit consisting of at least one &lt;strong&gt;ETCD instance&lt;/strong&gt;, exposing service capabilities through client ports.&lt;/p&gt;&#xA;&lt;p&gt;There are three core entities in Pigsty&amp;rsquo;s ETCD module:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cluster&lt;/strong&gt;: An autonomous ETCD service unit serving as the top-level namespace for other entities.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Instance&lt;/strong&gt;: A single ETCD server process running on a node, participating in Raft consensus.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Node&lt;/strong&gt;: A hardware resource abstraction running Linux + Systemd environment, implicitly declared.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Compared to PostgreSQL clusters, the ETCD cluster model is simpler, without Services or complex Role distinctions.&#xA;All ETCD instances are functionally equivalent, electing a Leader through the Raft protocol while others become Followers.&#xA;During scale-out intermediate states, non-voting Learner instance members are also allowed.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Patroni HA Management</title>
        <link>https://pgsty.pro/docs/pgsql/admin/patroni/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/patroni/</guid>
        <description>&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses Patroni to manage PostgreSQL clusters. It handles config changes, status checks, switchover, restart, reinit replicas, and more.&lt;/p&gt;&#xA;&lt;p&gt;To use Patroni for management, you need one of the following identities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;From &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#admin-node&#34;&gt;&lt;strong&gt;INFRA node&lt;/strong&gt;&lt;/a&gt; as &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/&#34;&gt;&lt;strong&gt;admin user&lt;/strong&gt;&lt;/a&gt;, managing all clusters in the environment.&lt;/li&gt;&#xA;&lt;li&gt;From &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#pgsql-node&#34;&gt;&lt;strong&gt;PGSQL node&lt;/strong&gt;&lt;/a&gt; as &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_dbsu&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_dbsu&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; (default &lt;code&gt;postgres&lt;/code&gt;), managing the current cluster only.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Patroni provides &lt;a href=&#34;https://patroni.readthedocs.io/en/latest/patronictl.html&#34;&gt;&lt;strong&gt;&lt;code&gt;patronictl&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; CLI for management. Pigsty provides a wrapper alias &lt;code&gt;pg&lt;/code&gt; to simplify operations.&lt;/p&gt;</description>
      </item>
    <item>
        <title>User/Role</title>
        <link>https://pgsty.pro/docs/pgsql/config/user/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/user/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;In this document, &amp;ldquo;user&amp;rdquo; refers to a logical object within a database cluster created with &lt;code&gt;CREATE USER/ROLE&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;In PostgreSQL, users belong directly to the database cluster rather than a specific database. Therefore, when creating business databases and users, follow the principle of &amp;ldquo;users first, databases later&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty defines roles and users through two config parameters:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_default_roles&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_default_roles&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: Define globally shared roles and users&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_users&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_users&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: Define business users and roles at cluster level&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The former defines roles/users shared across the entire environment; the latter defines business roles/users specific to a single cluster. Both have the same format as arrays of user definition objects.&#xA;Users/roles are created sequentially in array order, so later users can belong to roles defined earlier.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Database</title>
        <link>https://pgsty.pro/docs/pgsql/config/db/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/db/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;In this document, &amp;ldquo;database&amp;rdquo; refers to a logical object within a database cluster created with &lt;code&gt;CREATE DATABASE&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;A PostgreSQL cluster can serve multiple &lt;strong&gt;databases&lt;/strong&gt; simultaneously. In Pigsty, you can &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/db/#define-database&#34;&gt;&lt;strong&gt;define&lt;/strong&gt;&lt;/a&gt; required databases in cluster configuration.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty customizes the &lt;code&gt;template1&lt;/code&gt; template database - creating default schemas, installing default extensions, configuring default privileges. Newly created databases inherit these settings from &lt;code&gt;template1&lt;/code&gt;.&#xA;You can also specify other template databases via &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/db/#template&#34;&gt;&lt;strong&gt;&lt;code&gt;template&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; for instant &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/db/#clone-database&#34;&gt;&lt;strong&gt;database cloning&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;By default, all business databases are 1:1 added to &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/pgsql/#pgbouncer&#34;&gt;&lt;strong&gt;Pgbouncer&lt;/strong&gt;&lt;/a&gt; &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/db/#connection-pool&#34;&gt;&lt;strong&gt;connection pool&lt;/strong&gt;&lt;/a&gt;; &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/pgsql/#pg_exporter&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; auto-discovers all business databases for in-database object monitoring.&#xA;All databases are also registered as PostgreSQL datasources in &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/infra/#grafana&#34;&gt;&lt;strong&gt;Grafana&lt;/strong&gt;&lt;/a&gt; on all &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#infra-node&#34;&gt;&lt;strong&gt;INFRA nodes&lt;/strong&gt;&lt;/a&gt; for PGCAT dashboards.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Managing PostgreSQL HBA Rules</title>
        <link>https://pgsty.pro/docs/pgsql/admin/hba/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/hba/</guid>
        <description>&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses declarative management: first &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;define HBA rules&lt;/strong&gt;&lt;/a&gt; in the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt;, then use &lt;code&gt;bin/pgsql-hba &amp;lt;cls&amp;gt;&lt;/code&gt; to refresh.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-98574f61-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-98574f61-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;--- Define HBA rules here!&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;Script&#34; data-td-tab-group=&#34;script-playbook-example&#34; data-td-tab-value=&#34;script&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Script&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-98574f61-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-98574f61-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;# Refresh PostgreSQL and Pgbouncer HBA rules for cluster&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;# Refresh HBA rules for specific instances&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;Playbook&#34; data-td-tab-value=&#34;playbook&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Playbook&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-98574f61-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-98574f61-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;# Refresh PostgreSQL HBA only&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;# Refresh Pgbouncer HBA only&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;# Refresh both&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;Example&#34; data-td-tab-value=&#34;example&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Example&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-98574f61-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-98574f61-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;# Refresh pg-meta cluster HBA rules&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;# Refresh specific instance only&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;# Refresh multiple instances&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;For rule syntax, see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;HBA Configuration&lt;/strong&gt;&lt;/a&gt;. For authentication methods, default boundaries, and credential management, see &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Network Partition</title>
        <link>https://pgsty.pro/docs/concept/ha/failure/partition/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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 Network Partition Failover Flow&#xA;  desc Primary partitioned from DCS, Patroni proactively demotes to prevent split-brain, waits for TTL expiration before switchover&#xA;  items&#xA;    - label Primary Demote&#xA;      desc Patroni demotes PG after retry timeout&#xA;      icon mingcute/shield-fill&#xA;    - label Lease Expiration&#xA;      desc Leader Key TTL expires&#xA;      icon mingcute/close-circle-fill&#xA;    - label Replica Detection&#xA;      desc Replica detects lease expiration, starts election&#xA;      icon mingcute/key-2-fill&#xA;    - label Lock &amp;amp; Promote&#xA;      desc Replica acquires lock and promotes to new primary&#xA;      icon mingcute/radar-fill&#xA;    - label Health Check&#xA;      desc HAProxy detects new primary online&#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-timeline&#34;&gt;RTO Timeline&#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: [Primary Demote, Lease Expiration, Replica Detection, Lock &amp;amp; Promote, Health Check] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: sec, 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: Primary Demote, 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: Lease Expiration, 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: Replica Detection, 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: Lock &amp;amp; Promote, 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: Health Check, 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 Total, 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 Budget, 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;failure-model&#34;&gt;Failure Model&#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;Phase&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Best&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Worst&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Average&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Notes&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;Demote&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 retries after detecting partition, demotes after timeout&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Lease Expiration&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;Remaining TTL time after demotion (approximately constant)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Replica Detection&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;Best: Right at detection point&lt;br/&gt;Worst: Just missed detection&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Lock &amp;amp; Promote&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;Best: Direct lock and promote&lt;br/&gt;Worst: API timeout + 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;Health Check&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;Best: State changes before check&lt;br/&gt;Worst: State changes right after check&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;Key difference between network partition and node crash&lt;/strong&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>MINIO Cluster Model</title>
        <link>https://pgsty.pro/docs/concept/model/minio/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/model/minio/</guid>
        <description>&lt;p&gt;MINIO is Pigsty&amp;rsquo;s compatibility module name for object storage. The current v4.5.0 source deploys Silo through &lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_type&#34;&gt;&lt;code&gt;minio_type: silo&lt;/code&gt;&lt;/a&gt; and organizes a group of object-storage &lt;strong&gt;instances&lt;/strong&gt; into a &lt;strong&gt;cluster&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Each cluster is an &lt;strong&gt;autonomous&lt;/strong&gt; S3-compatible object-storage unit consisting of at least one instance and exposing service through the S3 API port.&lt;/p&gt;&#xA;&lt;p&gt;There are three core entities in Pigsty&amp;rsquo;s MINIO module:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cluster&lt;/strong&gt;: An autonomous object-storage service unit serving as the top-level namespace for other entities.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Instance&lt;/strong&gt;: A single Silo server process running on a node and managing local disks.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Node&lt;/strong&gt;: A hardware resource abstraction running Linux + Systemd environment, implicitly declared.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Silo also retains the &lt;a href=&#34;https://pgsty.pro/docs/minio/config/#multi-pool&#34;&gt;&lt;strong&gt;Storage Pool&lt;/strong&gt;&lt;/a&gt; concept for expansion.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pgbouncer Connection Pooling</title>
        <link>https://pgsty.pro/docs/pgsql/admin/pgbouncer/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/pgbouncer/</guid>
        <description>&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses &lt;a href=&#34;https://www.pgbouncer.org/&#34;&gt;&lt;strong&gt;Pgbouncer&lt;/strong&gt;&lt;/a&gt; as PostgreSQL connection pooling middleware, listening on port &lt;code&gt;6432&lt;/code&gt; by default, proxying access to local PostgreSQL on port &lt;code&gt;5432&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is an &lt;strong&gt;optional component&lt;/strong&gt;. If you don&amp;rsquo;t have massive connections or need transaction pooling and query metrics, you can disable it, connect directly to the database, or keep it unused.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;user--database-management&#34;&gt;User &amp;amp; Database Management&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pgbouncer users and databases are auto-managed by Pigsty, applying &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/db/&#34;&gt;&lt;strong&gt;database config&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/user/&#34;&gt;&lt;strong&gt;user config&lt;/strong&gt;&lt;/a&gt; when &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/db/&#34;&gt;&lt;strong&gt;creating databases&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;creating users&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>TINY Template</title>
        <link>https://pgsty.pro/docs/pgsql/template/tiny/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/template/tiny/</guid>
        <description>&lt;p&gt;&lt;code&gt;tiny.yml&lt;/code&gt; is optimized for &lt;strong&gt;micro instances&lt;/strong&gt; and resource-constrained environments. Designed for 1-3 core CPUs with minimal resource usage, conservative memory allocation, and disabled parallel queries.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Pair with &lt;a href=&#34;https://pgsty.pro/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; for OS-level tuning.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;use-cases&#34;&gt;Use Cases&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;TINY template is ideal for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dev/test&lt;/strong&gt;: Local development, CI/CD testing&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Low-spec VMs&lt;/strong&gt;: 1-2 core CPU, 1-4GB RAM cloud instances&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Edge computing&lt;/strong&gt;: Raspberry Pi, embedded devices&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Demos&lt;/strong&gt;: Quick Pigsty experience&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Personal projects&lt;/strong&gt;: Resource-limited blogs, small apps&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Resource constraints&lt;/strong&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>HBA Rules</title>
        <link>https://pgsty.pro/docs/pgsql/config/hba/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/hba/</guid>
        <description>&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;HBA (Host-Based Authentication) controls &amp;ldquo;who can connect to the database, from where, and how&amp;rdquo;. See &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/a&gt; for the authentication model and default rules.&#xA;Pigsty manages HBA rules declaratively through &lt;a href=&#34;https://pgsty.pro/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; and &lt;a href=&#34;https://pgsty.pro/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;.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty renders the following config files during cluster init or HBA refresh:&lt;/p&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;Config File&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Path&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;PostgreSQL HBA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/pg/data/pg_hba.conf&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;PostgreSQL server HBA rules&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;PgBouncer HBA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/etc/pgbouncer/pgb_hba.conf&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Connection pool HBA rules&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;HBA rules are controlled by these parameters:&lt;/p&gt;</description>
      </item>
    <item>
        <title>E-R Model of Redis Cluster</title>
        <link>https://pgsty.pro/docs/concept/model/redis/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/model/redis/</guid>
        <description>&lt;p&gt;The Redis module organizes Redis in production as &lt;strong&gt;clusters&lt;/strong&gt;—&lt;strong&gt;logical entities&lt;/strong&gt; composed of a group of Redis &lt;strong&gt;instances&lt;/strong&gt; deployed on one or more &lt;strong&gt;nodes&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Each cluster is an &lt;strong&gt;autonomous&lt;/strong&gt; high-performance cache/storage unit consisting of at least one &lt;strong&gt;Redis instance&lt;/strong&gt;, exposing service capabilities through ports.&lt;/p&gt;&#xA;&lt;p&gt;There are three core entities in Pigsty&amp;rsquo;s Redis module:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cluster&lt;/strong&gt;: An autonomous Redis service unit serving as the top-level namespace for other entities.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Instance&lt;/strong&gt;: A single Redis server process running on a specific port on a node.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Node&lt;/strong&gt;: A hardware resource abstraction running Linux + Systemd environment, can host multiple Redis instances, implicitly declared.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Unlike PostgreSQL, Redis uses a &lt;strong&gt;single-node multi-instance&lt;/strong&gt; deployment model: one physical/virtual machine node typically deploys &lt;strong&gt;multiple&lt;/strong&gt; Redis instances&#xA;to fully utilize multi-core CPUs. Therefore, nodes and instances have a &lt;strong&gt;1:N&lt;/strong&gt; relationship. Additionally, production typically advises against Redis instances with memory &amp;gt; 12GB.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Access Control</title>
        <link>https://pgsty.pro/docs/pgsql/config/acl/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/acl/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Access control combines roles, object privileges, database ACLs, and HBA. This page covers configuration parameters; see &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;Access Control Concepts&lt;/strong&gt;&lt;/a&gt; for design and boundaries.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Pigsty provides a compact ACL model described by these parameters:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_default_roles&lt;/code&gt;: system roles and system users.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_users&lt;/code&gt;: application users and roles.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_default_privileges&lt;/code&gt;: default privileges on objects created by managed administrators and owners.&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;, and &lt;code&gt;pg_default_extensions&lt;/code&gt;: default behavior for &lt;code&gt;template1&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Manage these parameters together with HBA and database definitions to produce reproducible access-control configuration.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Managing PostgreSQL Component Services</title>
        <link>https://pgsty.pro/docs/pgsql/admin/component/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/component/</guid>
        <description>&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty&amp;rsquo;s PGSQL module consists of multiple components, each running as a systemd service on nodes. (&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/pgsql/#pgbackrest&#34;&gt;&lt;strong&gt;pgbackrest&lt;/strong&gt;&lt;/a&gt; is an exception)&lt;/p&gt;&#xA;&lt;p&gt;Understanding these components and their management is essential for maintaining production PostgreSQL clusters.&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;Component&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Port&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Service Name&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;Patroni&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;8008&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;patroni&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;HA manager, manages PostgreSQL lifecycle&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;strong&gt;&lt;code&gt;5432&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgres&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Placeholder service, not used, for emergency&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Pgbouncer&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;6432&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgbouncer&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Connection pooling middleware, traffic entry&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;PgBackRest&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;pgBackRest has no daemon service&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;HAProxy&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;543x&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;haproxy&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Load balancer, exposes database services&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_exporter&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;9630&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;PostgreSQL metrics exporter&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgbouncer_exporter&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;9631&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgbouncer_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Pgbouncer metrics exporter&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;vip-manager&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;code&gt;vip-manager&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Optional, manages L2 VIP address floating&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-callout td-callout--warning&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-triangle-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Important&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;Do NOT use systemctl directly to manage PostgreSQL service&lt;/strong&gt;. PostgreSQL is managed by Patroni - use &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;&lt;code&gt;patronictl&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; commands instead.&#xA;Direct PostgreSQL operations may cause Patroni state inconsistency and trigger unexpected failover. The &lt;code&gt;postgres&lt;/code&gt; service is an emergency escape hatch when Patroni fails.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/pgsql/config/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/config/param/</guid>
        <description>&lt;p&gt;PostgreSQL parameters can be configured at multiple levels with different scopes and precedence.&#xA;Pigsty supports four configuration levels, from global to local:&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;Level&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Scope&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Configuration Method&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Storage Location&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/docs/pgsql/config/param/#cluster-level&#34;&gt;&lt;strong&gt;Cluster&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;All instances in cluster&lt;/td&gt;&#xA;      &lt;td&gt;Patroni DCS / Tuning Templates&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/docs/pgsql/config/param/#instance-level&#34;&gt;&lt;strong&gt;Instance&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Single PG instance&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/docs/pgsql/config/param/#database-level&#34;&gt;&lt;strong&gt;Database&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;All sessions in a DB&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/docs/pgsql/config/param/#user-level&#34;&gt;&lt;strong&gt;User&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;All sessions of a user&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;Priority from low to high: &lt;strong&gt;Cluster &amp;lt; Instance &amp;lt; Database &amp;lt; User &amp;lt; Session&lt;/strong&gt; (&lt;code&gt;SET&lt;/code&gt; command).&#xA;Higher priority settings override lower ones.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Manage PostgreSQL Cron Jobs</title>
        <link>https://pgsty.pro/docs/pgsql/admin/crontab/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/crontab/</guid>
        <description>&lt;p&gt;Pigsty uses crontab to manage scheduled tasks for routine backups, freezing aging transactions, and reorganizing bloated tables and indexes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;quick-reference&#34;&gt;Quick Reference&#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;Operation&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Quick Command&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/crontab/#configure-cron-jobs&#34;&gt;&lt;strong&gt;Configure Cron Jobs&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;Apply pg_crontab config&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/docs/pgsql/admin/crontab/#view-cron-jobs&#34;&gt;&lt;strong&gt;View Cron Jobs&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;View as postgres user&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/docs/pgsql/admin/crontab/#pg-backup&#34;&gt;&lt;strong&gt;Physical Backup&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;Execute backup with 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/docs/pgsql/admin/crontab/#pg-vacuum&#34;&gt;&lt;strong&gt;Transaction Freeze&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;Freeze aging transactions, prevent XID wraparound&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/docs/pgsql/admin/crontab/#pg-repack&#34;&gt;&lt;strong&gt;Bloat Maintenance&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;Online reorganize bloated tables and indexes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;For other management tasks, see: &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/&#34;&gt;&lt;strong&gt;Backup Management&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/monitor/&#34;&gt;&lt;strong&gt;Monitoring System&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;HA Management&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Managing PostgreSQL Extensions</title>
        <link>https://pgsty.pro/docs/pgsql/admin/ext/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/ext/</guid>
        <description>&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty provides &lt;a href=&#34;https://pigsty.io/ext/list&#34;&gt;&lt;strong&gt;575 extensions&lt;/strong&gt;&lt;/a&gt;. Using extensions involves four steps: &lt;strong&gt;Download&lt;/strong&gt;, &lt;strong&gt;Install&lt;/strong&gt;, &lt;strong&gt;Configure&lt;/strong&gt;, &lt;strong&gt;Enable&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-22fd01c8-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-22fd01c8-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;--- Install extension packages&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;--- Configure preload extensions&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;--- Enable in database&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;Script&#34; data-td-tab-group=&#34;script-playbook-example&#34; data-td-tab-value=&#34;script&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Script&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-22fd01c8-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-22fd01c8-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;# Install extensions defined in config on &amp;lt;cls&amp;gt; cluster&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;# Install extensions specified on command line&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;Playbook&#34; data-td-tab-value=&#34;playbook&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Playbook&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-22fd01c8-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-22fd01c8-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;# Use playbook to install extensions&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;Example&#34; data-td-tab-value=&#34;example&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Example&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-22fd01c8-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-22fd01c8-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;# Install defined extensions on pg-meta cluster&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;# Install specified extensions&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;For complete extension reference, see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/ext/&#34;&gt;&lt;strong&gt;Extensions&lt;/strong&gt;&lt;/a&gt;. For available extensions, see &lt;a href=&#34;https://pigsty.io/ext/list&#34;&gt;&lt;strong&gt;Extension Catalog&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Upgrading PostgreSQL Major/Minor Versions</title>
        <link>https://pgsty.pro/docs/pgsql/admin/upgrade/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/admin/upgrade/</guid>
        <description>&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;PostgreSQL version upgrades fall into two types: &lt;strong&gt;minor version upgrade&lt;/strong&gt; and &lt;strong&gt;major version upgrade&lt;/strong&gt;, with very different risk and complexity.&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;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Example&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Downtime&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Data Compatibility&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Risk&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;Minor upgrade&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;Seconds (rolling)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fully compatible&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Low&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Major upgrade&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;Minutes&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Requires data dir upgrade&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Medium&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;Minor&#34; data-td-tab-group=&#34;minor-major-extension&#34; data-td-tab-value=&#34;minor&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Minor&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-83970e5e-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-83970e5e-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;# Rolling upgrade: replicas first, then primary&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;Major&#34; data-td-tab-value=&#34;major&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Major&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-83970e5e-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-83970e5e-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;# Recommended: Logical replication migration&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;# Create new version cluster&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;# Configure logical replication to sync data...&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;# Switch traffic to new cluster&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;Extension&#34; data-td-tab-value=&#34;extension&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;Extension&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-83970e5e-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-83970e5e-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;For detailed online migration process, see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/migration/&#34;&gt;&lt;strong&gt;Online Migration&lt;/strong&gt;&lt;/a&gt; documentation.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Roadmap</title>
        <link>https://pgsty.pro/docs/about/roadmap/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/roadmap/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;release-strategy&#34;&gt;Release Strategy&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses semantic versioning: &lt;code&gt;&amp;lt;major&amp;gt;.&amp;lt;minor&amp;gt;.&amp;lt;patch&amp;gt;&lt;/code&gt;. Alpha/Beta/RC versions will have suffixes like &lt;code&gt;-a1&lt;/code&gt;, &lt;code&gt;-b1&lt;/code&gt;, &lt;code&gt;-c1&lt;/code&gt; appended to the version number.&lt;/p&gt;&#xA;&lt;p&gt;Major version updates signify incompatible foundational changes and major new features; minor version updates typically indicate regular feature updates and small API changes; patch version updates mean bug fixes and package version updates.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty plans to release one major version update per year. Minor version updates usually follow PostgreSQL&amp;rsquo;s minor version update rhythm, catching up within a month at the latest after a new PostgreSQL version is released.&#xA;Pigsty typically plans 4-6 minor versions per year. For complete release history, please refer to &lt;a href=&#34;https://pgsty.pro/blog/release/&#34;&gt;&lt;strong&gt;Release Notes&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Join the Community</title>
        <link>https://pgsty.pro/docs/about/community/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/community/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;github&#34;&gt;GitHub&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Our GitHub repository is: &lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;https://github.com/pgsty/pigsty&lt;/a&gt;. Please give us a ⭐️ &lt;a href=&#34;https://github.com/pgsty/pigsty/stargazers&#34;&gt;&lt;strong&gt;star&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;p&gt;We welcome anyone to &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/new&#34;&gt;submit new Issues&lt;/a&gt; or create &lt;a href=&#34;https://github.com/pgsty/pigsty/pulls&#34;&gt;Pull Requests&lt;/a&gt;, propose feature suggestions, and contribute to Pigsty.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://star-history.com/#pgsty/pigsty&amp;amp;Date&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://api.star-history.com/svg?repos=pgsty/pigsty&amp;type=Date&#34; alt=&#34;Star History Chart&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Please note that for issues related to Pigsty documentation, please submit &lt;a href=&#34;https://github.com/pgsty/pigsty.cc/issues&#34;&gt;Issues&lt;/a&gt; in the &lt;a href=&#34;https://github.com/pgsty/pigsty.cc&#34;&gt;github.com/pgsty/pigsty.cc&lt;/a&gt; repository.&lt;/p&gt;&#xA;&lt;p&gt;Press &lt;span class=&#34;td-kbd-sequence&#34;&gt;&lt;kbd&gt;⌘&lt;/kbd&gt;&lt;span class=&#34;td-kbd-sequence__separator&#34; aria-hidden=&#34;true&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;visually-hidden&#34;&gt; with &lt;/span&gt;&lt;kbd&gt;K&lt;/kbd&gt;&lt;/span&gt; on macOS, or &lt;span class=&#34;td-kbd-sequence&#34;&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt;&lt;span class=&#34;td-kbd-sequence__separator&#34; aria-hidden=&#34;true&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;visually-hidden&#34;&gt; with &lt;/span&gt;&lt;kbd&gt;K&lt;/kbd&gt;&lt;/span&gt;, to search the documentation, extension catalog, and blog directly.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;maintainers&#34;&gt;Maintainers&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty is built by its maintainers and community.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Privacy Policy</title>
        <link>https://pgsty.pro/docs/about/privacy/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/privacy/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;pigsty-software&#34;&gt;Pigsty Software&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;When you install Pigsty software, if you use offline package installation in a network-isolated environment, &lt;strong&gt;we will not receive any data about you&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you choose online installation, when downloading related packages, our servers or cloud provider servers will automatically log the visiting machine&amp;rsquo;s IP address and/or hostname in the logs, along with the package names you downloaded.&lt;/p&gt;&#xA;&lt;p&gt;We will not share this information with other organizations unless required by law. (Honestly, we&amp;rsquo;d have to be really bored to look at this stuff.)&lt;/p&gt;</description>
      </item>
    <item>
        <title>License</title>
        <link>https://pgsty.pro/docs/about/license/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/license/</guid>
        <description>&lt;h2 id=&#34;license-summary&#34;&gt;License Summary&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty core uses &lt;strong&gt;Apache-2.0&lt;/strong&gt;; documentation uses &lt;strong&gt;CC BY 4.0&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Official License: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/LICENSE&#34;&gt;https://github.com/pgsty/pigsty/blob/main/LICENSE&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;pigsty-core&#34;&gt;Pigsty Core&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The Pigsty core is licensed under &lt;a href=&#34;https://pgsty.pro/docs/about/license/#apache-20-license-text&#34;&gt;&lt;strong&gt;Apache License 2.0&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Apache-2.0 is a permissive open-source license. You may freely use, modify, and distribute the software for commercial purposes without opening your own source code or adopting the same license.&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: center&#34;&gt;&lt;strong&gt;What This License Grants&lt;/strong&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;strong&gt;What This License Does NOT Grant&lt;/strong&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;strong&gt;License Conditions&lt;/strong&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;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt; Commercial use&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-xmark text-danger&#34;&gt;&lt;/i&gt; Trademark use&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fa-solid fa-triangle-exclamation text-secondary&#34;&gt;&lt;/i&gt; Include license and copyright notice&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt; Modification&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-xmark text-danger&#34;&gt;&lt;/i&gt; Liability &amp;amp; warranty&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fa-solid fa-triangle-exclamation text-secondary&#34;&gt;&lt;/i&gt; State changes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt; Distribution&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt; Patent grant&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt; Private use&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&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;pigsty-documentation&#34;&gt;Pigsty Documentation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty documentation sites (&lt;a href=&#34;https://pigsty.cc&#34;&gt;&lt;strong&gt;pigsty.cc&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pigsty.io&#34;&gt;&lt;strong&gt;pigsty.io&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.com&#34;&gt;&lt;strong&gt;pgsty.com&lt;/strong&gt;&lt;/a&gt;) use &lt;strong&gt;Creative Commons Attribution 4.0 International (CC BY 4.0)&lt;/strong&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Sponsor Us</title>
        <link>https://pgsty.pro/docs/about/sponsor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/sponsor/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;sponsor-us&#34;&gt;Sponsor Us&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty is a free and open-source software, passionately developed by PostgreSQL community members, aiming to integrate the power of the PostgreSQL ecosystem and promote the widespread adoption of PostgreSQL.&#xA;If our work has helped you, please consider sponsoring or supporting our project:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sponsor us directly with financial support - express your sincere support in the most direct and powerful way!&lt;/li&gt;&#xA;&lt;li&gt;Consider purchasing our &lt;a href=&#34;https://pgsty.pro/docs/about/service/&#34;&gt;&lt;strong&gt;Technical Support Services&lt;/strong&gt;&lt;/a&gt;. We can provide professional PostgreSQL high-availability cluster deployment and maintenance services, making your budget worthwhile!&lt;/li&gt;&#xA;&lt;li&gt;Share your Pigsty use cases and experiences through articles, talks, and videos.&lt;/li&gt;&#xA;&lt;li&gt;Allow us to mention your organization in &amp;ldquo;Users of Pigsty.&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Recommend/refer our project and services to friends, colleagues, and clients in need.&lt;/li&gt;&#xA;&lt;li&gt;Follow our &lt;a href=&#34;https://mp.weixin.qq.com/s/p4Ys10ZdEDAuqNAiRmcnIQ&#34;&gt;&lt;strong&gt;WeChat Official Account&lt;/strong&gt;&lt;/a&gt; and share relevant technical articles to groups and your social media.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;angel-investors&#34;&gt;Angel Investors&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty is a project invested by &lt;a href=&#34;https://www.miracleplus.com/en/&#34;&gt;&lt;strong&gt;Miracle Plus&lt;/strong&gt;&lt;/a&gt; (formerly YC China) S22. We thank Miracle Plus and Dr. Qi Lu for their support of this project!&lt;/p&gt;</description>
      </item>
    <item>
        <title>User Cases</title>
        <link>https://pgsty.pro/docs/about/case/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/case/</guid>
        <description>&lt;p&gt;According to Google Analytics PV and download statistics, Pigsty currently has approximately &lt;strong&gt;100,000 users&lt;/strong&gt;, with half from mainland China and half from other regions globally.&#xA;They span across multiple industries including internet, cloud computing, finance, autonomous driving, manufacturing, tech innovation, ISV, and defense.&#xA;If you are using Pigsty and are willing to share your case and Logo with us, please contact us - we offer one free consultation session as a token of appreciation.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Subscription</title>
        <link>https://pgsty.pro/docs/about/service/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/service/</guid>
        <description>&lt;p&gt;Pigsty aims to unite the power of the PostgreSQL ecosystem and help users make the most of the world&amp;rsquo;s &lt;a href=&#34;https://pigsty.io/blog/pg/pg-is-no1-again/&#34;&gt;&lt;strong&gt;most popular&lt;/strong&gt;&lt;/a&gt; database, PostgreSQL, with self-driving database management software.&lt;/p&gt;&#xA;&lt;p&gt;While Pigsty itself has already resolved many issues in PostgreSQL usage, achieving truly enterprise-grade service quality requires expert support and comprehensive coverage from the original provider.&#xA;We deeply understand the importance of professional commercial support for enterprise customers. Therefore, Pigsty Enterprise Edition provides a series of value-added services on top of the open-source version, helping users better utilize PostgreSQL and Pigsty for customers to choose according to their needs.&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/about/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-pigsty-and-what-is-it-not&#34;&gt;What is Pigsty, and what is it not?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty is a PostgreSQL database distribution, a local-first open-source RDS cloud database solution.&#xA;Pigsty is not a Database Management System (DBMS), but rather a tool, distribution, solution, and best practice for managing DBMS.&lt;/p&gt;&#xA;&lt;p&gt;Analogy: The database is the car, then the DBA is the driver, RDS is the taxi service, and Pigsty is the autonomous driving software.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Nodes</title>
        <link>https://pgsty.pro/docs/concept/arch/node/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/arch/node/</guid>
        <description>&lt;p&gt;A &lt;strong&gt;node&lt;/strong&gt; is an abstraction of hardware resources and operating systems. It can be a physical machine, bare metal, virtual machine, or container/pod.&lt;/p&gt;&#xA;&lt;p&gt;Any machine running a &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/&#34;&gt;&lt;strong&gt;Linux OS&lt;/strong&gt;&lt;/a&gt; (with systemd daemon) and standard CPU/memory/disk/network resources can be treated as a node.&lt;/p&gt;&#xA;&lt;p&gt;Nodes can have &lt;a href=&#34;https://pgsty.pro/docs/ref/module/&#34;&gt;&lt;strong&gt;modules&lt;/strong&gt;&lt;/a&gt; installed. Pigsty has several node types, distinguished by which modules are deployed:&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: center&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#regular-node&#34;&gt;&lt;strong&gt;Regular Node&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;A node managed by Pigsty&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#admin-node&#34;&gt;&lt;strong&gt;ADMIN Node&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;The node that runs Ansible to issue management commands&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#infra-node&#34;&gt;&lt;strong&gt;INFRA Node&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Nodes with the &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA&lt;/strong&gt;&lt;/a&gt; module installed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#etcd-node&#34;&gt;&lt;strong&gt;ETCD Node&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Nodes with the &lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;ETCD&lt;/strong&gt;&lt;/a&gt; module for DCS&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#minio-node&#34;&gt;&lt;strong&gt;MINIO Node&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Nodes with the &lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;MINIO&lt;/strong&gt;&lt;/a&gt; module for object storage&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#pgsql-node&#34;&gt;&lt;strong&gt;PGSQL Node&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Nodes with the &lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL&lt;/strong&gt;&lt;/a&gt; module installed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&amp;hellip;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Nodes with other modules&amp;hellip;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;In a &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;singleton&lt;/strong&gt;&lt;/a&gt; Pigsty deployment, multiple roles converge on one node: it serves as the regular node, admin node, infra node, ETCD node, and database node simultaneously.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Cost Reference</title>
        <link>https://pgsty.pro/docs/about/compare/cost/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/compare/cost/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The cost data below is intended to illustrate order-of-magnitude differences. Cloud vendor pricing and discounts vary over time, region, instance size, and purchase model.&lt;/p&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: center&#34;&gt;EC2&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Core·Month&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;RDS&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Core·Month&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;DHH Self-Hosted Core-Month Price (192C 384G)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;25.32&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Junior Open Source DB DBA Reference Salary&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;¥15K/person·month&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;IDC Self-Hosted (Dedicated Physical: 64C384G)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;19.53&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Mid-Level Open Source DB DBA Reference Salary&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;¥30K/person·month&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;IDC Self-Hosted (Container, 500% Oversold)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Senior Open Source DB DBA Reference Salary&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;¥60K/person·month&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;UCloud Elastic VM (8C16G, Oversold)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;25&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;ORACLE Database License&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;10000&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Aliyun ECS 2x Memory (Dedicated, No Oversold)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;107&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Aliyun RDS PG 2x Memory (Dedicated)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;260&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Aliyun ECS 4x Memory (Dedicated, No Oversold)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;138&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Aliyun RDS PG 4x Memory (Dedicated)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;320&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Aliyun ECS 8x Memory (Dedicated, No Oversold)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;180&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Aliyun RDS PG 8x Memory (Dedicated)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;410&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;AWS C5D.METAL 96C 200G (Monthly No Prepaid)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;100&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;AWS RDS PostgreSQL db.T2 (2x)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;440&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;AWS C5D.METAL 96C 200G (3-Year Prepaid)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;80&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;AWS RDS PostgreSQL db.M5 (4x)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;611&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;AWS C7A.METAL 192C 384G (3-Year Prepaid)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;104.8&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;AWS RDS PostgreSQL db.R6G (8x)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;786&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;rds-cost-reference&#34;&gt;RDS Cost Reference&#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;&gt;Payment Model&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Price&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Annualized (¥10K)&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;IDC Self-Hosted (Single Physical Machine)&lt;/td&gt;&#xA;      &lt;td&gt;¥75K / 5 years&lt;/td&gt;&#xA;      &lt;td&gt;1.5&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;IDC Self-Hosted (2-3 Machines for HA)&lt;/td&gt;&#xA;      &lt;td&gt;¥150K / 5 years&lt;/td&gt;&#xA;      &lt;td&gt;3.0 ~ 4.5&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Aliyun RDS On-Demand&lt;/td&gt;&#xA;      &lt;td&gt;¥87.36/hour&lt;/td&gt;&#xA;      &lt;td&gt;76.5&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Aliyun RDS Monthly (Baseline)&lt;/td&gt;&#xA;      &lt;td&gt;¥42K / month&lt;/td&gt;&#xA;      &lt;td&gt;50&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Aliyun RDS Annual (85% off)&lt;/td&gt;&#xA;      &lt;td&gt;¥425,095 / year&lt;/td&gt;&#xA;      &lt;td&gt;42.5&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Aliyun RDS 3-Year Prepaid (50% off)&lt;/td&gt;&#xA;      &lt;td&gt;¥750,168 / 3 years&lt;/td&gt;&#xA;      &lt;td&gt;25&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;AWS On-Demand&lt;/td&gt;&#xA;      &lt;td&gt;$25,817 / month&lt;/td&gt;&#xA;      &lt;td&gt;217&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;AWS 1-Year No Prepaid&lt;/td&gt;&#xA;      &lt;td&gt;$22,827 / month&lt;/td&gt;&#xA;      &lt;td&gt;191.7&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;AWS 3-Year Full Prepaid&lt;/td&gt;&#xA;      &lt;td&gt;$120K + $17.5K/month&lt;/td&gt;&#xA;      &lt;td&gt;175&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;AWS China/Ningxia On-Demand&lt;/td&gt;&#xA;      &lt;td&gt;¥197,489 / month&lt;/td&gt;&#xA;      &lt;td&gt;237&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;AWS China/Ningxia 1-Year No Prepaid&lt;/td&gt;&#xA;      &lt;td&gt;¥143,176 / month&lt;/td&gt;&#xA;      &lt;td&gt;171&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;AWS China/Ningxia 3-Year Full Prepaid&lt;/td&gt;&#xA;      &lt;td&gt;¥647K + ¥116K/month&lt;/td&gt;&#xA;      &lt;td&gt;160.6&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Here&amp;rsquo;s a comparison of self-hosted vs cloud database costs:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Open-Source Impact</title>
        <link>https://pgsty.pro/docs/about/compare/impact/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/compare/impact/</guid>
        <description>&lt;h2 id=&#34;china-postgresql-ecosystem-projects&#34;&gt;China PostgreSQL Ecosystem Projects&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Sorted by GitHub stars in descending order. Last updated: 2026-08-13 (Beijing time).&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;Project&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Star&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Author&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Summary&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://github.com/pgsty/pigsty&#34;&gt;&lt;code&gt;pgsty/pigsty&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/stargazers&#34;&gt;&lt;strong&gt;5521&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Ruohang Feng @ &lt;strong&gt;PGSTY&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Distribution&lt;/td&gt;&#xA;      &lt;td&gt;Out-of-the-box PostgreSQL distribution&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/polardb/PolarDB-for-PostgreSQL&#34;&gt;&lt;code&gt;polardb/PolarDB-for-PostgreSQL&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/polardb/PolarDB-for-PostgreSQL/stargazers&#34;&gt;&lt;strong&gt;3191&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Alibaba Cloud&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Kernel&lt;/td&gt;&#xA;      &lt;td&gt;Open-source PolarDB for PostgreSQL kernel&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/tensorchord/pgvecto.rs&#34;&gt;&lt;code&gt;tensorchord/pgvecto.rs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/tensorchord/pgvecto.rs/stargazers&#34;&gt;&lt;strong&gt;2181&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;TensorChord&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;Vector search extension written in Rust&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/tensorchord/VectorChord&#34;&gt;&lt;code&gt;tensorchord/VectorChord&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/tensorchord/VectorChord/stargazers&#34;&gt;&lt;strong&gt;1770&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;TensorChord&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;Next-generation vector search extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/Tencent/TBase&#34;&gt;&lt;code&gt;Tencent/TBase&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/Tencent/TBase/stargazers&#34;&gt;&lt;strong&gt;1439&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Tencent Cloud&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Kernel&lt;/td&gt;&#xA;      &lt;td&gt;Tencent distributed HTAP database kernel&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/apache/cloudberry&#34;&gt;&lt;code&gt;apache/cloudberry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/apache/cloudberry/stargazers&#34;&gt;&lt;strong&gt;1315&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;HashData&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Kernel&lt;/td&gt;&#xA;      &lt;td&gt;Open-source MPP data warehouse kernel&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/IvorySQL/IvorySQL&#34;&gt;&lt;code&gt;IvorySQL/IvorySQL&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/IvorySQL/IvorySQL/stargazers&#34;&gt;&lt;strong&gt;1051&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;HighGo&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Kernel&lt;/td&gt;&#xA;      &lt;td&gt;Oracle-compatible PostgreSQL fork&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/pgplex/pgschema&#34;&gt;&lt;code&gt;pgplex/pgschema&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgplex/pgschema/stargazers&#34;&gt;&lt;strong&gt;995&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Chen Tianzhou&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Tool&lt;/td&gt;&#xA;      &lt;td&gt;Declarative Postgres schema migration CLI&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/amutu/zhparser&#34;&gt;&lt;code&gt;amutu/zhparser&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/amutu/zhparser/stargazers&#34;&gt;&lt;strong&gt;869&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Jov&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;Chinese full-text parser based on SCWS&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/opengauss-mirror/openGauss-server&#34;&gt;&lt;code&gt;opengauss-mirror/openGauss-server&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/opengauss-mirror/openGauss-server/stargazers&#34;&gt;&lt;strong&gt;784&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Huawei&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Kernel&lt;/td&gt;&#xA;      &lt;td&gt;Early PostgreSQL 9.2 kernel fork&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/HaloTech-Co-Ltd/openHalo&#34;&gt;&lt;code&gt;HaloTech-Co-Ltd/openHalo&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/HaloTech-Co-Ltd/openHalo/stargazers&#34;&gt;&lt;strong&gt;437&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;HaloTech&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Kernel&lt;/td&gt;&#xA;      &lt;td&gt;PostgreSQL kernel compatible with MySQL wire protocol&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/jaiminpan/pg_jieba&#34;&gt;&lt;code&gt;jaiminpan/pg_jieba&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/jaiminpan/pg_jieba/stargazers&#34;&gt;&lt;strong&gt;417&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pan Jiamin&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;Chinese full-text search extension based on Jieba&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/alitrack/duckdb_fdw&#34;&gt;&lt;code&gt;alitrack/duckdb_fdw&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/alitrack/duckdb_fdw/stargazers&#34;&gt;&lt;strong&gt;409&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Li Hongyan&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;DuckDB foreign data wrapper&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/tensorchord/VectorChord-bm25&#34;&gt;&lt;code&gt;tensorchord/VectorChord-bm25&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/tensorchord/VectorChord-bm25/stargazers&#34;&gt;&lt;strong&gt;375&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;TensorChord&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;Native BM25 ranking index for PostgreSQL&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/pgsty/pg_exporter&#34;&gt;&lt;code&gt;pgsty/pg_exporter&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pg_exporter/stargazers&#34;&gt;&lt;strong&gt;359&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Ruohang Feng @ &lt;strong&gt;PGSTY&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Tool&lt;/td&gt;&#xA;      &lt;td&gt;Metrics exporter for PostgreSQL and Pgbouncer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/ChenHuajun/pg_roaringbitmap&#34;&gt;&lt;code&gt;ChenHuajun/pg_roaringbitmap&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/ChenHuajun/pg_roaringbitmap/stargazers&#34;&gt;&lt;strong&gt;286&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Chen Huajun @ Suning&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;PostgreSQL RoaringBitmap bitmap extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/pgsty/pig&#34;&gt;&lt;code&gt;pgsty/pig&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pig/stargazers&#34;&gt;&lt;strong&gt;199&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Ruohang Feng @ &lt;strong&gt;PGSTY&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Tool&lt;/td&gt;&#xA;      &lt;td&gt;PostgreSQL extension package manager&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/tensorchord/pg_bestmatch.rs&#34;&gt;&lt;code&gt;tensorchord/pg_bestmatch.rs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/tensorchord/pg_bestmatch.rs/stargazers&#34;&gt;&lt;strong&gt;101&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;TensorChord&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;BM25 sparse-vector generation in PostgreSQL&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/wublabdubdub/PDU-PostgreSQLDataUnloader&#34;&gt;&lt;code&gt;wublabdubdub/PDU-PostgreSQLDataUnloader&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/wublabdubdub/PDU-PostgreSQLDataUnloader/stargazers&#34;&gt;&lt;strong&gt;101&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Zhang Chen&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Tool&lt;/td&gt;&#xA;      &lt;td&gt;PostgreSQL database rescue and unloading tool&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/tensorchord/pg_tokenizer.rs&#34;&gt;&lt;code&gt;tensorchord/pg_tokenizer.rs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/tensorchord/pg_tokenizer.rs/stargazers&#34;&gt;&lt;strong&gt;45&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;TensorChord&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;Full-text search tokenizer extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/jaiminpan/pg_scws&#34;&gt;&lt;code&gt;jaiminpan/pg_scws&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/jaiminpan/pg_scws/stargazers&#34;&gt;&lt;strong&gt;41&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pan Jiamin&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td&gt;Chinese tokenizer extension based on SCWS&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://github.com/pgsty/pgext&#34;&gt;&lt;code&gt;pgsty/pgext&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pgext/stargazers&#34;&gt;&lt;strong&gt;31&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Ruohang Feng @ &lt;strong&gt;PGSTY&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Tool&lt;/td&gt;&#xA;      &lt;td&gt;PostgreSQL extension catalog and metadata tool&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;script&gt;&#xA;window.OinkEchartsFunctions = window.OinkEchartsFunctions || {};&#xA;(function (registry) {&#xA;var fnum = function(n) {&#xA;  n = Number(n);&#xA;  return Number.isFinite(n) ? n.toLocaleString(&#34;en-US&#34;) : &#39;&#39;;&#xA;};&#xA;var labfmt = function(params) {&#xA;  if (!params || params.value == null) return &#39;&#39;;&#xA;  return fnum(params.value);&#xA;};&#xA;var tipfmt = function(params) {&#xA;  if (!params || !params.length) return &#39;&#39;;&#xA;  return &#39;&lt;b&gt;&#39; + params[0].name + &#39;&lt;/b&gt;&lt;br/&gt;&#39; + params[0].marker + &#39; Star: &#39; + fnum(params[0].value);&#xA;};&#xA;var barclr = function(params) {&#xA;  if (params.name === &#39;pgsty/pigsty&#39;) {&#xA;    return new echarts.graphic.LinearGradient(0, 0, 1, 0, [&#xA;      { offset: 0, color: &#39;#d94841&#39; },&#xA;      { offset: 1, color: &#39;#f97316&#39; }&#xA;    ]);&#xA;  }&#xA;  return &#39;#7aa6c2&#39;;&#xA;};&#xA;registry[&#34;fnum&#34;] = fnum;&#xA;registry[&#34;labfmt&#34;] = labfmt;&#xA;registry[&#34;tipfmt&#34;] = tipfmt;&#xA;registry[&#34;barclr&#34;] = barclr;&#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:&#xA;  trigger: axis&#xA;  axisPointer: { type: shadow }&#xA;  formatter: $fn:tipfmt&#xA;grid: { left: 320, right: 72, top: 20, bottom: 26 }&#xA;xAxis:&#xA;  type: value&#xA;  max: 5600&#xA;  name: GitHub Stars&#xA;  nameLocation: middle&#xA;  nameGap: 24&#xA;  axisLabel: { formatter: $fn:fnum }&#xA;  splitLine: { show: true, lineStyle: { type: dashed, opacity: 0.45 } }&#xA;yAxis:&#xA;  type: category&#xA;  inverse: true&#xA;  axisLabel:&#xA;    align: right&#xA;    margin: 8&#xA;    width: 300&#xA;    overflow: truncate&#xA;    fontSize: 11&#xA;    fontFamily: monospace&#xA;  data:&#xA;    - &amp;#39;pgsty/pigsty&amp;#39;&#xA;    - &amp;#39;polardb/PolarDB-for-PostgreSQL&amp;#39;&#xA;    - &amp;#39;tensorchord/pgvecto.rs&amp;#39;&#xA;    - &amp;#39;tensorchord/VectorChord&amp;#39;&#xA;    - &amp;#39;Tencent/TBase&amp;#39;&#xA;    - &amp;#39;apache/cloudberry&amp;#39;&#xA;    - &amp;#39;IvorySQL/IvorySQL&amp;#39;&#xA;    - &amp;#39;pgplex/pgschema&amp;#39;&#xA;    - &amp;#39;amutu/zhparser&amp;#39;&#xA;    - &amp;#39;opengauss-mirror/openGauss-server&amp;#39;&#xA;    - &amp;#39;HaloTech-Co-Ltd/openHalo&amp;#39;&#xA;    - &amp;#39;jaiminpan/pg_jieba&amp;#39;&#xA;    - &amp;#39;alitrack/duckdb_fdw&amp;#39;&#xA;    - &amp;#39;tensorchord/VectorChord-bm25&amp;#39;&#xA;    - &amp;#39;pgsty/pg_exporter&amp;#39;&#xA;    - &amp;#39;ChenHuajun/pg_roaringbitmap&amp;#39;&#xA;    - &amp;#39;pgsty/pig&amp;#39;&#xA;    - &amp;#39;tensorchord/pg_bestmatch.rs&amp;#39;&#xA;    - &amp;#39;wublabdubdub/PDU-PostgreSQLDataUnloader&amp;#39;&#xA;    - &amp;#39;tensorchord/pg_tokenizer.rs&amp;#39;&#xA;    - &amp;#39;jaiminpan/pg_scws&amp;#39;&#xA;    - &amp;#39;pgsty/pgext&amp;#39;&#xA;series:&#xA;  - name: Star&#xA;    type: bar&#xA;    barWidth: 20&#xA;    showBackground: true&#xA;    backgroundStyle: { color: &amp;#34;rgba(148, 163, 184, 0.16)&amp;#34; }&#xA;    itemStyle:&#xA;      color: $fn:barclr&#xA;      borderRadius: [0, 5, 5, 0]&#xA;    label:&#xA;      show: true&#xA;      position: right&#xA;      formatter: $fn:labfmt&#xA;      color: &amp;#39;#334155&amp;#39;&#xA;      fontWeight: 600&#xA;    data: [5521, 3191, 2181, 1770, 1439, 1315, 1051, 995, 869, 784, 437, 417, 409, 375, 359, 286, 199, 101, 101, 45, 41, 31]&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;postgresql-distribution-impact-metrics&#34;&gt;PostgreSQL Distribution Impact Metrics&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Sorted by GitHub stars in descending order, with commercial products that do not publish stars listed last. Last updated: 2026-08-13 (Beijing time).&lt;/p&gt;</description>
      </item>
    <item>
        <title>Solo Templates</title>
        <link>https://pgsty.pro/docs/conf/_div_solo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/_div_solo/</guid>
        <description></description>
      </item>
    <item>
        <title>Infrastructure</title>
        <link>https://pgsty.pro/docs/concept/arch/infra/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/arch/infra/</guid>
        <description>&lt;p&gt;Running production-grade, highly available PostgreSQL clusters typically requires a comprehensive set of infrastructure services (foundation) for support, such as monitoring and alerting, log collection, time synchronization, DNS resolution, and local software repositories.&#xA;Pigsty provides the &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA module&lt;/strong&gt;&lt;/a&gt; to address this—it&amp;rsquo;s an &lt;strong&gt;optional module&lt;/strong&gt;, but we strongly recommend enabling it.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The diagram below shows the architecture of a &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;single-node deployment&lt;/strong&gt;&lt;/a&gt;. The right half represents the components included in the &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA module&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL Arch</title>
        <link>https://pgsty.pro/docs/concept/arch/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/arch/pgsql/</guid>
        <description>&lt;p&gt;The PGSQL module organizes PostgreSQL in production as &lt;strong&gt;clusters&lt;/strong&gt;—&lt;strong&gt;logical entities&lt;/strong&gt; composed of a group of database &lt;strong&gt;instances&lt;/strong&gt; associated by &lt;strong&gt;primary-replica&lt;/strong&gt; relationships.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL module&lt;/strong&gt;&lt;/a&gt; includes the following components, working together to provide production-grade PostgreSQL HA cluster services:&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;Component&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/pgsql/#postgresql&#34;&gt;&lt;strong&gt;&lt;code&gt;postgres&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Database&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;The world&amp;rsquo;s most advanced open-source relational database, PGSQL core&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/docs/concept/arch/pgsql/#patroni&#34;&gt;&lt;strong&gt;&lt;code&gt;patroni&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;HA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Manages PostgreSQL, coordinates failover, leader election, config changes&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/docs/concept/arch/pgsql/#pgbouncer&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbouncer&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pool&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Lightweight connection pooling middleware, reduces overhead, adds flexibility&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/docs/concept/arch/pgsql/#pgbackrest&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbackrest&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Backup&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Full/incremental backup and WAL archiving, supports local and object storage&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/docs/concept/arch/pgsql/#pg_exporter&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Metrics&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Exports PostgreSQL monitoring metrics in a Prometheus-compatible format&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/docs/concept/arch/pgsql/#pgbouncer_exporter&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbouncer_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Metrics&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Exports Pgbouncer connection pool metrics&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/docs/concept/arch/pgsql/#pgbackrest_exporter&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbackrest_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Metrics&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Exports backup status metrics&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/docs/concept/arch/pgsql/#vip-manager&#34;&gt;&lt;strong&gt;&lt;code&gt;vip-manager&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;VIP&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Binds L2 VIP to current primary node for transparent failover [Optional]&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/pgsql/#vip-manager&#34;&gt;&lt;strong&gt;&lt;code&gt;vip-manager&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is an on-demand component. Additionally, PGSQL uses components from other modules:&lt;/p&gt;</description>
      </item>
    <item>
        <title>meta</title>
        <link>https://pgsty.pro/docs/conf/meta/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/meta/</guid>
        <description>&lt;p&gt;The &lt;code&gt;meta&lt;/code&gt; configuration template is Pigsty&amp;rsquo;s default template, designed to fulfill Pigsty&amp;rsquo;s core functionality—deploying PostgreSQL—on a single node.&lt;/p&gt;&#xA;&lt;p&gt;To maximize compatibility, &lt;code&gt;meta&lt;/code&gt; installs only the &lt;strong&gt;minimum required&lt;/strong&gt; software set to ensure it runs across all operating system distributions and architectures.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;meta&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Default single-node installation template with extensive configuration parameter descriptions and minimum required feature set.&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/fat/&#34;&gt;&lt;code&gt;fat&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage: This is the default config template, so there&amp;rsquo;s no need to specify &lt;code&gt;-c meta&lt;/code&gt; explicitly during &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#configure&#34;&gt;&lt;strong&gt;configure&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>RTO Trade-offs</title>
        <link>https://pgsty.pro/docs/concept/ha/rto/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/ha/rto/</guid>
        <description>&lt;p&gt;&lt;strong&gt;RTO&lt;/strong&gt; (Recovery Time Objective) defines the &lt;strong&gt;maximum time required for the system to restore write capability&lt;/strong&gt; when the primary fails.&lt;/p&gt;&#xA;&lt;p&gt;For critical transaction systems where availability is paramount, the shortest possible RTO is typically required, such as under one minute.&lt;/p&gt;&#xA;&lt;p&gt;However, shorter RTO comes at a cost: increased false failover risk. Network jitter may be misinterpreted as a failure, leading to unnecessary failovers.&#xA;For cross-datacenter/cross-region deployments, RTO requirements are typically relaxed (e.g., 1-2 minutes) to reduce false failover risk.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Inventory</title>
        <link>https://pgsty.pro/docs/concept/iac/inventory/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/iac/inventory/</guid>
        <description>&lt;p&gt;Every Pigsty deployment corresponds to an &lt;strong&gt;Inventory&lt;/strong&gt; that describes key properties of the infrastructure and database clusters.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;configuration-file&#34;&gt;Configuration File&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses &lt;a href=&#34;https://docs.ansible.com/projects/ansible/latest/inventory_guide/intro_inventory.html&#34;&gt;&lt;strong&gt;Ansible YAML configuration format&lt;/strong&gt;&lt;/a&gt; by default,&#xA;with a single YAML configuration file &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/pigsty.yml&#34;&gt;&lt;strong&gt;&lt;code&gt;pigsty.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; as the inventory.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a35a81ff-fence-0&#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-a35a81ff-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;~/pigsty&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ^---- pigsty.yml   &lt;span class=&#34;c1&#34;&gt;# &amp;lt;---- Default configuration file&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;You can directly edit this configuration file to customize your deployment, or use the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/configure/&#34;&gt;&lt;strong&gt;&lt;code&gt;configure&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; wizard script provided by Pigsty to automatically generate an appropriate configuration file.&lt;/p&gt;</description>
      </item>
    <item>
        <title>How PITR Works</title>
        <link>https://pgsty.pro/docs/concept/pitr/mechanism/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/pitr/mechanism/</guid>
        <description>&lt;p&gt;If a database is a state machine, &lt;strong&gt;WAL&lt;/strong&gt; (Write-Ahead Log) is its ordered change history. PostgreSQL records each modification in WAL before applying it to data files. Save a physical snapshot at one point, preserve all later WAL, and PostgreSQL can replay that history to a selected consistent state.&lt;/p&gt;&#xA;&lt;p&gt;PITR is therefore the combination of three simple elements: a &lt;strong&gt;snapshot&lt;/strong&gt; (base backup), &lt;strong&gt;history&lt;/strong&gt; (WAL archive), and a &lt;strong&gt;target&lt;/strong&gt; (where replay should stop).&lt;/p&gt;</description>
      </item>
    <item>
        <title>PITR Architecture</title>
        <link>https://pgsty.pro/docs/concept/pitr/arch/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/pitr/arch/</guid>
        <description>&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/concept/pitr/mechanism/&#34;&gt;&lt;strong&gt;PITR principle&lt;/strong&gt;&lt;/a&gt; is compact; the engineering is not. WAL archiving must not stall production writes, object-storage backups need encryption, backup jobs must follow the primary after failover, shared repositories must isolate clusters, and large numbers of small objects can limit throughput.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty uses &lt;a href=&#34;https://pgbackrest.org/&#34;&gt;&lt;strong&gt;pgBackRest&lt;/strong&gt;&lt;/a&gt; as its backup engine and ships production-oriented defaults for those concerns. This page describes the engine, repository abstraction, archive path, scheduler, and primary-aware execution model.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;backup-engine-pgbackrest&#34;&gt;Backup Engine: pgBackRest&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses pgBackRest for three responsibilities: create base backups with &lt;code&gt;backup&lt;/code&gt;, receive WAL with &lt;code&gt;archive-push&lt;/code&gt;, and restore data with &lt;code&gt;restore&lt;/code&gt; plus &lt;code&gt;archive-get&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configure</title>
        <link>https://pgsty.pro/docs/concept/iac/configure/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/iac/configure/</guid>
        <description>&lt;p&gt;Pigsty provides a &lt;strong&gt;&lt;code&gt;configure&lt;/code&gt;&lt;/strong&gt; script as a &lt;strong&gt;configuration wizard&lt;/strong&gt; that automatically generates an appropriate &lt;code&gt;pigsty.yml&lt;/code&gt; configuration file based on your current environment.&lt;/p&gt;&#xA;&lt;p&gt;This is an &lt;strong&gt;optional&lt;/strong&gt; script: if you already understand how to configure Pigsty, you can directly edit the &lt;code&gt;pigsty.yml&lt;/code&gt; configuration file and skip the wizard.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Enter the pigsty source home directory and run &lt;code&gt;./configure&lt;/code&gt; to automatically start the configuration wizard. Without any arguments, it defaults to the &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;strong&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; single-node configuration template:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/concept/iac/parameter/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/iac/parameter/</guid>
        <description>&lt;p&gt;In the &lt;strong&gt;inventory&lt;/strong&gt;, you can use various parameters to fine-tune Pigsty customization. These parameters cover everything from infrastructure settings to database configuration.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;parameter-list&#34;&gt;Parameter List&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;According to the current source and parameter reference pages, Pigsty&amp;rsquo;s 10 official modules expose &lt;strong&gt;373&lt;/strong&gt; public parameters for fine-grained control. See &lt;a href=&#34;https://pgsty.pro/docs/ref/param/&#34;&gt;&lt;strong&gt;Reference - Parameter List&lt;/strong&gt;&lt;/a&gt; for the complete list. The native MySQL 8.4 pilot module exposes 13 additional public parameters that are listed separately and excluded from this total.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PITR Tradeoffs</title>
        <link>https://pgsty.pro/docs/concept/pitr/tradeoff/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/pitr/tradeoff/</guid>
        <description>&lt;p&gt;A backup is an insurance policy. Its premium is storage, network traffic, and operational work; its benefit is how much data can be recovered and how quickly service can return. There is no universal free policy: more history normally needs more capacity, while a shorter RTO normally needs newer backups and tested procedures.&lt;/p&gt;&#xA;&lt;p&gt;Designing a policy means answering three questions: &lt;strong&gt;where is the repository, how long is history retained, and how often are backups taken?&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Declarative Recovery</title>
        <link>https://pgsty.pro/docs/concept/pitr/restore/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/pitr/restore/</guid>
        <description>&lt;p&gt;The value of a backup system is realized at restore time, often during an incident when every minute matters.&#xA;A traditional PITR procedure requires a long sequence of coupled manual steps: pause HA, stop PostgreSQL, prepare recovery settings, restore the backup, replay WAL, validate the target, rebuild metadata, and start the cluster again.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty applies the same approach used by &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/&#34;&gt;&lt;strong&gt;declarative configuration&lt;/strong&gt;&lt;/a&gt; to recovery: &lt;strong&gt;declare the recovery target&lt;/strong&gt;, then let the orchestration tools stop the cluster, restore the data, replay WAL, and return control to the operator.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PITR Scenarios</title>
        <link>https://pgsty.pro/docs/concept/pitr/scenarios/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/pitr/scenarios/</guid>
        <description>&lt;p&gt;During an incident, the most expensive resource is often &lt;strong&gt;decision time&lt;/strong&gt;. Pigsty can orchestrate the mechanical recovery steps, but an operator must still answer three questions: &lt;strong&gt;what is the target, should recovery be in place or into a clone, and how will the result be validated?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Read and rehearse this framework before an incident.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;decision-framework&#34;&gt;Decision Framework&#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;Scenario&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Typical problem&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Recommended workflow&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Target&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;Accidental DML&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;DELETE&lt;/code&gt; or &lt;code&gt;UPDATE&lt;/code&gt; affects the wrong rows&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Clone, validate, then copy back data&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;time&lt;/code&gt; / &lt;code&gt;xid&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Dropped table, schema, or database&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;DROP&lt;/code&gt; or an incorrect migration&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Clone, validate, then copy back objects&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;time&lt;/code&gt; / &lt;code&gt;name&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Defective release or batch corruption&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Software writes incorrect data for a period&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Clone and compare before choosing repair or cutover&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;time&lt;/code&gt; / &lt;code&gt;xid&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Audit, investigation, or forensics&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Inspect historical state&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Clone and hold at the target for inspection&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;time&lt;/code&gt; / &lt;code&gt;lsn&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Whole-cluster or site loss&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Hosts or storage are gone or encrypted&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Recover in place on replacement infrastructure&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;default&lt;/code&gt; / &lt;code&gt;time&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;Two principles apply throughout:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Conf Templates</title>
        <link>https://pgsty.pro/docs/concept/iac/template/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/iac/template/</guid>
        <description>&lt;p&gt;In Pigsty, deployment blueprint details are defined by the &lt;a href=&#34;https://pgsty.pro/docs/setup/config/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt;, which is the &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/pigsty.yml&#34;&gt;&lt;strong&gt;&lt;code&gt;pigsty.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; configuration file. You can customize it through declarative configuration.&lt;/p&gt;&#xA;&lt;p&gt;However, writing configuration files directly can be daunting for new users. To address this, we provide some ready-to-use configuration templates covering common usage scenarios.&lt;/p&gt;&#xA;&lt;p&gt;Each template is a predefined &lt;code&gt;pigsty.yml&lt;/code&gt; configuration file containing reasonable defaults suitable for specific scenarios.&lt;/p&gt;&#xA;&lt;p&gt;You can choose a template as your customization starting point, then modify it as needed to meet your specific requirements.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Use CMDB as Config Inventory</title>
        <link>https://pgsty.pro/docs/concept/iac/cmdb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/iac/cmdb/</guid>
        <description>&lt;p&gt;Pigsty allows you to use a PostgreSQL &lt;strong&gt;metabase&lt;/strong&gt; as a dynamic configuration source, replacing static YAML configuration files for more powerful configuration management capabilities.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;CMDB&lt;/strong&gt; (Configuration Management Database) is a method of storing configuration information in a database for management.&lt;/p&gt;&#xA;&lt;p&gt;In Pigsty, the default configuration source is a static YAML file &lt;code&gt;pigsty.yml&lt;/code&gt;,&#xA;which serves as Ansible&amp;rsquo;s &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This approach is simple and direct, but when infrastructure scales and requires complex, fine-grained management and external integration, a single static file becomes insufficient.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring System</title>
        <link>https://pgsty.pro/docs/concept/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/monitor/</guid>
        <description>&lt;p&gt;Pigsty&amp;rsquo;s monitoring system has three pillars—metrics, logs, and alerting—and is available out of the box. Logs and alerts are also important inputs for &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/data/#audit-and-traceability&#34;&gt;&lt;strong&gt;audit and traceability&lt;/strong&gt;&lt;/a&gt;.&#xA;It can monitor clusters managed by Pigsty, existing PostgreSQL clusters, and external RDS services.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;monitoring-targets&#34;&gt;Monitoring Targets&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty monitoring covers these core targets:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL clusters and instances (SQL performance, connections, replication, transactions, checkpoints, WAL)&lt;/li&gt;&#xA;&lt;li&gt;Infrastructure components (Grafana, VictoriaMetrics, Alertmanager, Nginx, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Host nodes (CPU, memory, disk, network, kernel)&lt;/li&gt;&#xA;&lt;li&gt;Key middleware (ETCD, MINIO, REDIS, JUICE, VIBE, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;technology-stack&#34;&gt;Technology Stack&#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;Component&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Purpose&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/docs/infra/admin/grafana/&#34;&gt;&lt;strong&gt;Grafana&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Visualization dashboards, unified entry point, alert views&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/docs/infra/&#34;&gt;&lt;strong&gt;VictoriaMetrics&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Time-series metric ingestion, storage, and query&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/docs/infra/&#34;&gt;&lt;strong&gt;VictoriaLogs&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Structured log ingestion, indexing, and search&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/docs/infra/monitor/&#34;&gt;&lt;strong&gt;VMAlert + Alertmanager&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Alert rule evaluation and notification delivery&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/docs/pgsql/monitor/&#34;&gt;&lt;strong&gt;Exporter / Agent&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Database/system metric exposure and log forwarding&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;onboarding-modes&#34;&gt;Onboarding Modes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty supports three monitoring onboarding modes:&lt;/p&gt;</description>
      </item>
    <item>
        <title>rich</title>
        <link>https://pgsty.pro/docs/conf/rich/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/rich/</guid>
        <description>&lt;p&gt;The &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/rich.yml&#34;&gt;&lt;code&gt;rich&lt;/code&gt;&lt;/a&gt; configuration template is an enhanced version of &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, designed for users who need to experience complete functionality.&lt;/p&gt;&#xA;&lt;p&gt;If you want to build a local software repository, use Silo for backup storage, run Docker applications, or need preconfigured business databases, use this template.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;rich&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Feature-rich single-node configuration, adding local software repository, Silo backup, complete extensions, Docker application examples on top of &lt;code&gt;meta&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/fat/&#34;&gt;&lt;code&gt;fat&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This template&amp;rsquo;s main enhancements over &lt;code&gt;meta&lt;/code&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Service Access</title>
        <link>https://pgsty.pro/docs/concept/ha/svc/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/ha/svc/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Split read and write operations, route traffic correctly, and deliver PostgreSQL cluster capabilities reliably.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/ha/svc/#service-overview&#34;&gt;Service&lt;/a&gt; is an abstraction: it represents the form in which database clusters expose their capabilities externally, encapsulating underlying cluster details.&lt;/p&gt;&#xA;&lt;p&gt;Services are crucial for &lt;a href=&#34;https://pgsty.pro/docs/concept/ha/svc/#access-services&#34;&gt;stable access&lt;/a&gt; in production environments, showing their value during automatic failover in &lt;a href=&#34;https://pgsty.pro/docs/concept/ha/&#34;&gt;high availability&lt;/a&gt; clusters. &lt;a href=&#34;https://pgsty.pro/docs/concept/ha/svc/#personal-users&#34;&gt;Personal users&lt;/a&gt; typically don&amp;rsquo;t need to worry about this concept.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;personal-users&#34;&gt;Personal Users&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The concept of &amp;ldquo;service&amp;rdquo; is for production environments. Personal users with single-node clusters can skip the complexity and directly use instance names or IP addresses to access the database.&lt;/p&gt;</description>
      </item>
    <item>
        <title>slim</title>
        <link>https://pgsty.pro/docs/conf/slim/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/slim/</guid>
        <description>&lt;p&gt;The &lt;code&gt;slim&lt;/code&gt; configuration template provides &lt;strong&gt;minimal installation&lt;/strong&gt; capability, installing a PostgreSQL high-availability cluster directly from the internet without deploying Infra monitoring infrastructure.&lt;/p&gt;&#xA;&lt;p&gt;When you only need an available database instance without the monitoring system, consider using the &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/slim/&#34;&gt;Slim Installation&lt;/a&gt;&lt;/strong&gt; mode.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;slim&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Minimal installation template without monitoring infrastructure, installs PostgreSQL directly&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Security Model</title>
        <link>https://pgsty.pro/docs/concept/sec/level/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/sec/level/</guid>
        <description>&lt;p&gt;Before examining individual security features, answer two more fundamental questions: &lt;strong&gt;Where is the root of trust?&lt;/strong&gt; and &lt;strong&gt;How many defensive layers exist?&lt;/strong&gt;&#xA;The first determines what deserves the strongest protection. The second determines what remains when one layer fails.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;span id=&#34;overview&#34;&gt;&lt;/span&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;trust-boundaries&#34;&gt;Trust Boundaries&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty is an Ansible-based declarative deployment system. Like other control-plane systems, its &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/node/#admin-node&#34;&gt;&lt;strong&gt;admin node&lt;/strong&gt;&lt;/a&gt; is the control plane and the node that requires the strongest protection.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Authentication</title>
        <link>https://pgsty.pro/docs/concept/sec/auth/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/sec/auth/</guid>
        <description>&lt;p&gt;PostgreSQL uses &lt;code&gt;pg_hba.conf&lt;/code&gt; for &lt;strong&gt;Host-Based Authentication&lt;/strong&gt;: who may connect, from where, to which database, and how they must prove their identity.&lt;/p&gt;&#xA;&lt;p&gt;The mechanism is powerful, but expensive to maintain manually across a cluster. Primary and replica instances may require different rules, and every instance stores its own configuration in the data directory.&#xA;Without a common declaration and refresh process, rules can drift between instances.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty applies the same &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/&#34;&gt;&lt;strong&gt;declarative configuration&lt;/strong&gt;&lt;/a&gt; model here: HBA rules are part of the inventory and are rendered and distributed consistently by playbooks.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Access Control</title>
        <link>https://pgsty.pro/docs/concept/sec/ac/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/sec/ac/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/a&gt; answers &amp;ldquo;Who are you?&amp;rdquo; Authorization answers &amp;ldquo;What may you do?&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Privilege failures rarely result from a lack of mechanisms—PostgreSQL &lt;code&gt;GRANT&lt;/code&gt; and &lt;code&gt;REVOKE&lt;/code&gt; are sufficiently precise. The usual problem is the absence of conventions that are applied by default:&#xA;an application account is made the owner at launch, temporary superuser access is not revoked after troubleshooting, or grants are missed when new tables are created and cause failures in production.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Encrypted Communication</title>
        <link>https://pgsty.pro/docs/concept/sec/ca/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/sec/ca/</guid>
        <description>&lt;p&gt;TLS can provide three separate protections: &lt;strong&gt;transport encryption&lt;/strong&gt;, &lt;strong&gt;server authentication&lt;/strong&gt;, and &lt;strong&gt;client authentication&lt;/strong&gt;. Each must be configured independently. Enabling server-side TLS does not mean the client verifies the server identity, nor does it mean the server requires a client certificate.&lt;/p&gt;&#xA;&lt;p&gt;The main operational cost of TLS is not the encryption algorithm but certificate issuance, distribution, trust, and rotation. Without centralized management, internal services often encrypt traffic while skipping certificate verification—or remain on plaintext connections.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Data Security</title>
        <link>https://pgsty.pro/docs/concept/sec/data/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/sec/data/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/sec/level/#network-boundaries&#34;&gt;&lt;strong&gt;Network boundaries&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;authentication&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;access control&lt;/strong&gt;&lt;/a&gt; reduce the likelihood of an incident. When hardware fails, credentials leak, or an operator makes a mistake, data-layer controls must limit the impact and support recovery.&lt;/p&gt;&#xA;&lt;p&gt;Data security answers four questions: Is the data &lt;strong&gt;intact&lt;/strong&gt;? Can it be &lt;strong&gt;recovered&lt;/strong&gt;? If copied, does it remain &lt;strong&gt;confidential&lt;/strong&gt;? Can you determine &lt;strong&gt;what happened&lt;/strong&gt;?&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;span id=&#34;data-integrity&#34;&gt;&lt;/span&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;integrity&#34;&gt;Integrity&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Bad disk sectors, memory bit flips, and storage firmware defects can cause &lt;strong&gt;silent data corruption&lt;/strong&gt;: the data is damaged without an immediate error.&#xA;Pigsty enables page checksums by default (&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_checksum&#34;&gt;&lt;code&gt;pg_checksum&lt;/code&gt;&lt;/a&gt;: &lt;code&gt;true&lt;/code&gt;).&#xA;The cluster is initialized with &lt;code&gt;data-checksums&lt;/code&gt;, so PostgreSQL calculates a checksum when writing a page and verifies it when reading.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Compliance</title>
        <link>https://pgsty.pro/docs/concept/sec/compliance/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/sec/compliance/</guid>
        <description>&lt;p&gt;Compliance is not a product you can buy. It is a state that must be demonstrated continuously through three elements:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Configuration:&lt;/strong&gt; whether security controls are enabled. Pigsty directly provides this part.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Process:&lt;/strong&gt; access approval, change management, recovery exercises, and related procedures. The organization must establish these.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; records showing that configuration and process remain effective. Pigsty&amp;rsquo;s &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt;, runtime logs, and &lt;a href=&#34;https://pgsty.pro/docs/concept/monitor/&#34;&gt;&lt;strong&gt;monitoring system&lt;/strong&gt;&lt;/a&gt; can provide part of this evidence.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This page begins with a pre-launch hardening checklist and then maps Pigsty security capabilities to common compliance frameworks.&#xA;The mappings support architecture and gap analysis; they are not an MLPS assessment conclusion, a SOC 2 audit opinion, or legal advice.&lt;/p&gt;</description>
      </item>
    <item>
        <title>fat</title>
        <link>https://pgsty.pro/docs/conf/fat/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/fat/</guid>
        <description>&lt;p&gt;The &lt;code&gt;fat&lt;/code&gt; configuration template is Pigsty&amp;rsquo;s &lt;strong&gt;Feature-All-Test&lt;/strong&gt; template, installing all extension plugins on a single node and building a local software repository containing all extensions for PostgreSQL 14-18 (five major versions).&lt;/p&gt;&#xA;&lt;p&gt;This is a full-featured configuration for testing and development, suitable for scenarios requiring complete software package cache or testing all extensions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;fat&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Feature-All-Test template, installs all extensions, builds local repo with PG 14-18 all versions&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/fat/&#34;&gt;&lt;code&gt;fat&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>infra</title>
        <link>https://pgsty.pro/docs/conf/infra/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/infra/</guid>
        <description>&lt;p&gt;The &lt;code&gt;infra&lt;/code&gt; configuration template only deploys Pigsty&amp;rsquo;s observability infrastructure components (VictoriaMetrics/Grafana/VictoriaLogs/Nginx, etc.), without PostgreSQL and etcd.&lt;/p&gt;&#xA;&lt;p&gt;Suitable for scenarios requiring a standalone monitoring stack, such as monitoring external PostgreSQL/RDS instances or other data sources.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;infra&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single or multiple nodes&lt;/li&gt;&#xA;&lt;li&gt;Description: Only installs observability infrastructure, without PostgreSQL and etcd&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Single-Node Installation</title>
        <link>https://pgsty.pro/docs/setup/install/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/install/</guid>
        <description>&lt;p&gt;This is the Pigsty single-node install guide &lt;span class=&#34;td-badge td-badge--info&#34;&gt;Single Node&lt;/span&gt;. For multi-node HA production deployment, refer to the &lt;a href=&#34;https://pgsty.pro/docs/deploy/&#34;&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/a&gt; docs.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty single-node installation consists of three steps: &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#install&#34;&gt;&lt;strong&gt;Install&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#configure&#34;&gt;&lt;strong&gt;Configure&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#deploy&#34;&gt;&lt;strong&gt;Deploy&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Prepare&lt;/strong&gt;&lt;/a&gt; a &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/#node&#34;&gt;&lt;strong&gt;node&lt;/strong&gt;&lt;/a&gt; with &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/&#34;&gt;&lt;strong&gt;compatible OS&lt;/strong&gt;&lt;/a&gt;, and run as an &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/&#34;&gt;&lt;strong&gt;admin user&lt;/strong&gt;&lt;/a&gt; with nopass &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;&lt;code&gt;ssh&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#sudo&#34;&gt;&lt;strong&gt;&lt;code&gt;sudo&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Choose a Pigsty download mirror:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;pigsty.io (Global)&#34; data-td-tab-group=&#34;download-mirror&#34; data-td-tab-value=&#34;global&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;pigsty.io (Global)&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-59168d38-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-59168d38-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;curl -fsSL https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&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;pigsty.cc (China)&#34; data-td-tab-value=&#34;china&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;pigsty.cc (China)&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-59168d38-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-59168d38-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;curl -fsSL https://repo.pigsty.cc/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&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;This command runs the &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#install&#34;&gt;&lt;strong&gt;install&lt;/strong&gt;&lt;/a&gt; script, downloads and extracts Pigsty source to your home directory and installs dependencies. Then complete &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#configure&#34;&gt;&lt;strong&gt;Configure&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#deploy&#34;&gt;&lt;strong&gt;Deploy&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Docker Deployment</title>
        <link>https://pgsty.pro/docs/setup/docker/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/docker/</guid>
        <description>&lt;p&gt;Pigsty is designed for native Linux, but can also run in Linux containers with systemd.&#xA;If you don&amp;rsquo;t have native Linux (e.g., &lt;strong&gt;macOS&lt;/strong&gt; or &lt;strong&gt;Windows&lt;/strong&gt;), use Docker to spin up a local single-node Pigsty for testing.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Enter the &lt;a href=&#34;https://github.com/pgsty/pigsty/tree/main/docker&#34;&gt;&lt;strong&gt;&lt;code&gt;docker/&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; dir in Pigsty source and launch with one command:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-1c813497-fence-0&#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-1c813497-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;nb&#34;&gt;cd&lt;/span&gt; ~/pigsty/docker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make launch          &lt;span class=&#34;c1&#34;&gt;# Start container + generate config + deploy&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;After deployment, access services:&lt;/p&gt;</description>
      </item>
    <item>
        <title>vibe</title>
        <link>https://pgsty.pro/docs/conf/vibe/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/vibe/</guid>
        <description>&lt;p&gt;The &lt;code&gt;vibe&lt;/code&gt; config template provides a ready-to-use &lt;strong&gt;AI coding sandbox&lt;/strong&gt;, integrating Code-Server (Web VS Code), JupyterLab, Claude Code observability, Codex CLI, JuiceFS distributed filesystem, and a feature-rich PostgreSQL database.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;vibe&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: VIBE AI coding sandbox with Code-Server + JupyterLab + Claude Code + Codex CLI + JuiceFS + PostgreSQL&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Web Interface</title>
        <link>https://pgsty.pro/docs/setup/webui/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/webui/</guid>
        <description>&lt;p&gt;After &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;single-node installation&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;ll have the &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module installed on the current node, which includes an out-of-the-box Nginx web server.&lt;/p&gt;&#xA;&lt;p&gt;The default server configuration provides a WebUI graphical interface for displaying monitoring dashboards and unified proxy access to other component web interfaces.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;access&#34;&gt;Access&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;You can access this graphical interface by entering the deployment node&amp;rsquo;s IP address in your browser. By default, Nginx serves on standard ports &lt;code&gt;80/443&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Getting Started with PostgreSQL</title>
        <link>https://pgsty.pro/docs/setup/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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; (abbreviated as PG) is the world&amp;rsquo;s most advanced and popular open-source relational database. Use it to store and retrieve multi-modal data.&lt;/p&gt;&#xA;&lt;p&gt;This guide is for developers with basic Linux CLI experience but not very familiar with PostgreSQL, helping you quickly get started with PG in Pigsty.&lt;/p&gt;&#xA;&lt;p&gt;We assume you&amp;rsquo;re a personal user deploying in the default single-node mode. For prod multi-node HA cluster access, refer to &lt;a href=&#34;https://pgsty.pro/docs/pgsql/service/&#34;&gt;&lt;strong&gt;Prod Service Access&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;basics&#34;&gt;Basics&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In the default &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;single-node installation&lt;/strong&gt;&lt;/a&gt; template, you&amp;rsquo;ll create a PostgreSQL database cluster named &lt;code&gt;pg-meta&lt;/code&gt; on the current node, with only one primary instance.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Customize Pigsty with Configuration</title>
        <link>https://pgsty.pro/docs/setup/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/config/</guid>
        <description>&lt;p&gt;Besides using the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/configure/&#34;&gt;&lt;strong&gt;configuration wizard&lt;/strong&gt;&lt;/a&gt; to auto-generate configs, you can write Pigsty config files from scratch.&#xA;This tutorial guides you through building a complex &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt; step by step.&lt;/p&gt;&#xA;&lt;p&gt;If you define NODE, INFRA, ETCD, MINIO, and PGSQL in the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt; upfront, &lt;code&gt;deploy.yml&lt;/code&gt; can deploy this core path in one run—but it hides the details. Optional modules such as Docker, Redis, Kafka, native MySQL, JUICE, and VIBE require their own playbooks.&lt;/p&gt;&#xA;&lt;p&gt;This doc breaks down all modules and playbooks, showing how to incrementally build from a simple config to a complete deployment.&lt;/p&gt;</description>
      </item>
    <item>
        <title>docker</title>
        <link>https://pgsty.pro/docs/conf/docker/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/docker/</guid>
        <description>&lt;p&gt;The &lt;code&gt;docker&lt;/code&gt; configuration template runs Pigsty inside a Docker container and provides a minimal single-node stack for infrastructure and PostgreSQL.&lt;/p&gt;&#xA;&lt;p&gt;For full workflow details, see &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/docker/&#34;&gt;Docker Deployment&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;docker&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node (container runtime)&lt;/li&gt;&#xA;&lt;li&gt;Description: Quick-start container template using &lt;code&gt;127.0.0.1&lt;/code&gt; and trimmed system capabilities for Docker scenarios&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: Container image runtime (official Pigsty Docker image recommended)&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/vibe/&#34;&gt;&lt;code&gt;vibe&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Run Playbooks with Ansible</title>
        <link>https://pgsty.pro/docs/setup/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/playbook/</guid>
        <description>&lt;p&gt;Pigsty uses &lt;a href=&#34;https://docs.ansible.com/&#34;&gt;&lt;strong&gt;Ansible&lt;/strong&gt;&lt;/a&gt; to manage clusters, a very popular large-scale/batch/automation ops tool in the SRE community.&lt;/p&gt;&#xA;&lt;p&gt;Ansible can use &lt;strong&gt;declarative&lt;/strong&gt; approach for server configuration management. All module deployments are implemented through a series of idempotent &lt;a href=&#34;https://pgsty.pro/docs/ref/playbook/&#34;&gt;&lt;strong&gt;Ansible playbooks&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For example, in single-node deployment, you&amp;rsquo;ll use the &lt;a href=&#34;https://pgsty.pro/docs/setup/playbook/#deploy-playbook&#34;&gt;&lt;strong&gt;&lt;code&gt;deploy.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; playbook. Pigsty has more &lt;a href=&#34;https://pgsty.pro/docs/ref/playbook/&#34;&gt;&lt;strong&gt;built-in playbooks&lt;/strong&gt;&lt;/a&gt;, you can choose to use as needed.&lt;/p&gt;&#xA;&lt;p&gt;Understanding Ansible basics helps with better use of Pigsty, but this is &lt;strong&gt;not required&lt;/strong&gt;, especially for single-node deployment.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Offline Installation</title>
        <link>https://pgsty.pro/docs/setup/offline/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/offline/</guid>
        <description>&lt;p&gt;Pigsty &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;installs&lt;/strong&gt;&lt;/a&gt; from Internet upstream by default, but some envs are isolated from the Internet.&#xA;To address this, Pigsty supports offline installation using &lt;a href=&#34;https://pgsty.pro/docs/setup/offline/#offline-packages&#34;&gt;&lt;strong&gt;offline packages&lt;/strong&gt;&lt;/a&gt;.&#xA;Think of them as Linux-native Docker images.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Offline packages&lt;/strong&gt; bundle all required RPM/DEB packages and dependencies; they are snapshots of the local APT/YUM repo after a normal &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;installation&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://pgsty.pro/docs/deploy/&#34;&gt;&lt;strong&gt;serious prod deployments&lt;/strong&gt;&lt;/a&gt;, we &lt;strong&gt;strongly recommend&lt;/strong&gt; using offline packages.&#xA;They ensure all future nodes have consistent software versions with the existing env,&#xA;and avoid online installation failures caused by upstream changes (quite common!),&#xA;guaranteeing you can run it independently forever.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Slim Installation</title>
        <link>https://pgsty.pro/docs/setup/slim/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/slim/</guid>
        <description>&lt;p&gt;If you only want HA PostgreSQL database cluster itself without monitoring, infra, etc., consider &lt;strong&gt;Slim Installation&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Slim installation has no &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module, no monitoring, no &lt;a href=&#34;https://pgsty.pro/docs/setup/offline/&#34;&gt;&lt;strong&gt;local repo&lt;/strong&gt;&lt;/a&gt;—just &lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and partial &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; functionality.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--tip&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-lightbulb&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Slim installation is suitable for:&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Only needing PostgreSQL database itself, no observability infra required.&lt;/li&gt;&#xA;&lt;li&gt;Extremely resource-constrained envs unwilling to bear infra overhead (~0.2 vCPU / 500MB on single node).&lt;/li&gt;&#xA;&lt;li&gt;Already having external monitoring system, wanting to use your own unified monitoring framework.&lt;/li&gt;&#xA;&lt;li&gt;Not needing the Grafana visualization dashboard component.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;div class=&#34;td-callout td-callout--warning&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-triangle-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Limitations of slim installation:&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA&lt;/strong&gt;&lt;/a&gt; module, cannot use WebUI and local software repo features.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/offline/&#34;&gt;&lt;strong&gt;Offline Install&lt;/strong&gt;&lt;/a&gt; is limited to single-node mode; multi-node slim install can only be done online.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To use slim installation, you need to:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Security Recommendations</title>
        <link>https://pgsty.pro/docs/setup/security/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/security/</guid>
        <description>&lt;p&gt;The default configuration targets local demonstrations and development or testing on a trusted intranet. If other hosts can reach the deployment, complete at least three checks: credentials, network boundaries, and critical files.&lt;/p&gt;&#xA;&lt;p&gt;Production environments should also review the &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/level/&#34;&gt;&lt;strong&gt;Security Model&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/compliance/&#34;&gt;&lt;strong&gt;Compliance&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pgsty.pro/docs/deploy/security/&#34;&gt;&lt;strong&gt;Security Considerations&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;passwords&#34;&gt;Passwords&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty default credentials are public in the source code and documentation and must not be used directly in production.&lt;/p&gt;&#xA;&lt;p&gt;The configuration wizard can randomize built-in parameters and example credentials that it recognizes:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Install Pigsty for Production</title>
        <link>https://pgsty.pro/docs/deploy/install/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/install/</guid>
        <description>&lt;p&gt;This is the Pigsty production multi-node deployment guide. For single-node Demo/Dev setups, see &lt;a href=&#34;https://pgsty.pro/docs/setup/&#34;&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Prepare&lt;/strong&gt;&lt;/a&gt; &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/#node&#34;&gt;&lt;strong&gt;nodes&lt;/strong&gt;&lt;/a&gt; with &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;SSH access&lt;/strong&gt;&lt;/a&gt; following your &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/&#34;&gt;&lt;strong&gt;architecture plan&lt;/strong&gt;&lt;/a&gt;,&#xA;install a &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/&#34;&gt;&lt;strong&gt;compatible Linux OS&lt;/strong&gt;&lt;/a&gt;, then execute with an &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/&#34;&gt;&lt;strong&gt;admin user&lt;/strong&gt;&lt;/a&gt; having passwordless &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;&lt;code&gt;ssh&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#sudo&#34;&gt;&lt;strong&gt;&lt;code&gt;sudo&lt;/code&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-889bf18e-fence-0&#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-889bf18e-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;curl -fsSL https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;         &lt;span class=&#34;c1&#34;&gt;# International&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.cc/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;         &lt;span class=&#34;c1&#34;&gt;# Backup Mirror&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;This runs the &lt;a href=&#34;https://pgsty.pro/docs/deploy/install/#install&#34;&gt;&lt;strong&gt;install&lt;/strong&gt;&lt;/a&gt; script, downloading and extracting Pigsty source to your home directory with dependencies installed. Complete &lt;a href=&#34;https://pgsty.pro/docs/deploy/install/#configure&#34;&gt;&lt;strong&gt;configuration&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/install/#deploy&#34;&gt;&lt;strong&gt;deployment&lt;/strong&gt;&lt;/a&gt; to finish.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Prepare Resources for Serious Deployment</title>
        <link>https://pgsty.pro/docs/deploy/prepare/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/prepare/</guid>
        <description>&lt;p&gt;Pigsty runs on nodes (physical machines or VMs). This document covers the planning and preparation required for deployment.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;node&#34;&gt;Node&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty currently runs on &lt;code&gt;Linux&lt;/code&gt; kernel with &lt;code&gt;x86_64&lt;/code&gt; / &lt;code&gt;aarch64&lt;/code&gt; architecture.&#xA;A &amp;ldquo;&lt;strong&gt;node&lt;/strong&gt;&amp;rdquo; refers to an SSH &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#check-accessibility&#34;&gt;&lt;strong&gt;accessible&lt;/strong&gt;&lt;/a&gt; resource that provides a bare Linux OS environment.&#xA;It can be a physical machine, virtual machine, or a systemd-enabled container equipped with &lt;code&gt;systemd&lt;/code&gt;, &lt;code&gt;sudo&lt;/code&gt;, and &lt;code&gt;sshd&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Deploying Pigsty requires at least &lt;strong&gt;1&lt;/strong&gt; node. You can prepare more and deploy everything in one pass via &lt;a href=&#34;https://pgsty.pro/docs/setup/playbook/#playbooks&#34;&gt;&lt;strong&gt;playbooks&lt;/strong&gt;&lt;/a&gt;, or add nodes later.&#xA;The minimum spec requirement is &lt;code&gt;1C1G&lt;/code&gt;, but at least &lt;code&gt;1C2G&lt;/code&gt; is recommended. Higher is better—no upper limit. &lt;strong&gt;Parameters are auto-tuned based on available resources&lt;/strong&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Planning Architecture and Nodes</title>
        <link>https://pgsty.pro/docs/deploy/planning/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/planning/</guid>
        <description>&lt;p&gt;Pigsty uses a &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/&#34;&gt;&lt;strong&gt;modular architecture&lt;/strong&gt;&lt;/a&gt;. You can combine modules like building blocks and express your intent through &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/&#34;&gt;&lt;strong&gt;declarative configuration&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;common-patterns&#34;&gt;Common Patterns&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Here are common deployment patterns for reference. Customize based on your requirements:&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: center&#34;&gt;Pattern&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;ETCD&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;MINIO&lt;/strong&gt;&lt;/a&gt;&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 style=&#34;text-align: center&#34;&gt;Single-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;strong&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;Single-node deployment&lt;/strong&gt;&lt;/a&gt; default&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Slim deploy (&lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;strong&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Database only, no monitoring infra&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Infra-only (&lt;a href=&#34;https://pgsty.pro/docs/conf/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;infra&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Monitoring infrastructure only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Rich deploy (&lt;a href=&#34;https://pgsty.pro/docs/conf/rich/&#34;&gt;&lt;strong&gt;&lt;code&gt;rich&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td&gt;Single-node + object storage + local repo with all extensions&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-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;Multi-node Pattern&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;ETCD&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;MINIO&lt;/strong&gt;&lt;/a&gt;&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 style=&#34;text-align: center&#34;&gt;Two-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/dual/&#34;&gt;&lt;strong&gt;&lt;code&gt;dual&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Semi-HA, tolerates specific node failure&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Three-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/trio/&#34;&gt;&lt;strong&gt;&lt;code&gt;trio&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Standard HA, tolerates any one failure&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Four-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/full/&#34;&gt;&lt;strong&gt;&lt;code&gt;full&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1+3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Demo setup, single INFRA/ETCD&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Production (&lt;a href=&#34;https://pgsty.pro/docs/conf/simu/&#34;&gt;&lt;strong&gt;&lt;code&gt;simu&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td&gt;2 INFRA, 3 ETCD&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Large-scale (custom)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td&gt;3 INFRA, 5 ETCD&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Your architecture choice depends on reliability requirements and available resources.&#xA;Serious production deployments require at least &lt;strong&gt;3&lt;/strong&gt; nodes for &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/#three-node-setup&#34;&gt;&lt;strong&gt;HA configuration&lt;/strong&gt;&lt;/a&gt;.&#xA;With only &lt;strong&gt;2&lt;/strong&gt; nodes, use &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/#two-node-setup&#34;&gt;&lt;strong&gt;Semi-HA configuration&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Setup Admin User and Privileges</title>
        <link>https://pgsty.pro/docs/deploy/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/admin/</guid>
        <description>&lt;p&gt;Pigsty requires an OS &lt;strong&gt;admin user&lt;/strong&gt; with passwordless &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;SSH&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#sudo&#34;&gt;&lt;strong&gt;Sudo&lt;/strong&gt;&lt;/a&gt; privileges on all managed nodes.&lt;/p&gt;&#xA;&lt;p&gt;This user must be able to SSH to all managed nodes and execute sudo commands on them.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;user&#34;&gt;User&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Typically use names like &lt;code&gt;dba&lt;/code&gt; or &lt;code&gt;admin&lt;/code&gt;, avoiding &lt;code&gt;root&lt;/code&gt; and &lt;code&gt;postgres&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using &lt;code&gt;root&lt;/code&gt; for deployment is possible but not a production best practice.&lt;/li&gt;&#xA;&lt;li&gt;Using &lt;code&gt;postgres&lt;/code&gt; (&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_dbsu&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_dbsu&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;) as admin user is strictly prohibited.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;passwordless&#34;&gt;Passwordless&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The passwordless requirement is optional if you can accept entering a password for every &lt;code&gt;ssh&lt;/code&gt; and &lt;code&gt;sudo&lt;/code&gt; command.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Sandbox</title>
        <link>https://pgsty.pro/docs/deploy/sandbox/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/sandbox/</guid>
        <description>&lt;p&gt;Pigsty provides a standard 4-node &lt;strong&gt;sandbox&lt;/strong&gt; environment for learning, testing, and feature demonstration.&lt;/p&gt;&#xA;&lt;p&gt;The sandbox uses fixed IP addresses and predefined identity identifiers, making it easy to reproduce various demo use cases.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;description&#34;&gt;Description&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The default sandbox environment consists of 4 nodes, using the &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/ha/full.yml&#34;&gt;&lt;code&gt;ha/full.yml&lt;/code&gt;&lt;/a&gt; configuration template.&lt;/p&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: center&#34;&gt;ID&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;IP Address&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Node&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PostgreSQL&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;INFRA&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;ETCD&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;MINIO&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;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.10&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-meta-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;infra-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;etcd-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;minio-1&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.11&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;node-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-test-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.12&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;node-2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-test-2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.13&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;node-3&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-test-3&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#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;The sandbox configuration can be summarized as the following config:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Vagrant</title>
        <link>https://pgsty.pro/docs/deploy/vagrant/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/vagrant/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.vagrantup.com/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt; is a popular local virtualization tool that creates local virtual machines in a declarative manner.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty requires a Linux environment to run. You can use Vagrant to easily create Linux virtual machines locally for testing.&lt;/p&gt;&#xA;&lt;p&gt;The currently recommended and validated baselines are Rocky Linux 9.8 / 10.2, Debian 12.15 / 13.6, and Ubuntu 22.04.5 / 24.04.4 / 26.04.0. Major-version Vagrant aliases map to pinned box versions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install-dependencies&#34;&gt;Install Dependencies&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;First, ensure you have &lt;a href=&#34;https://www.vagrantup.com/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt; and a virtual machine provider (such as &lt;a href=&#34;https://www.virtualbox.org/&#34;&gt;&lt;strong&gt;VirtualBox&lt;/strong&gt;&lt;/a&gt; or &lt;a href=&#34;https://libvirt.org/&#34;&gt;&lt;strong&gt;libvirt&lt;/strong&gt;&lt;/a&gt;) installed on your system.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Terraform</title>
        <link>https://pgsty.pro/docs/deploy/terraform/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/terraform/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.terraform.io/&#34;&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt; is a popular &amp;ldquo;Infrastructure as Code&amp;rdquo; tool that you can use to create virtual machines on public clouds with one click.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty currently provides example Terraform templates for Alibaba Cloud, AWS (global and China), Azure, GCP, Tencent Cloud, Hetzner, Vultr, DigitalOcean, and Linode. The &lt;code&gt;aliyun-s3.tf&lt;/code&gt; template also creates a private OSS bucket and dedicated RAM read/write credentials for S3/pgBackRest scenarios.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install-terraform&#34;&gt;Install Terraform&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;On macOS, you can use &lt;a href=&#34;https://brew.sh/&#34;&gt;&lt;strong&gt;Homebrew&lt;/strong&gt;&lt;/a&gt; to install Terraform:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Security Considerations</title>
        <link>https://pgsty.pro/docs/deploy/security/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/security/</guid>
        <description>&lt;p&gt;Pigsty defaults target development, testing, and demonstrations on a trusted intranet. A production deployment must configure credentials, network boundaries, authentication, certificates, backup, and audit according to its threat model.&lt;/p&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/&#34;&gt;&lt;strong&gt;Security and Compliance&lt;/strong&gt;&lt;/a&gt; for mechanisms and boundaries, and the &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/compliance/#launch-hardening-checklist&#34;&gt;&lt;strong&gt;Launch Hardening Checklist&lt;/strong&gt;&lt;/a&gt; for executable checks. &lt;a href=&#34;https://pgsty.pro/docs/conf/safe/&#34;&gt;&lt;strong&gt;&lt;code&gt;ha/safe&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is a hardening example, not a substitute for reviewing each control.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;confidentiality&#34;&gt;Confidentiality&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;critical-files&#34;&gt;Critical Files&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Protect these assets:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Kernel Templates</title>
        <link>https://pgsty.pro/docs/conf/_div_kernel/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/_div_kernel/</guid>
        <description></description>
      </item>
    <item>
        <title>pgsql</title>
        <link>https://pgsty.pro/docs/conf/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/pgsql/</guid>
        <description>&lt;p&gt;The &lt;code&gt;pgsql&lt;/code&gt; configuration template uses the native PostgreSQL kernel, Pigsty&amp;rsquo;s default database kernel, with stable support for PostgreSQL 14 to 18. The current &lt;code&gt;configure&lt;/code&gt; also accepts version 19, but PG19 remains Beta; use the dedicated &lt;a href=&#34;https://pgsty.pro/docs/conf/pg19/&#34;&gt;&lt;code&gt;pg19&lt;/code&gt;&lt;/a&gt; template for evaluation.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;pgsql&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Native PostgreSQL kernel configuration template&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>pg19</title>
        <link>https://pgsty.pro/docs/conf/pg19/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/pg19/</guid>
        <description>&lt;p&gt;&lt;code&gt;pg19&lt;/code&gt; is the single-node PostgreSQL 19 Beta evaluation template. It follows the &lt;code&gt;meta&lt;/code&gt; topology, enables the &lt;code&gt;beta&lt;/code&gt; repository, and limits the local repository&amp;rsquo;s additional cache to core PGSQL packages without preinstalling extensions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;pg19&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL Version: &lt;code&gt;19&lt;/code&gt; Beta&lt;/li&gt;&#xA;&lt;li&gt;Use Cases: New-version evaluation and compatibility testing&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/pgsql/&#34;&gt;&lt;code&gt;pgsql&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-2a2c6396-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-2a2c6396-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;./configure -c pg19 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/pg19.yml&#34;&gt;&lt;code&gt;pigsty/conf/pg19.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>mssql</title>
        <link>https://pgsty.pro/docs/conf/mssql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/mssql/</guid>
        <description>&lt;p&gt;The &lt;code&gt;mssql&lt;/code&gt; configuration template uses a &lt;strong&gt;PostgreSQL 17-compatible Babelfish&lt;/strong&gt; kernel instead of native PostgreSQL, providing Microsoft SQL Server wire protocol (TDS) and T-SQL syntax compatibility. The current template is pinned to &lt;code&gt;pg_version: 17&lt;/code&gt;; &lt;code&gt;configure&lt;/code&gt; does not apply &lt;code&gt;-v&lt;/code&gt; overrides to this fixed-kernel template.&lt;/p&gt;&#xA;&lt;p&gt;Since Pigsty v4.2, Babelfish is built directly by Pigsty, no longer using the WiltonDB repository, and is available on all &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/&#34;&gt;supported Linux platforms&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For the complete tutorial, see: &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/babelfish/&#34;&gt;Babelfish (MSSQL) Kernel Guide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>polar</title>
        <link>https://pgsty.pro/docs/conf/polar/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/polar/</guid>
        <description>&lt;p&gt;The &lt;code&gt;polar&lt;/code&gt; configuration template uses Alibaba Cloud&amp;rsquo;s PolarDB for PostgreSQL database kernel instead of native PostgreSQL, providing &amp;ldquo;cloud-native&amp;rdquo; Aurora-style storage-compute separation capability.&lt;/p&gt;&#xA;&lt;p&gt;For the complete tutorial, see: &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/polardb/&#34;&gt;PolarDB for PostgreSQL (POLAR) Kernel Guide&lt;/a&gt;&lt;/strong&gt;. For kernel differences and version references, see the &lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/&#34;&gt;PGSQL kernel overview&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;polar&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Uses PolarDB for PostgreSQL kernel&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>cloudberry</title>
        <link>https://pgsty.pro/docs/conf/cloudberry/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/cloudberry/</guid>
        <description>&lt;p&gt;The &lt;code&gt;cloudberry&lt;/code&gt; config template is not available yet in this version.&lt;/p&gt;&#xA;&lt;p&gt;If you need Cloudberry support, please see:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/cloudberry/&#34;&gt;Kernel: Cloudberry&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/conf/&#34;&gt;Config Templates&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>ivory</title>
        <link>https://pgsty.pro/docs/conf/ivory/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/ivory/</guid>
        <description>&lt;p&gt;The &lt;code&gt;ivory&lt;/code&gt; configuration template uses Highgo&amp;rsquo;s IvorySQL database kernel instead of native PostgreSQL, providing Oracle syntax and PL/SQL compatibility.&lt;/p&gt;&#xA;&lt;p&gt;For the complete tutorial, see: &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/ivorysql/&#34;&gt;IvorySQL (Oracle Compatible) Kernel Guide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;ivory&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Uses IvorySQL Oracle-compatible kernel&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d643b122-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-d643b122-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;./configure -c ivory &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/ivory.yml&#34;&gt;&lt;code&gt;pigsty/conf/ivory.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Reference</title>
        <link>https://pgsty.pro/docs/_div_ref/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/_div_ref/</guid>
        <description></description>
      </item>
    <item>
        <title>agens</title>
        <link>https://pgsty.pro/docs/conf/agens/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/agens/</guid>
        <description>&lt;p&gt;The &lt;code&gt;agens&lt;/code&gt; configuration template replaces native PostgreSQL with the AgensGraph kernel and enables property-graph modeling plus Cypher queries.&lt;/p&gt;&#xA;&lt;p&gt;For the full guide, see: &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/agensgraph/&#34;&gt;AgensGraph kernel guide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config name: &lt;code&gt;agens&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: AgensGraph (PG17) graph database kernel template&lt;/li&gt;&#xA;&lt;li&gt;Supported OS: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Supported arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related templates: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/pgsql/&#34;&gt;&lt;code&gt;pgsql&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Enable with:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-371ad369-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-371ad369-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;./configure -c agens &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;template-content&#34;&gt;Template Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/agens.yml&#34;&gt;&lt;code&gt;pigsty/conf/agens.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Supported Linux</title>
        <link>https://pgsty.pro/docs/ref/linux/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/ref/linux/</guid>
        <description>&lt;p&gt;Pigsty runs on &lt;strong&gt;Linux&lt;/strong&gt;, supporting &lt;strong&gt;&lt;code&gt;amd64/x86_64&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;arm64/aarch64&lt;/code&gt;&lt;/strong&gt; arch, plus 3 major distros: &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/#el&#34;&gt;&lt;strong&gt;EL&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/#debian&#34;&gt;&lt;strong&gt;Debian&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/#ubuntu&#34;&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty runs bare-metal without containers. Supports actively maintained mainstream releases across the 3 major distro families and both archs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recommended OS versions:&lt;/strong&gt; Rocky Linux 9.8 / 10.2, Debian 12.15 / 13.6, Ubuntu 22.04.5 / 24.04.4 / 26.04.0.&lt;/p&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;Distro&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Arch&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;OS Code&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG18&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG17&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG16&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG15&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG14&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;RHEL / Rocky / Alma 10&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-sky-600&#34;&gt;x86_64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/el10.x86_64.yml&#34;&gt;&lt;code&gt;el10.x86_64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;RHEL / Rocky / Alma 10&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-danger&#34;&gt;aarch64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/el10.aarch64.yml&#34;&gt;&lt;code&gt;el10.aarch64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;RHEL / Rocky / Alma 9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-sky-600&#34;&gt;x86_64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/el9.x86_64.yml&#34;&gt;&lt;code&gt;el9.x86_64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;RHEL / Rocky / Alma 9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-danger&#34;&gt;aarch64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/el9.aarch64.yml&#34;&gt;&lt;code&gt;el9.aarch64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ubuntu 26.04 (&lt;code&gt;resolute&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-sky-600&#34;&gt;x86_64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/u26.x86_64.yml&#34;&gt;&lt;code&gt;u26.x86_64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ubuntu 26.04 (&lt;code&gt;resolute&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-danger&#34;&gt;aarch64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/u26.aarch64.yml&#34;&gt;&lt;code&gt;u26.aarch64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ubuntu 24.04 (&lt;code&gt;noble&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-sky-600&#34;&gt;x86_64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/u24.x86_64.yml&#34;&gt;&lt;code&gt;u24.x86_64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ubuntu 24.04 (&lt;code&gt;noble&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-danger&#34;&gt;aarch64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/u24.aarch64.yml&#34;&gt;&lt;code&gt;u24.aarch64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ubuntu 22.04 (&lt;code&gt;jammy&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-sky-600&#34;&gt;x86_64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/u22.x86_64.yml&#34;&gt;&lt;code&gt;u22.x86_64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ubuntu 22.04 (&lt;code&gt;jammy&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-danger&#34;&gt;aarch64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/u22.aarch64.yml&#34;&gt;&lt;code&gt;u22.aarch64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Debian 13 (&lt;code&gt;trixie&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-sky-600&#34;&gt;x86_64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/d13.x86_64.yml&#34;&gt;&lt;code&gt;d13.x86_64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Debian 13 (&lt;code&gt;trixie&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-danger&#34;&gt;aarch64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/d13.aarch64.yml&#34;&gt;&lt;code&gt;d13.aarch64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Debian 12 (&lt;code&gt;bookworm&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-sky-600&#34;&gt;x86_64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/d12.x86_64.yml&#34;&gt;&lt;code&gt;d12.x86_64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Debian 12 (&lt;code&gt;bookworm&lt;/code&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;b class=&#34;text-danger&#34;&gt;aarch64&lt;/b&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/node_id/vars/d12.aarch64.yml&#34;&gt;&lt;code&gt;d12.aarch64&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;i class=&#34;fas fa-circle-check text-primary&#34;&gt;&lt;/i&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;These seven minor releases are the current validation baselines. The extension repository retains dual-architecture EL8 compatibility, so the complete package matrix covers 16 Linux platforms. EL8 is in its retirement transition and is no longer a recommended deployment baseline.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Modules</title>
        <link>https://pgsty.pro/docs/ref/module/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/ref/module/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;official-modules&#34;&gt;Official Modules&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;stretch-last&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Module&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Category&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Status&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Docs Path&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Summary&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;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Core&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;GA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/pgsql&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;High-availability PostgreSQL clusters with built-in backup, monitoring, SOP, and extension ecosystem.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Core&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;GA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/infra&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Local software repository + VictoriaMetrics/Logs/Traces + Grafana infrastructure stack.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Core&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;GA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/node&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node initialization and convergence: system tuning, admin, HAProxy, Vector, Keepalived, etc.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Core&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;GA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/etcd&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;DCS for PostgreSQL HA (service discovery, config, leader-election metadata).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;GA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/minio&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploys Silo S3-compatible object storage, suitable for PostgreSQL backups.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/&#34;&gt;&lt;strong&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;GA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/redis&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis by default, or Valkey, in standalone, Sentinel, or native-cluster mode with monitoring.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/docker/&#34;&gt;&lt;strong&gt;&lt;code&gt;DOCKER&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;GA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/docker&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker daemon and the runtime capability for containerized apps.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/&#34;&gt;&lt;strong&gt;&lt;code&gt;JUICE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;BETA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/juice&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JuiceFS distributed file system using PostgreSQL as metadata engine.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/vibe/&#34;&gt;&lt;strong&gt;&lt;code&gt;VIBE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;BETA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/vibe&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Browser-based dev environment with Code-Server, JupyterLab, Node.js, Claude Code, and Codex CLI.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/&#34;&gt;&lt;strong&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;BETA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;/docs/kafka&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Apache Kafka 4.x dynamic KRaft cluster deployment, security baseline, and monitoring.&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;core-modules&#34;&gt;Core Modules&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty provides four &lt;span class=&#34;text-primary&#34;&gt;&lt;b&gt;core&lt;/b&gt;&lt;/span&gt; modules that are important for delivering complete highly available PostgreSQL services:&lt;/p&gt;</description>
      </item>
    <item>
        <title>pgedge</title>
        <link>https://pgsty.pro/docs/conf/pgedge/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/pgedge/</guid>
        <description>&lt;p&gt;The &lt;code&gt;pgedge&lt;/code&gt; configuration template replaces native PostgreSQL with the pgEdge kernel and provides distributed, multi-master capabilities for edge deployments.&lt;/p&gt;&#xA;&lt;p&gt;For the full guide, see: &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/pgedge/&#34;&gt;pgEdge kernel guide&lt;/a&gt;&lt;/strong&gt;. For kernel differences and version references, see the &lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/&#34;&gt;PGSQL kernel overview&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config name: &lt;code&gt;pgedge&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: pgEdge (PG18) distributed kernel template&lt;/li&gt;&#xA;&lt;li&gt;Supported OS: &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt; for PG18 packages. For EL/RPM platforms, check current PGSQL repository availability for &lt;code&gt;pgedge_18&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Supported arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related templates: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/pgsql/&#34;&gt;&lt;code&gt;pgsql&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Enable with:&lt;/p&gt;</description>
      </item>
    <item>
        <title>File Hierarchy</title>
        <link>https://pgsty.pro/docs/ref/fhs/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/ref/fhs/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;pigsty-fhs&#34;&gt;Pigsty FHS&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty&amp;rsquo;s home directory is located at &lt;code&gt;~/pigsty&lt;/code&gt; by default. The file structure within this directory is as follows:&lt;/p&gt;&#xA;&lt;pre class=&#34;td-filetree-source&#34;&gt;&lt;code class=&#34;language-filetree&#34;&gt;- app/   {open=false}&#xA;  - Application template resources&#xA;- bin/   {open=false}&#xA;  - Management and operations scripts&#xA;- files/&#xA;  - victoria/   {open=false}&#xA;    - Rules and operations scripts&#xA;  - grafana/   {open=false}&#xA;    - Grafana dashboards&#xA;  - postgres/   {open=false}&#xA;    - PostgreSQL management scripts&#xA;  - migration/   {open=false}&#xA;    - Data-migration task definitions&#xA;  - pki/   {open=false}&#xA;    - Self-signed CA and certificates&#xA;- roles/   {open=false}&#xA;  - Ansible role implementations&#xA;- templates/   {open=false}&#xA;  - Ansible templates&#xA;- vagrant/   {open=false}&#xA;  - Vagrant sandbox definitions&#xA;- terraform/   {open=false}&#xA;  - Terraform cloud-resource templates&#xA;- configure&#xA;- ansible.cfg&#xA;- pigsty.yml&#xA;- *.yml&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;/infra&lt;/code&gt; is a runtime symlink to &lt;code&gt;/data/infra&lt;/code&gt;, which keeps observability data and generated configuration together:&lt;/p&gt;</description>
      </item>
    <item>
        <title>mysql</title>
        <link>https://pgsty.pro/docs/conf/mysql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/mysql/</guid>
        <description>&lt;p&gt;The &lt;code&gt;mysql&lt;/code&gt; configuration template uses OpenHalo database kernel instead of native PostgreSQL, providing MySQL wire protocol and SQL syntax compatibility.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;mysql&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: OpenHalo MySQL-compatible kernel configuration&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: EL 8/9/10, Debian 12/13, Ubuntu 22/24/26&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-8a30905e-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-8a30905e-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;./configure -c mysql &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/mysql.yml&#34;&gt;&lt;code&gt;pigsty/conf/mysql.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-8a30905e-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;87&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-8a30905e-include-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;nn&#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;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;c&#34;&gt;# File      :   mysql.yml&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;c&#34;&gt;# Desc      :   1-node OpenHaloDB (MySQL Compatible) template&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;c&#34;&gt;# Ctime     :   2025-04-03&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;c&#34;&gt;# Mtime     :   2026-07-08&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/conf/mysql&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;c&#34;&gt;# This is the config template for OpenHalo PG Kernel,&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;c&#34;&gt;# Which is a PostgreSQL 14 fork with MySQL Wire Compatibility&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;c&#34;&gt;# tutorial: https://pigsty.io/docs/pgsql/kernel/openhalo&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;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;c&#34;&gt;# Usage:&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;c&#34;&gt;#   curl https://repo.pigsty.io/get | bash&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;c&#34;&gt;#   ./configure -c mysql&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;c&#34;&gt;#   ./deploy.yml&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;nt&#34;&gt;all&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;children&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;infra&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;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;infra_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 }} ,vars&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;repo_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#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;etcd&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;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;etcd_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  }} ,vars&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;etcd_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;etcd  }}&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;c&#34;&gt;#minio: { hosts: { 10.10.10.10: { minio_seq: 1 }} ,vars: { minio_cluster: minio }}&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;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;c&#34;&gt;# OpenHalo Database Cluster&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;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;c&#34;&gt;# connect with mysql client: mysql -h 10.10.10.10 -u dbuser_meta -D mysql (the actual database is &amp;#39;postgres&amp;#39;, and &amp;#39;mysql&amp;#39; is a schema)&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-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;&#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;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;&#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;nt&#34;&gt;dbuser_meta ,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;DBUser.Meta   ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;pigsty admin user }&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;nt&#34;&gt;dbuser_view ,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;DBUser.Viewer ,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;nt&#34;&gt;true ,roles&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;[dbrole_readonly] ,comment&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;read-only viewer for meta database }&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;nt&#34;&gt;postgres, 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;l&#34;&gt;aux_mysql]}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# the mysql compatible database&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;nt&#34;&gt;meta ,baseline&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;cmdb.sql ,comment&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;pigsty meta database ,schemas&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;l&#34;&gt;pigsty]}&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;# https://pigsty.io/docs/pgsql/config/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;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;all ,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;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;nt&#34;&gt;&amp;#39;everyone intranet access with password&amp;#39; ,order&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;m&#34;&gt;800&lt;/span&gt;&lt;span class=&#34;w&#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_crontab&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;# https://pigsty.io/docs/pgsql/admin/crontab&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;s1&#34;&gt;&amp;#39;00 01 * * * /pg/bin/pg-backup full&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;&#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;c&#34;&gt;# OpenHalo Ad Hoc Setting&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_mode&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;mysql                   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# MySQL Compatible Mode by HaloDB&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_version&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;m&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# OpenHaloDB is compatible with PG Major Version 14&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_packages&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;openhalo, pgsql-common ] &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# install openhalodb instead of postgresql kernel&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;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;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;c&#34;&gt;# INFRA : https://pigsty.io/docs/infra/param&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;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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin node ip address&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;region&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream mirror region: default,china,europe&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;infra_portal&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;# infra services exposed via portal&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;home &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;domain&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;i.pigsty }    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default domain name&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;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;c&#34;&gt;# NODE : https://pigsty.io/docs/node/param&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;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;nodename_overwrite&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# do not overwrite node hostname on single node mode&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;node_repo_modules&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;node,infra,pgsql&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# add these repos directly to the singleton node&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;node_tune&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;oltp                    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node tuning specs: oltp,olap,tiny,crit&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;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;c&#34;&gt;# PGSQL : https://pigsty.io/docs/pgsql/param&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;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_version&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;m&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# OpenHalo is compatible with PG 14&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_conf&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;oltp.yml                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgsql tuning specs: {oltp,olap,tiny,crit}.yml&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;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;c&#34;&gt;# PASSWORD : https://pigsty.io/docs/setup/security/&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;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;grafana_admin_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;l&#34;&gt;pigsty&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;grafana_view_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;l&#34;&gt;DBUser.Viewer&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_admin_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;l&#34;&gt;DBUser.DBA&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_monitor_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;l&#34;&gt;DBUser.Monitor&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_replication_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;l&#34;&gt;DBUser.Replicator&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;patroni_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;l&#34;&gt;Patroni.API&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;haproxy_admin_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;l&#34;&gt;pigsty&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;minio_secret_key&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;S3User.MinIO&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;etcd_root_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;l&#34;&gt;Etcd.Root&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;mysql&lt;/code&gt; template uses the OpenHalo kernel, allowing you to connect to PostgreSQL using MySQL client tools.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/ref/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/ref/param/</guid>
        <description>&lt;p&gt;This is the parameter navigation page for Pigsty v4.x, without repeating full explanations for each parameter.&#xA;For parameter details, please read each module&amp;rsquo;s &lt;code&gt;param&lt;/code&gt; page.&lt;/p&gt;&#xA;&lt;p&gt;Cross-checked against the current source and parameter reference pages, the 10 official modules expose &lt;strong&gt;373&lt;/strong&gt; public parameters. Native MySQL 8.4 remains a pilot module; its 13 public parameters are listed separately and are not included in the official-module total.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;module-parameter-navigation&#34;&gt;Module Parameter Navigation&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;stretch-last&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Module&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Groups&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Count&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;124&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;PostgreSQL HA cluster configuration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;10&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;73&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Software repository and Victoria-based observability infra&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;11&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;73&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node initialization, system tuning, and ops baseline&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;13&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;ETCD cluster and removal safeguard parameters&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;22&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Silo deployment, observability, and removal parameters&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;22&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis/Valkey deployment and removal parameters&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/docker/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;DOCKER&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;8&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker engine parameters&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;JUICE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JuiceFS instance and cache parameters&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/vibe/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;VIBE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;18&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Code/Jupyter/Node.js/Claude/Codex configuration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/param/&#34;&gt;&lt;strong&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;18&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Kafka deployment and removal safeguard parameters&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Pilot module: &lt;a href=&#34;https://pgsty.pro/docs/mysql/param/#quick-reference&#34;&gt;&lt;strong&gt;native &lt;code&gt;MYSQL&lt;/code&gt; 8.4&lt;/strong&gt;&lt;/a&gt; currently exposes 13 public parameters: 11 for deployment and 2 for protected removal. Fixed ports, paths, software versions, and timers are not public parameters.&lt;/p&gt;</description>
      </item>
    <item>
        <title>pgtde</title>
        <link>https://pgsty.pro/docs/conf/pgtde/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/pgtde/</guid>
        <description>&lt;p&gt;The &lt;code&gt;pgtde&lt;/code&gt; configuration template uses Percona PostgreSQL database kernel, providing Transparent Data Encryption (TDE) capability.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;pgtde&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Percona PostgreSQL transparent data encryption configuration&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-dfc86994-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-dfc86994-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;./configure -c pgtde &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/pgtde.yml&#34;&gt;&lt;code&gt;pigsty/conf/pgtde.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-dfc86994-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;89&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-dfc86994-include-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;nn&#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;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;c&#34;&gt;# File      :   pgtde.yml&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;c&#34;&gt;# Desc      :   PG TDE with Percona PostgreSQL 1-node template&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;c&#34;&gt;# Ctime     :   2025-07-04&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;c&#34;&gt;# Mtime     :   2026-07-23&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/conf/pgtde&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;c&#34;&gt;# This is the config template for Percona PostgreSQL Distribution&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;c&#34;&gt;# with pg_tde, currently based on PostgreSQL 18&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;c&#34;&gt;# tutorial: https://pigsty.io/docs/pgsql/kernel/percona&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;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;c&#34;&gt;# Usage:&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;c&#34;&gt;#   curl https://repo.pigsty.io/get | bash&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;c&#34;&gt;#   ./configure -c pgtde&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;c&#34;&gt;#   ./deploy.yml&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;nt&#34;&gt;all&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;children&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;infra&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;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;infra_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 }} ,vars&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;repo_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#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;etcd&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;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;etcd_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  }} ,vars&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;etcd_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;etcd  }}&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;c&#34;&gt;#minio: { hosts: { 10.10.10.10: { minio_seq: 1 }} ,vars: { minio_cluster: minio }}&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;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;c&#34;&gt;# Percona Postgres Database Cluster&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;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-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;&#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;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_mode&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;pgtde&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;&#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;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_meta ,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;DBUser.Meta   ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin   ] ,comment&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;pigsty admin user }&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;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_view ,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;DBUser.Viewer ,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;nt&#34;&gt;true ,roles&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;[dbrole_readonly] ,comment&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;read-only viewer  }&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;baseline&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;cmdb.sql&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;comment&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;pigsty tde database&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;schemas&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;l&#34;&gt;pigsty]&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;vector, postgis, pg_tde ,pgaudit, { name: pg_stat_monitor, schema: monitor } ]&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;# https://pigsty.io/docs/pgsql/config/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;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;all ,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;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;nt&#34;&gt;&amp;#39;everyone intranet access with password&amp;#39; ,order&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;m&#34;&gt;800&lt;/span&gt;&lt;span class=&#34;w&#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_crontab&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;# https://pigsty.io/docs/pgsql/admin/crontab&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;s1&#34;&gt;&amp;#39;00 01 * * * /pg/bin/pg-backup full&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;&#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;c&#34;&gt;# Percona PostgreSQL TDE Kernel Settings&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_packages&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;pgtde, pgsql-common ] &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# install Pigsty private-prefix Percona packages&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;pg_tde, pgaudit, pg_stat_statements, pg_stat_monitor, auto_explain&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;&#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;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;c&#34;&gt;# INFRA : https://pigsty.io/docs/infra/param&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;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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin node ip address&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;region&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream mirror region: default,china,europe&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;infra_portal&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;# infra services exposed via portal&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;home &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;domain&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;i.pigsty }    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default domain name&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;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;c&#34;&gt;# NODE : https://pigsty.io/docs/node/param&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;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;nodename_overwrite&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# do not overwrite node hostname on single node mode&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;node_repo_modules&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;node,infra,pgsql&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;node_tune&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;oltp&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;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;c&#34;&gt;# PGSQL : https://pigsty.io/docs/pgsql/param&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;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_version&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;m&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Default Percona TDE PG Major Version is 18&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_conf&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;oltp.yml                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgsql tuning specs: {oltp,olap,tiny,crit}.yml&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;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;c&#34;&gt;# PASSWORD : https://pigsty.io/docs/setup/security/&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;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;grafana_admin_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;l&#34;&gt;pigsty&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;grafana_view_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;l&#34;&gt;DBUser.Viewer&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_admin_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;l&#34;&gt;DBUser.DBA&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_monitor_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;l&#34;&gt;DBUser.Monitor&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_replication_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;l&#34;&gt;DBUser.Replicator&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;patroni_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;l&#34;&gt;Patroni.API&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;haproxy_admin_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;l&#34;&gt;pigsty&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;minio_secret_key&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;S3User.MinIO&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;etcd_root_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;l&#34;&gt;Etcd.Root&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;pgtde&lt;/code&gt; template selects &lt;code&gt;pg_mode: pgtde&lt;/code&gt; and installs the &lt;code&gt;pgtde&lt;/code&gt; package&#xA;alias. Pigsty links the private &lt;code&gt;/usr/pgtde-$v&lt;/code&gt; prefix (currently&#xA;&lt;code&gt;/usr/pgtde-18&lt;/code&gt;) to its stable &lt;code&gt;/usr/pgsql&lt;/code&gt; entry point.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbooks</title>
        <link>https://pgsty.pro/docs/ref/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/ref/playbook/</guid>
        <description>&lt;p&gt;This page summarizes Pigsty v4.x playbook entries and usage guidance by module. For detailed task tags, open each module&amp;rsquo;s &lt;code&gt;playbook&lt;/code&gt; page.&lt;/p&gt;&#xA;&lt;h2 id=&#34;module-playbook-navigation&#34;&gt;Module Playbook Navigation&#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;Module&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Count&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Playbooks&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/docs/infra/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;deploy.yml&lt;/code&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;&lt;a href=&#34;https://pgsty.pro/docs/node/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;node.yml&lt;/code&gt; &lt;code&gt;node-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;&lt;a href=&#34;https://pgsty.pro/docs/etcd/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;etcd.yml&lt;/code&gt; &lt;code&gt;etcd-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;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgsql.yml&lt;/code&gt; &lt;code&gt;pgsql-rm.yml&lt;/code&gt; &lt;br&gt; &lt;code&gt;pgsql-user.yml&lt;/code&gt; &lt;code&gt;pgsql-db.yml&lt;/code&gt; &lt;br&gt; &lt;code&gt;pgsql-monitor.yml&lt;/code&gt; &lt;code&gt;pgsql-migration.yml&lt;/code&gt; &lt;code&gt;pgsql-pitr.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;a href=&#34;https://pgsty.pro/docs/redis/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;redis.yml&lt;/code&gt; &lt;code&gt;redis-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;&lt;a href=&#34;https://pgsty.pro/docs/minio/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;minio.yml&lt;/code&gt; &lt;code&gt;minio-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;&lt;a href=&#34;https://pgsty.pro/docs/docker/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;DOCKER&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;docker.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;a href=&#34;https://pgsty.pro/docs/juice/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;JUICE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;juice.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;a href=&#34;https://pgsty.pro/docs/vibe/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;VIBE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vibe.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;a href=&#34;https://pgsty.pro/docs/kafka/playbook/&#34;&gt;&lt;strong&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;kafka.yml&lt;/code&gt; &lt;code&gt;kafka-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;&lt;a href=&#34;https://pgsty.pro/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;MYSQL&lt;/code&gt; (pilot)&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mysql.yml&lt;/code&gt; &lt;code&gt;mysql-rm.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;playbook-matrix&#34;&gt;Playbook Matrix&#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;Playbook&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Module&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Purpose&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/docs/infra/playbook/#deployyml&#34;&gt;&lt;strong&gt;&lt;code&gt;deploy.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;One-pass deployment for the core chain (Infra/Node/Etcd/PGSQL, enabling MINIO by config)&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/docs/infra/playbook/#infrayml&#34;&gt;&lt;strong&gt;&lt;code&gt;infra.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Initialize infrastructure nodes&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/docs/infra/playbook/#infra-rmyml&#34;&gt;&lt;strong&gt;&lt;code&gt;infra-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Remove infrastructure components&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/docs/node/playbook/#nodeyml&#34;&gt;&lt;strong&gt;&lt;code&gt;node.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node onboarding and baseline convergence&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/docs/node/playbook/#node-rmyml&#34;&gt;&lt;strong&gt;&lt;code&gt;node-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node offboarding&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/docs/etcd/playbook/#etcdyml&#34;&gt;&lt;strong&gt;&lt;code&gt;etcd.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;ETCD install/scale-out&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/docs/etcd/playbook/#etcd-rmyml&#34;&gt;&lt;strong&gt;&lt;code&gt;etcd-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;ETCD remove/scale-in&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/docs/pgsql/playbook/#pgsqlyml&#34;&gt;&lt;strong&gt;&lt;code&gt;pgsql.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Initialize PostgreSQL cluster or add instance&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/docs/pgsql/playbook/#pgsql-rmyml&#34;&gt;&lt;strong&gt;&lt;code&gt;pgsql-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Remove PostgreSQL cluster/instance&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/docs/pgsql/playbook/#pgsql-useryml&#34;&gt;&lt;strong&gt;&lt;code&gt;pgsql-user.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add business users&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/docs/pgsql/playbook/#pgsql-dbyml&#34;&gt;&lt;strong&gt;&lt;code&gt;pgsql-db.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add business databases&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/docs/pgsql/playbook/#pgsql-monitoryml&#34;&gt;&lt;strong&gt;&lt;code&gt;pgsql-monitor.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Register remote PostgreSQL for monitoring&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/docs/pgsql/playbook/#pgsql-migrationyml&#34;&gt;&lt;strong&gt;&lt;code&gt;pgsql-migration.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Generate migration runbook and scripts&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/docs/pgsql/playbook/#pgsql-pitryml&#34;&gt;&lt;strong&gt;&lt;code&gt;pgsql-pitr.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Point-in-time recovery (PITR)&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/docs/redis/playbook/#redisyml&#34;&gt;&lt;strong&gt;&lt;code&gt;redis.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy Redis&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/docs/redis/playbook/#redis-rmyml&#34;&gt;&lt;strong&gt;&lt;code&gt;redis-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Remove Redis&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/docs/minio/playbook/#minioyml&#34;&gt;&lt;strong&gt;&lt;code&gt;minio.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy Silo&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/docs/minio/playbook/#minio-rmyml&#34;&gt;&lt;strong&gt;&lt;code&gt;minio-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Remove Silo, its configuration, and optional data&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/docs/docker/playbook/#dockeryml&#34;&gt;&lt;strong&gt;&lt;code&gt;docker.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;DOCKER&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy Docker engine&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/docs/juice/playbook/#juiceyml&#34;&gt;&lt;strong&gt;&lt;code&gt;juice.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;JUICE&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy/remove JuiceFS instances&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/docs/vibe/playbook/#vibeyml&#34;&gt;&lt;strong&gt;&lt;code&gt;vibe.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;VIBE&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy VIBE dev environment&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/docs/kafka/playbook/#kafkayml&#34;&gt;&lt;strong&gt;&lt;code&gt;kafka.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Create or converge a complete dynamic KRaft cluster&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/docs/kafka/playbook/#kafka-rmyml&#34;&gt;&lt;strong&gt;&lt;code&gt;kafka-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Remove a Kafka cluster, or safely retire a single member&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/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;mysql.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Converge a native MySQL 8.4 single node or three-node InnoDB Cluster (pilot)&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/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;mysql-rm.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Stop or retire a native MySQL instance or cluster while preserving local state (pilot)&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;auxiliary-playbooks&#34;&gt;Auxiliary Playbooks&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The following playbooks are cross-module helpers.&lt;/p&gt;</description>
      </item>
    <item>
        <title>oriole</title>
        <link>https://pgsty.pro/docs/conf/oriole/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/oriole/</guid>
        <description>&lt;p&gt;The &lt;code&gt;oriole&lt;/code&gt; configuration template uses OrioleDB storage engine instead of PostgreSQL&amp;rsquo;s default Heap storage, providing bloat-free, high-performance OLTP capability.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;oriole&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: OrioleDB bloat-free storage engine configuration&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL Major: &lt;code&gt;16&lt;/code&gt;, &lt;code&gt;17&lt;/code&gt;, or &lt;code&gt;18&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-b5e07491-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;6&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-b5e07491-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;./configure -c oriole &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;&#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;# Select a PostgreSQL major version explicitly&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./configure -c oriole -v &lt;span class=&#34;m&#34;&gt;16&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./configure -c oriole -v &lt;span class=&#34;m&#34;&gt;17&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./configure -c oriole -v &lt;span class=&#34;m&#34;&gt;18&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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/oriole.yml&#34;&gt;&lt;code&gt;pigsty/conf/oriole.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Port List</title>
        <link>https://pgsty.pro/docs/ref/port/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/ref/port/</guid>
        <description>&lt;p&gt;This page lists default ports used by Pigsty module components. Adjust as needed or use as a reference for fine-grained firewall configuration.&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: center&#34;&gt;Module&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Component&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Port&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Status&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;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;node_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9100&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/param/#node_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;node_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;haproxy&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9101&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/param/#haproxy_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;haproxy_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;vector&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9598&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/param/#vector_port&#34;&gt;&lt;strong&gt;&lt;code&gt;vector_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;keepalived_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9650&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/param/#vip_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;vip_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;chronyd&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;123&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;-&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/docker/&#34;&gt;&lt;strong&gt;&lt;code&gt;DOCKER&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;docker&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9323&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/docker/param/#docker_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;docker_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;80&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#nginx_port&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;443&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#nginx_ssl_port&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx_ssl_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9113&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#nginx_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;grafana&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;3000&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#grafana_port&#34;&gt;&lt;strong&gt;&lt;code&gt;grafana_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;victoriaMetrics&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;8428&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#vmetrics_port&#34;&gt;&lt;strong&gt;&lt;code&gt;vmetrics_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;victoriaLogs&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9428&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#vlogs_port&#34;&gt;&lt;strong&gt;&lt;code&gt;vlogs_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;victoriaTraces&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10428&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#vtraces_port&#34;&gt;&lt;strong&gt;&lt;code&gt;vtraces_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;vmalert&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;8880&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#vmalert_port&#34;&gt;&lt;strong&gt;&lt;code&gt;vmalert_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;alertmanager&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9059&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#alertmanager_port&#34;&gt;&lt;strong&gt;&lt;code&gt;alertmanager_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;blackbox_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9115&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#blackbox_port&#34;&gt;&lt;strong&gt;&lt;code&gt;blackbox_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;dnsmasq&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;53&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#dns_port&#34;&gt;&lt;strong&gt;&lt;code&gt;dns_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;etcd&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2379&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/param/#etcd_port&#34;&gt;&lt;strong&gt;&lt;code&gt;etcd_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;etcd&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2380&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/param/#etcd_peer_port&#34;&gt;&lt;strong&gt;&lt;code&gt;etcd_peer_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Silo S3 API&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9000&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_port&#34;&gt;&lt;strong&gt;&lt;code&gt;minio_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Silo admin port&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9001&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_admin_port&#34;&gt;&lt;strong&gt;&lt;code&gt;minio_admin_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/&#34;&gt;&lt;strong&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;Redis / Valkey&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;6379&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/param/#redis_instances&#34;&gt;&lt;strong&gt;&lt;code&gt;redis_instances&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/&#34;&gt;&lt;strong&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;redis_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9121&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/param/#redis_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;redis_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/vibe/&#34;&gt;&lt;strong&gt;&lt;code&gt;VIBE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;code-server&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;8443&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/vibe/param/#code_port&#34;&gt;&lt;strong&gt;&lt;code&gt;code_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/vibe/&#34;&gt;&lt;strong&gt;&lt;code&gt;VIBE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;jupyterlab&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;8888&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/vibe/param/#jupyter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;jupyter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/&#34;&gt;&lt;strong&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;broker&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9092&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/param/#kafka_port&#34;&gt;&lt;strong&gt;&lt;code&gt;kafka_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;🧪 BETA&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/&#34;&gt;&lt;strong&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;KRaft controller&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9093&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/param/#kafka_controller_port&#34;&gt;&lt;strong&gt;&lt;code&gt;kafka_controller_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;🧪 BETA&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/&#34;&gt;&lt;strong&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;kafka_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9308&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/param/#kafka_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;kafka_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;🧪 BETA&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/&#34;&gt;&lt;strong&gt;&lt;code&gt;KAFKA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;JMX exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9404&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/param/#kafka_jmx_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;kafka_jmx_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;🧪 BETA&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;mysqld&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;3306&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fixed value (the current pilot exposes no port parameter)&lt;/td&gt;&#xA;      &lt;td&gt;🧪 PILOT&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;MySQL X Protocol&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;33060&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fixed value; loopback-only on a single node, member-facing in a 3-node topology&lt;/td&gt;&#xA;      &lt;td&gt;🧪 PILOT&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;Group Replication&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;33061&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fixed value; three-node InnoDB Cluster only&lt;/td&gt;&#xA;      &lt;td&gt;🧪 PILOT&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;MySQL Router RW&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;6446&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fixed value; three-node InnoDB Cluster only&lt;/td&gt;&#xA;      &lt;td&gt;🧪 PILOT&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;MySQL Router RO&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;6447&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fixed value; three-node InnoDB Cluster only&lt;/td&gt;&#xA;      &lt;td&gt;🧪 PILOT&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/mysql/&#34;&gt;&lt;strong&gt;&lt;code&gt;MYSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;mysqld_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9104&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fixed value; controlled by &lt;code&gt;mysql_exporter_enabled&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;🧪 PILOT&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;postgres&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;5432&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_port&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbouncer&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;6432&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pgbouncer_port&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbouncer_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;patroni&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;8008&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#patroni_port&#34;&gt;&lt;strong&gt;&lt;code&gt;patroni_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9630&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbouncer_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9631&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pgbouncer_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbouncer_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbackrest_exporter&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9854&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pgbackrest_exporter_port&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbackrest_exporter_port&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;{{ pg_cluster }}-primary&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;5433&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_default_services&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_default_services&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;{{ pg_cluster }}-replica&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;5434&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_default_services&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_default_services&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;{{ pg_cluster }}-default&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;5436&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_default_services&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_default_services&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;{{ pg_cluster }}-offline&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;5438&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_default_services&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_default_services&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;&lt;code&gt;{{ pg_cluster }}-&amp;lt;service&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;543x&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_services&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_services&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Optional&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The native MySQL pilot reuses port &lt;code&gt;3306&lt;/code&gt; for MySQL Shell AdminAPI. XtraBackup is invoked by a local systemd timer and has no listening port, while the role explicitly disables the MySQL Router REST management interface. The table lists only network endpoints currently managed by the role.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PostgreSQL Mongo Mode</title>
        <link>https://pgsty.pro/docs/conf/mongo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/mongo/</guid>
        <description>&lt;p&gt;The &lt;code&gt;mongo&lt;/code&gt; configuration template is a &lt;strong&gt;PostgreSQL deployment mode&lt;/strong&gt;, not an independent Pigsty module. It combines:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 18 managed by the standard &lt;code&gt;PGSQL&lt;/code&gt; module&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;documentdb&lt;/code&gt; extension and its required preload libraries&lt;/li&gt;&#xA;&lt;li&gt;A stateless FerretDB proxy deployed with Pigsty&amp;rsquo;s Docker APP workflow&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;All data, high availability, backup, monitoring, and lifecycle management remain PostgreSQL responsibilities. FerretDB only provides the MongoDB wire-compatible endpoint.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The default template is a single-node deployment on &lt;code&gt;10.10.10.10&lt;/code&gt;. FerretDB listens on loopback by default.&lt;/p&gt;</description>
      </item>
    <item>
        <title>HA Templates</title>
        <link>https://pgsty.pro/docs/conf/_div_ha/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/_div_ha/</guid>
        <description></description>
      </item>
    <item>
        <title>ha/simu</title>
        <link>https://pgsty.pro/docs/conf/simu/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/simu/</guid>
        <description>&lt;p&gt;The &lt;code&gt;ha/simu&lt;/code&gt; configuration template is a 20-node production environment simulation, requiring a powerful host machine to run.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;ha/simu&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: 20 nodes, &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/vagrant/spec/simu.rb&#34;&gt;&lt;code&gt;pigsty/vagrant/spec/simu.rb&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Description: 20-node production environment simulation, requires powerful host machine&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f4a78d60-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-f4a78d60-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;./configure -c ha/simu &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/ha/simu.yml&#34;&gt;&lt;code&gt;pigsty/conf/ha/simu.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>ha/octo</title>
        <link>https://pgsty.pro/docs/conf/octo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/octo/</guid>
        <description>&lt;p&gt;&lt;code&gt;ha/octo&lt;/code&gt; uses the first eight nodes from &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/vagrant/spec/deci.rb&#34;&gt;&lt;code&gt;vagrant/spec/deci.rb&lt;/code&gt;&lt;/a&gt; to build a compact high-availability simulation. It exercises co-located modules, VIPs, remote backup, and larger membership counts. Do not use it directly as a production blueprint without reviewing capacity, security, and failure domains.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config name: &lt;code&gt;ha/octo&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node addresses: &lt;code&gt;10.10.10.10&lt;/code&gt; through &lt;code&gt;10.10.10.17&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;INFRA: 3 nodes; only the first builds and serves the local repository, while Docker can be installed separately on all three as noted in comments&lt;/li&gt;&#xA;&lt;li&gt;ETCD: 5 nodes on the last five hosts&lt;/li&gt;&#xA;&lt;li&gt;Object storage: one eight-node, single-drive cluster; the template does not override &lt;code&gt;minio_type&lt;/code&gt;, so both deployment and removal roles default to Silo; verify that value, the exact target, and data paths before removal&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg-meta&lt;/code&gt;: 3-node PostgreSQL cluster with VIP &lt;code&gt;10.10.10.2/24&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg-test&lt;/code&gt;: 5-node PostgreSQL cluster whose final instance has the &lt;code&gt;offline&lt;/code&gt; role, with VIP &lt;code&gt;10.10.10.3/24&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Backup: uses the object-storage repository through &lt;code&gt;sss.pigsty:9002&lt;/code&gt; and also retains a local repository&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-3bb6bc36-fence-0&#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-3bb6bc36-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;./configure -c ha/octo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./deploy.yml&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;This template depends on fixed eight-node addresses and VIPs. For any other environment, update the host addresses, VIPs, interfaces, DNS, repository node, and every public example credential together.&lt;/p&gt;</description>
      </item>
    <item>
        <title>ha/full</title>
        <link>https://pgsty.pro/docs/conf/full/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/full/</guid>
        <description>&lt;p&gt;The &lt;code&gt;ha/full&lt;/code&gt; configuration template is Pigsty&amp;rsquo;s recommended sandbox demonstration environment, deploying two PostgreSQL clusters across four nodes for testing and demonstrating various Pigsty capabilities.&lt;/p&gt;&#xA;&lt;p&gt;Most Pigsty tutorials and examples are based on this template&amp;rsquo;s sandbox environment.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;ha/full&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Four nodes&lt;/li&gt;&#xA;&lt;li&gt;Description: Four-node complete feature demonstration environment with two PostgreSQL clusters, Silo, Redis, etc.&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/trio/&#34;&gt;&lt;code&gt;ha/trio&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/safe/&#34;&gt;&lt;code&gt;ha/safe&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/demo/&#34;&gt;&lt;code&gt;demo/demo&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>ha/safe</title>
        <link>https://pgsty.pro/docs/conf/safe/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/safe/</guid>
        <description>&lt;p&gt;&lt;code&gt;ha/safe&lt;/code&gt; uses a three-node high-availability topology to demonstrate TLS, client certificates, password checks, backup encryption, the CRIT parameter template, and related security settings. It is a configuration example to customize, not a compliance-certified template.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Configuration: &lt;code&gt;ha/safe&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Nodes: 3 INFRA, etcd, and PostgreSQL nodes; optional delayed replica&lt;/li&gt;&#xA;&lt;li&gt;Operating systems: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Architecture: &lt;code&gt;x86_64&lt;/code&gt;; some security extensions do not have ARM64 packages&lt;/li&gt;&#xA;&lt;li&gt;Related configurations: &lt;a href=&#34;https://pgsty.pro/docs/conf/trio/&#34;&gt;&lt;strong&gt;&lt;code&gt;ha/trio&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/full/&#34;&gt;&lt;strong&gt;&lt;code&gt;ha/full&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Generate the configuration:&lt;/p&gt;</description>
      </item>
    <item>
        <title>ha/trio</title>
        <link>https://pgsty.pro/docs/conf/trio/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/trio/</guid>
        <description>&lt;p&gt;Three nodes is the minimum scale for majority-based high availability. The &lt;code&gt;ha/trio&lt;/code&gt; template distributes INFRA, ETCD, PGSQL, and Silo across three servers. PostgreSQL, ETCD, and object storage continue serving when one server is unavailable.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;ha/trio&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Three nodes&lt;/li&gt;&#xA;&lt;li&gt;Description: Three-node standard HA architecture with a three-node, single-drive Silo cluster and one HA S3 endpoint&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/dual/&#34;&gt;&lt;code&gt;ha/dual&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/full/&#34;&gt;&lt;code&gt;ha/full&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/safe/&#34;&gt;&lt;code&gt;ha/safe&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>ha/dual</title>
        <link>https://pgsty.pro/docs/conf/dual/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/dual/</guid>
        <description>&lt;p&gt;The &lt;code&gt;ha/dual&lt;/code&gt; template uses two-node deployment, implementing a &amp;ldquo;semi-HA&amp;rdquo; architecture with one primary and one standby. If you only have two servers, this is a pragmatic choice.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;ha/dual&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Two nodes&lt;/li&gt;&#xA;&lt;li&gt;Description: Two-node limited HA deployment, tolerates specific server failure&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/trio/&#34;&gt;&lt;code&gt;ha/trio&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-6e628728-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-6e628728-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;./configure -c ha/dual &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;After configuration, modify placeholder IP &lt;code&gt;10.10.10.11&lt;/code&gt; to actual standby node IP address.&lt;/p&gt;</description>
      </item>
    <item>
        <title>ha/citus</title>
        <link>https://pgsty.pro/docs/conf/citus/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/citus/</guid>
        <description>&lt;p&gt;The &lt;code&gt;ha/citus&lt;/code&gt; template deploys a complete &lt;strong&gt;Citus distributed PostgreSQL cluster&lt;/strong&gt; with 1 infra node, 1 coordinator group, and 5 worker groups (12 Citus nodes total), providing transparent horizontal scaling and data sharding.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;ha/citus&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: 13 nodes (1 infra + 1 coordinator×2 + 5 workers×2)&lt;/li&gt;&#xA;&lt;li&gt;Description: Citus distributed PostgreSQL HA cluster&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/trio/&#34;&gt;&lt;code&gt;ha/trio&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Modules</title>
        <link>https://pgsty.pro/docs/_div_module/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/_div_module/</guid>
        <description></description>
      </item>
    <item>
        <title>Misc Templates</title>
        <link>https://pgsty.pro/docs/conf/_div_misc/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/_div_misc/</guid>
        <description></description>
      </item>
    <item>
        <title>demo/bare</title>
        <link>https://pgsty.pro/docs/conf/bare/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/bare/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/bare&lt;/code&gt; is Pigsty&amp;rsquo;s smallest configuration example. It keeps only three core groups and three global parameters to show a working inventory skeleton.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/bare&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Modules: INFRA, ETCD, PGSQL&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-8fb91e3a-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-8fb91e3a-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;./configure -c demo/bare &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/demo/bare.yml&#34;&gt;&lt;code&gt;pigsty/conf/demo/bare.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-8fb91e3a-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;11&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-8fb91e3a-include-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;nn&#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;nt&#34;&gt;all&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;children&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;infra&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;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;infra_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;m&#34;&gt;1&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;w&#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;etcd&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;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;etcd_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 } }, vars&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;etcd_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;etcd } }&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-meta&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;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;nt&#34;&gt;primary } }, vars&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_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;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;version&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;v4.5.0&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;admin_ip&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;m&#34;&gt;10.10.10.10&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;region&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;default&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;This template relies on Pigsty defaults and defines no business users, databases, extensions, backup policy, or security hardening. Use it to learn configuration hierarchy or as a minimal customization base; explicitly add passwords, HBA rules, backup, and safeguards for a real environment.&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/el</title>
        <link>https://pgsty.pro/docs/conf/el/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/el/</guid>
        <description>&lt;p&gt;The &lt;code&gt;demo/el&lt;/code&gt; configuration template is optimized for Enterprise Linux family distributions (RHEL, Rocky Linux, Alma Linux, Oracle Linux).&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/el&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Enterprise Linux optimized configuration template&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/debian/&#34;&gt;&lt;code&gt;demo/debian&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-49faf97d-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-49faf97d-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;./configure -c demo/el &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/demo/el.yml&#34;&gt;&lt;code&gt;pigsty/conf/demo/el.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-49faf97d-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;865&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-49faf97d-include-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;nn&#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;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;c&#34;&gt;# File      :   el.yml&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;c&#34;&gt;# Desc      :   Default parameters for EL System in Pigsty&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;c&#34;&gt;# Ctime     :   2020-05-22&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;c&#34;&gt;# Mtime     :   2026-08-02&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/conf/el&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;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;c&#34;&gt;#                        Sandbox (4-node)                      #&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;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;c&#34;&gt;# admin user : vagrant  (nopass ssh &amp;amp; sudo already set)        #&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;c&#34;&gt;# 1.  meta    :    10.10.10.10     (2 Core | 4GB)    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;c&#34;&gt;# 2.  node-1  :    10.10.10.11     (1 Core | 1GB)    pg-test-1 #&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;c&#34;&gt;# 3.  node-2  :    10.10.10.12     (1 Core | 1GB)    pg-test-2 #&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;c&#34;&gt;# 4.  node-3  :    10.10.10.13     (1 Core | 1GB)    pg-test-3 #&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;c&#34;&gt;# (replace these ip if your 4-node env have different ip addr) #&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;c&#34;&gt;# VIP 2: (l2 vip is available inside same LAN )                #&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;c&#34;&gt;#     pg-meta ---&amp;gt;  10.10.10.2 ---&amp;gt; 10.10.10.10                #&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;c&#34;&gt;#     pg-test ---&amp;gt;  10.10.10.3 ---&amp;gt; 10.10.10.1{1,2,3}          #&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;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;&#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;nt&#34;&gt;all&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;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;c&#34;&gt;#                            CLUSTERS                            #&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;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;c&#34;&gt;# meta nodes, nodes, pgsql, redis, pgsql clusters are defined as&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;c&#34;&gt;# k:v pair inside `all.children`. Where the key is cluster name&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;c&#34;&gt;# and value is cluster definition consist of two parts:&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;c&#34;&gt;# `hosts`: cluster members ip and instance level variables&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;c&#34;&gt;# `vars` : cluster level variables&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;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;children&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;# groups definition&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# infra cluster for proxy, monitor, alert, etc..&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;infra&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;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;infra_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;m&#34;&gt;1&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;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd cluster for ha postgres&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;etcd&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;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;etcd_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 } }, vars&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;etcd_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;etcd } }&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio cluster, s3 compatible object storage&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;minio&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;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;minio_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 } }, vars&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;minio_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;minio } }&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;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;c&#34;&gt;# pgsql cluster: pg-meta (CMDB)    #&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;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-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;nt&#34;&gt;primary , pg_offline_query&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;w&#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;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;&#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;c&#34;&gt;# define business databases here: https://pigsty.io/docs/pgsql/config/db&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;c&#34;&gt;# define business databases on this cluster, array of database definition&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; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# REQUIRED, `name` is the only mandatory field of a database definition&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;c&#34;&gt;#state: create                  # optional, create|absent|recreate, create by default&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;baseline&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;cmdb.sql             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, database sql baseline path, (relative path among ansible search path, e.g: files/)&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;schemas&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;l&#34;&gt;pigsty]              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, additional schemas to be created, array of schema names&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;c&#34;&gt;# optional, additional extensions to be installed: array of `{name[,schema]}`&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;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;vector }           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# install pgvector extension on this database by default&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;comment&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;pigsty meta database  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, comment string for this database&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;c&#34;&gt;#pgbouncer: true                # optional, add this database to pgbouncer database list? true by default&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;c&#34;&gt;#owner: postgres                # optional, database owner, current user if not specified&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;c&#34;&gt;#template: template1            # optional, which template to use, template1 by default&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;c&#34;&gt;#strategy: FILE_COPY            # optional, clone strategy: FILE_COPY or WAL_LOG (PG15+), default to PG&amp;#39;s default&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;c&#34;&gt;#encoding: UTF8                 # optional, inherited from template / cluster if not defined (UTF8)&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;c&#34;&gt;#locale: C                      # optional, inherited from template / cluster if not defined (C)&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;c&#34;&gt;#lc_collate: C                  # optional, inherited from template / cluster if not defined (C)&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;c&#34;&gt;#lc_ctype: C                    # optional, inherited from template / cluster if not defined (C)&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;c&#34;&gt;#locale_provider: libc          # optional, locale provider: libc, icu, builtin (PG15+)&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;c&#34;&gt;#icu_locale: en-US              # optional, icu locale for icu locale provider (PG15+)&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;c&#34;&gt;#icu_rules: &amp;#39;&amp;#39;                  # optional, icu rules for icu locale provider (PG16+)&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;c&#34;&gt;#builtin_locale: C.UTF-8        # optional, builtin locale for builtin locale provider (PG17+)&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;c&#34;&gt;#tablespace: pg_default         # optional, default tablespace, pg_default by default&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;c&#34;&gt;#is_template: false             # optional, mark database as template, allowing clone by any user with CREATEDB privilege&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;c&#34;&gt;#allowconn: true                # optional, allow connection, true by default. false will disable connect at all&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;c&#34;&gt;#revokeconn: false              # optional, revoke public connection privilege. false by default. (leave connect with grant option to owner)&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;c&#34;&gt;#register_datasource: true      # optional, register this database to grafana datasources? true by default&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;c&#34;&gt;#connlimit: -1                  # optional, database connection limit, default -1 disable limit&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;c&#34;&gt;#pool_auth_user: dbuser_meta    # optional, all connection to this pgbouncer database will be authenticated by this user&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;c&#34;&gt;#pool_mode: transaction         # optional, pgbouncer pool mode at database level, default transaction&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;c&#34;&gt;#pool_size: 64                  # optional, pgbouncer pool size at database level, default 64&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;c&#34;&gt;#pool_reserve: 32               # optional, pgbouncer pool size reserve at database level, default 32&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;c&#34;&gt;#pool_size_min: 0               # optional, pgbouncer pool size min at database level, default 0&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;c&#34;&gt;#pool_connlimit: 100            # optional, max database connections at database level, default 100&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;c&#34;&gt;#- { name: grafana  ,owner: dbuser_grafana  ,revokeconn: true ,comment: grafana primary database }&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;c&#34;&gt;#- { name: bytebase ,owner: dbuser_bytebase ,revokeconn: true ,comment: bytebase primary database }&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;c&#34;&gt;#- { name: kong     ,owner: dbuser_kong     ,revokeconn: true ,comment: kong the api gateway database }&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;c&#34;&gt;#- { name: gitea    ,owner: dbuser_gitea    ,revokeconn: true ,comment: gitea meta database }&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;c&#34;&gt;#- { name: wiki     ,owner: dbuser_wiki     ,revokeconn: true ,comment: wiki meta database }&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define business users here: https://pigsty.io/docs/pgsql/config/user&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;c&#34;&gt;# define business users/roles on this cluster, array of user definition&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;dbuser_meta              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# REQUIRED, `name` is the only mandatory field of a user definition&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;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;l&#34;&gt;DBUser.Meta          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, password, can be a scram-sha-256 hash string or plain text&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;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;c&#34;&gt;# optional, add this user to pgbouncer user-list? false by default (production user should be true explicitly)&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;comment&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;pigsty admin user     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, comment string for this user/role&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;roles&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;dbrole_admin ]        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, belonged roles. default roles are: dbrole_{admin,readonly,readwrite,offline}&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;c&#34;&gt;#login: true                     # optional, can log in, true by default  (new biz ROLE should be false)&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;c&#34;&gt;#superuser: false                # optional, is superuser? false by default&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;c&#34;&gt;#createdb: false                 # optional, can create database? false by default&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;c&#34;&gt;#createrole: false               # optional, can create role? false by default&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;c&#34;&gt;#inherit: true                   # optional, can this role use inherited privileges? true by default&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;c&#34;&gt;#replication: false              # optional, can this role do replication? false by default&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;c&#34;&gt;#bypassrls: false                # optional, can this role bypass row level security? false by default&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;c&#34;&gt;#connlimit: -1                   # optional, user connection limit, default -1 disable limit&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;c&#34;&gt;#expire_in: 3650                 # optional, now + n days when this role is expired (OVERWRITE expire_at)&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;c&#34;&gt;#expire_at: &amp;#39;2030-12-31&amp;#39;         # optional, YYYY-MM-DD &amp;#39;timestamp&amp;#39; when this role is expired  (OVERWRITTEN by expire_in)&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;c&#34;&gt;#parameters: {}                  # optional, role level parameters with `ALTER ROLE SET`&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;c&#34;&gt;#pool_mode: transaction          # optional, pgbouncer pool mode at user level, transaction by default&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;c&#34;&gt;#pool_connlimit: -1              # optional, max database connections at user level, default -1 disable limit&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;nt&#34;&gt;dbuser_view     ,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;DBUser.Viewer   ,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;nt&#34;&gt;true ,roles&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;[dbrole_readonly], comment&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;read-only viewer for meta database}&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;c&#34;&gt;#- {name: dbuser_grafana  ,password: DBUser.Grafana  ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for grafana database   }&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;c&#34;&gt;#- {name: dbuser_bytebase ,password: DBUser.Bytebase ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for bytebase database  }&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;c&#34;&gt;#- {name: dbuser_gitea    ,password: DBUser.Gitea    ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for gitea service      }&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;c&#34;&gt;#- {name: dbuser_wiki     ,password: DBUser.Wiki     ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for wiki.js service    }&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define business service here: https://pigsty.io/docs/pgsql/service&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_services&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;# extra services in addition to pg_default_services, array of service definition&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;c&#34;&gt;# standby service will route {ip|name}:5435 to sync replica&amp;#39;s pgbouncer (5435-&amp;gt;6432 standby)&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;standby                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# required, service name, the actual svc name will be prefixed with `pg_cluster`, e.g: pg-meta-standby&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;port&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;m&#34;&gt;5435&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# required, service exposed port (work as kubernetes service node port mode)&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;ip&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;s2&#34;&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, service bind ip address, `*` for all ip by default&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;selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# required, service member selector, use JMESPath to filter inventory&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;dest&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, destination port, default|postgres|pgbouncer|&amp;lt;port_number&amp;gt;, &amp;#39;default&amp;#39; by default&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;check&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;/sync                   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, health check url path, / by default&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;backup&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;s2&#34;&gt;&amp;#34;[? pg_role == `primary`]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# backup server selector&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;maxconn&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;m&#34;&gt;3000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, max allowed front-end connection&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;balance&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;roundrobin            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, haproxy load balance algorithm (roundrobin by default, other: leastconn)&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;c&#34;&gt;#options: &amp;#39;inter 3s fastinter 1s downinter 5s rise 3 fall 3 on-marked-down shutdown-sessions slowstart 30s maxconn 3000 maxqueue 128 weight 100&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;&#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;c&#34;&gt;# define pg extensions: https://pigsty.io/docs/pgsql/ext/&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;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;# add timescaledb to shared_preload_libraries&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;c&#34;&gt;#pg_extensions: [] # extensions to be installed on this cluster&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define HBA rules here: https://pigsty.io/docs/pgsql/config/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;pg_hba_rules&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;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_view , 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;infra ,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;allow grafana dashboard access cmdb from infra nodes&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;&#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_vip_enabled&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;&#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_vip_address&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;m&#34;&gt;10.10.10.2&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/24&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_crontab&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;# make a full backup 1 am everyday&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;s1&#34;&gt;&amp;#39;00 01 * * * /pg/bin/pg-backup full&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;&#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;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;c&#34;&gt;# pgsql cluster: pg-test (3 nodes) #&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;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;c&#34;&gt;# pg-test ---&amp;gt;  10.10.10.3 ---&amp;gt; 10.10.10.1{1,2,3}&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-test&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;# define the new 3-node cluster pg-test&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;&#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;10.10.10.11&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; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# primary instance, leader of cluster&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;10.10.10.12&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;2, 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;replica }  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replica instance, follower of leader&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;10.10.10.13&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;3, 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;nt&#34;&gt;replica, pg_offline_query&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replica with offline access&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-test          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define pgsql cluster name&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;test , 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;test , 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;nt&#34;&gt;true , roles&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;dbrole_admin ] }]&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;test }]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# create a database and user named &amp;#39;test&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;node_tune&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;tiny&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_conf&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;tiny.yml&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_vip_enabled&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;&#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_vip_address&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;m&#34;&gt;10.10.10.3&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/24&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_crontab&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;# make a full backup on monday 1am, and an incremental backup during weekdays&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;s1&#34;&gt;&amp;#39;00 01 * * 1 /pg/bin/pg-backup full&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;s1&#34;&gt;&amp;#39;00 01 * * 2,3,4,5,6,7 /pg/bin/pg-backup&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;&#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;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;c&#34;&gt;# redis ms, sentinel, native cluster&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;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;redis-ms&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;# redis classic primary &amp;amp; replica&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;redis_node&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 , redis_instances&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;6379&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;}, 6380&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;replica_of&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;10.10.10.10 6379&amp;#39;&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;vars&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;redis_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;nt&#34;&gt;redis-ms ,redis_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;redis.ms&amp;#39; ,redis_max_memory&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;64MB }&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redis-meta&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;# redis sentinel x 3&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.11&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;redis_node&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 , redis_instances&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;26379&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;} ,26380&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;} ,26381&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;w&#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;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;redis_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;redis-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;redis_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;s1&#34;&gt;&amp;#39;redis.meta&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;redis_mode&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;sentinel&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;redis_max_memory&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;16MB&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;redis_sentinel_monitor&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;# primary list for redis sentinel, use cls as name, primary ip:port&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;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;redis-ms, host&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;10.10.10.10, port&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;6379 ,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;redis.ms, quorum&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;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redis-test&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;# redis native cluster: 3m x 3s&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;&#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;10.10.10.12&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;redis_node&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 ,redis_instances&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;6379&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;} ,6380&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;} ,6381&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;10.10.10.13&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;redis_node&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;2 ,redis_instances&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;6379&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;} ,6380&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;} ,6381&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;vars&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;redis_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;nt&#34;&gt;redis-test ,redis_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;redis.test&amp;#39; ,redis_mode&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;cluster, redis_max_memory&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;32MB }&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;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;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;c&#34;&gt;#                             VARS                                 #&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;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;vars&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;# global variables&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;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;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;c&#34;&gt;#                         VARS: INFRA                            #&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;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;&#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;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;c&#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;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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin node ip address&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;region&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream mirror region: default,china,europe&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;language&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;en                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default language: en, zh&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;proxy_env&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;# global proxy env when downloading packages&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;no_proxy&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;s2&#34;&gt;&amp;#34;localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.myqcloud.com,*.tsinghua.edu.cn&amp;#34;&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;c&#34;&gt;# http_proxy:  # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;c&#34;&gt;# https_proxy: # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;c&#34;&gt;# all_proxy:   # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;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;c&#34;&gt;# CA&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;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;ca_create&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;c&#34;&gt;# create ca if not exists? or just abort&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;ca_cn&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;pigsty-ca                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# ca common name, fixed as pigsty-ca&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;cert_validity&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;7300d             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# cert validity, 20 years by default&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;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;c&#34;&gt;# INFRA_IDENTITY&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;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;c&#34;&gt;#infra_seq: 1                     # infra node identity, explicitly required&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;infra_portal&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;# infra services exposed via portal&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;home &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;domain&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;i.pigsty }    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default domain name&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;infra_data&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;/data/infra          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default data path for infrastructure data&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;infra_services&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;# home page navigation entries&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;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;Metrics            ,url&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;/vmetrics/vmui/&amp;#39;         ,desc&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;VictoriaMetrics Query UI&amp;#39;    ,icon&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;metrics  ,name_cn&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;指标查询&amp;#39; ,desc_cn&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;VictoriaMetrics 指标查询界面&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Logs               ,url&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;/vlogs/select/vmui/&amp;#39;     ,desc&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;VictoriaLogs Query UI&amp;#39;       ,icon&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;logs     ,name_cn&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;日志查询&amp;#39; ,desc_cn&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;VictoriaLogs 日志查询界面&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Traces             ,url&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;/vtraces/select/vmui/&amp;#39;   ,desc&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;VictoriaTraces Query UI&amp;#39;     ,icon&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;traces   ,name_cn&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;链路追踪&amp;#39; ,desc_cn&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;VictoriaTraces 链路查询界面&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Monitor Targets    ,url&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;/vmetrics/targets&amp;#39;       ,desc&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;Prometheus Scrape Targets&amp;#39;   ,icon&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;target   ,name_cn&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;监控目标&amp;#39; ,desc_cn&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;VictoriaMetrics 监控对象列表&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Alert Rules        ,url&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;/vmalert/vmalert/groups&amp;#39; ,desc&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;VMAlert alert/record Rules&amp;#39;  ,icon&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;alert    ,name_cn&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;告警规则&amp;#39; ,desc_cn&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;VMAlert 告警规则管理&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Alert Manager      ,url&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;/alertmgr/#/alerts&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,desc&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;Alert Manage &amp;amp; Silence&amp;#39;      ,icon&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;alertmgr ,name_cn&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;告警管理&amp;#39; ,desc_cn&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;AlertManager 告警管理与屏蔽&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;CA Certificate     ,url&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;/ca.crt&amp;#39;                 ,desc&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;Self-Signed CA Certificate&amp;#39;  ,icon&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;lock     ,name_cn&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;CA 证书&amp;#39;  ,desc_cn&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;Pigsty 自签CA根证书&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Software Repo      ,url&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;/pigsty&amp;#39;                 ,desc&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;Local YUM/APT Repository&amp;#39;    ,icon&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;package  ,name_cn&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;软件仓库&amp;#39; ,desc_cn&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;本地 YUM/APT 软件源&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Explain Visualizer ,url&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;/pev&amp;#39;                    ,desc&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;Postgres EXPLAIN Visualizer&amp;#39; ,icon&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;search   ,name_cn&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;执行计划&amp;#39; ,desc_cn&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;PG 执行计划可视化工具&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;infra_extra_services&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;c&#34;&gt;# extra services to be added on infra home page&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;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;c&#34;&gt;# REPO&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;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;repo_enabled&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;c&#34;&gt;# create a yum repo on this infra node?&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;repo_home&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;/www                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# repo home dir, `/www` by default&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;repo_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;pigsty                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# repo name, pigsty by default&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;repo_endpoint&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;http://${admin_ip}:80&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# access point to this repo by domain or ip:port&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;repo_remove&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;c&#34;&gt;# remove existing upstream repo&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;repo_modules&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;infra,node,pgsql   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# which repo modules are installed in repo_upstream&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;repo_upstream&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;# where to download&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;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;pigsty-local   ,description&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;Pigsty Local&amp;#39;       ,module&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;local   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://${admin_ip}/pigsty&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&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;c&#34;&gt;# used by intranet nodes&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;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;pigsty-infra   ,description&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;Pigsty INFRA&amp;#39;       ,module&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;infra   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.pigsty.io/yum/infra/$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://repo.pigsty.cc/yum/infra/$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pigsty-pgsql   ,description&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;Pigsty PGSQL&amp;#39;       ,module&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;pgsql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.pigsty.io/yum/pgsql/el$releasever.$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://repo.pigsty.cc/yum/pgsql/el$releasever.$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;nginx          ,description&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;Nginx Repo&amp;#39;         ,module&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;infra   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://nginx.org/packages/rhel/$releasever/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;docker-ce      ,description&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;Docker CE&amp;#39;          ,module&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;infra   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.docker.com/linux/centos/$releasever/$basearch/stable&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/docker-ce/linux/centos/$releasever/$basearch/stable https://repo.huaweicloud.com/docker-ce/linux/centos/$releasever/$basearch/stable https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/docker-ce/linux/centos/$releasever/$basearch/stable&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;baseos         ,description&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;EL 8+ BaseOS&amp;#39;       ,module&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;node    ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://dl.rockylinux.org/pub/rocky/$releasever/BaseOS/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/rocky/$releasever/BaseOS/$basearch/os/ https://repo.huaweicloud.com/rockylinux/$releasever/BaseOS/$basearch/os/ https://mirrors.aliyun.com/rockylinux/$releasever/BaseOS/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/rocky/$releasever/BaseOS/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;appstream      ,description&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;EL 8+ AppStream&amp;#39;    ,module&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;node    ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://dl.rockylinux.org/pub/rocky/$releasever/AppStream/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/rocky/$releasever/AppStream/$basearch/os/ https://repo.huaweicloud.com/rockylinux/$releasever/AppStream/$basearch/os/ https://mirrors.aliyun.com/rockylinux/$releasever/AppStream/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/rocky/$releasever/AppStream/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;extras         ,description&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;EL 8+ Extras&amp;#39;       ,module&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;node    ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://dl.rockylinux.org/pub/rocky/$releasever/extras/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/rocky/$releasever/extras/$basearch/os/ https://repo.huaweicloud.com/rockylinux/$releasever/extras/$basearch/os/ https://mirrors.aliyun.com/rockylinux/$releasever/extras/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/rocky/$releasever/extras/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;powertools     ,description&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;EL 8 PowerTools&amp;#39;    ,module&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;node    ,releases&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;[8     ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://dl.rockylinux.org/pub/rocky/$releasever/PowerTools/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/rocky/$releasever/PowerTools/$basearch/os/ https://repo.huaweicloud.com/rockylinux/$releasever/PowerTools/$basearch/os/ https://mirrors.aliyun.com/rockylinux/$releasever/PowerTools/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/rocky/$releasever/PowerTools/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;crb            ,description&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;EL 9 CRB&amp;#39;           ,module&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;node    ,releases&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;[  9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://dl.rockylinux.org/pub/rocky/$releasever/CRB/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/rocky/$releasever/CRB/$basearch/os/ https://repo.huaweicloud.com/rockylinux/$releasever/CRB/$basearch/os/ https://mirrors.aliyun.com/rockylinux/$releasever/CRB/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/rocky/$releasever/CRB/$basearch/os/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;epel           ,description&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;EL 8+ EPEL&amp;#39;         ,module&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;node    ,releases&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;[8,9   ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://mirrors.edge.kernel.org/fedora-epel/$releasever/Everything/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch/ https://repo.huaweicloud.com/epel/$releasever/Everything/$basearch/ https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/epel/$releasever/Everything/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;epel           ,description&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;EL 10 EPEL&amp;#39;         ,module&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;node    ,releases&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;[    10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://mirrors.edge.kernel.org/fedora-epel/$releasever/Everything/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch/ https://repo.huaweicloud.com/epel/$releasever/Everything/$basearch/ https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/epel/$releasever/Everything/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg-common    ,description&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;PostgreSQL Common&amp;#39;  ,module&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;pgsql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/common/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/common/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/common/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg14         ,description&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;PostgreSQL 14&amp;#39;      ,module&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;pgsql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/14/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/14/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/14/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg15         ,description&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;PostgreSQL 15&amp;#39;      ,module&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;pgsql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/15/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/15/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/15/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg16         ,description&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;PostgreSQL 16&amp;#39;      ,module&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;pgsql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/16/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/16/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/16/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/16/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg17         ,description&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;PostgreSQL 17&amp;#39;      ,module&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;pgsql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/17/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/17/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/17/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/17/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg18         ,description&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;PostgreSQL 18&amp;#39;      ,module&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;pgsql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/18/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/18/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/18/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg-beta      ,description&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;PostgreSQL Testing&amp;#39; ,module&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;beta    ,releases&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;[8,9,10] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/testing/19/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/testing/19/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/testing/19/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/testing/19/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg-beta      ,description&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;PostgreSQL Testing&amp;#39; ,module&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;beta    ,releases&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;[  9,10] ,arch&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;[        aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/testing/19/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/testing/19/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/testing/19/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/testing/19/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg-extras    ,description&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;PostgreSQL Extra&amp;#39;   ,module&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;extra   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/extras/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/extras/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/extras/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/extras/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg14-nonfree ,description&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;PostgreSQL 14+&amp;#39;     ,module&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;extra   ,releases&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;[8,9,10] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/non-free/14/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/non-free/14/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/non-free/14/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/non-free/14/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg15-nonfree ,description&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;PostgreSQL 15+&amp;#39;     ,module&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;extra   ,releases&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;[8,9,10] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/non-free/15/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/non-free/15/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/non-free/15/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/non-free/15/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg16-nonfree ,description&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;PostgreSQL 16+&amp;#39;     ,module&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;extra   ,releases&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;[8,9,10] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/non-free/16/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/non-free/16/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/non-free/16/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/non-free/16/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg17-nonfree ,description&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;PostgreSQL 17+&amp;#39;     ,module&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;extra   ,releases&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;[8,9,10] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/non-free/17/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/non-free/17/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/non-free/17/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/non-free/17/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg18-nonfree ,description&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;PostgreSQL 18+&amp;#39;     ,module&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;extra   ,releases&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;[8,9,10] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://download.postgresql.org/pub/repos/yum/non-free/18/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/yum/non-free/18/redhat/rhel-$releasever-$basearch https://repo.pigsty.cc/yum/pgdg/non-free/18/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,europe&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;https://mirrors.xtom.de/postgresql/repos/yum/non-free/18/redhat/rhel-$releasever-$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;timescaledb    ,description&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;TimescaleDB&amp;#39;        ,module&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;extra   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packagecloud.io/timescale/timescaledb/el/$releasever/$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;percona        ,description&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;Percona TDE&amp;#39;        ,module&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;percona ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.pigsty.io/yum/percona/el$releasever.$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://repo.pigsty.cc/yum/percona/el$releasever.$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,origin&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;http://repo.percona.com/ppg-18.4/yum/release/$releasever/RPMS/$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;wiltondb       ,description&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;WiltonDB&amp;#39;           ,module&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;mssql   ,releases&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;[8,9   ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.pigsty.io/yum/mssql/el$releasever.$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://repo.pigsty.cc/yum/mssql/el$releasever.$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, origin&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;https://download.copr.fedorainfracloud.org/results/wiltondb/wiltondb/epel-$releasever-$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;groonga        ,description&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;Groonga&amp;#39;            ,module&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;groonga ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.groonga.org/almalinux/$releasever/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;mysql          ,description&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;MySQL 8.4 LTS&amp;#39;      ,module&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;mysql   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.mysql.com/yum/mysql-8.4-community/el/$releasever/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;mongo          ,description&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;MongoDB&amp;#39;            ,module&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;mongo   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/8.0/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;redis          ,description&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;Redis&amp;#39;              ,module&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;redis   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://rpmfind.net/linux/remi/enterprise/$releasever/redis72/$basearch/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;} ,meta&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;module_hotfixes&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;grafana        ,description&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;Grafana&amp;#39;            ,module&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;grafana ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://rpm.grafana.com&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://mirrors.cloud.tencent.com/grafana/yum/rpm/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;kubernetes     ,description&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;Kubernetes&amp;#39;         ,module&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;kube    ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://pkgs.k8s.io/core:/stable:/v1.36/rpm/&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://mirrors.ustc.edu.cn/kubernetes/core:/stable:/v1.36/rpm/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;gitlab-ee      ,description&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;Gitlab EE&amp;#39;          ,module&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;gitlab  ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.gitlab.com/gitlab/gitlab-ee/el/$releasever/$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;gitlab-ce      ,description&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;Gitlab CE&amp;#39;          ,module&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;gitlab  ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.gitlab.com/gitlab/gitlab-ce/el/$releasever/$basearch&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;clickhouse     ,description&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;ClickHouse&amp;#39;         ,module&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;click   ,releases&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;[8,9,10] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.clickhouse.com/rpm/stable/&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://repo.huaweicloud.com/clickhouse/rpm/stable/&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;repo_packages&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;node-bootstrap, infra-package, infra-addons, node-package1, node-package2, node-package3, pgsql-utility, extra-modules ]&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;repo_extra_packages&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;pgsql-main ]&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;repo_url_packages&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;&#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;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;c&#34;&gt;# INFRA_PACKAGE&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;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;infra_packages&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;# packages to be installed on infra nodes&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;l&#34;&gt;grafana,grafana-plugins,grafana-victorialogs-ds,grafana-victoriametrics-ds,victoria-metrics,victoria-logs,victoria-traces,vmutils,vlogscli,alertmanager&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;l&#34;&gt;node-exporter,blackbox-exporter,nginx-exporter,pg-exporter,pev2,nginx,dnsmasq,ansible,etcd,python3-requests,redis,mcli,restic,certbot,python3-certbot-nginx&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;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;c&#34;&gt;# NGINX&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;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;nginx_enabled&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;c&#34;&gt;# enable nginx on this infra node?&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;nginx_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean existing nginx config during init?&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;nginx_exporter_enabled&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;c&#34;&gt;# enable nginx_exporter on this infra node?&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;nginx_exporter_port&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;m&#34;&gt;9113&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx_exporter listen port, 9113 by default&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;nginx_sslmode&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;enable            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx ssl mode? disable,enable,enforce&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;nginx_cert_validity&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;397d        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx self-signed cert validity, 397d by default&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;nginx_home&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;/www                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx content dir, `/www` by default (soft link to nginx_data)&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;nginx_data&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;/data/nginx          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx actual data dir, /data/nginx by default&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;nginx_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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;admin &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;pigsty }  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx basic auth users: name and pass dict&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;nginx_port&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;m&#34;&gt;80&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx listen port, 80 by default&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;nginx_ssl_port&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;m&#34;&gt;443&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx ssl listen port, 443 by default&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;certbot_sign&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# sign nginx cert with certbot during setup?&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;certbot_email&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;your@email.com    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# certbot email address, used for free ssl&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;certbot_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# certbot extra options&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;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;c&#34;&gt;# DNS&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;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;dns_enabled&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;c&#34;&gt;# setup dnsmasq on this infra node?&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;dns_port&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;m&#34;&gt;53&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dns server listen port, 53 by default&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;dns_records&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;# dynamic dns records resolved by dnsmasq&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;s2&#34;&gt;&amp;#34;${admin_ip} i.pigsty&amp;#34;&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;s2&#34;&gt;&amp;#34;${admin_ip} m.pigsty supa.pigsty api.pigsty adm.pigsty cli.pigsty ddl.pigsty&amp;#34;&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;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;c&#34;&gt;# VICTORIA&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;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;vmetrics_enabled&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;c&#34;&gt;# enable victoria-metrics on this infra node?&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;vmetrics_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# whether clean existing victoria metrics data during init?&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;vmetrics_port&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;m&#34;&gt;8428&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria-metrics listen port, 8428 by default&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;vmetrics_scrape_interval&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;10s    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria global scrape interval, 10s by default&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;vmetrics_scrape_timeout&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;8s      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria global scrape timeout, 8s by default&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;vmetrics_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      -retentionPeriod=15d&#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;sd&#34;&gt;      -promscrape.fileSDCheckInterval=5s&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;vlogs_enabled&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;c&#34;&gt;# enable victoria-logs on this infra node?&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;vlogs_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean victoria-logs data during init?&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;vlogs_port&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;m&#34;&gt;9428&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria-logs listen port, 9428 by default&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;vlogs_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      -retentionPeriod=15d&#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;sd&#34;&gt;      -retention.maxDiskSpaceUsageBytes=50GiB&#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;sd&#34;&gt;      -insert.maxLineSizeBytes=1MB&#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;sd&#34;&gt;      -search.maxQueryDuration=120s&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;vtraces_enabled&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;c&#34;&gt;# enable victoria-traces on this infra node?&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;vtraces_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean victoria-trace data during inti?&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;vtraces_port&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;m&#34;&gt;10428&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria-traces listen port, 10428 by default&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;vtraces_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      -retentionPeriod=15d&#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;sd&#34;&gt;      -retention.maxDiskSpaceUsageBytes=50GiB&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;vmalert_enabled&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;c&#34;&gt;# enable vmalert on this infra node?&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;vmalert_port&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;m&#34;&gt;8880&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vmalert listen port, 8880 by default&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;vmalert_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vmalert extra server options&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;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;c&#34;&gt;# PROMETHEUS&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;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;blackbox_enabled&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;c&#34;&gt;# setup blackbox_exporter on this infra node?&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;blackbox_port&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;m&#34;&gt;9115&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# blackbox_exporter listen port, 9115 by default&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;blackbox_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# blackbox_exporter extra server options&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;alertmanager_enabled&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;c&#34;&gt;# setup alertmanager on this infra node?&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;alertmanager_port&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;m&#34;&gt;9059&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# alertmanager listen port, 9059 by default&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;alertmanager_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# alertmanager extra server options&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;exporter_metrics_path&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;/metrics  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# exporter metric path, `/metrics` by default&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;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;c&#34;&gt;# GRAFANA&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;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;grafana_enabled&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;c&#34;&gt;# enable grafana on this infra node?&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;grafana_port&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;m&#34;&gt;3000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default listen port for grafana&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;grafana_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean grafana data during init?&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;grafana_admin_username&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;admin    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# grafana admin username, `admin` by default&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;grafana_admin_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;l&#34;&gt;pigsty   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# grafana admin password, `pigsty` by default&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;grafana_auth_proxy&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable grafana auth proxy?&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;grafana_pgurl&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# external postgres database url for grafana if given&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;grafana_view_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;l&#34;&gt;DBUser.Viewer&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# password for grafana meta pg datasource&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;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;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;c&#34;&gt;#                         VARS: NODE                             #&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;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;&#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;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;c&#34;&gt;# NODE_IDENTITY&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;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;c&#34;&gt;#nodename:           # [INSTANCE] # node instance identity, use hostname if missing, optional&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;node_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;nodes   # [CLUSTER]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node cluster identity, use &amp;#39;nodes&amp;#39; if missing, optional&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;nodename_overwrite&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;c&#34;&gt;# overwrite node&amp;#39;s hostname with nodename?&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;nodename_exchange&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# exchange nodename among play hosts?&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;node_id_from_pg&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;c&#34;&gt;# use postgres identity as node identity if applicable?&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;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;c&#34;&gt;# NODE_DNS&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;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;node_write_etc_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;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# modify `/etc/hosts` on target node?&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;node_default_etc_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;c&#34;&gt;# static dns records in `/etc/hosts`&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;s2&#34;&gt;&amp;#34;${admin_ip} i.pigsty&amp;#34;&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;node_etc_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;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# extra static dns records in `/etc/hosts`&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;node_dns_method&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;add             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# how to handle dns servers: add,none,overwrite&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;node_dns_servers&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;s1&#34;&gt;&amp;#39;${admin_ip}&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;c&#34;&gt;# dynamic nameserver in `/etc/resolv.conf`&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;node_dns_options&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;# dns resolv options in `/etc/resolv.conf`&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;l&#34;&gt;options single-request-reopen timeout:1&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;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;c&#34;&gt;# NODE_PACKAGE&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;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;node_repo_modules&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;local         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream repo to be added on node, local by default&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;node_repo_remove&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;c&#34;&gt;# remove existing repo on node?&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;node_packages&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;l&#34;&gt;openssh-server]  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# packages to be installed current nodes with latest version&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;node_default_packages&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;# default packages to be installed on all nodes&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;l&#34;&gt;lz4,unzip,bzip2,pv,jq,git,ncdu,make,patch,bash,lsof,wget,uuid,tuned,nvme-cli,numactl,sysstat,iotop,htop,rsync,tcpdump&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;l&#34;&gt;python3,python3-pip,socat,lrzsz,net-tools,ipvsadm,telnet,ca-certificates,openssl,keepalived,etcd,haproxy,chrony,pig&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;l&#34;&gt;zlib,yum,audit,bind-utils,readline,vim-minimal,node-exporter,grubby,openssh-server,openssh-clients,chkconfig,vector&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;node_uv_env&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;/data/venv          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uv venv path, empty string to skip&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;node_pip_packages&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pip packages to install in uv venv&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;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;c&#34;&gt;# NODE_SEC&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;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;node_selinux_mode&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;permissive    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# set selinux mode: enforcing,permissive,disabled&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;node_firewall_mode&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;zone         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# firewall mode: zone (default), off (disable), none (skip &amp;amp; self-managed)&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;node_firewall_intranet&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;# which intranet cidr considered as internal network&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;m&#34;&gt;10.0.0.0&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/8&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;m&#34;&gt;192.168.0.0&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/16&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;m&#34;&gt;172.16.0.0&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/12&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;node_firewall_public_port&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;# expose these ports to public network in (zone, strict) mode&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;m&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable ssh access&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;m&#34;&gt;80&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable http access&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;m&#34;&gt;443&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable https access&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;m&#34;&gt;5432&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable postgres access&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;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;c&#34;&gt;# NODE_TUNE&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;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;node_disable_numa&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# disable node numa, reboot required&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;node_disable_swap&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# disable node swap, use with caution&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;node_static_network&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;c&#34;&gt;# preserve dns resolver settings after reboot&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;node_disk_prefetch&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# setup disk prefetch on HDD to increase performance&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;node_kernel_modules&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;softdog, ip_vs, ip_vs_rr, ip_vs_wrr, ip_vs_sh ]&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;node_hugepage_count&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# number of 2MB hugepage, take precedence over ratio&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;node_hugepage_ratio&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node mem hugepage ratio, 0 disable it by default&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;node_overcommit_ratio&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node mem overcommit ratio, 0 disable it by default&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;node_tune&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;oltp                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node tuned profile: none,oltp,olap,crit,tiny&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;node_sysctl_params&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;# sysctl parameters in k:v format in addition to tuned&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;fs.nr_open&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;m&#34;&gt;8388608&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;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;c&#34;&gt;# NODE_ADMIN&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;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;node_data&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;/data                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node main data directory, `/data` by default&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;node_admin_enabled&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;c&#34;&gt;# create a admin user on target node?&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;node_admin_uid&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;m&#34;&gt;88&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uid and gid for node admin user&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;node_admin_username&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;dba         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# name of node admin user, `dba` by default&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;node_admin_sudo&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;nopass          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin sudo privilege, all,nopass. nopass by default&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;node_admin_ssh_exchange&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;c&#34;&gt;# exchange admin ssh key among node cluster&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;node_admin_pk_current&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;c&#34;&gt;# add current user&amp;#39;s ssh pk to admin authorized_keys&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;node_admin_pk_list&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;c&#34;&gt;# ssh public keys to be added to admin user&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;node_aliases&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;c&#34;&gt;# extra shell aliases to be added, k:v dict&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;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;c&#34;&gt;# NODE_TIME&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;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;node_timezone&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# setup node timezone, empty string to skip&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;node_ntp_enabled&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;c&#34;&gt;# enable chronyd time sync service?&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;node_ntp_servers&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;# ntp servers in `/etc/chrony.conf`&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;l&#34;&gt;pool pool.ntp.org iburst&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;node_crontab_overwrite&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;c&#34;&gt;# overwrite or append to `/etc/crontab`?&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;node_crontab&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;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# crontab entries in `/etc/crontab`&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;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;c&#34;&gt;# NODE_VIP&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;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;vip_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable vip on this node cluster?&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;c&#34;&gt;# vip_address:         [IDENTITY] # node vip address in ipv4 format, required if vip is enabled&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;c&#34;&gt;# vip_vrid:            [IDENTITY] # required, integer, 1-254, should be unique among same VLAN&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;vip_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;backup                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, `master|backup`, backup by default, use as init role&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;vip_preempt&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, `true/false`, false by default, enable vip preemption&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;vip_interface&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;auto              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node vip network interface to listen, `auto` by default&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;vip_dns_suffix&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node vip dns name suffix, empty string by default&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;vip_auth_pass&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# empty to use &amp;#39;&amp;lt;cls&amp;gt;-&amp;lt;vrid&amp;gt;&amp;#39; as the default&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;vip_exporter_port&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;m&#34;&gt;9650&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keepalived exporter listen port, 9650 by default&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;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;c&#34;&gt;# HAPROXY&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;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;haproxy_enabled&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;c&#34;&gt;# enable haproxy on this node?&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;haproxy_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# cleanup all existing haproxy config?&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;haproxy_reload&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;c&#34;&gt;# reload haproxy after config?&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;haproxy_auth_enabled&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;c&#34;&gt;# enable authentication for haproxy admin page&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;haproxy_admin_username&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;admin    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# haproxy admin username, `admin` by default&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;haproxy_admin_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;l&#34;&gt;pigsty   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# haproxy admin password, `pigsty` by default&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;haproxy_exporter_port&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;m&#34;&gt;9101&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# haproxy admin/exporter port, 9101 by default&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;haproxy_client_timeout&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;24h      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# client side connection timeout, 24h by default&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;haproxy_server_timeout&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;24h      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# server side connection timeout, 24h by default&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;haproxy_services&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;c&#34;&gt;# list of haproxy service to be exposed on node&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;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;c&#34;&gt;# NODE_EXPORTER&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;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;node_exporter_enabled&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;c&#34;&gt;# setup node_exporter on this node?&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;node_exporter_port&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;m&#34;&gt;9100&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node exporter listen port, 9100 by default&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;node_exporter_options&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;--no-collector.softnet --no-collector.nvme --collector.tcpstat --collector.processes&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;&#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;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;c&#34;&gt;# VECTOR&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;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;vector_enabled&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;c&#34;&gt;# enable vector log collector?&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;vector_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# purge vector data dir during init?&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;vector_data&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;/data/vector        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vector data dir, /data/vector by default&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;vector_port&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;m&#34;&gt;9598&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vector metrics port, 9598 by default&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;vector_read_from&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;beginning      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vector read from beginning or end&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;vector_log_endpoint&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;infra ]   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# if defined, sending vector log to this endpoint.&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;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;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;c&#34;&gt;#                        VARS: DOCKER                            #&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;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;docker_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable docker on this node?&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;docker_data&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;/data/docker        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker data directory, /data/docker by default&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;docker_storage_driver&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;overlay2  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker storage driver, can be zfs, btrfs&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;docker_cgroups_driver&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;systemd   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker cgroup fs driver: cgroupfs,systemd&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;docker_registry_mirrors&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;c&#34;&gt;# docker registry mirror list&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;docker_exporter_port&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;m&#34;&gt;9323&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker metrics exporter port, 9323 by default&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;docker_image&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;c&#34;&gt;# docker image to be pulled after bootstrap&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;docker_image_cache&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;/tmp/docker/*.tgz&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker image cache glob pattern&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;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;c&#34;&gt;#                         VARS: ETCD                             #&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;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;c&#34;&gt;#etcd_seq: 1                      # etcd instance identifier, explicitly required&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;etcd_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;etcd               &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd cluster &amp;amp; group name, etcd by default&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;etcd_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running etcd instance?&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;etcd_data&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;/data/etcd            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd data directory, /data/etcd by default&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;etcd_port&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;m&#34;&gt;2379&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd client port, 2379 by default&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;etcd_peer_port&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;m&#34;&gt;2380&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd peer port, 2380 by default&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;etcd_init&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;new                   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd initial cluster state, new or existing&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;etcd_election_timeout&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;m&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd election timeout, 1000ms by default&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;etcd_heartbeat_interval&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;m&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd heartbeat interval, 100ms by default&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;etcd_root_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;l&#34;&gt;Etcd.Root    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd root password for RBAC, change it!&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;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;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;c&#34;&gt;#                         VARS: MINIO                            #&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;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;c&#34;&gt;#minio_seq: 1                     # minio instance identifier, REQUIRED&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;c&#34;&gt;#minio_cluster:                   # minio cluster identifier, REQUIRED (define in cluster vars)&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;minio_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;l&#34;&gt;minio                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio os user, `minio` by default&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;minio_https&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;c&#34;&gt;# use https for minio, true by default&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;minio_node&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;${minio_cluster}-${minio_seq}.pigsty&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio node name pattern&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;minio_data&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;/data/minio&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio data dir(s), use {x...y} to specify multi drivers&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;c&#34;&gt;#minio_volumes:                   # minio data volumes, override defaults if specified&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;minio_domain&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;sss.pigsty         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio external domain name, `sss.pigsty` by default&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;minio_port&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;m&#34;&gt;9000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio service port, 9000 by default&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;minio_admin_port&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;m&#34;&gt;9001&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio console port, 9001 by default&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;minio_access_key&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;minioadmin     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# root access key, `minioadmin` by default&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;minio_secret_key&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;S3User.MinIO   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# root secret key, `S3User.MinIO` by default&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;minio_extra_vars&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# extra environment variables&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;minio_provision&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;c&#34;&gt;# run minio provisioning tasks?&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;minio_alias&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;sss                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# alias name for local minio deployment&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;c&#34;&gt;#minio_endpoint: https://sss.pigsty:9000 # if not specified, overwritten by defaults&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;minio_buckets&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;# list of minio bucket to be created&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;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;pgsql }&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;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;meta ,versioning&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;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;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;data }&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;minio_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;c&#34;&gt;# list of minio user to be created&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;pgbackrest  ,secret_key&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;S3User.Backup ,policy&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;pgsql }&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;s3user_meta ,secret_key&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;S3User.Meta   ,policy&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;s3user_data ,secret_key&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;S3User.Data   ,policy&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;data  }&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;minio_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running minio instance?&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;minio_rm_data&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;c&#34;&gt;# purging minio data and config?&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;minio_rm_pkg&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uninstall minio packages?&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;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;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;c&#34;&gt;#                         VARS: REDIS                            #&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;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;c&#34;&gt;#redis_cluster:        &amp;lt;CLUSTER&amp;gt; # redis cluster name, required identity parameter&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;c&#34;&gt;#redis_node: 1            &amp;lt;NODE&amp;gt; # redis node sequence number, node int id required&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;c&#34;&gt;#redis_instances: {}      &amp;lt;NODE&amp;gt; # redis instances definition on this redis node&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;redis_fs_main&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;/data/redis       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis main data directory, `/data/redis` by default&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;redis_exporter_enabled&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;c&#34;&gt;# install redis exporter on redis nodes?&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;redis_exporter_port&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;m&#34;&gt;9121&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis exporter listen port, 9121 by default&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;redis_exporter_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# cli args and extra options for redis exporter&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;redis_type&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;redis                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis implementation: redis or valkey&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;redis_mode&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;standalone           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis mode: standalone,cluster,sentinel&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;redis_conf&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;redis.conf           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis config template path, except sentinel&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;redis_bind_address&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;0.0.0.0&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis bind address, empty string will use host ip&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;redis_max_memory&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;1GB            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# max memory used by each redis instance&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;redis_mem_policy&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;allkeys-lru    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis memory eviction policy&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;redis_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;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis password, empty string will disable password&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;redis_rdb_save&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;s1&#34;&gt;&amp;#39;1200 1&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;c&#34;&gt;# redis rdb save directives, disable with empty list&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;redis_aof_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable redis append only file?&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;redis_rename_commands&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;c&#34;&gt;# rename redis dangerous commands&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;redis_cluster_replicas&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replica number for one master in redis cluster&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;redis_sentinel_monitor&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;c&#34;&gt;# sentinel master list, works on sentinel cluster only&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;redis_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running redis instance?&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;redis_rm_data&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;c&#34;&gt;# remove redis data dir?&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;redis_rm_pkg&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uninstall selected engine &amp;amp; redis-exporter packages?&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;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;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;c&#34;&gt;#                         VARS: PGSQL                            #&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;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;&#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;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;c&#34;&gt;# PG_IDENTITY&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;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_mode&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;pgsql          #CLUSTER &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgsql cluster mode: pgsql,citus,mssql,mysql,ivory,pgtde,polar,gpsql,agens,oriole,pgedge&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;c&#34;&gt;# pg_cluster:           #CLUSTER  # pgsql cluster name, required identity parameter&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;c&#34;&gt;# pg_seq: 0             #INSTANCE # pgsql instance seq number, required identity parameter&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;c&#34;&gt;# pg_role: replica      #INSTANCE # pgsql role, required, could be primary,replica,offline&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;c&#34;&gt;# pg_instances: {}      #INSTANCE # define multiple pg instances on node in `{port:ins_vars}` format&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;c&#34;&gt;# pg_upstream:          #INSTANCE # repl upstream ip addr for standby cluster or cascade replica&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;c&#34;&gt;# pg_shard:             #CLUSTER  # pgsql shard name, optional identity for sharding clusters&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;c&#34;&gt;# pg_group: 0           #CLUSTER  # pgsql shard index number, optional identity for sharding clusters&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;c&#34;&gt;# gp_role: master       #CLUSTER  # greenplum role of this cluster, could be master or segment&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_offline_query&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;#INSTANCE # set to true to enable offline queries on this instance&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;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;c&#34;&gt;# PG_BUSINESS&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;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;c&#34;&gt;# postgres business object definition, overwrite in group vars&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;c&#34;&gt;# postgres business users&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;c&#34;&gt;# postgres business databases&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_services&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;c&#34;&gt;# postgres business services&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;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# business hba rules for postgres&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;pgb_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;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# business hba rules for pgbouncer&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_crontab&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;c&#34;&gt;# postgres crontab entries for dbsu&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;c&#34;&gt;# global credentials, overwrite in global vars&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_dbsu_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;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dbsu password, empty string means no dbsu password by default&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_replication_username&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;replicator&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_replication_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;l&#34;&gt;DBUser.Replicator&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_admin_username&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;dbuser_dba&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_admin_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;l&#34;&gt;DBUser.DBA&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_monitor_username&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;dbuser_monitor&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_monitor_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;l&#34;&gt;DBUser.Monitor&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;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;c&#34;&gt;# PG_INSTALL&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;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_dbsu&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;postgres                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# os dbsu name, postgres by default, better not change it&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_dbsu_uid&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;m&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# os dbsu uid and gid, 26 for default postgres users and groups&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_dbsu_sudo&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;limit              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dbsu sudo privilege, none,limit,all,nopass. limit by default&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_dbsu_home&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;/var/lib/pgsql     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgresql home directory, `/var/lib/pgsql` by default&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_dbsu_ssh_exchange&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;c&#34;&gt;# exchange postgres dbsu ssh key among same pgsql cluster&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_version&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;m&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres major version to be installed, 18 by default&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_bin_dir&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;/usr/pgsql/bin       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres binary dir, `/usr/pgsql/bin` by default&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_log_dir&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/log/postgres     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres log dir, `/pg/log/postgres` by default&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_packages&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;# pg packages to be installed, alias can be used&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;l&#34;&gt;pgsql-main pgsql-common&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;c&#34;&gt;# pg extensions to be installed, alias can be used&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;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;c&#34;&gt;# PG_BOOTSTRAP&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;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_data&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/data                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres data directory, `/pg/data` by default&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_fs_main&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;/data/postgres       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres main data directory, `/data/postgres` by default&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_fs_backup&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;/data/backups      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres backup data directory, `/data/backups` by default&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_storage_type&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;SSD             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# storage type for pg main data, SSD,HDD, SSD by default&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_dummy_filesize&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;64MiB         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# size of `/pg/dummy`, hold 64MB disk space for emergency use&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_listen&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;0.0.0.0&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres/pgbouncer listen addresses, comma separated list&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_port&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;m&#34;&gt;5432&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres listen port, 5432 by default&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_localhost&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;/var/run/postgresql&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres unix socket dir for localhost connection&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;patroni_enabled&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;c&#34;&gt;# if disabled, no postgres cluster will be created during init&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;patroni_mode&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;default            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni working mode: default,pause,remove&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_namespace&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                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# top level key namespace in etcd, used by patroni &amp;amp; vip&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;patroni_port&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;m&#34;&gt;8008&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni listen port, 8008 by default&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;patroni_log_dir&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/log/patroni &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni log dir, `/pg/log/patroni` by default&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;patroni_ssl_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# secure patroni RestAPI communications with SSL?&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;patroni_watchdog_mode&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;off&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni watchdog mode: automatic,required,off. off by default&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;patroni_username&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;postgres       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni restapi username, `postgres` by default&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;patroni_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;l&#34;&gt;Patroni.API    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni restapi password, `Patroni.API` by default&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_etcd_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;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd password for this pg cluster, &amp;#39;&amp;#39; to use pg_cluster&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_primary_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;l&#34;&gt;postgres          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# primary database name, used by citus,etc... ,postgres by default&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_parameters&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;c&#34;&gt;# extra parameters in postgresql.auto.conf&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_files&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;c&#34;&gt;# extra files to be copied to postgres data directory (e.g. license)&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_conf&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;oltp.yml                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# config template: oltp,olap,crit,tiny. `oltp.yml` by default&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_max_conn&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;auto                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres max connections, `auto` will use recommended value&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_shared_buffer_ratio&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;m&#34;&gt;0.25&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres shared buffers ratio, 0.25 by default, 0.1~0.4&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_io_method&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;worker             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# io method for postgres, auto,fsync,worker,io_uring, worker by default&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_rto&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;norm                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# shared rto mode for patroni &amp;amp; haproxy: fast,norm,safe,wide&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_rto_plan&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;# [ttl, loop, retry, start, margin, inter, fastinter, downinter, rise, fall]&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;fast&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;m&#34;&gt;20&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;m&#34;&gt;5&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;m&#34;&gt;5&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;m&#34;&gt;15&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;m&#34;&gt;5&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;s1&#34;&gt;&amp;#39;1s&amp;#39;&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;s1&#34;&gt;&amp;#39;0.5s&amp;#39;&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;s1&#34;&gt;&amp;#39;1s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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;norm&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;m&#34;&gt;30&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;m&#34;&gt;5&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;m&#34;&gt;10&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;m&#34;&gt;25&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;m&#34;&gt;5&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;s1&#34;&gt;&amp;#39;2s&amp;#39;&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;s1&#34;&gt;&amp;#39;1s&amp;#39;&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;s1&#34;&gt;&amp;#39;2s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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;safe&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;m&#34;&gt;60&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;m&#34;&gt;10&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;m&#34;&gt;20&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;m&#34;&gt;45&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;m&#34;&gt;10&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;s1&#34;&gt;&amp;#39;3s&amp;#39;&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;s1&#34;&gt;&amp;#39;1.5s&amp;#39;&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;s1&#34;&gt;&amp;#39;3s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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;wide&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;m&#34;&gt;120&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;m&#34;&gt;20&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;m&#34;&gt;30&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;m&#34;&gt;95&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;m&#34;&gt;15&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;s1&#34;&gt;&amp;#39;4s&amp;#39;&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;s1&#34;&gt;&amp;#39;2s&amp;#39;&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;s1&#34;&gt;&amp;#39;4s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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_rpo&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;m&#34;&gt;1048576&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# recovery point objective in bytes, `1MiB` at most by default&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;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;# preloaded libraries, `pg_stat_statements,auto_explain` by default&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_delay&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replication apply delay for standby cluster leader&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_checksum&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;c&#34;&gt;# enable data checksum for postgres cluster?&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_pwd_enc&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;scram-sha-256        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# password encryption algorithm&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_encoding&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;UTF8                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database cluster encoding, `UTF8` by default&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_locale&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;C                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database cluster local, `C` by default&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_lc_collate&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;C                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database cluster collate, `C` by default&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_lc_ctype&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;C                   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database character type, `C` by default&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;c&#34;&gt;#pgsodium_key: &amp;#34;&amp;#34;                 # pgsodium key, 64 hex digit, default to sha256(pg_cluster)&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;c&#34;&gt;#pgsodium_getkey_script: &amp;#34;&amp;#34;       # pgsodium getkey script path, pgsodium_getkey by default&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;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;c&#34;&gt;# PG_PROVISION&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;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_provision&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;c&#34;&gt;# provision postgres cluster after bootstrap&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_init&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-init                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# provision init script for cluster template, `pg-init` by default&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_default_roles&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;# default roles and users in postgres cluster&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;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;dbrole_readonly  ,login&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;false ,comment&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;role for global read-only access     }&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;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;dbrole_offline   ,login&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;false ,comment&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;role for restricted read-only access }&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;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;dbrole_readwrite ,login&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;false ,roles&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;[dbrole_readonly] ,comment&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;role for global read-write access }&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;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;dbrole_admin     ,login&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;false ,roles&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;[pg_monitor, dbrole_readwrite] ,comment&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;role for object creation }&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;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;postgres     ,superuser&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;true  ,comment&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;system superuser }&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;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;replicator ,replication&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;true  ,roles&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;[pg_monitor, dbrole_readonly] ,comment&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;system replicator }&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;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_dba   ,superuser&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;true  ,roles&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;[dbrole_admin]  ,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;nt&#34;&gt;true ,pool_mode&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;session, pool_connlimit&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;16 ,comment&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;pgsql admin user }&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;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_monitor ,roles&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;[pg_monitor, dbrole_readonly] ,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;nt&#34;&gt;true ,parameters&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;log_min_duration_statement&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;1000 } ,pool_mode&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;session ,pool_connlimit&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;8 ,comment&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;pgsql monitor user }&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_default_privileges&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;# default privileges when created by admin user&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;l&#34;&gt;GRANT USAGE      ON SCHEMAS    TO  dbrole_readonly&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;l&#34;&gt;GRANT SELECT     ON TABLES     TO  dbrole_readonly&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;l&#34;&gt;GRANT SELECT     ON SEQUENCES  TO  dbrole_readonly&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;l&#34;&gt;GRANT EXECUTE    ON FUNCTIONS  TO  dbrole_readonly&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;l&#34;&gt;GRANT USAGE      ON SCHEMAS    TO  dbrole_offline&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;l&#34;&gt;GRANT SELECT     ON TABLES     TO  dbrole_offline&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;l&#34;&gt;GRANT SELECT     ON SEQUENCES  TO  dbrole_offline&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;l&#34;&gt;GRANT EXECUTE    ON FUNCTIONS  TO  dbrole_offline&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;l&#34;&gt;GRANT INSERT     ON TABLES     TO  dbrole_readwrite&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;l&#34;&gt;GRANT UPDATE     ON TABLES     TO  dbrole_readwrite&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;l&#34;&gt;GRANT DELETE     ON TABLES     TO  dbrole_readwrite&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;l&#34;&gt;GRANT USAGE      ON SEQUENCES  TO  dbrole_readwrite&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;l&#34;&gt;GRANT UPDATE     ON SEQUENCES  TO  dbrole_readwrite&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;l&#34;&gt;GRANT TRUNCATE   ON TABLES     TO  dbrole_admin&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;l&#34;&gt;GRANT REFERENCES ON TABLES     TO  dbrole_admin&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;l&#34;&gt;GRANT TRIGGER    ON TABLES     TO  dbrole_admin&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;l&#34;&gt;GRANT CREATE     ON SCHEMAS    TO  dbrole_admin&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_default_schemas&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;monitor ]  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default schemas to be created&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_default_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;c&#34;&gt;# default extensions to be created&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;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;pg_stat_statements ,schema&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;monitor }&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;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;pgstattuple        ,schema&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;monitor }&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;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;pg_buffercache     ,schema&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;monitor }&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;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;pageinspect        ,schema&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;monitor }&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;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;pg_prewarm         ,schema&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;monitor }&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;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;pg_visibility      ,schema&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;monitor }&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;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;pg_freespacemap    ,schema&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;monitor }&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;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;postgres_fdw       ,schema&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;public  }&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;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;file_fdw           ,schema&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;public  }&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;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;btree_gist         ,schema&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;public  }&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;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;btree_gin          ,schema&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;public  }&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;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;pg_trgm            ,schema&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;public  }&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;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;intagg             ,schema&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;public  }&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;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;intarray           ,schema&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;public  }&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;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;pg_repack }&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_reload&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;c&#34;&gt;# reload postgres after hba changes&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_default_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;# postgres default host-based authentication rules, order by `order`&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;s1&#34;&gt;&amp;#39;${dbsu}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;local     ,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;ident ,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;nt&#34;&gt;&amp;#39;dbsu access via local os user ident&amp;#39;  ,order&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;m&#34;&gt;100&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;s1&#34;&gt;&amp;#39;${dbsu}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;replication ,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;local     ,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;ident ,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;nt&#34;&gt;&amp;#39;dbsu replication from local os ident&amp;#39; ,order&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;m&#34;&gt;150&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;s1&#34;&gt;&amp;#39;${repl}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;replication ,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;localhost ,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;nt&#34;&gt;&amp;#39;replicator replication from localhost&amp;#39;,order&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;m&#34;&gt;200&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;s1&#34;&gt;&amp;#39;${repl}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;replication ,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;nt&#34;&gt;&amp;#39;replicator replication from intranet&amp;#39; ,order&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;m&#34;&gt;250&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;s1&#34;&gt;&amp;#39;${repl}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;postgres    ,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;nt&#34;&gt;&amp;#39;replicator postgres db from intranet&amp;#39; ,order&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;m&#34;&gt;300&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;localhost ,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;nt&#34;&gt;&amp;#39;monitor from localhost with password&amp;#39; ,order&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;m&#34;&gt;350&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;infra     ,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;nt&#34;&gt;&amp;#39;monitor from infra host with password&amp;#39;,order&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;m&#34;&gt;400&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;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;nt&#34;&gt;&amp;#39;admin @ intranet nodes with pwd&amp;#39;      ,order&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;m&#34;&gt;450&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;nt&#34;&gt;&amp;#39;admin @ everywhere with ssl &amp;amp; pwd&amp;#39;    ,order&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;m&#34;&gt;500&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;&amp;#39;+dbrole_readonly&amp;#39;,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;localhost ,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;nt&#34;&gt;&amp;#39;pgbouncer read/write via local socket&amp;#39;,order&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;m&#34;&gt;550&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;&amp;#39;+dbrole_readonly&amp;#39;,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;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;nt&#34;&gt;&amp;#39;read/write biz user via password&amp;#39;     ,order&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;m&#34;&gt;600&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;&amp;#39;+dbrole_offline&amp;#39; ,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;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;nt&#34;&gt;&amp;#39;allow etl offline tasks from intranet&amp;#39;,order&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;m&#34;&gt;650&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;pgb_default_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;# pgbouncer default host-based authentication rules, order by `order`&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;s1&#34;&gt;&amp;#39;${dbsu}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;pgbouncer   ,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;local     ,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;peer  ,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;nt&#34;&gt;&amp;#39;dbsu local admin access with os ident&amp;#39;,order&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;m&#34;&gt;100&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;&amp;#39;all&amp;#39;        ,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;localhost ,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;nt&#34;&gt;&amp;#39;allow all user local access with pwd&amp;#39; ,order&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;m&#34;&gt;150&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;pgbouncer   ,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;nt&#34;&gt;&amp;#39;monitor access via intranet with pwd&amp;#39; ,order&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;m&#34;&gt;200&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;deny  ,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;nt&#34;&gt;&amp;#39;reject all other monitor access addr&amp;#39; ,order&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;m&#34;&gt;250&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;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;nt&#34;&gt;&amp;#39;admin access via intranet with pwd&amp;#39;   ,order&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;m&#34;&gt;300&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;deny  ,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;nt&#34;&gt;&amp;#39;reject all other admin access addr&amp;#39;   ,order&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;m&#34;&gt;350&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;&amp;#39;all&amp;#39;        ,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;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;nt&#34;&gt;&amp;#39;allow all user intra access with pwd&amp;#39; ,order&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;m&#34;&gt;400&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;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;c&#34;&gt;# PG_BACKUP&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;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;pgbackrest_enabled&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;c&#34;&gt;# enable pgbackrest on pgsql host?&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;pgbackrest_log_dir&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/log/pgbackrest&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbackrest log dir, `/pg/log/pgbackrest` by default&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;pgbackrest_method&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;local         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbackrest repo method: local,minio,[user-defined...]&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;pgbackrest_init_backup&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;c&#34;&gt;# take a full backup after pgbackrest is initialized?&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;pgbackrest_repo&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;# pgbackrest repo: https://pgbackrest.org/configuration.html#section-repository&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;local&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;# default pgbackrest repo with local posix fs&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;path&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/backup             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# local backup directory, `/pg/backup` by default&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;retention_full_type&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;count   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# retention full backups by count&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;retention_full&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;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keep 2, at most 3 full backups when using local fs repo&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;minio&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;# optional minio repo for pgbackrest&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;type&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;s3                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio is s3-compatible, so s3 is used&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;s3_endpoint&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;sss.pigsty      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio endpoint domain name, `sss.pigsty` by default&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;s3_region&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;us-east-1         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio region, us-east-1 by default, useless for minio&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;s3_bucket&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;pgsql             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio bucket name, `pgsql` by default&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;s3_key&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;pgbackrest           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio user access key for pgbackrest&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;s3_key_secret&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;S3User.Backup &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio user secret key for pgbackrest&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;s3_uri_style&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;path           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# use path style uri for minio rather than host style&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;path&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;/pgbackrest            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio backup path, default is `/pgbackrest`&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;storage_port&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;m&#34;&gt;9000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio port, 9000 by default&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;storage_ca_file&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;/etc/pki/ca.crt &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio ca file path, `/etc/pki/ca.crt` by default&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;block&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;y&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Enable block incremental backup&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;bundle&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;y&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# bundle small files into a single file&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;bundle_limit&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;20MiB          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Limit for file bundles, 20MiB for object storage&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;bundle_size&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;128MiB          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Target size for file bundles, 128MiB for object storage&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;cipher_type&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;aes-256-cbc     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable AES encryption for remote backup repo&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;cipher_pass&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;pgBackRest      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# AES encryption password, default is &amp;#39;pgBackRest&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;retention_full_type&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;time    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# retention full backup by time on minio repo&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;retention_full&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;m&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keep full backup for the the last 14 days&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;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;c&#34;&gt;# PG_ACCESS&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;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;pgbouncer_enabled&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;c&#34;&gt;# if disabled, pgbouncer will not be launched on pgsql host&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;pgbouncer_port&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;m&#34;&gt;6432&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer listen port, 6432 by default&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;pgbouncer_log_dir&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/log/pgbouncer &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer log dir, `/pg/log/pgbouncer` by default&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;pgbouncer_auth_query&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# query postgres to retrieve unlisted business users?&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;pgbouncer_poolmode&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;transaction  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pooling mode: transaction,session,statement, transaction by default&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;pgbouncer_sslmode&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;disable       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer client ssl mode, disable by default&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;pgbouncer_ignore_param&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;extra_float_digits, application_name, TimeZone, DateStyle, IntervalStyle, search_path ]&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_weight&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;m&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;#INSTANCE # relative load balance weight in service, 100 by default, 0-255&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_service_provider&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dedicate haproxy node group name, or empty string for local nodes by default&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_default_service_dest&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;pgbouncer&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default service destination if svc.dest=&amp;#39;default&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;pg_default_services&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;# postgres default service definitions&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;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;primary ,port&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;5433 ,dest&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;default  ,check&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;/primary   ,selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;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;replica ,port&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;5434 ,dest&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;default  ,check&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;/read-only ,selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, backup&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;s2&#34;&gt;&amp;#34;[? pg_role == `primary` || pg_role == `offline` ]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;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;default ,port&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;5436 ,dest&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;postgres ,check&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;/primary   ,selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;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;offline ,port&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;5438 ,dest&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;postgres ,check&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;/replica   ,selector&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;s2&#34;&gt;&amp;#34;[? pg_role == `offline` || pg_offline_query ]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, backup&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;s2&#34;&gt;&amp;#34;[? pg_role == `replica` &amp;amp;&amp;amp; !pg_offline_query]&amp;#34;&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_vip_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable a l2 vip for pgsql primary? false by default&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_vip_address&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;m&#34;&gt;127.0.0.1&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/24     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vip address in `&amp;lt;ipv4&amp;gt;/&amp;lt;mask&amp;gt;` format, require if vip is enabled&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_vip_interface&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;auto           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vip network interface to listen, auto by default&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_dns_suffix&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgsql dns suffix, &amp;#39;&amp;#39; by default&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_dns_target&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;auto              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# auto, primary, vip, none, or ad hoc ip&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;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;c&#34;&gt;# PG_MONITOR&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;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_exporter_enabled&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;c&#34;&gt;# enable pg_exporter on pgsql hosts?&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_exporter_config&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_exporter.yml   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter configuration file name&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_exporter_cache_ttls&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;1,10,60,300&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter collector ttl stage in seconds, &amp;#39;1,10,60,300&amp;#39; by default&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_exporter_port&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;m&#34;&gt;9630&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter listen port, 9630 by default&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_exporter_params&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;sslmode=disable&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# extra url parameters for pg_exporter dsn&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_exporter_url&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite auto-generate pg dsn if specified&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_exporter_auto_discovery&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;c&#34;&gt;# enable auto database discovery? enabled by default&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_exporter_exclude_database&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;template0,template1,postgres&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# csv of database that WILL NOT be monitored during auto-discovery&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_exporter_include_database&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# csv of database that WILL BE monitored during auto-discovery&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_exporter_connect_timeout&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;m&#34;&gt;200&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter connect timeout in ms, 200 by default&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_exporter_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite extra options for pg_exporter&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;pgbouncer_exporter_enabled&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;c&#34;&gt;# enable pgbouncer_exporter on pgsql hosts?&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;pgbouncer_exporter_port&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;m&#34;&gt;9631&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer_exporter listen port, 9631 by default&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;pgbouncer_exporter_url&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite auto-generate pgbouncer dsn if specified&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;pgbouncer_exporter_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite extra options for pgbouncer_exporter&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;pgbackrest_exporter_enabled&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;c&#34;&gt;# enable pgbackrest_exporter on pgsql hosts?&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;pgbackrest_exporter_port&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;m&#34;&gt;9854&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbackrest_exporter listen port, 9854 by default&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;pgbackrest_exporter_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      --collect.interval=120&#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;sd&#34;&gt;      --log.level=info&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;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;c&#34;&gt;# PG_REMOVE&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;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_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# stop pg_remove running if pg_safeguard is enabled, false by default&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_rm_data&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;c&#34;&gt;# remove postgres data during remove? true by default&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_rm_backup&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;c&#34;&gt;# remove pgbackrest backup during primary remove? true by default&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_rm_pkg&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;c&#34;&gt;# uninstall postgres packages during remove? true by default&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;demo/el&lt;/code&gt; template is optimized for Enterprise Linux family distributions.&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/debian</title>
        <link>https://pgsty.pro/docs/conf/debian/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/debian/</guid>
        <description>&lt;p&gt;The &lt;code&gt;demo/debian&lt;/code&gt; configuration template is optimized for Debian and Ubuntu distributions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/debian&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Debian/Ubuntu optimized configuration template&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/el/&#34;&gt;&lt;code&gt;demo/el&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-020020bd-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-020020bd-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;./configure -c demo/debian &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/demo/debian.yml&#34;&gt;&lt;code&gt;pigsty/conf/demo/debian.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-020020bd-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;861&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-020020bd-include-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;nn&#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;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;c&#34;&gt;# File      :   debian.yml&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;c&#34;&gt;# Desc      :   Default parameters for Debian/Ubuntu in Pigsty&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;c&#34;&gt;# Ctime     :   2020-05-22&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;c&#34;&gt;# Mtime     :   2026-08-02&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/conf/debian&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;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;c&#34;&gt;#                        Sandbox (4-node)                      #&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;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;c&#34;&gt;# admin user : vagrant  (nopass ssh &amp;amp; sudo already set)        #&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;c&#34;&gt;# 1.  meta    :    10.10.10.10     (2 Core | 4GB)    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;c&#34;&gt;# 2.  node-1  :    10.10.10.11     (1 Core | 1GB)    pg-test-1 #&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;c&#34;&gt;# 3.  node-2  :    10.10.10.12     (1 Core | 1GB)    pg-test-2 #&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;c&#34;&gt;# 4.  node-3  :    10.10.10.13     (1 Core | 1GB)    pg-test-3 #&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;c&#34;&gt;# (replace these ip if your 4-node env have different ip addr) #&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;c&#34;&gt;# VIP 2: (l2 vip is available inside same LAN )                #&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;c&#34;&gt;#     pg-meta ---&amp;gt;  10.10.10.2 ---&amp;gt; 10.10.10.10                #&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;c&#34;&gt;#     pg-test ---&amp;gt;  10.10.10.3 ---&amp;gt; 10.10.10.1{1,2,3}          #&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;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;&#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;nt&#34;&gt;all&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;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;c&#34;&gt;#                            CLUSTERS                            #&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;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;c&#34;&gt;# meta nodes, nodes, pgsql, redis, pgsql clusters are defined as&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;c&#34;&gt;# k:v pair inside `all.children`. Where the key is cluster name&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;c&#34;&gt;# and value is cluster definition consist of two parts:&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;c&#34;&gt;# `hosts`: cluster members ip and instance level variables&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;c&#34;&gt;# `vars` : cluster level variables&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;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;children&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;# groups definition&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# infra cluster for proxy, monitor, alert, etc..&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;infra&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;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;infra_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;m&#34;&gt;1&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;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd cluster for ha postgres&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;etcd&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;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;etcd_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 } }, vars&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;etcd_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;etcd } }&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio cluster, s3 compatible object storage&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;minio&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;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;minio_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 } }, vars&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;minio_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;minio } }&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;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;c&#34;&gt;# pgsql cluster: pg-meta (CMDB)    #&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;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-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;nt&#34;&gt;primary , pg_offline_query&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;w&#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;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;&#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;c&#34;&gt;# define business databases here: https://pigsty.io/docs/pgsql/config/db&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;c&#34;&gt;# define business databases on this cluster, array of database definition&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; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# REQUIRED, `name` is the only mandatory field of a database definition&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;c&#34;&gt;#state: create                  # optional, create|absent|recreate, create by default&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;baseline&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;cmdb.sql             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, database sql baseline path, (relative path among ansible search path, e.g: files/)&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;schemas&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;l&#34;&gt;pigsty]              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, additional schemas to be created, array of schema names&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;c&#34;&gt;# optional, additional extensions to be installed: array of `{name[,schema]}`&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;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;vector }           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# install pgvector extension on this database by default&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;comment&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;pigsty meta database  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, comment string for this database&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;c&#34;&gt;#pgbouncer: true                # optional, add this database to pgbouncer database list? true by default&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;c&#34;&gt;#owner: postgres                # optional, database owner, current user if not specified&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;c&#34;&gt;#template: template1            # optional, which template to use, template1 by default&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;c&#34;&gt;#strategy: FILE_COPY            # optional, clone strategy: FILE_COPY or WAL_LOG (PG15+), default to PG&amp;#39;s default&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;c&#34;&gt;#encoding: UTF8                 # optional, inherited from template / cluster if not defined (UTF8)&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;c&#34;&gt;#locale: C                      # optional, inherited from template / cluster if not defined (C)&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;c&#34;&gt;#lc_collate: C                  # optional, inherited from template / cluster if not defined (C)&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;c&#34;&gt;#lc_ctype: C                    # optional, inherited from template / cluster if not defined (C)&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;c&#34;&gt;#locale_provider: libc          # optional, locale provider: libc, icu, builtin (PG15+)&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;c&#34;&gt;#icu_locale: en-US              # optional, icu locale for icu locale provider (PG15+)&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;c&#34;&gt;#icu_rules: &amp;#39;&amp;#39;                  # optional, icu rules for icu locale provider (PG16+)&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;c&#34;&gt;#builtin_locale: C.UTF-8        # optional, builtin locale for builtin locale provider (PG17+)&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;c&#34;&gt;#tablespace: pg_default         # optional, default tablespace, pg_default by default&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;c&#34;&gt;#is_template: false             # optional, mark database as template, allowing clone by any user with CREATEDB privilege&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;c&#34;&gt;#allowconn: true                # optional, allow connection, true by default. false will disable connect at all&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;c&#34;&gt;#revokeconn: false              # optional, revoke public connection privilege. false by default. (leave connect with grant option to owner)&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;c&#34;&gt;#register_datasource: true      # optional, register this database to grafana datasources? true by default&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;c&#34;&gt;#connlimit: -1                  # optional, database connection limit, default -1 disable limit&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;c&#34;&gt;#pool_auth_user: dbuser_meta    # optional, all connection to this pgbouncer database will be authenticated by this user&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;c&#34;&gt;#pool_mode: transaction         # optional, pgbouncer pool mode at database level, default transaction&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;c&#34;&gt;#pool_size: 64                  # optional, pgbouncer pool size at database level, default 64&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;c&#34;&gt;#pool_reserve: 32               # optional, pgbouncer pool size reserve at database level, default 32&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;c&#34;&gt;#pool_size_min: 0               # optional, pgbouncer pool size min at database level, default 0&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;c&#34;&gt;#pool_connlimit: 100            # optional, max database connections at database level, default 100&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;c&#34;&gt;#- { name: grafana  ,owner: dbuser_grafana  ,revokeconn: true ,comment: grafana primary database }&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;c&#34;&gt;#- { name: bytebase ,owner: dbuser_bytebase ,revokeconn: true ,comment: bytebase primary database }&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;c&#34;&gt;#- { name: kong     ,owner: dbuser_kong     ,revokeconn: true ,comment: kong the api gateway database }&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;c&#34;&gt;#- { name: gitea    ,owner: dbuser_gitea    ,revokeconn: true ,comment: gitea meta database }&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;c&#34;&gt;#- { name: wiki     ,owner: dbuser_wiki     ,revokeconn: true ,comment: wiki meta database }&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define business users here: https://pigsty.io/docs/pgsql/config/user&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;c&#34;&gt;# define business users/roles on this cluster, array of user definition&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;dbuser_meta              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# REQUIRED, `name` is the only mandatory field of a user definition&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;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;l&#34;&gt;DBUser.Meta          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, password, can be a scram-sha-256 hash string or plain text&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;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;c&#34;&gt;# optional, add this user to pgbouncer user-list? false by default (production user should be true explicitly)&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;comment&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;pigsty admin user     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, comment string for this user/role&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;roles&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;dbrole_admin ]        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, belonged roles. default roles are: dbrole_{admin,readonly,readwrite,offline}&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;c&#34;&gt;#login: true                     # optional, can log in, true by default  (new biz ROLE should be false)&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;c&#34;&gt;#superuser: false                # optional, is superuser? false by default&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;c&#34;&gt;#createdb: false                 # optional, can create database? false by default&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;c&#34;&gt;#createrole: false               # optional, can create role? false by default&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;c&#34;&gt;#inherit: true                   # optional, can this role use inherited privileges? true by default&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;c&#34;&gt;#replication: false              # optional, can this role do replication? false by default&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;c&#34;&gt;#bypassrls: false                # optional, can this role bypass row level security? false by default&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;c&#34;&gt;#connlimit: -1                   # optional, user connection limit, default -1 disable limit&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;c&#34;&gt;#expire_in: 3650                 # optional, now + n days when this role is expired (OVERWRITE expire_at)&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;c&#34;&gt;#expire_at: &amp;#39;2030-12-31&amp;#39;         # optional, YYYY-MM-DD &amp;#39;timestamp&amp;#39; when this role is expired  (OVERWRITTEN by expire_in)&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;c&#34;&gt;#parameters: {}                  # optional, role level parameters with `ALTER ROLE SET`&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;c&#34;&gt;#pool_mode: transaction          # optional, pgbouncer pool mode at user level, transaction by default&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;c&#34;&gt;#pool_connlimit: -1              # optional, max database connections at user level, default -1 disable limit&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;nt&#34;&gt;dbuser_view     ,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;DBUser.Viewer   ,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;nt&#34;&gt;true ,roles&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;[dbrole_readonly], comment&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;read-only viewer for meta database}&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;c&#34;&gt;#- {name: dbuser_grafana  ,password: DBUser.Grafana  ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for grafana database   }&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;c&#34;&gt;#- {name: dbuser_bytebase ,password: DBUser.Bytebase ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for bytebase database  }&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;c&#34;&gt;#- {name: dbuser_gitea    ,password: DBUser.Gitea    ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for gitea service      }&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;c&#34;&gt;#- {name: dbuser_wiki     ,password: DBUser.Wiki     ,pgbouncer: true ,roles: [dbrole_admin]    ,comment: admin user for wiki.js service    }&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define business service here: https://pigsty.io/docs/pgsql/service&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_services&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;# extra services in addition to pg_default_services, array of service definition&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;c&#34;&gt;# standby service will route {ip|name}:5435 to sync replica&amp;#39;s pgbouncer (5435-&amp;gt;6432 standby)&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;standby                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# required, service name, the actual svc name will be prefixed with `pg_cluster`, e.g: pg-meta-standby&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;port&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;m&#34;&gt;5435&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# required, service exposed port (work as kubernetes service node port mode)&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;ip&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;s2&#34;&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, service bind ip address, `*` for all ip by default&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;selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# required, service member selector, use JMESPath to filter inventory&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;dest&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, destination port, default|postgres|pgbouncer|&amp;lt;port_number&amp;gt;, &amp;#39;default&amp;#39; by default&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;check&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;/sync                   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, health check url path, / by default&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;backup&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;s2&#34;&gt;&amp;#34;[? pg_role == `primary`]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# backup server selector&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;maxconn&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;m&#34;&gt;3000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, max allowed front-end connection&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;balance&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;roundrobin            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, haproxy load balance algorithm (roundrobin by default, other: leastconn)&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;c&#34;&gt;#options: &amp;#39;inter 3s fastinter 1s downinter 5s rise 3 fall 3 on-marked-down shutdown-sessions slowstart 30s maxconn 3000 maxqueue 128 weight 100&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;&#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;c&#34;&gt;# define pg extensions: https://pigsty.io/docs/pgsql/ext/&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;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;# add timescaledb to shared_preload_libraries&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;c&#34;&gt;#pg_extensions: [] # extensions to be installed on this cluster&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define HBA rules here: https://pigsty.io/docs/pgsql/config/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;pg_hba_rules&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;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_view , 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;infra ,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;allow grafana dashboard access cmdb from infra nodes&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;&#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_vip_enabled&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;&#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_vip_address&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;m&#34;&gt;10.10.10.2&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/24&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;pg_crontab&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;# make a full backup 1 am everyday&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;s1&#34;&gt;&amp;#39;00 01 * * * /pg/bin/pg-backup full&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;&#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;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;c&#34;&gt;# pgsql cluster: pg-test (3 nodes) #&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;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;c&#34;&gt;# pg-test ---&amp;gt;  10.10.10.3 ---&amp;gt; 10.10.10.1{1,2,3}&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-test&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;# define the new 3-node cluster pg-test&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;&#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;10.10.10.11&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; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# primary instance, leader of cluster&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;10.10.10.12&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;2, 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;replica }  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replica instance, follower of leader&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;10.10.10.13&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;3, 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;nt&#34;&gt;replica, pg_offline_query&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replica with offline access&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-test          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# define pgsql cluster name&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;test , 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;test , 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;nt&#34;&gt;true , roles&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;dbrole_admin ] }]&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;test }]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# create a database and user named &amp;#39;test&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;node_tune&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;tiny&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_conf&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;tiny.yml&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_vip_enabled&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;&#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_vip_address&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;m&#34;&gt;10.10.10.3&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/24&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_crontab&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;# make a full backup on monday 1am, and an incremental backup during weekdays&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;s1&#34;&gt;&amp;#39;00 01 * * 1 /pg/bin/pg-backup full&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;s1&#34;&gt;&amp;#39;00 01 * * 2,3,4,5,6,7 /pg/bin/pg-backup&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;&#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;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;c&#34;&gt;# redis ms, sentinel, native cluster&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;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;redis-ms&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;# redis classic primary &amp;amp; replica&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;redis_node&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 , redis_instances&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;6379&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;}, 6380&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;replica_of&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;10.10.10.10 6379&amp;#39;&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;vars&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;redis_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;nt&#34;&gt;redis-ms ,redis_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;redis.ms&amp;#39; ,redis_max_memory&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;64MB }&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redis-meta&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;# redis sentinel x 3&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.11&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;redis_node&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 , redis_instances&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;26379&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;} ,26380&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;} ,26381&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;w&#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;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;redis_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;redis-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;redis_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;s1&#34;&gt;&amp;#39;redis.meta&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;redis_mode&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;sentinel&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;redis_max_memory&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;16MB&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;redis_sentinel_monitor&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;# primary list for redis sentinel, use cls as name, primary ip:port&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;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;redis-ms, host&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;10.10.10.10, port&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;6379 ,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;redis.ms, quorum&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;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redis-test&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;# redis native cluster: 3m x 3s&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;&#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;10.10.10.12&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;redis_node&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 ,redis_instances&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;6379&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;} ,6380&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;} ,6381&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;10.10.10.13&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;redis_node&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;2 ,redis_instances&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;6379&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;} ,6380&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;} ,6381&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;vars&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;redis_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;nt&#34;&gt;redis-test ,redis_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;redis.test&amp;#39; ,redis_mode&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;cluster, redis_max_memory&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;32MB }&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;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;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;c&#34;&gt;#                             VARS                                 #&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;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;vars&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;# global variables&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;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;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;c&#34;&gt;#                         VARS: INFRA                            #&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;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;&#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;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;c&#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;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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin node ip address&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;region&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream mirror region: default,china,europe&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;language&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;en                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default language: en, zh&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;proxy_env&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;# global proxy env when downloading packages&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;no_proxy&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;s2&#34;&gt;&amp;#34;localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.myqcloud.com,*.tsinghua.edu.cn&amp;#34;&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;c&#34;&gt;# http_proxy:  # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;c&#34;&gt;# https_proxy: # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;c&#34;&gt;# all_proxy:   # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;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;c&#34;&gt;# CA&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;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;ca_create&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;c&#34;&gt;# create ca if not exists? or just abort&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;ca_cn&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;pigsty-ca                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# ca common name, fixed as pigsty-ca&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;cert_validity&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;7300d             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# cert validity, 20 years by default&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;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;c&#34;&gt;# INFRA_IDENTITY&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;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;c&#34;&gt;#infra_seq: 1                     # infra node identity, explicitly required&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;infra_portal&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;# infra services exposed via portal&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;home &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;domain&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;i.pigsty }    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default domain name&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;infra_data&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;/data/infra          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default data path for infrastructure data&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;infra_services&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;# home page navigation entries&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;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;Metrics            ,url&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;/vmetrics/vmui/&amp;#39;         ,desc&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;VictoriaMetrics Query UI&amp;#39;    ,icon&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;metrics  ,name_cn&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;指标查询&amp;#39; ,desc_cn&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;VictoriaMetrics 指标查询界面&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Logs               ,url&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;/vlogs/select/vmui/&amp;#39;     ,desc&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;VictoriaLogs Query UI&amp;#39;       ,icon&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;logs     ,name_cn&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;日志查询&amp;#39; ,desc_cn&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;VictoriaLogs 日志查询界面&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Traces             ,url&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;/vtraces/select/vmui/&amp;#39;   ,desc&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;VictoriaTraces Query UI&amp;#39;     ,icon&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;traces   ,name_cn&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;链路追踪&amp;#39; ,desc_cn&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;VictoriaTraces 链路查询界面&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Monitor Targets    ,url&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;/vmetrics/targets&amp;#39;       ,desc&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;Prometheus Scrape Targets&amp;#39;   ,icon&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;target   ,name_cn&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;监控目标&amp;#39; ,desc_cn&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;VictoriaMetrics 监控对象列表&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Alert Rules        ,url&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;/vmalert/vmalert/groups&amp;#39; ,desc&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;VMAlert alert/record Rules&amp;#39;  ,icon&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;alert    ,name_cn&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;告警规则&amp;#39; ,desc_cn&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;VMAlert 告警规则管理&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Alert Manager      ,url&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;/alertmgr/#/alerts&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,desc&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;Alert Manage &amp;amp; Silence&amp;#39;      ,icon&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;alertmgr ,name_cn&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;告警管理&amp;#39; ,desc_cn&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;AlertManager 告警管理与屏蔽&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;CA Certificate     ,url&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;/ca.crt&amp;#39;                 ,desc&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;Self-Signed CA Certificate&amp;#39;  ,icon&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;lock     ,name_cn&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;CA 证书&amp;#39;  ,desc_cn&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;Pigsty 自签CA根证书&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Software Repo      ,url&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;/pigsty&amp;#39;                 ,desc&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;Local YUM/APT Repository&amp;#39;    ,icon&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;package  ,name_cn&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;软件仓库&amp;#39; ,desc_cn&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;本地 YUM/APT 软件源&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;Explain Visualizer ,url&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;/pev&amp;#39;                    ,desc&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;Postgres EXPLAIN Visualizer&amp;#39; ,icon&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;search   ,name_cn&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;执行计划&amp;#39; ,desc_cn&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;PG 执行计划可视化工具&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;infra_extra_services&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;c&#34;&gt;# extra services to be added on infra home page&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;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;c&#34;&gt;# REPO&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;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;repo_enabled&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;c&#34;&gt;# create a yum repo on this infra node?&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;repo_home&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;/www                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# repo home dir, `/www` by default&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;repo_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;pigsty                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# repo name, pigsty by default&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;repo_endpoint&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;http://${admin_ip}:80&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# access point to this repo by domain or ip:port&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;repo_remove&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;c&#34;&gt;# remove existing upstream repo&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;repo_modules&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;infra,node,pgsql   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# which repo modules are installed in repo_upstream&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;repo_upstream&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;# where to download&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;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;pigsty-local   ,description&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;Pigsty Local&amp;#39;       ,module&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;local   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://${admin_ip}/pigsty ./&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;pigsty-pgsql   ,description&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;Pigsty PgSQL&amp;#39;       ,module&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;pgsql   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.pigsty.io/apt/pgsql/${distro_codename} ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://repo.pigsty.cc/apt/pgsql/${distro_codename} ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;pigsty-infra   ,description&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;Pigsty Infra&amp;#39;       ,module&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;infra   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.pigsty.io/apt/infra/ generic main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://repo.pigsty.cc/apt/infra/ generic main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;nginx          ,description&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;Nginx&amp;#39;              ,module&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;infra   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://nginx.org/packages/${distro_name} ${distro_codename} nginx&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;docker-ce      ,description&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;Docker&amp;#39;             ,module&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;infra   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://download.docker.com/linux/${distro_name} ${distro_codename} stable&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                               &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/docker-ce/linux/${distro_name} ${distro_codename} stable&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;base           ,description&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;Debian Basic&amp;#39;       ,module&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;node    ,releases&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;[11,12,13         ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://deb.debian.org/debian/ ${distro_codename} main non-free-firmware&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                                  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/debian/ ${distro_codename} main non-free-firmware&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;updates        ,description&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;Debian Updates&amp;#39;     ,module&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;node    ,releases&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;[11,12,13         ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://deb.debian.org/debian/ ${distro_codename}-updates main non-free-firmware&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/debian/ ${distro_codename}-updates main non-free-firmware&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;security       ,description&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;Debian Security&amp;#39;    ,module&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;node    ,releases&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;[11,12,13         ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://security.debian.org/debian-security ${distro_codename}-security main non-free-firmware&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/debian-security/ ${distro_codename}-security main non-free-firmware&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;base           ,description&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;Ubuntu Basic&amp;#39;       ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://mirrors.edge.kernel.org/ubuntu/ ${distro_codename}           main universe multiverse restricted&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu/ ${distro_codename}           main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;updates        ,description&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;Ubuntu Updates&amp;#39;     ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://mirrors.edge.kernel.org/ubuntu/ ${distro_codename}-updates   main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu/ ${distro_codename}-updates   main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;backports      ,description&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;Ubuntu Backports&amp;#39;   ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://mirrors.edge.kernel.org/ubuntu/ ${distro_codename}-backports main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu/ ${distro_codename}-backports main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;security       ,description&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;Ubuntu Security&amp;#39;    ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://mirrors.edge.kernel.org/ubuntu/ ${distro_codename}-security  main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu/ ${distro_codename}-security  main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;base           ,description&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;Ubuntu Basic&amp;#39;       ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[        aarch64] ,baseurl&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;default&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;http://ports.ubuntu.com/ubuntu-ports/ ${distro_codename}             main universe multiverse restricted&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu-ports/ ${distro_codename}           main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;updates        ,description&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;Ubuntu Updates&amp;#39;     ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[        aarch64] ,baseurl&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;default&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;http://ports.ubuntu.com/ubuntu-ports/ ${distro_codename}-updates     main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu-ports/ ${distro_codename}-updates   main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;backports      ,description&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;Ubuntu Backports&amp;#39;   ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[        aarch64] ,baseurl&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;default&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;http://ports.ubuntu.com/ubuntu-ports/ ${distro_codename}-backports   main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu-ports/ ${distro_codename}-backports main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;security       ,description&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;Ubuntu Security&amp;#39;    ,module&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;node    ,releases&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;[         22,24,26] ,arch&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;[        aarch64] ,baseurl&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;default&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;http://ports.ubuntu.com/ubuntu-ports/ ${distro_codename}-security    main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/ubuntu-ports/ ${distro_codename}-security  main restricted universe multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg           ,description&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;PGDG&amp;#39;               ,module&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;pgsql   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://apt.postgresql.org/pub/repos/apt/ ${distro_codename}-pgdg main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/apt/ ${distro_codename}-pgdg main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;pgdg-beta      ,description&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;PGDG Beta&amp;#39;          ,module&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;beta    ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://apt.postgresql.org/pub/repos/apt/ ${distro_codename}-pgdg-testing main 19&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/postgresql/repos/apt/ ${distro_codename}-pgdg-testing main 19&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;timescaledb    ,description&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;TimescaleDB&amp;#39;        ,module&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;extra   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packagecloud.io/timescale/timescaledb/${distro_name}/ ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;citus          ,description&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;Citus&amp;#39;              ,module&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;extra   ,releases&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;[11,12,   22      ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packagecloud.io/citusdata/community/${distro_name}/ ${distro_codename} main&amp;#39;&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;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;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;percona        ,description&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;Percona TDE&amp;#39;        ,module&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;percona ,releases&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;[   12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.pigsty.io/apt/percona ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://repo.pigsty.cc/apt/percona ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,origin&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;http://repo.percona.com/ppg-18.4/apt ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;groonga        ,description&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;Groonga Debian&amp;#39;     ,module&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;groonga ,releases&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;[11,12,13         ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.groonga.org/debian/ ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;groonga        ,description&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;Groonga Ubuntu&amp;#39;     ,module&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;groonga ,releases&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;[         22,24   ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://ppa.launchpadcontent.net/groonga/ppa/ubuntu/ ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;mysql          ,description&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;MySQL 8.4 LTS&amp;#39;      ,module&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;mysql   ,releases&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;[   12,13,22,24   ] ,arch&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;[x86_64         ] ,baseurl&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;default&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;https://repo.mysql.com/apt/${distro_name} ${distro_codename} mysql-8.4-lts&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://mirrors.ustc.edu.cn/mysql-repo/apt/${distro_name} ${distro_codename} mysql-8.4-lts&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;mongo          ,description&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;MongoDB&amp;#39;            ,module&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;mongo   ,releases&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;[   12,   22,24   ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://repo.mongodb.org/apt/${distro_name} ${distro_codename}/mongodb-org/8.0 multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://mirrors.cloud.tencent.com/mongodb/apt/${distro_name} ${distro_codename}/mongodb-org/8.0 multiverse&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;redis          ,description&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;Redis&amp;#39;              ,module&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;redis   ,releases&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;[11,12,   22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.redis.io/deb ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;llvm           ,description&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;LLVM&amp;#39;               ,module&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;llvm    ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://apt.llvm.org/${distro_codename}/ llvm-toolchain-${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.tuna.tsinghua.edu.cn/llvm-apt/${distro_codename}/ llvm-toolchain-${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;haproxyd       ,description&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;Haproxy Debian&amp;#39;     ,module&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;haproxy ,releases&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;[   12            ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;http://haproxy.debian.net/ ${distro_codename}-backports-3.2 main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;haproxyu       ,description&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;Haproxy Ubuntu&amp;#39;     ,module&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;haproxy ,releases&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;[            24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://ppa.launchpadcontent.net/vbernat/haproxy-3.2/ubuntu/ ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;grafana        ,description&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;Grafana&amp;#39;            ,module&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;grafana ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://apt.grafana.com stable main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,china&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;https://mirrors.cloud.tencent.com/grafana/apt/ stable main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;kubernetes     ,description&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;Kubernetes&amp;#39;         ,module&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;kube    ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://pkgs.k8s.io/core:/stable:/v1.36/deb/ /&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://mirrors.ustc.edu.cn/kubernetes/core:/stable:/v1.36/deb/ /&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;gitlab-ee      ,description&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;Gitlab EE&amp;#39;          ,module&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;gitlab  ,releases&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;[11,12,13,22,24   ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.gitlab.com/gitlab/gitlab-ee/${distro_name}/ ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;gitlab-ce      ,description&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;Gitlab CE&amp;#39;          ,module&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;gitlab  ,releases&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;[11,12,13,22,24   ] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.gitlab.com/gitlab/gitlab-ce/${distro_name}/ ${distro_codename} main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;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;clickhouse     ,description&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;ClickHouse&amp;#39;         ,module&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;click   ,releases&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;[11,12,13,22,24,26] ,arch&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;[x86_64, aarch64] ,baseurl&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;default&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;https://packages.clickhouse.com/deb/ stable main&amp;#39;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, china&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;https://repo.huaweicloud.com/clickhouse/deb/ stable main&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;repo_packages&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;node-bootstrap, infra-package, infra-addons, node-package1, node-package2, node-package3, pgsql-utility, extra-modules ]&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;repo_extra_packages&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;pgsql-main ]&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;repo_url_packages&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;&#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;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;c&#34;&gt;# INFRA_PACKAGE&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;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;infra_packages&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;# packages to be installed on infra nodes&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;l&#34;&gt;grafana,grafana-plugins,grafana-victorialogs-ds,grafana-victoriametrics-ds,victoria-metrics,victoria-logs,victoria-traces,vmutils,vlogscli,alertmanager&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;l&#34;&gt;node-exporter,blackbox-exporter,nginx-exporter,pg-exporter,pev2,nginx,dnsmasq,ansible,etcd,python3-requests,redis,mcli,restic,certbot,python3-certbot-nginx&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;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;c&#34;&gt;# NGINX&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;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;nginx_enabled&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;c&#34;&gt;# enable nginx on this infra node?&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;nginx_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean existing nginx config during init?&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;nginx_exporter_enabled&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;c&#34;&gt;# enable nginx_exporter on this infra node?&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;nginx_exporter_port&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;m&#34;&gt;9113&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx_exporter listen port, 9113 by default&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;nginx_sslmode&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;enable            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx ssl mode? disable,enable,enforce&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;nginx_cert_validity&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;397d        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx self-signed cert validity, 397d by default&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;nginx_home&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;/www                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx content dir, `/www` by default (soft link to nginx_data)&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;nginx_data&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;/data/nginx          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx actual data dir, /data/nginx by default&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;nginx_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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;admin &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;pigsty }  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx basic auth users: name and pass dict&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;nginx_port&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;m&#34;&gt;80&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx listen port, 80 by default&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;nginx_ssl_port&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;m&#34;&gt;443&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# nginx ssl listen port, 443 by default&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;certbot_sign&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# sign nginx cert with certbot during setup?&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;certbot_email&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;your@email.com    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# certbot email address, used for free ssl&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;certbot_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# certbot extra options&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;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;c&#34;&gt;# DNS&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;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;dns_enabled&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;c&#34;&gt;# setup dnsmasq on this infra node?&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;dns_port&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;m&#34;&gt;53&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dns server listen port, 53 by default&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;dns_records&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;# dynamic dns records resolved by dnsmasq&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;s2&#34;&gt;&amp;#34;${admin_ip} i.pigsty&amp;#34;&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;s2&#34;&gt;&amp;#34;${admin_ip} m.pigsty supa.pigsty api.pigsty adm.pigsty cli.pigsty ddl.pigsty&amp;#34;&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;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;c&#34;&gt;# VICTORIA&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;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;vmetrics_enabled&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;c&#34;&gt;# enable victoria-metrics on this infra node?&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;vmetrics_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# whether clean existing victoria metrics data during init?&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;vmetrics_port&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;m&#34;&gt;8428&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria-metrics listen port, 8428 by default&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;vmetrics_scrape_interval&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;10s    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria global scrape interval, 10s by default&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;vmetrics_scrape_timeout&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;8s      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria global scrape timeout, 8s by default&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;vmetrics_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      -retentionPeriod=15d&#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;sd&#34;&gt;      -promscrape.fileSDCheckInterval=5s&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;vlogs_enabled&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;c&#34;&gt;# enable victoria-logs on this infra node?&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;vlogs_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean victoria-logs data during init?&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;vlogs_port&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;m&#34;&gt;9428&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria-logs listen port, 9428 by default&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;vlogs_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      -retentionPeriod=15d&#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;sd&#34;&gt;      -retention.maxDiskSpaceUsageBytes=50GiB&#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;sd&#34;&gt;      -insert.maxLineSizeBytes=1MB&#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;sd&#34;&gt;      -search.maxQueryDuration=120s&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;vtraces_enabled&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;c&#34;&gt;# enable victoria-traces on this infra node?&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;vtraces_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean victoria-trace data during inti?&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;vtraces_port&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;m&#34;&gt;10428&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# victoria-traces listen port, 10428 by default&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;vtraces_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      -retentionPeriod=15d&#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;sd&#34;&gt;      -retention.maxDiskSpaceUsageBytes=50GiB&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;vmalert_enabled&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;c&#34;&gt;# enable vmalert on this infra node?&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;vmalert_port&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;m&#34;&gt;8880&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vmalert listen port, 8880 by default&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;vmalert_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vmalert extra server options&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;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;c&#34;&gt;# PROMETHEUS&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;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;blackbox_enabled&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;c&#34;&gt;# setup blackbox_exporter on this infra node?&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;blackbox_port&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;m&#34;&gt;9115&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# blackbox_exporter listen port, 9115 by default&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;blackbox_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# blackbox_exporter extra server options&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;alertmanager_enabled&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;c&#34;&gt;# setup alertmanager on this infra node?&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;alertmanager_port&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;m&#34;&gt;9059&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# alertmanager listen port, 9059 by default&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;alertmanager_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# alertmanager extra server options&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;exporter_metrics_path&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;/metrics  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# exporter metric path, `/metrics` by default&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;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;c&#34;&gt;# GRAFANA&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;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;grafana_enabled&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;c&#34;&gt;# enable grafana on this infra node?&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;grafana_port&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;m&#34;&gt;3000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default listen port for grafana&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;grafana_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# clean grafana data during init?&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;grafana_admin_username&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;admin    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# grafana admin username, `admin` by default&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;grafana_admin_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;l&#34;&gt;pigsty   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# grafana admin password, `pigsty` by default&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;grafana_auth_proxy&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable grafana auth proxy?&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;grafana_pgurl&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# external postgres database url for grafana if given&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;grafana_view_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;l&#34;&gt;DBUser.Viewer&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# password for grafana meta pg datasource&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;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;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;c&#34;&gt;#                         VARS: NODE                             #&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;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;&#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;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;c&#34;&gt;# NODE_IDENTITY&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;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;c&#34;&gt;#nodename:           # [INSTANCE] # node instance identity, use hostname if missing, optional&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;node_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;nodes   # [CLUSTER]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node cluster identity, use &amp;#39;nodes&amp;#39; if missing, optional&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;nodename_overwrite&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;c&#34;&gt;# overwrite node&amp;#39;s hostname with nodename?&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;nodename_exchange&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# exchange nodename among play hosts?&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;node_id_from_pg&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;c&#34;&gt;# use postgres identity as node identity if applicable?&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;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;c&#34;&gt;# NODE_DNS&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;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;node_write_etc_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;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# modify `/etc/hosts` on target node?&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;node_default_etc_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;c&#34;&gt;# static dns records in `/etc/hosts`&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;s2&#34;&gt;&amp;#34;${admin_ip} i.pigsty&amp;#34;&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;node_etc_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;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# extra static dns records in `/etc/hosts`&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;node_dns_method&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;add             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# how to handle dns servers: add,none,overwrite&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;node_dns_servers&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;s1&#34;&gt;&amp;#39;${admin_ip}&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;c&#34;&gt;# dynamic nameserver in `/etc/resolv.conf`&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;node_dns_options&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;# dns resolv options in `/etc/resolv.conf`&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;l&#34;&gt;options single-request-reopen timeout:1&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;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;c&#34;&gt;# NODE_PACKAGE&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;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;node_repo_modules&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;local         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream repo to be added on node, local by default&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;node_repo_remove&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;c&#34;&gt;# remove existing repo on node?&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;node_packages&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;l&#34;&gt;openssh-server]  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# packages to be installed current nodes with latest version&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;node_default_packages&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;# default packages to be installed on all nodes&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;l&#34;&gt;lz4,unzip,bzip2,pv,jq,git,ncdu,make,patch,bash,lsof,wget,uuid,tuned,nvme-cli,numactl,sysstat,iotop,htop,rsync,tcpdump&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;l&#34;&gt;python3,python3-pip,socat,lrzsz,net-tools,ipvsadm,telnet,ca-certificates,openssl,keepalived,etcd,haproxy,chrony,pig&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;l&#34;&gt;zlib1g,acl,dnsutils,libreadline-dev,vim-tiny,node-exporter,openssh-server,openssh-client,vector&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;node_uv_env&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;/data/venv          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uv venv path, empty string to skip&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;node_pip_packages&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pip packages to install in uv venv&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;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;c&#34;&gt;# NODE_SEC&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;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;node_selinux_mode&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;permissive    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# set selinux mode: enforcing,permissive,disabled&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;node_firewall_mode&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;zone         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# firewall mode: zone (default), off (disable), none (skip &amp;amp; self-managed)&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;node_firewall_intranet&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;# which intranet cidr considered as internal network&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;m&#34;&gt;10.0.0.0&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/8&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;m&#34;&gt;192.168.0.0&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/16&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;m&#34;&gt;172.16.0.0&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/12&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;node_firewall_public_port&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;# expose these ports to public network in (zone, strict) mode&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;m&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable ssh access&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;m&#34;&gt;80&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable http access&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;m&#34;&gt;443&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable https access&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;m&#34;&gt;5432&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable postgres access&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;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;c&#34;&gt;# NODE_TUNE&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;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;node_disable_numa&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# disable node numa, reboot required&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;node_disable_swap&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# disable node swap, use with caution&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;node_static_network&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;c&#34;&gt;# preserve dns resolver settings after reboot&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;node_disk_prefetch&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# setup disk prefetch on HDD to increase performance&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;node_kernel_modules&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;softdog, ip_vs, ip_vs_rr, ip_vs_wrr, ip_vs_sh ]&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;node_hugepage_count&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# number of 2MB hugepage, take precedence over ratio&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;node_hugepage_ratio&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node mem hugepage ratio, 0 disable it by default&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;node_overcommit_ratio&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node mem overcommit ratio, 0 disable it by default&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;node_tune&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;oltp                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node tuned profile: none,oltp,olap,crit,tiny&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;node_sysctl_params&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;# sysctl parameters in k:v format in addition to tuned&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;fs.nr_open&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;m&#34;&gt;8388608&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;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;c&#34;&gt;# NODE_ADMIN&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;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;node_data&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;/data                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node main data directory, `/data` by default&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;node_admin_enabled&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;c&#34;&gt;# create a admin user on target node?&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;node_admin_uid&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;m&#34;&gt;88&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uid and gid for node admin user&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;node_admin_username&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;dba         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# name of node admin user, `dba` by default&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;node_admin_sudo&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;nopass          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin sudo privilege, all,nopass. nopass by default&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;node_admin_ssh_exchange&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;c&#34;&gt;# exchange admin ssh key among node cluster&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;node_admin_pk_current&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;c&#34;&gt;# add current user&amp;#39;s ssh pk to admin authorized_keys&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;node_admin_pk_list&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;c&#34;&gt;# ssh public keys to be added to admin user&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;node_aliases&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;c&#34;&gt;# extra shell aliases to be added, k:v dict&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;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;c&#34;&gt;# NODE_TIME&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;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;node_timezone&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# setup node timezone, empty string to skip&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;node_ntp_enabled&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;c&#34;&gt;# enable chronyd time sync service?&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;node_ntp_servers&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;# ntp servers in `/etc/chrony.conf`&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;l&#34;&gt;pool pool.ntp.org iburst&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;node_crontab_overwrite&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;c&#34;&gt;# overwrite or append to `/etc/crontab`?&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;node_crontab&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;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# crontab entries in `/etc/crontab`&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;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;c&#34;&gt;# NODE_VIP&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;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;vip_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable vip on this node cluster?&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;c&#34;&gt;# vip_address:         [IDENTITY] # node vip address in ipv4 format, required if vip is enabled&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;c&#34;&gt;# vip_vrid:            [IDENTITY] # required, integer, 1-254, should be unique among same VLAN&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;vip_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;backup                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, `master|backup`, backup by default, use as init role&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;vip_preempt&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# optional, `true/false`, false by default, enable vip preemption&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;vip_interface&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;auto              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node vip network interface to listen, `auto` by default&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;vip_dns_suffix&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node vip dns name suffix, empty string by default&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;vip_auth_pass&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# empty to use &amp;#39;&amp;lt;cls&amp;gt;-&amp;lt;vrid&amp;gt;&amp;#39; as the default&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;vip_exporter_port&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;m&#34;&gt;9650&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keepalived exporter listen port, 9650 by default&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;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;c&#34;&gt;# HAPROXY&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;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;haproxy_enabled&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;c&#34;&gt;# enable haproxy on this node?&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;haproxy_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# cleanup all existing haproxy config?&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;haproxy_reload&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;c&#34;&gt;# reload haproxy after config?&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;haproxy_auth_enabled&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;c&#34;&gt;# enable authentication for haproxy admin page&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;haproxy_admin_username&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;admin    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# haproxy admin username, `admin` by default&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;haproxy_admin_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;l&#34;&gt;pigsty   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# haproxy admin password, `pigsty` by default&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;haproxy_exporter_port&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;m&#34;&gt;9101&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# haproxy admin/exporter port, 9101 by default&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;haproxy_client_timeout&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;24h      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# client side connection timeout, 24h by default&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;haproxy_server_timeout&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;24h      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# server side connection timeout, 24h by default&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;haproxy_services&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;c&#34;&gt;# list of haproxy service to be exposed on node&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;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;c&#34;&gt;# NODE_EXPORTER&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;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;node_exporter_enabled&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;c&#34;&gt;# setup node_exporter on this node?&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;node_exporter_port&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;m&#34;&gt;9100&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node exporter listen port, 9100 by default&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;node_exporter_options&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;--no-collector.softnet --no-collector.nvme --collector.tcpstat --collector.processes&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;&#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;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;c&#34;&gt;# VECTOR&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;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;vector_enabled&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;c&#34;&gt;# enable vector log collector?&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;vector_clean&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# purge vector data dir during init?&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;vector_data&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;/data/vector        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vector data dir, /data/vector by default&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;vector_port&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;m&#34;&gt;9598&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vector metrics port, 9598 by default&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;vector_read_from&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;beginning      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vector read from beginning or end&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;vector_log_endpoint&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;infra ]   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# if defined, sending vector log to this endpoint.&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;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;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;c&#34;&gt;#                        VARS: DOCKER                            #&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;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;docker_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable docker on this node?&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;docker_data&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;/data/docker        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker data directory, /data/docker by default&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;docker_storage_driver&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;overlay2  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker storage driver, can be zfs, btrfs&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;docker_cgroups_driver&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;systemd   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker cgroup fs driver: cgroupfs,systemd&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;docker_registry_mirrors&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;c&#34;&gt;# docker registry mirror list&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;docker_exporter_port&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;m&#34;&gt;9323&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker metrics exporter port, 9323 by default&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;docker_image&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;c&#34;&gt;# docker image to be pulled after bootstrap&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;docker_image_cache&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;/tmp/docker/*.tgz&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# docker image cache glob pattern&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;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;c&#34;&gt;#                         VARS: ETCD                             #&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;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;c&#34;&gt;#etcd_seq: 1                      # etcd instance identifier, explicitly required&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;etcd_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;etcd               &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd cluster &amp;amp; group name, etcd by default&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;etcd_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running etcd instance?&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;etcd_data&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;/data/etcd            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd data directory, /data/etcd by default&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;etcd_port&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;m&#34;&gt;2379&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd client port, 2379 by default&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;etcd_peer_port&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;m&#34;&gt;2380&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd peer port, 2380 by default&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;etcd_init&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;new                   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd initial cluster state, new or existing&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;etcd_election_timeout&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;m&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd election timeout, 1000ms by default&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;etcd_heartbeat_interval&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;m&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd heartbeat interval, 100ms by default&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;etcd_root_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;l&#34;&gt;Etcd.Root    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd root password for RBAC, change it!&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;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;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;c&#34;&gt;#                         VARS: MINIO                            #&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;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;c&#34;&gt;#minio_seq: 1                     # minio instance identifier, REQUIRED&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;c&#34;&gt;#minio_cluster:                   # minio cluster identifier, REQUIRED (define in cluster vars)&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;minio_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;l&#34;&gt;minio                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio os user, `minio` by default&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;minio_https&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;c&#34;&gt;# use https for minio, true by default&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;minio_node&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;${minio_cluster}-${minio_seq}.pigsty&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio node name pattern&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;minio_data&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;/data/minio&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio data dir(s), use {x...y} to specify multi drivers&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;c&#34;&gt;#minio_volumes:                   # minio data volumes, override defaults if specified&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;minio_domain&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;sss.pigsty         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio external domain name, `sss.pigsty` by default&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;minio_port&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;m&#34;&gt;9000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio service port, 9000 by default&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;minio_admin_port&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;m&#34;&gt;9001&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio console port, 9001 by default&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;minio_access_key&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;minioadmin     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# root access key, `minioadmin` by default&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;minio_secret_key&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;S3User.MinIO   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# root secret key, `S3User.MinIO` by default&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;minio_extra_vars&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# extra environment variables&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;minio_provision&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;c&#34;&gt;# run minio provisioning tasks?&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;minio_alias&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;sss                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# alias name for local minio deployment&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;c&#34;&gt;#minio_endpoint: https://sss.pigsty:9000 # if not specified, overwritten by defaults&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;minio_buckets&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;# list of minio bucket to be created&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;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;pgsql }&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;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;meta ,versioning&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;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;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;data }&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;minio_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;c&#34;&gt;# list of minio user to be created&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;pgbackrest  ,secret_key&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;S3User.Backup ,policy&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;pgsql }&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;s3user_meta ,secret_key&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;S3User.Meta   ,policy&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;s3user_data ,secret_key&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;S3User.Data   ,policy&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;data  }&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;minio_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running minio instance?&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;minio_rm_data&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;c&#34;&gt;# purging minio data and config?&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;minio_rm_pkg&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uninstall minio packages?&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;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;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;c&#34;&gt;#                         VARS: REDIS                            #&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;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;c&#34;&gt;#redis_cluster:        &amp;lt;CLUSTER&amp;gt; # redis cluster name, required identity parameter&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;c&#34;&gt;#redis_node: 1            &amp;lt;NODE&amp;gt; # redis node sequence number, node int id required&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;c&#34;&gt;#redis_instances: {}      &amp;lt;NODE&amp;gt; # redis instances definition on this redis node&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;redis_fs_main&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;/data/redis       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis main data directory, `/data/redis` by default&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;redis_exporter_enabled&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;c&#34;&gt;# install redis exporter on redis nodes?&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;redis_exporter_port&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;m&#34;&gt;9121&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis exporter listen port, 9121 by default&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;redis_exporter_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# cli args and extra options for redis exporter&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;redis_type&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;redis                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis implementation: redis or valkey&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;redis_mode&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;standalone           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis mode: standalone,cluster,sentinel&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;redis_conf&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;redis.conf           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis config template path, except sentinel&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;redis_bind_address&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;0.0.0.0&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis bind address, empty string will use host ip&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;redis_max_memory&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;1GB            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# max memory used by each redis instance&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;redis_mem_policy&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;allkeys-lru    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis memory eviction policy&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;redis_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;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis password, empty string will disable password&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;redis_rdb_save&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;s1&#34;&gt;&amp;#39;1200 1&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;c&#34;&gt;# redis rdb save directives, disable with empty list&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;redis_aof_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable redis append only file?&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;redis_rename_commands&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;c&#34;&gt;# rename redis dangerous commands&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;redis_cluster_replicas&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replica number for one master in redis cluster&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;redis_sentinel_monitor&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;c&#34;&gt;# sentinel master list, works on sentinel cluster only&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;redis_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running redis instance?&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;redis_rm_data&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;c&#34;&gt;# remove redis data dir?&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;redis_rm_pkg&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# uninstall selected engine &amp;amp; redis-exporter packages?&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;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;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;c&#34;&gt;#                         VARS: PGSQL                            #&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;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;&#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;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;c&#34;&gt;# PG_IDENTITY&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;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_mode&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;pgsql          #CLUSTER &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgsql cluster mode: pgsql,citus,mssql,mysql,ivory,pgtde,polar,gpsql,agens,oriole,pgedge&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;c&#34;&gt;# pg_cluster:           #CLUSTER  # pgsql cluster name, required identity parameter&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;c&#34;&gt;# pg_seq: 0             #INSTANCE # pgsql instance seq number, required identity parameter&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;c&#34;&gt;# pg_role: replica      #INSTANCE # pgsql role, required, could be primary,replica,offline&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;c&#34;&gt;# pg_instances: {}      #INSTANCE # define multiple pg instances on node in `{port:ins_vars}` format&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;c&#34;&gt;# pg_upstream:          #INSTANCE # repl upstream ip addr for standby cluster or cascade replica&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;c&#34;&gt;# pg_shard:             #CLUSTER  # pgsql shard name, optional identity for sharding clusters&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;c&#34;&gt;# pg_group: 0           #CLUSTER  # pgsql shard index number, optional identity for sharding clusters&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;c&#34;&gt;# gp_role: master       #CLUSTER  # greenplum role of this cluster, could be master or segment&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_offline_query&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;#INSTANCE # set to true to enable offline queries on this instance&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;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;c&#34;&gt;# PG_BUSINESS&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;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;c&#34;&gt;# postgres business object definition, overwrite in group vars&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;c&#34;&gt;# postgres business users&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;c&#34;&gt;# postgres business databases&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_services&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;c&#34;&gt;# postgres business services&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;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# business hba rules for postgres&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;pgb_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;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# business hba rules for pgbouncer&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_crontab&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;c&#34;&gt;# postgres crontab entries for dbsu&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;c&#34;&gt;# global credentials, overwrite in global vars&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_dbsu_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;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dbsu password, empty string means no dbsu password by default&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_replication_username&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;replicator&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_replication_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;l&#34;&gt;DBUser.Replicator&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_admin_username&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;dbuser_dba&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_admin_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;l&#34;&gt;DBUser.DBA&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_monitor_username&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;dbuser_monitor&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_monitor_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;l&#34;&gt;DBUser.Monitor&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;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;c&#34;&gt;# PG_INSTALL&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;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_dbsu&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;postgres                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# os dbsu name, postgres by default, better not change it&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_dbsu_uid&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;m&#34;&gt;543&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# os dbsu uid and gid, 26 for default postgres users and groups&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_dbsu_sudo&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;limit              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dbsu sudo privilege, none,limit,all,nopass. limit by default&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_dbsu_home&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;/var/lib/pgsql     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgresql home directory, `/var/lib/pgsql` by default&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_dbsu_ssh_exchange&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;c&#34;&gt;# exchange postgres dbsu ssh key among same pgsql cluster&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_version&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;m&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres major version to be installed, 18 by default&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_bin_dir&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;/usr/pgsql/bin       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres binary dir, `/usr/pgsql/bin` by default&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_log_dir&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/log/postgres     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres log dir, `/pg/log/postgres` by default&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_packages&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;# pg packages to be installed, alias can be used&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;l&#34;&gt;pgsql-main pgsql-common&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;c&#34;&gt;# pg extensions to be installed, alias can be used&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;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;c&#34;&gt;# PG_BOOTSTRAP&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;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_data&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/data                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres data directory, `/pg/data` by default&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_fs_main&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;/data/postgres       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres main data directory, `/data/postgres` by default&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_fs_backup&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;/data/backups      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres backup data directory, `/data/backups` by default&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_storage_type&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;SSD             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# storage type for pg main data, SSD,HDD, SSD by default&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_dummy_filesize&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;64MiB         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# size of `/pg/dummy`, hold 64MB disk space for emergency use&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_listen&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;0.0.0.0&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres/pgbouncer listen addresses, comma separated list&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_port&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;m&#34;&gt;5432&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres listen port, 5432 by default&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_localhost&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;/var/run/postgresql&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres unix socket dir for localhost connection&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;patroni_enabled&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;c&#34;&gt;# if disabled, no postgres cluster will be created during init&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;patroni_mode&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;default            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni working mode: default,pause,remove&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_namespace&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                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# top level key namespace in etcd, used by patroni &amp;amp; vip&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;patroni_port&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;m&#34;&gt;8008&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni listen port, 8008 by default&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;patroni_log_dir&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/log/patroni &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni log dir, `/pg/log/patroni` by default&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;patroni_ssl_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# secure patroni RestAPI communications with SSL?&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;patroni_watchdog_mode&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;off&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni watchdog mode: automatic,required,off. off by default&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;patroni_username&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;postgres       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni restapi username, `postgres` by default&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;patroni_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;l&#34;&gt;Patroni.API    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# patroni restapi password, `Patroni.API` by default&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_etcd_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;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# etcd password for this pg cluster, &amp;#39;&amp;#39; to use pg_cluster&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_primary_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;l&#34;&gt;postgres          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# primary database name, used by citus,etc... ,postgres by default&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_parameters&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;c&#34;&gt;# extra parameters in postgresql.auto.conf&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_files&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;c&#34;&gt;# extra files to be copied to postgres data directory (e.g. license)&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_conf&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;oltp.yml                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# config template: oltp,olap,crit,tiny. `oltp.yml` by default&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_max_conn&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;auto                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres max connections, `auto` will use recommended value&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_shared_buffer_ratio&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;m&#34;&gt;0.25&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# postgres shared buffers ratio, 0.25 by default, 0.1~0.4&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_io_method&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;worker             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# io method for postgres, auto,fsync,worker,io_uring, worker by default&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_rto&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;norm                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# shared rto mode for patroni &amp;amp; haproxy: fast,norm,safe,wide&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_rto_plan&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;# [ttl, loop, retry, start, margin, inter, fastinter, downinter, rise, fall]&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;fast&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;m&#34;&gt;20&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;m&#34;&gt;5&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;m&#34;&gt;5&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;m&#34;&gt;15&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;m&#34;&gt;5&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;s1&#34;&gt;&amp;#39;1s&amp;#39;&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;s1&#34;&gt;&amp;#39;0.5s&amp;#39;&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;s1&#34;&gt;&amp;#39;1s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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;norm&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;m&#34;&gt;30&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;m&#34;&gt;5&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;m&#34;&gt;10&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;m&#34;&gt;25&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;m&#34;&gt;5&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;s1&#34;&gt;&amp;#39;2s&amp;#39;&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;s1&#34;&gt;&amp;#39;1s&amp;#39;&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;s1&#34;&gt;&amp;#39;2s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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;safe&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;m&#34;&gt;60&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;m&#34;&gt;10&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;m&#34;&gt;20&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;m&#34;&gt;45&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;m&#34;&gt;10&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;s1&#34;&gt;&amp;#39;3s&amp;#39;&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;s1&#34;&gt;&amp;#39;1.5s&amp;#39;&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;s1&#34;&gt;&amp;#39;3s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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;wide&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;m&#34;&gt;120&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;m&#34;&gt;20&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;m&#34;&gt;30&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;m&#34;&gt;95&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;m&#34;&gt;15&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;s1&#34;&gt;&amp;#39;4s&amp;#39;&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;s1&#34;&gt;&amp;#39;2s&amp;#39;&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;s1&#34;&gt;&amp;#39;4s&amp;#39;&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;m&#34;&gt;3&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;m&#34;&gt;3&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;&#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_rpo&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;m&#34;&gt;1048576&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# recovery point objective in bytes, `1MiB` at most by default&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;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;# preloaded libraries, `pg_stat_statements,auto_explain` by default&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_delay&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;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replication apply delay for standby cluster leader&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_checksum&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;c&#34;&gt;# enable data checksum for postgres cluster?&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_pwd_enc&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;scram-sha-256        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# password encryption algorithm&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_encoding&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;UTF8                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database cluster encoding, `UTF8` by default&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_locale&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;C                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database cluster local, `C` by default&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_lc_collate&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;C                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database cluster collate, `C` by default&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_lc_ctype&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;C                   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database character type, `C` by default&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;c&#34;&gt;#pgsodium_key: &amp;#34;&amp;#34;                 # pgsodium key, 64 hex digit, default to sha256(pg_cluster)&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;c&#34;&gt;#pgsodium_getkey_script: &amp;#34;&amp;#34;       # pgsodium getkey script path, pgsodium_getkey by default&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;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;c&#34;&gt;# PG_PROVISION&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;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_provision&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;c&#34;&gt;# provision postgres cluster after bootstrap&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_init&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-init                 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# provision init script for cluster template, `pg-init` by default&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_default_roles&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;# default roles and users in postgres cluster&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;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;dbrole_readonly  ,login&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;false ,comment&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;role for global read-only access     }&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;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;dbrole_offline   ,login&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;false ,comment&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;role for restricted read-only access }&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;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;dbrole_readwrite ,login&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;false ,roles&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;[dbrole_readonly] ,comment&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;role for global read-write access }&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;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;dbrole_admin     ,login&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;false ,roles&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;[pg_monitor, dbrole_readwrite] ,comment&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;role for object creation }&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;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;postgres     ,superuser&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;true  ,comment&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;system superuser }&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;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;replicator ,replication&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;true  ,roles&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;[pg_monitor, dbrole_readonly] ,comment&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;system replicator }&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;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_dba   ,superuser&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;true  ,roles&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;[dbrole_admin]  ,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;nt&#34;&gt;true ,pool_mode&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;session, pool_connlimit&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;16 ,comment&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;pgsql admin user }&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;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_monitor ,roles&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;[pg_monitor, dbrole_readonly] ,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;nt&#34;&gt;true ,parameters&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;log_min_duration_statement&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;1000 } ,pool_mode&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;session ,pool_connlimit&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;8 ,comment&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;pgsql monitor user }&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_default_privileges&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;# default privileges when created by admin user&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;l&#34;&gt;GRANT USAGE      ON SCHEMAS    TO  dbrole_readonly&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;l&#34;&gt;GRANT SELECT     ON TABLES     TO  dbrole_readonly&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;l&#34;&gt;GRANT SELECT     ON SEQUENCES  TO  dbrole_readonly&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;l&#34;&gt;GRANT EXECUTE    ON FUNCTIONS  TO  dbrole_readonly&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;l&#34;&gt;GRANT USAGE      ON SCHEMAS    TO  dbrole_offline&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;l&#34;&gt;GRANT SELECT     ON TABLES     TO  dbrole_offline&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;l&#34;&gt;GRANT SELECT     ON SEQUENCES  TO  dbrole_offline&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;l&#34;&gt;GRANT EXECUTE    ON FUNCTIONS  TO  dbrole_offline&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;l&#34;&gt;GRANT INSERT     ON TABLES     TO  dbrole_readwrite&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;l&#34;&gt;GRANT UPDATE     ON TABLES     TO  dbrole_readwrite&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;l&#34;&gt;GRANT DELETE     ON TABLES     TO  dbrole_readwrite&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;l&#34;&gt;GRANT USAGE      ON SEQUENCES  TO  dbrole_readwrite&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;l&#34;&gt;GRANT UPDATE     ON SEQUENCES  TO  dbrole_readwrite&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;l&#34;&gt;GRANT TRUNCATE   ON TABLES     TO  dbrole_admin&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;l&#34;&gt;GRANT REFERENCES ON TABLES     TO  dbrole_admin&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;l&#34;&gt;GRANT TRIGGER    ON TABLES     TO  dbrole_admin&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;l&#34;&gt;GRANT CREATE     ON SCHEMAS    TO  dbrole_admin&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_default_schemas&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;monitor ]  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default schemas to be created&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_default_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;c&#34;&gt;# default extensions to be created&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;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;pg_stat_statements ,schema&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;monitor }&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;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;pgstattuple        ,schema&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;monitor }&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;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;pg_buffercache     ,schema&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;monitor }&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;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;pageinspect        ,schema&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;monitor }&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;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;pg_prewarm         ,schema&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;monitor }&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;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;pg_visibility      ,schema&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;monitor }&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;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;pg_freespacemap    ,schema&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;monitor }&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;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;postgres_fdw       ,schema&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;public  }&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;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;file_fdw           ,schema&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;public  }&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;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;btree_gist         ,schema&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;public  }&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;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;btree_gin          ,schema&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;public  }&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;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;pg_trgm            ,schema&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;public  }&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;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;intagg             ,schema&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;public  }&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;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;intarray           ,schema&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;public  }&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;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;pg_repack }&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_reload&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;c&#34;&gt;# reload postgres after hba changes&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_default_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;# postgres default host-based authentication rules, order by `order`&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;s1&#34;&gt;&amp;#39;${dbsu}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;local     ,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;ident ,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;nt&#34;&gt;&amp;#39;dbsu access via local os user ident&amp;#39;  ,order&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;m&#34;&gt;100&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;s1&#34;&gt;&amp;#39;${dbsu}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;replication ,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;local     ,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;ident ,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;nt&#34;&gt;&amp;#39;dbsu replication from local os ident&amp;#39; ,order&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;m&#34;&gt;150&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;s1&#34;&gt;&amp;#39;${repl}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;replication ,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;localhost ,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;nt&#34;&gt;&amp;#39;replicator replication from localhost&amp;#39;,order&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;m&#34;&gt;200&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;s1&#34;&gt;&amp;#39;${repl}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;replication ,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;nt&#34;&gt;&amp;#39;replicator replication from intranet&amp;#39; ,order&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;m&#34;&gt;250&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;s1&#34;&gt;&amp;#39;${repl}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;postgres    ,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;nt&#34;&gt;&amp;#39;replicator postgres db from intranet&amp;#39; ,order&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;m&#34;&gt;300&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;localhost ,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;nt&#34;&gt;&amp;#39;monitor from localhost with password&amp;#39; ,order&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;m&#34;&gt;350&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;infra     ,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;nt&#34;&gt;&amp;#39;monitor from infra host with password&amp;#39;,order&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;m&#34;&gt;400&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;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;nt&#34;&gt;&amp;#39;admin @ intranet nodes with pwd&amp;#39;      ,order&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;m&#34;&gt;450&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;nt&#34;&gt;&amp;#39;admin @ everywhere with ssl &amp;amp; pwd&amp;#39;    ,order&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;m&#34;&gt;500&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;&amp;#39;+dbrole_readonly&amp;#39;,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;localhost ,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;nt&#34;&gt;&amp;#39;pgbouncer read/write via local socket&amp;#39;,order&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;m&#34;&gt;550&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;&amp;#39;+dbrole_readonly&amp;#39;,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;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;nt&#34;&gt;&amp;#39;read/write biz user via password&amp;#39;     ,order&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;m&#34;&gt;600&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;&amp;#39;+dbrole_offline&amp;#39; ,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;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;nt&#34;&gt;&amp;#39;allow etl offline tasks from intranet&amp;#39;,order&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;m&#34;&gt;650&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;pgb_default_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;# pgbouncer default host-based authentication rules, order by `order`&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;s1&#34;&gt;&amp;#39;${dbsu}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;pgbouncer   ,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;local     ,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;peer  ,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;nt&#34;&gt;&amp;#39;dbsu local admin access with os ident&amp;#39;,order&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;m&#34;&gt;100&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;&amp;#39;all&amp;#39;        ,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;localhost ,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;nt&#34;&gt;&amp;#39;allow all user local access with pwd&amp;#39; ,order&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;m&#34;&gt;150&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;pgbouncer   ,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;nt&#34;&gt;&amp;#39;monitor access via intranet with pwd&amp;#39; ,order&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;m&#34;&gt;200&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;s1&#34;&gt;&amp;#39;${monitor}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;deny  ,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;nt&#34;&gt;&amp;#39;reject all other monitor access addr&amp;#39; ,order&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;m&#34;&gt;250&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;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;nt&#34;&gt;&amp;#39;admin access via intranet with pwd&amp;#39;   ,order&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;m&#34;&gt;300&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;s1&#34;&gt;&amp;#39;${admin}&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,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;deny  ,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;nt&#34;&gt;&amp;#39;reject all other admin access addr&amp;#39;   ,order&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;m&#34;&gt;350&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;&amp;#39;all&amp;#39;        ,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;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;nt&#34;&gt;&amp;#39;allow all user intra access with pwd&amp;#39; ,order&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;m&#34;&gt;400&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;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;c&#34;&gt;# PG_BACKUP&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;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;pgbackrest_enabled&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;c&#34;&gt;# enable pgbackrest on pgsql host?&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;pgbackrest_log_dir&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/log/pgbackrest&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbackrest log dir, `/pg/log/pgbackrest` by default&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;pgbackrest_method&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;local         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbackrest repo method: local,minio,[user-defined...]&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;pgbackrest_init_backup&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;c&#34;&gt;# take a full backup after pgbackrest is initialized?&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;pgbackrest_repo&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;# pgbackrest repo: https://pgbackrest.org/configuration.html#section-repository&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;local&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;# default pgbackrest repo with local posix fs&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;path&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/backup             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# local backup directory, `/pg/backup` by default&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;retention_full_type&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;count   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# retention full backups by count&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;retention_full&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;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keep 2, at most 3 full backups when using local fs repo&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;minio&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;# optional minio repo for pgbackrest&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;type&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;s3                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio is s3-compatible, so s3 is used&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;s3_endpoint&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;sss.pigsty      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio endpoint domain name, `sss.pigsty` by default&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;s3_region&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;us-east-1         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio region, us-east-1 by default, useless for minio&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;s3_bucket&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;pgsql             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio bucket name, `pgsql` by default&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;s3_key&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;pgbackrest           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio user access key for pgbackrest&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;s3_key_secret&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;S3User.Backup &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio user secret key for pgbackrest&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;s3_uri_style&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;path           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# use path style uri for minio rather than host style&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;path&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;/pgbackrest            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio backup path, default is `/pgbackrest`&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;storage_port&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;m&#34;&gt;9000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio port, 9000 by default&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;storage_ca_file&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;/etc/pki/ca.crt &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio ca file path, `/etc/pki/ca.crt` by default&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;block&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;y&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Enable block incremental backup&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;bundle&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;y&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# bundle small files into a single file&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;bundle_limit&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;20MiB          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Limit for file bundles, 20MiB for object storage&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;bundle_size&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;128MiB          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Target size for file bundles, 128MiB for object storage&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;cipher_type&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;aes-256-cbc     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable AES encryption for remote backup repo&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;cipher_pass&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;pgBackRest      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# AES encryption password, default is &amp;#39;pgBackRest&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;retention_full_type&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;time    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# retention full backup by time on minio repo&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;retention_full&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;m&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keep full backup for the the last 14 days&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;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;c&#34;&gt;# PG_ACCESS&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;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;pgbouncer_enabled&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;c&#34;&gt;# if disabled, pgbouncer will not be launched on pgsql host&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;pgbouncer_port&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;m&#34;&gt;6432&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;              &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer listen port, 6432 by default&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;pgbouncer_log_dir&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/log/pgbouncer &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer log dir, `/pg/log/pgbouncer` by default&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;pgbouncer_auth_query&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# query postgres to retrieve unlisted business users?&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;pgbouncer_poolmode&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;transaction  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pooling mode: transaction,session,statement, transaction by default&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;pgbouncer_sslmode&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;disable       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer client ssl mode, disable by default&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;pgbouncer_ignore_param&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;extra_float_digits, application_name, TimeZone, DateStyle, IntervalStyle, search_path ]&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_weight&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;m&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;#INSTANCE # relative load balance weight in service, 100 by default, 0-255&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_service_provider&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# dedicate haproxy node group name, or empty string for local nodes by default&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_default_service_dest&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;pgbouncer&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default service destination if svc.dest=&amp;#39;default&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;pg_default_services&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;# postgres default service definitions&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;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;primary ,port&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;5433 ,dest&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;default  ,check&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;/primary   ,selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;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;replica ,port&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;5434 ,dest&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;default  ,check&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;/read-only ,selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, backup&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;s2&#34;&gt;&amp;#34;[? pg_role == `primary` || pg_role == `offline` ]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;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;default ,port&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;5436 ,dest&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;postgres ,check&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;/primary   ,selector&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;s2&#34;&gt;&amp;#34;[]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;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;offline ,port&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;5438 ,dest&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;postgres ,check&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;/replica   ,selector&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;s2&#34;&gt;&amp;#34;[? pg_role == `offline` || pg_offline_query ]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, backup&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;s2&#34;&gt;&amp;#34;[? pg_role == `replica` &amp;amp;&amp;amp; !pg_offline_query]&amp;#34;&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_vip_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable a l2 vip for pgsql primary? false by default&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_vip_address&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;m&#34;&gt;127.0.0.1&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/24     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vip address in `&amp;lt;ipv4&amp;gt;/&amp;lt;mask&amp;gt;` format, require if vip is enabled&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_vip_interface&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;auto           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# vip network interface to listen, auto by default&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_dns_suffix&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgsql dns suffix, &amp;#39;&amp;#39; by default&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_dns_target&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;auto              &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# auto, primary, vip, none, or ad hoc ip&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;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;c&#34;&gt;# PG_MONITOR&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;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_exporter_enabled&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;c&#34;&gt;# enable pg_exporter on pgsql hosts?&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_exporter_config&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_exporter.yml   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter configuration file name&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_exporter_cache_ttls&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;1,10,60,300&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter collector ttl stage in seconds, &amp;#39;1,10,60,300&amp;#39; by default&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_exporter_port&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;m&#34;&gt;9630&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                 &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter listen port, 9630 by default&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_exporter_params&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;sslmode=disable&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# extra url parameters for pg_exporter dsn&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_exporter_url&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite auto-generate pg dsn if specified&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_exporter_auto_discovery&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;c&#34;&gt;# enable auto database discovery? enabled by default&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_exporter_exclude_database&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;template0,template1,postgres&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# csv of database that WILL NOT be monitored during auto-discovery&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_exporter_include_database&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# csv of database that WILL BE monitored during auto-discovery&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_exporter_connect_timeout&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;m&#34;&gt;200&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;       &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pg_exporter connect timeout in ms, 200 by default&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_exporter_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite extra options for pg_exporter&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;pgbouncer_exporter_enabled&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;c&#34;&gt;# enable pgbouncer_exporter on pgsql hosts?&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;pgbouncer_exporter_port&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;m&#34;&gt;9631&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbouncer_exporter listen port, 9631 by default&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;pgbouncer_exporter_url&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite auto-generate pgbouncer dsn if specified&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;pgbouncer_exporter_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# overwrite extra options for pgbouncer_exporter&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;pgbackrest_exporter_enabled&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;c&#34;&gt;# enable pgbackrest_exporter on pgsql hosts?&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;pgbackrest_exporter_port&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;m&#34;&gt;9854&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgbackrest_exporter listen port, 9854 by default&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;pgbackrest_exporter_options&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;&amp;gt;-&lt;/span&gt;&lt;span class=&#34;sd&#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;sd&#34;&gt;      --collect.interval=120&#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;sd&#34;&gt;      --log.level=info&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;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;c&#34;&gt;# PG_REMOVE&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;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_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# stop pg_remove running if pg_safeguard is enabled, false by default&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_rm_data&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;c&#34;&gt;# remove postgres data during remove? true by default&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_rm_backup&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;c&#34;&gt;# remove pgbackrest backup during primary remove? true by default&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_rm_pkg&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;c&#34;&gt;# uninstall postgres packages during remove? true by default&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;demo/debian&lt;/code&gt; template is optimized for Debian and Ubuntu distributions.&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/demo</title>
        <link>https://pgsty.pro/docs/conf/demo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/demo/</guid>
        <description>&lt;p&gt;The &lt;code&gt;demo/demo&lt;/code&gt; configuration template is used by Pigsty&amp;rsquo;s public demo site, demonstrating how to expose services publicly, configure SSL certificates, and install all available extensions.&lt;/p&gt;&#xA;&lt;p&gt;If you want to set up your own public service on a cloud server, you can use this template as a reference.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/demo&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Description: Pigsty public demo site configuration&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el8&lt;/code&gt;, &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/rich/&#34;&gt;&lt;code&gt;rich&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/kernel</title>
        <link>https://pgsty.pro/docs/conf/kernel/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/kernel/</guid>
        <description>&lt;p&gt;The &lt;code&gt;demo/kernel&lt;/code&gt; configuration template demonstrates the major PostgreSQL kernels and compatible branches supported by Pigsty in a single configuration. It is intended for feature validation and kernel difference testing, not production use.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/kernel&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: 10 nodes, with one node also hosting INFRA/ETCD and &lt;code&gt;pg-citus&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Description: PostgreSQL kernel matrix demo covering Citus, IvorySQL, Babelfish, PolarDB, Percona TDE, OrioleDB, OpenHalo, DocumentDB, AgensGraph, and pgEdge&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: depends on actual package support for each kernel&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: depends on actual package support for each kernel&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/pgsql/&#34;&gt;&lt;code&gt;pgsql&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/mssql/&#34;&gt;&lt;code&gt;mssql&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/mongo/&#34;&gt;&lt;code&gt;mongo&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/minio</title>
        <link>https://pgsty.pro/docs/conf/minio/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/minio/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/minio&lt;/code&gt; demonstrates a highly available S3 object-storage cluster with four nodes and four drives per node, for 16 drives total. The template retains MINIO module compatibility naming and explicitly sets &lt;code&gt;minio_type: silo&lt;/code&gt;; the current v4.5.0 source accepts only this value, and both deployment and removal roles default to &lt;code&gt;silo&lt;/code&gt;. Still verify it together with the exact target, cluster identity, and data paths before removal.&lt;/p&gt;&#xA;&lt;p&gt;For more tutorials, see the &lt;strong&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;MINIO&lt;/a&gt;&lt;/strong&gt; module documentation.&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/redis</title>
        <link>https://pgsty.pro/docs/conf/redis/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/redis/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/redis&lt;/code&gt; demonstrates standalone/replica, Sentinel, and native Cluster modes supported by Pigsty&amp;rsquo;s Redis module in one configuration.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/redis&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: 4&lt;/li&gt;&#xA;&lt;li&gt;Clusters: &lt;code&gt;redis-ms&lt;/code&gt;, &lt;code&gt;redis-meta&lt;/code&gt;, &lt;code&gt;redis-test&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/demo/&#34;&gt;&lt;code&gt;demo/demo&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-6dd5584a-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-6dd5584a-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;./configure -c demo/redis -s&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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/demo/redis.yml&#34;&gt;&lt;code&gt;pigsty/conf/demo/redis.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-6dd5584a-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;79&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-6dd5584a-include-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;nn&#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;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;c&#34;&gt;# File      :   redis.yml&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;c&#34;&gt;# Desc      :   pigsty config for redis clusters&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;c&#34;&gt;# Ctime     :   2022-11-09&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;c&#34;&gt;# Mtime     :   2026-08-02&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/redis&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;nt&#34;&gt;all&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;children&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# infra cluster for proxy, monitor, alert, etc..&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;infra&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;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;infra_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;m&#34;&gt;1&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;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redis-ms&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;# redis classic primary &amp;amp; replica&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;redis_node&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 , redis_instances&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;6379&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;}, 6380&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;replica_of&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;10.10.10.10 6379&amp;#39;&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;vars&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;redis_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;nt&#34;&gt;redis-ms ,redis_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;redis.ms&amp;#39; ,redis_max_memory&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;64MB }&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redis-meta&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;# redis sentinel x 3&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.11&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;redis_node&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 , redis_instances&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;26379&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;} ,26380&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;} ,26381&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;w&#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;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;redis_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;redis-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;redis_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;s1&#34;&gt;&amp;#39;redis.meta&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;redis_mode&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;sentinel&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;redis_max_memory&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;16MB&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;redis_sentinel_monitor&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;# primary list for redis sentinel, use cls as name, primary ip:port&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;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;redis-ms, host&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;10.10.10.10, port&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;6379 ,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;redis.ms, quorum&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;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;redis-test&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;# redis native cluster: 3m x 3s&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;&#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;10.10.10.12&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;redis_node&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 ,redis_instances&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;6379&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;} ,6380&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;} ,6381&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;10.10.10.13&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;redis_node&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;2 ,redis_instances&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;6379&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;} ,6380&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;} ,6381&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;vars&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;redis_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;nt&#34;&gt;redis-test ,redis_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;redis.test&amp;#39; ,redis_mode&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;cluster, redis_max_memory&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;32MB }&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;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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin node ip address&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;region&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream mirror region: default|china|europe&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;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;c&#34;&gt;#                         VARS: REDIS                            #&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;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;c&#34;&gt;# redis identity&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;c&#34;&gt;#redis_cluster:         &amp;lt;CLUSTER&amp;gt; # redis cluster name, required identity parameter&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;c&#34;&gt;#redis_node: 1             &amp;lt;NODE&amp;gt; # redis node sequence number, node int id required&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;c&#34;&gt;#redis_instances: {}       &amp;lt;NODE&amp;gt; # redis instances definition on this redis node&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis node&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;redis_fs_main&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;/data/redis       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis main data directory, `/data/redis` by default&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;redis_exporter_enabled&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;c&#34;&gt;# install redis exporter on redis nodes?&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;redis_exporter_port&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;m&#34;&gt;9121&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis exporter listen port, 9121 by default&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;redis_exporter_options&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;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# cli args and extra options for redis exporter&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;redis_type&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;redis                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis implementation: redis or valkey&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis instance&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;redis_mode&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;standalone           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis mode: standalone,cluster,sentinel&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;redis_conf&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;redis.conf           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis config template path, except sentinel&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;redis_bind_address&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;0.0.0.0&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis bind address, empty string will use host ip&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;redis_max_memory&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;32MB           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# max memory used by each redis instance&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;redis_mem_policy&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;allkeys-lru    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis memory eviction policy&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;redis_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;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# redis password, empty string will disable password&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;redis_rdb_save&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;s1&#34;&gt;&amp;#39;1200 1&amp;#39;&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;# redis rdb save directives, disable with empty list&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;redis_aof_enabled&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable redis append only file?&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;redis_rename_commands&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;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# rename redis dangerous commands&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;redis_cluster_replicas&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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;         &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# replica number for one master in redis cluster&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;redis_sentinel_monitor&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;c&#34;&gt;# sentinel master list, works on sentinel cluster only&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;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;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;c&#34;&gt;# PASSWORD : https://pigsty.io/docs/setup/security/&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;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;grafana_admin_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;l&#34;&gt;pigsty&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;haproxy_admin_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;l&#34;&gt;pigsty&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;redis-ms&lt;/code&gt;: a &lt;code&gt;6379&lt;/code&gt; primary and &lt;code&gt;6380&lt;/code&gt; replica on one node&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;redis-meta&lt;/code&gt;: three Sentinel instances monitoring the &lt;code&gt;redis-ms&lt;/code&gt; primary&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;redis-test&lt;/code&gt;: a native Redis Cluster across two nodes with three instances per node&lt;/li&gt;&#xA;&lt;li&gt;Small per-instance memory limits keep the topology suitable for demonstrations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The IP addresses, passwords, and memory limits are demonstration values. Adjust them to the real topology, then install the Redis module with the &lt;a href=&#34;https://pgsty.pro/docs/redis/&#34;&gt;&lt;code&gt;redis.yml&lt;/code&gt;&lt;/a&gt; playbook.&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/kafka</title>
        <link>https://pgsty.pro/docs/conf/kafka/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/kafka/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/kafka&lt;/code&gt; declares two Kafka 4.x dynamic KRaft clusters across four nodes: the plaintext single-node development cluster &lt;code&gt;kf-meta&lt;/code&gt;, and the three-node TLS/SCRAM/ACL demonstration cluster &lt;code&gt;kf-test&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/kafka&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: 4&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;kf-meta&lt;/code&gt;: Single combined Broker/Controller node in plaintext mode&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;kf-test&lt;/code&gt;: Three combined nodes with TLS/SCRAM/ACL, topic replication factor 3, and &lt;code&gt;min.insync.replicas=2&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Module Status: KAFKA BETA&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-66d61a59-fence-0&#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-66d61a59-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;./configure -c demo/kafka -s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./deploy.yml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./kafka.yml -l kf-meta&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./kafka.yml -l kf-test&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;&lt;code&gt;deploy.yml&lt;/code&gt; only deploys the core path and does not run the KAFKA playbook automatically. Each &lt;code&gt;kafka.yml&lt;/code&gt; run must select one complete Kafka cluster; the role rejects convergence against only part of a cluster.&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/mysql</title>
        <link>https://pgsty.pro/docs/conf/mysql84/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/mysql84/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/mysql&lt;/code&gt; is the four-node example for the native MySQL 8.4 LTS pilot module. It is distinct from &lt;a href=&#34;https://pgsty.pro/docs/conf/mysql/&#34;&gt;&lt;code&gt;conf/mysql.yml&lt;/code&gt;&lt;/a&gt;, which provides MySQL protocol compatibility through the OpenHalo PostgreSQL kernel.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/mysql&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: 4&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;my-meta&lt;/code&gt;: Standalone MySQL 8.4 instance&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;my-test&lt;/code&gt;: Three-node, single-primary InnoDB Cluster with MySQL Router on every member&lt;/li&gt;&#xA;&lt;li&gt;Module Status: MYSQL PILOT; not included in the stable module count&lt;/li&gt;&#xA;&lt;li&gt;Platform Boundary: Supported declared x86_64 RPM/DEB platforms and EL9/EL10 aarch64. Oracle APT currently has no arm64 component, so preflight rejects Debian/Ubuntu ARM.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Replace every &lt;code&gt;CHANGE_ME&lt;/code&gt; value in the template. Real deployment also requires explicit approval. Start with read-only preflight checks:&lt;/p&gt;</description>
      </item>
    <item>
        <title>build/oss</title>
        <link>https://pgsty.pro/docs/conf/oss/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/oss/</guid>
        <description>&lt;p&gt;The &lt;code&gt;build/oss&lt;/code&gt; configuration template is the build environment configuration for Pigsty open-source edition offline packages, used to batch-build offline installation packages across multiple operating systems.&lt;/p&gt;&#xA;&lt;p&gt;This configuration is intended for developers and contributors only.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;build/oss&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Seven nodes (el9, el10, d12, d13, u22, u24, u26)&lt;/li&gt;&#xA;&lt;li&gt;Description: Pigsty open-source edition offline package build environment&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;el10&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;d13&lt;/code&gt;, &lt;code&gt;u22&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;, &lt;code&gt;u26&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>build/dev</title>
        <link>https://pgsty.pro/docs/conf/dev/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/dev/</guid>
        <description>&lt;p&gt;The &lt;code&gt;build/dev&lt;/code&gt; configuration template is Pigsty&amp;rsquo;s three-node local build and development environment. It is used to validate repository build and package download workflows across EL9, Debian 12, and Ubuntu 24 nodes.&lt;/p&gt;&#xA;&lt;p&gt;This template is intended only for developers and contributors.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;build/dev&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Three nodes (&lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Description: Local build and development environment, default PostgreSQL 18, builds the &lt;code&gt;infra,node,pgsql&lt;/code&gt; modules&lt;/li&gt;&#xA;&lt;li&gt;OS Distro: &lt;code&gt;el9&lt;/code&gt;, &lt;code&gt;d12&lt;/code&gt;, &lt;code&gt;u24&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;OS Arch: &lt;code&gt;x86_64&lt;/code&gt;, &lt;code&gt;aarch64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/oss/&#34;&gt;&lt;code&gt;build/oss&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Usage:&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/remote</title>
        <link>https://pgsty.pro/docs/conf/remote/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/remote/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/remote&lt;/code&gt; deploys no local PostgreSQL cluster. Instead, it declares multiple &lt;code&gt;pg_exporters&lt;/code&gt; on an INFRA node to monitor remote PostgreSQL, PolarDB, or cloud RDS instances.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/remote&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Local Node Count: One INFRA node&lt;/li&gt;&#xA;&lt;li&gt;Example Exporter Ports: &lt;code&gt;20001&lt;/code&gt;-&lt;code&gt;20016&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pigsty.io/docs/pg_exporter/&#34;&gt;PG Exporter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-841c5fab-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-841c5fab-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;./configure -c demo/remote &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;infra_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/demo/remote.yml&#34;&gt;&lt;code&gt;pigsty/conf/demo/remote.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-841c5fab-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;87&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-841c5fab-include-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;nn&#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;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;c&#34;&gt;# File      :   remote.yml&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;c&#34;&gt;# Desc      :   Monitoring Remote RDS with pigsty&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;c&#34;&gt;# Ctime     :   2020-05-22&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;c&#34;&gt;# Mtime     :   2025-12-12&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/conf&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;nt&#34;&gt;all&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;children&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;infra&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;# infra cluster for proxy, monitor, alert, etc..&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;infra_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;m&#34;&gt;1&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;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;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# install pg_exporter for remote postgres RDS on a group &amp;#39;infra&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;pg_exporters&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;# list all remote instances here, alloc a unique unused local port as k&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;20001&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_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;nt&#34;&gt;pg-foo, 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_host&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#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;20002&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_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;nt&#34;&gt;pg-bar, 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_host&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;10.10.10.11 , pg_port&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;m&#34;&gt;5432&lt;/span&gt;&lt;span class=&#34;w&#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;20003&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_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;nt&#34;&gt;pg-bar, 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;2, pg_host&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;10.10.10.12 , pg_exporter_url&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;postgres://dbuser_monitor:DBUser.Monitor@10.10.10.12:5432/postgres?sslmode=disable&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;20004&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_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;nt&#34;&gt;pg-bar, 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;3, pg_host&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;10.10.10.13 , pg_monitor_username&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_monitor, pg_monitor_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;l&#34;&gt;DBUser.Monitor }&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;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;20011&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-polar                       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Cluster Name (Identity, Explicitly Assigned, used as &amp;#39;cls&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;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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Instance Seq (Identity, Explicitly Assigned, used as part of &amp;#39;ins&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;pg_host&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;pxx.polardbpg.rds.aliyuncs.com    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Host Address&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_port&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;m&#34;&gt;1921&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Port&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_exporter_include_database&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;test&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Only monitoring database in this list&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_monitor_username&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;dbuser_monitor        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# monitor username, overwrite default&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_monitor_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;l&#34;&gt;DBUser_Monitor        &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# monitor password, overwrite default&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;test }]             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database to be added to grafana datasource&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;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;20012&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-polar                       &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Cluster Name (Identity, Explicitly Assigned, used as &amp;#39;cls&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;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;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                                   &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Instance Seq (Identity, Explicitly Assigned, used as part of &amp;#39;ins&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;pg_host&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;pe-xx.polarpgmxs.rds.aliyuncs.com &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Host Address&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_port&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;m&#34;&gt;1521&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# RDS Port&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;test }]             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# database to be added to grafana datasource&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;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;20014&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-rds&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_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;m&#34;&gt;1&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_host&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;pgm-xx.pg.rds.aliyuncs.com&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_port&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;m&#34;&gt;5432&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_exporter_auto_discovery&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;&#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_exporter_include_database&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;rds&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;pg_monitor_username&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;dbuser_monitor&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_monitor_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;l&#34;&gt;DBUser_Monitor&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;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;rds } ]&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;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;20015&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-rdsha&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_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;m&#34;&gt;1&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_host&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;pgm-2xx8wu.pg.rds.aliyuncs.com&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_port&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;m&#34;&gt;5432&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_exporter_auto_discovery&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;&#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_exporter_include_database&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;rds&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;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;test }, {name: rds}]&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;w&#34;&gt;          &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;20016&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-rdsha&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_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;m&#34;&gt;2&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_host&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;pgr-xx.pg.rds.aliyuncs.com&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_exporter_auto_discovery&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;&#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_exporter_include_database&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;rds&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;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;test }, {name: rds}]&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;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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin node ip address&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;region&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream mirror region: default,china,europe&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;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;c&#34;&gt;# PASSWORD : https://pigsty.io/docs/setup/security/&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;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;grafana_admin_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;l&#34;&gt;pigsty&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;grafana_view_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;l&#34;&gt;DBUser.Viewer&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_admin_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;l&#34;&gt;DBUser.DBA&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_monitor_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;l&#34;&gt;DBUser.Monitor&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_replication_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;l&#34;&gt;DBUser.Replicator&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;patroni_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;l&#34;&gt;Patroni.API&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;haproxy_admin_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;l&#34;&gt;pigsty&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;minio_secret_key&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;S3User.MinIO&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;etcd_root_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;l&#34;&gt;Etcd.Root&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Each &lt;code&gt;pg_exporters&lt;/code&gt; entry uses a unique local listen port and declares the remote instance&amp;rsquo;s &lt;code&gt;pg_cluster&lt;/code&gt;, &lt;code&gt;pg_seq&lt;/code&gt;, &lt;code&gt;pg_host&lt;/code&gt;, and optional connection settings. The template demonstrates complete URLs, split credentials, database allowlists, and auto-discovery.&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/saas</title>
        <link>https://pgsty.pro/docs/conf/saas/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/saas/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/saas&lt;/code&gt; is a legacy feature-rich single-node example with predefined business users, databases, and application entrypoints. It demonstrates how PostgreSQL, Silo, Redis, Docker, and the portal can be combined.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/saas&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Modules: INFRA, ETCD, MINIO, PGSQL, REDIS, DOCKER&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/rich/&#34;&gt;&lt;code&gt;rich&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pigsty.io/docs/conf/supabase/&#34;&gt;&lt;code&gt;supabase&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a1fb2ad5-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-a1fb2ad5-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;./configure -c demo/saas &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;primary_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/demo/saas.yml&#34;&gt;&lt;code&gt;pigsty/conf/demo/saas.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a1fb2ad5-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;175&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-a1fb2ad5-include-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;nn&#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;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;c&#34;&gt;# File      :   saas.yml (1-node)&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;c&#34;&gt;# Desc      :   Feature rich 1-node template with all extensions&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;c&#34;&gt;# Ctime     :   2020-05-22&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;c&#34;&gt;# Mtime     :   2025-12-12&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/conf&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;nt&#34;&gt;all&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;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;c&#34;&gt;# Clusters, Nodes, and Modules&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;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;children&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;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;c&#34;&gt;# infra: monitor, alert, repo, etc..&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;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;infra&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;&#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;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;infra_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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;docker_enabled&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;c&#34;&gt;# enabled docker with ./docker.yml&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;c&#34;&gt;#docker_registry_mirrors: [&amp;#34;https://docker.1panel.live&amp;#34;,&amp;#34;https://docker.1ms.run&amp;#34;,&amp;#34;https://docker.xuanyuan.me&amp;#34;,&amp;#34;https://registry-1.docker.io&amp;#34;]&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;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;c&#34;&gt;# etcd cluster for HA postgres DCS&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;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;etcd&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;&#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;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;etcd_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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;etcd_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;etcd&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;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;c&#34;&gt;# minio (OPTIONAL backup repo)&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;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;minio&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;&#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;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;minio_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;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#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;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;minio_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;minio&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;minio_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;c&#34;&gt;# list of minio user to be created&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;pgbackrest  ,secret_key&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;S3User.Backup ,policy&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;pgsql }&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;s3user_meta ,secret_key&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;S3User.Meta   ,policy&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;access_key&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;s3user_data ,secret_key&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;S3User.Data   ,policy&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;data  }&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;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;c&#34;&gt;# pgsql (singleton on current node)&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;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;c&#34;&gt;# postgres cluster: 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-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;&#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;nt&#34;&gt;dbuser_meta     ,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;DBUser.Meta     ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;pigsty admin user }&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;nt&#34;&gt;dbuser_view     ,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;DBUser.Viewer   ,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;nt&#34;&gt;true ,roles&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;[dbrole_readonly] ,comment&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;read-only viewer for meta database }&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;nt&#34;&gt;dbuser_grafana  ,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;DBUser.Grafana  ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;admin user for grafana database    }&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;nt&#34;&gt;dbuser_bytebase ,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;DBUser.Bytebase ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;admin user for bytebase database   }&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;nt&#34;&gt;dbuser_kong     ,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;DBUser.Kong     ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;admin user for kong api gateway    }&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;nt&#34;&gt;dbuser_gitea    ,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;DBUser.Gitea    ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;admin user for gitea service       }&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;nt&#34;&gt;dbuser_wiki     ,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;DBUser.Wiki     ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;admin user for wiki.js service     }&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;nt&#34;&gt;dbuser_noco     ,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;DBUser.Noco     ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;admin user for nocodb service      }&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;nt&#34;&gt;dbuser_odoo     ,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;DBUser.Odoo     ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;admin user for odoo service ,createdb&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;c&#34;&gt;#,superuser: true}&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;nt&#34;&gt;meta ,baseline&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;cmdb.sql ,comment&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;pigsty meta database ,schemas&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;[pigsty] ,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;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;vector},{name: postgis},{name: timescaledb}]}&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;nt&#34;&gt;grafana  ,owner&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_grafana  ,revokeconn&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;true ,comment&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;grafana primary database  }&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;nt&#34;&gt;bytebase ,owner&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_bytebase ,revokeconn&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;true ,comment&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;bytebase primary database }&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;nt&#34;&gt;kong     ,owner&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_kong     ,revokeconn&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;true ,comment&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;kong api gateway database }&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;nt&#34;&gt;gitea    ,owner&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_gitea    ,revokeconn&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;true ,comment&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;gitea meta database }&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;nt&#34;&gt;wiki     ,owner&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_wiki     ,revokeconn&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;true ,comment&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;wiki meta database  }&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;nt&#34;&gt;noco     ,owner&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_noco     ,revokeconn&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;true ,comment&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;nocodb database     }&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;c&#34;&gt;#- {name: odoo     ,owner: dbuser_odoo     ,revokeconn: true ,comment: odoo main database  }&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;&#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_view , 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;infra ,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;allow grafana dashboard access cmdb from infra nodes&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;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;# add timescaledb to shared_preload_libraries&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;node_crontab&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;# make one full backup 1 am everyday&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;s1&#34;&gt;&amp;#39;00 01 * * * /pg/bin/pg-backup full&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;&#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;redis-ms&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;# redis classic primary &amp;amp; replica&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;redis_node&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 , redis_instances&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;6379&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;}, 6380&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;replica_of&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;10.10.10.10 6379&amp;#39;&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;w&#34;&gt; &lt;/span&gt;}&lt;span class=&#34;w&#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;vars&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;redis_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;nt&#34;&gt;redis-ms ,redis_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;redis.ms&amp;#39; ,redis_max_memory&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;64MB }&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;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;                               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# global variables&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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# admin node ip address&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;region&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;default                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# upstream mirror region: default|china|europe&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;node_tune&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;oltp                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# node tuning specs: oltp,olap,tiny,crit&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_conf&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;oltp.yml                &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pgsql tuning specs: {oltp,olap,tiny,crit}.yml&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;proxy_env&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;# global proxy env when downloading packages&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;no_proxy&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;s2&#34;&gt;&amp;#34;localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.myqcloud.com,*.tsinghua.edu.cn&amp;#34;&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;c&#34;&gt;# http_proxy:  # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;c&#34;&gt;# https_proxy: # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;c&#34;&gt;# all_proxy:   # set your proxy here: e.g http://user:pass@proxy.xxx.com&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;infra_portal&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;# infra services exposed via portal&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;home         &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;domain&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;i.pigsty }    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default domain name&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;minio        &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;domain&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;m.pigsty    ,endpoint&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;s2&#34;&gt;&amp;#34;${admin_ip}:9001&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,scheme&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;https ,websocket&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;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;postgrest    &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;domain&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;api.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8884&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;pgadmin      &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;domain&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;adm.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8885&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;pgweb        &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;domain&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;cli.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8886&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;bytebase     &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;domain&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;ddl.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8887&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;jupyter      &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;domain&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;lab.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8888&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, websocket&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;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;gitea        &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;domain&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;git.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8889&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;wiki         &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;domain&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;wiki.pigsty ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:9002&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;noco         &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;domain&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;noco.pigsty ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:9003&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;supa         &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;domain&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;supa.pigsty ,endpoint&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;s2&#34;&gt;&amp;#34;10.10.10.10:8000&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, websocket&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;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;dify         &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;domain&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;dify.pigsty ,endpoint&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;s2&#34;&gt;&amp;#34;10.10.10.10:8001&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, websocket&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;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;odoo         &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;domain&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;odoo.pigsty, endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8069&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, websocket&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;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;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;c&#34;&gt;# MinIO Related Options&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;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;pgbackrest_method&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;minio         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# use minio as backup repo instead of &amp;#39;local&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;pgbackrest_repo&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;# pgbackrest repo: https://pgbackrest.org/configuration.html#section-repository&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;local&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;# default pgbackrest repo with local posix fs&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;path&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/backup             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# local backup directory, `/pg/backup` by default&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;retention_full_type&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;count   &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# retention full backups by count&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;retention_full&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;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keep 2, at most 3 full backup when using local fs repo&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;minio&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;# optional minio repo for pgbackrest&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;type&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;s3                     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio is s3-compatible, so s3 is used&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;s3_endpoint&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;sss.pigsty      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio endpoint domain name, `sss.pigsty` by default&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;s3_region&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;us-east-1         &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio region, us-east-1 by default, useless for minio&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;s3_bucket&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;pgsql             &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio bucket name, `pgsql` by default&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;s3_key&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;pgbackrest           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio user access key for pgbackrest&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;s3_key_secret&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;S3User.Backup &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio user secret key for pgbackrest&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;s3_uri_style&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;path           &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# use path style uri for minio rather than host style&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;path&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;/pgbackrest            &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio backup path, default is `/pgbackrest`&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;storage_port&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;m&#34;&gt;9000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio port, 9000 by default&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;storage_ca_file&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;/etc/pki/ca.crt &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# minio ca file path, `/etc/pki/ca.crt` by default&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;block&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;y&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Enable block incremental backup&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;bundle&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;y&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                     &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# bundle small files into a single file&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;bundle_limit&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;20MiB          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Limit for file bundles, 20MiB for object storage&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;bundle_size&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;128MiB          &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Target size for file bundles, 128MiB for object storage&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;cipher_type&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;aes-256-cbc     &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# enable AES encryption for remote backup repo&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;cipher_pass&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;pgBackRest      &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# AES encryption password, default is &amp;#39;pgBackRest&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;retention_full_type&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;time    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# retention full backup by time on minio repo&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;retention_full&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;m&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# keep full backup for last 14 days&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;node_etc_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;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;${admin_ip} i.pigsty sss.pigsty&amp;#34;&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;&#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;dns_records&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;s2&#34;&gt;&amp;#34;${admin_ip} api.pigsty adm.pigsty cli.pigsty ddl.pigsty lab.pigsty git.pigsty wiki.pigsty noco.pigsty supa.pigsty dify.pigsty odoo.pigsty&amp;#34;&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;&#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;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;c&#34;&gt;# Safe Guard&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;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;c&#34;&gt;# you can enable these flags after bootstrap, to prevent purging running etcd / pgsql instances&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;etcd_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;             &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running etcd instance?&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_safeguard&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;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;               &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# prevent purging running postgres instance? false by default&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;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;c&#34;&gt;# Repo, Node, Packages&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;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;repo_remove&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;c&#34;&gt;# remove existing repo on admin node during repo bootstrap&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;node_repo_remove&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;c&#34;&gt;# remove existing node repo for node managed by pigsty&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;repo_extra_packages&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;pg17-core ,pg18-time ,pg18-gis ,pg18-rag ,pg18-fts ,pg18-olap ,pg18-feat ,pg18-lang ,pg18-type ,pg18-util ,pg18-func ,pg18-admin ,pg18-stat ,pg18-sec ,pg18-fdw ,pg18-sim ,pg18-etl]&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_version&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;m&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;                    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default postgres version&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;c&#34;&gt;#pg_extensions: [ pg18-time ,pg18-gis ,pg18-rag ,pg18-fts ,pg18-olap ,pg18-feat ,pg18-lang ,pg18-type ,pg18-util ,pg18-func ,pg18-admin ,pg18-stat ,pg18-sec ,pg18-fdw ,pg18-sim ,pg18-etl]&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;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;c&#34;&gt;# PASSWORD : https://pigsty.io/docs/setup/security/&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;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;grafana_admin_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;l&#34;&gt;pigsty&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;grafana_view_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;l&#34;&gt;DBUser.Viewer&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_admin_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;l&#34;&gt;DBUser.DBA&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_monitor_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;l&#34;&gt;DBUser.Monitor&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_replication_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;l&#34;&gt;DBUser.Replicator&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;patroni_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;l&#34;&gt;Patroni.API&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;haproxy_admin_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;l&#34;&gt;pigsty&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;minio_secret_key&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;S3User.MinIO&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;etcd_root_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;l&#34;&gt;Etcd.Root&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The template contains placeholder database users and databases for Grafana, Bytebase, Kong, Gitea, Wiki, NocoDB, and Odoo. It uses Silo as the pgBackRest repository and includes a Redis replica example and multiple portal domains.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Core Concepts</title>
        <link>https://pgsty.pro/docs/pgsql/_div_concept/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/_div_concept/</guid>
        <description>&lt;p&gt;Core concepts and architecture design&lt;/p&gt;</description>
      </item>
    <item>
        <title>demo/wool</title>
        <link>https://pgsty.pro/docs/conf/wool/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/conf/wool/</guid>
        <description>&lt;p&gt;&lt;code&gt;demo/wool&lt;/code&gt; targets small cloud instances in China and defaults to &lt;code&gt;region: china&lt;/code&gt;, PostgreSQL 18, and the &lt;code&gt;tiny&lt;/code&gt; tuning profiles.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config Name: &lt;code&gt;demo/wool&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Node Count: Single node&lt;/li&gt;&#xA;&lt;li&gt;Suggested Size: Approximately 2 vCPU / 2 GB for testing&lt;/li&gt;&#xA;&lt;li&gt;Related: &lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-88e74d51-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-88e74d51-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;./configure -c demo/wool &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-i &amp;lt;private_ip&amp;gt;&lt;span class=&#34;o&#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;content&#34;&gt;Content&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/demo/wool.yml&#34;&gt;&lt;code&gt;pigsty/conf/demo/wool.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-88e74d51-include-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;65&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-88e74d51-include-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;nn&#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;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;c&#34;&gt;# File      :   wool.yml&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;c&#34;&gt;# Desc      :   Pigsty Aliyun ECS 羊毛机配置文件&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;c&#34;&gt;# Ctime     :   2020-11-09&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;c&#34;&gt;# Mtime     :   2025-12-12&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;c&#34;&gt;# Docs      :   https://pigsty.io/docs/conf&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;c&#34;&gt;# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/&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;c&#34;&gt;# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)&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;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;&#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;nt&#34;&gt;all&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;children&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 建议使用操作系统： RockyLinux 9.4&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;c&#34;&gt;# 这里的 10.10.10.10 都应该是你 ECS 的内网 IP 地址，用于安装 Infra/Etcd 模块&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;infra&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;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;infra_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;m&#34;&gt;1&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;w&#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;etcd&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;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;etcd_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 } }, vars&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;etcd_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;etcd } }&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 定义一个单节点的 PostgreSQL 数据库实例&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-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;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;meta ,baseline&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;cmdb.sql ,schemas&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;pigsty ] }&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;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;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_meta ,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;DBUser.Meta   ,roles&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;dbrole_admin ] }&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;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_view ,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;DBUser.Viewer ,roles&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;dbrole_readonly ] }&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_conf&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;tiny.yml  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 2C/2G 的云服务器，使用微型数据库配置模板&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;node_tune&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;tiny    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 2C/2G 的云服务器，使用微型主机节点参数优化模板&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;pgbackrest_enabled&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;false&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_version&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;m&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;           &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 用 PostgreSQL 18&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;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;version&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;v4.5.0                  &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# pigsty version string&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;region&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;china&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;admin_ip&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;m&#34;&gt;10.10.10.10&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 这个 IP 地址应该是你 ECS 的内网IP地址&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;infra_portal&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;# 如果你有自己的 DNS 域名，这里面的域名后缀 pigsty 换成你自己的 DNS 域名&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;home &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;domain&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;i.pigsty }    &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# default domain name&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;minio&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;domain&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;m.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;${admin_ip}:9001&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,scheme&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;https ,websocket&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;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;postgrest&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;domain&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;api.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8884&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;pgadmin&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;domain&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;adm.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8885&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;pgweb&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;domain&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;cli.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8886&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;bytebase&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;domain&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;ddl.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8887&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;,websocket&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;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;jupyter&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;domain&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;lab.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8888&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, websocket&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;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;gitea&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;domain&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;git.pigsty  ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:8889&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;wiki&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;domain&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;wiki.pigsty ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:9002&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;noco&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;domain&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;noco.pigsty ,endpoint&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;s2&#34;&gt;&amp;#34;127.0.0.1:9003&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#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;supa&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;domain&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;supa.pigsty ,endpoint&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;s2&#34;&gt;&amp;#34;10.10.10.10:8000&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;, websocket&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;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;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;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;c&#34;&gt;# PASSWORD : https://pigsty.io/docs/setup/security/&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;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;grafana_admin_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;l&#34;&gt;pigsty&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;grafana_view_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;l&#34;&gt;DBUser.Viewer&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_admin_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;l&#34;&gt;DBUser.DBA&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_monitor_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;l&#34;&gt;DBUser.Monitor&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_replication_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;l&#34;&gt;DBUser.Replicator&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;patroni_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;l&#34;&gt;Patroni.API&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;haproxy_admin_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;l&#34;&gt;pigsty&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;minio_secret_key&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;S3User.MinIO&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;etcd_root_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;l&#34;&gt;Etcd.Root&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;nn&#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;hr&gt;&#xA;&lt;h2 id=&#34;explanation&#34;&gt;Explanation&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Explicitly sets &lt;code&gt;pg_conf: tiny.yml&lt;/code&gt; and &lt;code&gt;node_tune: tiny&lt;/code&gt; on &lt;code&gt;pg-meta&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Expects &lt;code&gt;10.10.10.10&lt;/code&gt; to be replaced by the cloud instance&amp;rsquo;s private IP&lt;/li&gt;&#xA;&lt;li&gt;Disables pgBackRest by default to reduce disk usage on a small test host&lt;/li&gt;&#xA;&lt;li&gt;Includes several example portal domains&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This template trades backup capability for lower resource use and is suitable only for temporary testing. Production deployments must enable and verify backups, tighten network rules, replace default passwords, and remove unused portal entries.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Service / Access</title>
        <link>https://pgsty.pro/docs/pgsql/misc/svc/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/misc/svc/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Separate read and write operations, route traffic correctly, and deliver PostgreSQL cluster capabilities reliably.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/misc/svc/#service-overview&#34;&gt;Service&lt;/a&gt; is an abstraction: it is the form in which database clusters provide capabilities to the outside world and encapsulates the details of the underlying cluster.&lt;/p&gt;&#xA;&lt;p&gt;Services are critical for &lt;a href=&#34;https://pgsty.pro/docs/pgsql/misc/svc/#accessing-services&#34;&gt;stable access&lt;/a&gt; in production environments and show their value when &lt;a href=&#34;https://pgsty.pro/docs/concept/ha/&#34;&gt;high availability&lt;/a&gt; clusters automatically fail over. &lt;a href=&#34;https://pgsty.pro/docs/pgsql/misc/svc/#single-node-users&#34;&gt;Single-node users&lt;/a&gt; typically don&amp;rsquo;t need to worry about this concept.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;single-node-users&#34;&gt;Single-Node Users&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The concept of &amp;ldquo;service&amp;rdquo; is for production environments. Personal users/single-node clusters can simply access the database directly using instance name/IP address.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Access Control</title>
        <link>https://pgsty.pro/docs/pgsql/misc/acl/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/misc/acl/</guid>
        <description>&lt;p&gt;Pigsty access-control documentation is organized by purpose:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;Access Control Concepts&lt;/strong&gt;&lt;/a&gt;: role model, default privileges, database ACLs, and instance-isolation boundaries.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/acl/&#34;&gt;&lt;strong&gt;Access Control Configuration&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;, and related parameters.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/a&gt;: HBA, SCRAM, certificate authentication, and credential management.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;HBA Configuration&lt;/strong&gt;&lt;/a&gt;: PostgreSQL and PgBouncer rule syntax.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;User Management&lt;/strong&gt;&lt;/a&gt;: create, update, and remove users in an existing cluster.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;dbrole_offline&lt;/code&gt; provides independent read-only object privileges; it does not restrict instance scope automatically. To allow it only on offline instances, set &lt;code&gt;role: offline&lt;/code&gt; explicitly on the corresponding HBA rule and verify the generated &lt;code&gt;pg_hba.conf&lt;/code&gt; on both online and offline instances.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/pgsql/_div_admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/_div_admin/</guid>
        <description>&lt;p&gt;Database administration and operation tasks&lt;/p&gt;</description>
      </item>
    <item>
        <title>Backup Policy</title>
        <link>https://pgsty.pro/docs/pgsql/backup/policy/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/backup/policy/</guid>
        <description>&lt;p&gt;The chart below combines the &amp;ldquo;Recovery Window&amp;rdquo; and &amp;ldquo;Backup Storage Usage&amp;rdquo; on a single timeline (&lt;code&gt;0~108h&lt;/code&gt;) so they can be inspected together.&lt;/p&gt;&#xA;&lt;p&gt;Under the same assumptions (database size &lt;code&gt;100GB&lt;/code&gt;, daily writes &lt;code&gt;10GB&lt;/code&gt;), it shows how both metrics evolve over 30 days with &amp;ldquo;weekly full + daily incremental&amp;rdquo; backups and 14-day full-backup retention.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt;: Backup schedule&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Where&lt;/strong&gt;: Backup repository&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Backup method&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;when-to-backup&#34;&gt;When to Backup&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The first question is &lt;strong&gt;when&lt;/strong&gt; to backup your database - this is a tradeoff between backup frequency and recovery time.&#xA;Since you need to replay WAL logs from the last backup to the recovery target point, the more frequent the backups, the less WAL logs need to be replayed, and the faster the recovery.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Restore Operations</title>
        <link>https://pgsty.pro/docs/pgsql/backup/restore/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/backup/restore/</guid>
        <description>&lt;p&gt;Pigsty provides three restore entry points. They share the &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/mechanism/#parameter-mapping&#34;&gt;same parameter semantics&lt;/a&gt;, but serve different scopes:&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;Entry point&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Use case&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;What it controls&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/docs/pgsql/backup/restore/#quick-start&#34;&gt;&lt;code&gt;pgsql-pitr.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Production cluster recovery&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;HA pause, multiple nodes, etcd cleanup, restore, and restart&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/docs/pgsql/backup/restore/#single-instance-pig-pitr&#34;&gt;&lt;code&gt;pig pitr&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;A local database node&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Single-instance orchestration without the admin node&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/docs/pgsql/backup/restore/#primitive-pig-pb-restore&#34;&gt;&lt;code&gt;pig pb restore&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;An instance not managed by Patroni&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;A direct pgBackRest restore wrapper&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;For a hands-on sandbox drill, see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pitr/&#34;&gt;Manual Recovery&lt;/a&gt;. To recover into another cluster without changing production, see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/cluster/&#34;&gt;Clone a PG Cluster&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Clone a PG Cluster</title>
        <link>https://pgsty.pro/docs/pgsql/backup/cluster/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/backup/cluster/</guid>
        <description>&lt;p&gt;Cloning is one of the safest and most useful applications of recovery: leave production untouched and restore its historical state into another cluster.&#xA;You can recover accidentally deleted data from the clone, validate backups in a drill, inspect a historical state, or reset a test environment to a production snapshot.&lt;/p&gt;&#xA;&lt;p&gt;The target must be able to access the source backup repository, may be overwritten, and must use a compatible PostgreSQL major version.&#xA;With a shared &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/repository/&#34;&gt;Silo/S3 repository&lt;/a&gt;, each cluster&amp;rsquo;s backups are isolated by a &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/mechanism/#stanza-the-clusters-backup-identity&#34;&gt;stanza&lt;/a&gt; and visible to targets holding the required credentials.&lt;/p&gt;</description>
      </item>
    <item>
        <title>User / Role</title>
        <link>https://pgsty.pro/docs/pgsql/misc/user/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/misc/user/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;In this context, users refer to logical objects within a database cluster created using the SQL commands &lt;code&gt;CREATE USER/ROLE&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;In PostgreSQL, users belong directly to the database cluster rather than to a specific database. Therefore, when creating business databases and business users, you should follow the principle of &amp;ldquo;users first, then databases.&amp;rdquo;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;defining-users&#34;&gt;Defining Users&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty defines roles and users in database clusters through two configuration parameters:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Database</title>
        <link>https://pgsty.pro/docs/pgsql/misc/db/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/misc/db/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;In this context, Database refers to the logical object created using the SQL command &lt;code&gt;CREATE DATABASE&lt;/code&gt; within a database cluster.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;A PostgreSQL server can serve multiple &lt;strong&gt;databases&lt;/strong&gt; simultaneously. In Pigsty, you can &lt;a href=&#34;https://pgsty.pro/docs/pgsql/misc/db/#define-database&#34;&gt;define&lt;/a&gt; the required databases in the cluster configuration.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty will modify and customize the default template database &lt;code&gt;template1&lt;/code&gt;, creating default schemas, installing default extensions, and configuring default privileges. Newly created databases will inherit these settings from &lt;code&gt;template1&lt;/code&gt; by default.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Authentication / HBA</title>
        <link>https://pgsty.pro/docs/pgsql/misc/hba/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/misc/hba/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Detailed explanation of Host-Based Authentication (HBA) in Pigsty.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Authentication is the foundation of &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/&#34;&gt;Access Control&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/#default-privileges&#34;&gt;Default Privileges&lt;/a&gt;. PostgreSQL supports several &lt;a href=&#34;https://www.postgresql.org/docs/current/client-authentication.html&#34;&gt;authentication&lt;/a&gt; methods.&lt;/p&gt;&#xA;&lt;p&gt;Here we mainly introduce HBA: Host Based Authentication. HBA rules define which users can access which databases from which locations and in which ways.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;client-authentication&#34;&gt;Client Authentication&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To connect to a PostgreSQL database, users must first be authenticated (password is used by default).&lt;/p&gt;&#xA;&lt;p&gt;You can provide the password in the connection string (not secure), or pass it using the &lt;code&gt;PGPASSWORD&lt;/code&gt; environment variable or &lt;code&gt;.pgpass&lt;/code&gt; file. Refer to the &lt;a href=&#34;https://www.postgresql.org/docs/current/app-psql.html#usage&#34;&gt;&lt;code&gt;psql&lt;/code&gt;&lt;/a&gt; documentation and &lt;a href=&#34;https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING&#34;&gt;PostgreSQL Connection Strings&lt;/a&gt; for more details.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Troubleshooting</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/failure/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/failure/</guid>
        <description>&lt;p&gt;This document lists potential failures in PostgreSQL and Pigsty, as well as SOPs for locating, handling, and analyzing issues.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;disk-space-exhausted&#34;&gt;Disk Space Exhausted&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Disk space exhaustion is the most common type of failure.&lt;/p&gt;&#xA;&lt;h3 id=&#34;symptoms&#34;&gt;Symptoms&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;When the disk space where the database resides is exhausted, PostgreSQL will not work normally and may exhibit the following symptoms: database logs repeatedly report &amp;ldquo;no space left on device&amp;rdquo; errors, new data cannot be written, and PostgreSQL may even trigger a PANIC and force shutdown.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Backup Mechanism</title>
        <link>https://pgsty.pro/docs/pgsql/backup/mechanism/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/backup/mechanism/</guid>
        <description>&lt;p&gt;Pigsty&amp;rsquo;s backup and restore operations ultimately execute &lt;a href=&#34;https://pigsty.io/docs/pgbackrest/&#34;&gt;&lt;strong&gt;pgBackRest&lt;/strong&gt;&lt;/a&gt; commands. Using them safely requires both pgBackRest&amp;rsquo;s model and the mapping from Pigsty&amp;rsquo;s orchestration layers to native options.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;core-pgbackrest-concepts&#34;&gt;Core pgBackRest Concepts&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;stanza-the-clusters-backup-identity&#34;&gt;Stanza: the Cluster&amp;rsquo;s Backup Identity&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;A &lt;strong&gt;stanza&lt;/strong&gt; names one PostgreSQL backup configuration and isolates that cluster inside a repository. Pigsty maps it directly from &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_cluster&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_cluster&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: the &lt;code&gt;pg-meta&lt;/code&gt; stanza stores data under &lt;code&gt;backup/pg-meta/&lt;/code&gt; and &lt;code&gt;archive/pg-meta/&lt;/code&gt;, so several clusters can share one repository.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Backup Repository</title>
        <link>https://pgsty.pro/docs/pgsql/backup/repository/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/backup/repository/</guid>
        <description>&lt;p&gt;Two parameters decide where backups are stored: &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pgbackrest_repo&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbackrest_repo&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; defines candidate repositories, while &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pgbackrest_method&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbackrest_method&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; selects one. Repository keys are &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/mechanism/#how-configuration-is-rendered&#34;&gt;&lt;strong&gt;rendered deterministically&lt;/strong&gt;&lt;/a&gt; as pgBackRest &lt;code&gt;repo1-*&lt;/code&gt; options, so any supported &lt;a href=&#34;https://pigsty.io/docs/pgbackrest/configuration&#34;&gt;&lt;strong&gt;pgBackRest repository option&lt;/strong&gt;&lt;/a&gt; can be used directly.&#xA;Pigsty v4.5.0 renders only the entry selected by &lt;code&gt;pgbackrest_method&lt;/code&gt; as &lt;code&gt;repo1&lt;/code&gt;; keeping several candidate keys does not enable multi-repository backup.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;default-repositories&#34;&gt;Default Repositories&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty supplies two definitions: &lt;code&gt;local&lt;/code&gt; and &lt;code&gt;minio&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;local&lt;/code&gt; is the default. &lt;code&gt;/pg/backup&lt;/code&gt; points at &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_fs_backup&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_fs_backup&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, &lt;code&gt;/data/backups&lt;/code&gt; by default.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;minio&lt;/code&gt; uses Silo from the MINIO module or another compatible S3 service. It is supported but not selected by default.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-86b92851-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;25&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-86b92851-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;pgbackrest_method&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;local&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;nt&#34;&gt;pgbackrest_repo&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;local&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;path&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/backup&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;retention_full_type&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;count&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;retention_full&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;m&#34;&gt;2&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;minio&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;type&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;s3&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;s3_endpoint&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;sss.pigsty&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;s3_region&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;us-east-1&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;s3_bucket&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;pgsql&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;s3_key&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;pgbackrest&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;s3_key_secret&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;S3User.Backup&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;s3_uri_style&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;path&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;path&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;/pgbackrest&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;storage_port&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;m&#34;&gt;9000&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;storage_ca_file&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;/etc/pki/ca.crt&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;block&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;y&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;bundle&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;y&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;bundle_limit&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;20MiB&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;bundle_size&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;128MiB&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;cipher_type&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;aes-256-cbc&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;cipher_pass&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;pgBackRest&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;retention_full_type&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;time&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;retention_full&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;m&#34;&gt;14&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;The presets deliberately differ. &lt;code&gt;local&lt;/code&gt; favors simple, fast restores with count-based retention and no encryption or bundling. &lt;code&gt;minio&lt;/code&gt; enables AES-256-CBC encryption, bundles small files, uses block incremental backup, and retains full backups by time.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Admin Commands</title>
        <link>https://pgsty.pro/docs/pgsql/backup/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/backup/admin/</guid>
        <description>&lt;p&gt;Run backup commands as the database superuser (&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_dbsu&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_dbsu&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, &lt;code&gt;postgres&lt;/code&gt; by default) on a database node. You can use any of these entry points:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;pig pb&lt;/code&gt;&lt;/strong&gt;: the &lt;a href=&#34;https://pigsty.io/docs/pig/pb&#34;&gt;&lt;strong&gt;PIG CLI wrapper&lt;/strong&gt;&lt;/a&gt;, with automatic stanza detection, DBSU switching, and safety checks; this is the recommended interface&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;pb&lt;/code&gt;&lt;/strong&gt;: a login-shell function that supplies &lt;code&gt;--stanza&lt;/code&gt; and forwards arguments to pgBackRest&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;pgbackrest&lt;/code&gt;&lt;/strong&gt;: the native command; see the &lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/&#34;&gt;&lt;strong&gt;pgBackRest command reference&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;command-overview&#34;&gt;Command Overview&#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;PIG command&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Alias&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Native pgBackRest command&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Purpose&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;pig pb info&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/info&#34;&gt;&lt;strong&gt;&lt;code&gt;info&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Show backup and archive status&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb list&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ls&lt;/code&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;List repositories, stanzas, or backup sets&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb backup [full/diff/incr]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;b&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/backup&#34;&gt;&lt;strong&gt;&lt;code&gt;backup&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Create a backup after checking the primary role&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb restore&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/restore&#34;&gt;&lt;strong&gt;&lt;code&gt;restore&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Low-level restore primitive; see &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/restore/&#34;&gt;&lt;strong&gt;Restore Operations&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;code&gt;pig pb expire&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;e&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/expire&#34;&gt;&lt;strong&gt;&lt;code&gt;expire&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Expire backups according to retention (&lt;code&gt;--plan&lt;/code&gt; previews)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb create&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/stanza-create&#34;&gt;&lt;strong&gt;&lt;code&gt;stanza-create&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Create a stanza&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb upgrade&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;u&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/stanza-upgrade&#34;&gt;&lt;strong&gt;&lt;code&gt;stanza-upgrade&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade a stanza after a major-version change or clone&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb delete&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/stanza-delete&#34;&gt;&lt;strong&gt;&lt;code&gt;stanza-delete&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Delete a stanza and all of its backups&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb check&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ck&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/check&#34;&gt;&lt;strong&gt;&lt;code&gt;check&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Verify configuration, repository access, and archiving&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb start&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;up&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/start&#34;&gt;&lt;strong&gt;&lt;code&gt;start&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Re-enable pgBackRest operations&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb stop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;dw&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/pgbackrest/command/stop&#34;&gt;&lt;strong&gt;&lt;code&gt;stop&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Stop new pgBackRest operations&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig pb log [list/show/tail]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;l&lt;/code&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;Inspect pgBackRest logs&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;enable-backup&#34;&gt;Enable Backup&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;If &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pgbackrest_enabled&#34;&gt;&lt;strong&gt;&lt;code&gt;pgbackrest_enabled&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is &lt;code&gt;true&lt;/code&gt; when the cluster is created, backup is enabled automatically. If it was disabled at creation time, or repository settings have changed, run the &lt;code&gt;pg_backup&lt;/code&gt; subtask:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Manual PITR Drill</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/pitr/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/pitr/</guid>
        <description>&lt;p&gt;This tutorial drills PostgreSQL point-in-time recovery in Pigsty v4.5.0&amp;rsquo;s four-node sandbox. The main path runs &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/restore/&#34;&gt;&lt;code&gt;pgsql-pitr.yml&lt;/code&gt;&lt;/a&gt; as &lt;code&gt;down → pitr → up&lt;/code&gt;, giving the operator a separate validation gate before data overwrite, timeline promotion, and HA reconstruction.&lt;/p&gt;&#xA;&lt;p&gt;For one current node, use &lt;a href=&#34;https://pigsty.io/docs/pig/pitr/&#34;&gt;&lt;code&gt;pig pitr&lt;/code&gt;&lt;/a&gt;. For direct pgBackRest control, see the low-level &lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pg-fork/#pg-pitr&#34;&gt;&lt;code&gt;pg-pitr&lt;/code&gt; utility&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--caution&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-xmark&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Follow this literally only in a disposable sandbox&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Recovery stops Patroni/PostgreSQL and overwrites the target PGDATA with &lt;code&gt;pgbackrest --force restore&lt;/code&gt;; the &lt;code&gt;up&lt;/code&gt; stage also deletes the target cluster&amp;rsquo;s etcd prefix and rebuilds Patroni state. The playbook prints a plan but has &lt;strong&gt;no interactive confirmation&lt;/strong&gt;. Before production use, the operator must state and confirm the exact cluster and recovery point, verify a recent usable backup that has been independently tested, run &lt;code&gt;--check&lt;/code&gt; with exactly the same &lt;code&gt;-l&lt;/code&gt;, variables, and tags, and schedule a maintenance window. This tutorial does not authorize running these commands in any production environment.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Enabling HugePage for PostgreSQL</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/hugepage/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/hugepage/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Use &lt;code&gt;node_hugepage_count&lt;/code&gt; and &lt;code&gt;node_hugepage_ratio&lt;/code&gt; or &lt;code&gt;/pg/bin/pg-tune-hugepage&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;If you plan to enable HugePages, consider using &lt;a href=&#34;https://pgsty.pro/docs/node/param/#node_hugepage_count&#34;&gt;&lt;code&gt;node_hugepage_count&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/node/param/#node_hugepage_ratio&#34;&gt;&lt;code&gt;node_hugepage_ratio&lt;/code&gt;&lt;/a&gt;, and apply with &lt;code&gt;./node.yml -t node_tune&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;HugePages have pros and cons for databases. The advantage is that memory is managed exclusively, eliminating concerns about being reallocated and reducing database OOM risk. The disadvantage is that it may negatively impact performance in certain scenarios.&lt;/p&gt;&#xA;&lt;p&gt;Before PostgreSQL starts, you need to allocate &lt;strong&gt;enough&lt;/strong&gt; huge pages. The wasted portion can be reclaimed using the &lt;code&gt;pg-tune-hugepage&lt;/code&gt; script, but this script is only available for PostgreSQL 15+.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Clone and Side-Restore a PostgreSQL Instance</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/pg-fork/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/pg-fork/</guid>
        <description>&lt;p&gt;Pigsty v4.5.0 provides two local shell utilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pg-fork/#pg-fork&#34;&gt;&lt;code&gt;pg-fork&lt;/code&gt;&lt;/a&gt; copies a PostgreSQL data directory and gives the copy a separate port.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pg-fork/#pg-pitr&#34;&gt;&lt;code&gt;pg-pitr&lt;/code&gt;&lt;/a&gt; invokes pgBackRest to restore a &lt;strong&gt;stopped&lt;/strong&gt; data directory to a selected target.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;They are useful for sandbox drills, side-channel investigation, and temporary testing. They are not complete Patroni-cluster recovery orchestrators. Prefer &lt;a href=&#34;https://pigsty.io/docs/pig/pitr/&#34;&gt;&lt;code&gt;pig pitr&lt;/code&gt;&lt;/a&gt; for a managed instance and staged &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/restore/&#34;&gt;&lt;code&gt;pgsql-pitr.yml&lt;/code&gt;&lt;/a&gt; for a multi-node cluster.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--caution&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-xmark&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Verify paths, backups, and stopped state first&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;&lt;code&gt;pg-fork&lt;/code&gt; recursively removes an existing destination directory; &lt;code&gt;pg-pitr&lt;/code&gt; overwrites the destination with backup data. Both can execute without a prompt in a non-interactive environment. Before a real run, verify source and destination absolute paths, ports, tablespaces, exact cluster/instance identity, and an independent recent backup that has been tested. A newly created CoW clone is not an independent backup.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Reference</title>
        <link>https://pgsty.pro/docs/pgsql/_div_reference/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/_div_reference/</guid>
        <description>&lt;p&gt;Parameters and reference documentation&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/pgsql/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/metric/</guid>
        <description>&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module provides 638 available monitoring metrics.&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>Accidental Deletion</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/drop/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/drop/</guid>
        <description>&lt;h2 id=&#34;accidental-data-deletion&#34;&gt;Accidental Data Deletion&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;If it&amp;rsquo;s a small-scale &lt;code&gt;DELETE&lt;/code&gt; misoperation, you can consider using the &lt;a href=&#34;https://pigsty.io/ext/e/pg_surgery&#34;&gt;&lt;code&gt;pg_surgery&lt;/code&gt;&lt;/a&gt; or &lt;a href=&#34;https://pigsty.io/ext/e/pg_dirtyread&#34;&gt;&lt;code&gt;pg_dirtyread&lt;/code&gt;&lt;/a&gt; extension for in-place surgical recovery.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-23c560be-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-23c560be-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;-- Immediately disable Auto Vacuum on this table and abort Auto Vacuum worker processes for this table&#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;If the deleted data has already been reclaimed by VACUUM, then use the general accidental deletion recovery process.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/pgsql/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/playbook/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Pigsty provides a series of playbooks for cluster provisioning, scaling, user/database management, monitoring, backup &amp;amp; recovery, and migration.&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;Playbook&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Function&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/docs/pgsql/playbook/#pgsqlyml&#34;&gt;&lt;code&gt;pgsql.yml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Initialize PostgreSQL cluster or add new replicas&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/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;Remove PostgreSQL cluster or specific instances&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/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;Add new business user to existing PostgreSQL cluster&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/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;Add new business database to existing PostgreSQL cluster&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/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;Monitor remote PostgreSQL instances&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/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;Generate migration manual and scripts for existing PostgreSQL&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/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;Perform Point-In-Time Recovery (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;safeguard&#34;&gt;Safeguard&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Be &lt;strong&gt;extra cautious&lt;/strong&gt; when using &lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/a&gt; playbooks. Misuse of &lt;a href=&#34;https://pgsty.pro/docs/pgsql/playbook/#pgsqlyml&#34;&gt;&lt;code&gt;pgsql.yml&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/pgsql/playbook/#pgsql-rmyml&#34;&gt;&lt;code&gt;pgsql-rm.yml&lt;/code&gt;&lt;/a&gt; can lead to accidental database deletion!&lt;/p&gt;</description>
      </item>
    <item>
        <title>HA Drill: Handling 2-of-3 Node Failure</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/drill/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/drill/</guid>
        <description>&lt;p&gt;If a classic 3-node HA deployment experiences simultaneous failure of two nodes (majority), the system typically cannot complete automatic failover and requires manual intervention.&lt;/p&gt;&#xA;&lt;p&gt;First, assess the status of the other two servers. If they can be brought up quickly, prioritize recovering those two servers. Otherwise, enter the &lt;strong&gt;Emergency Recovery Procedure&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;The Emergency Recovery Procedure assumes your admin node has failed&lt;/strong&gt; and only a single regular database node survives. In this case, the fastest recovery process is:&lt;/p&gt;</description>
      </item>
    <item>
        <title>PostgreSQL</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/postgres/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/postgres/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.postgresql.org/&#34;&gt;PostgreSQL&lt;/a&gt; is the world&amp;rsquo;s most advanced and popular open-source database.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty installs PostgreSQL 18 by default, supports PostgreSQL 14 ~ 18, and provides 575 PG extensions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;Install&lt;/strong&gt;&lt;/a&gt; Pigsty using the &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; configuration template.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-84a1449b-fence-0&#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-84a1449b-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;./configure -c pgsql     &lt;span class=&#34;c1&#34;&gt;# Use postgres kernel&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./deploy.yml             &lt;span class=&#34;c1&#34;&gt;# Deploy the Pigsty core chain with native PostgreSQL&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;Most &lt;a href=&#34;https://pgsty.pro/docs/conf/&#34;&gt;configuration templates&lt;/a&gt; use PostgreSQL kernel by default, for example:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/meta.yml&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/a&gt; : &lt;strong&gt;Default&lt;/strong&gt;, postgres with core extensions (vector, postgis, timescale)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/rich.yml&#34;&gt;&lt;code&gt;rich&lt;/code&gt;&lt;/a&gt; : postgres with all extensions installed&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/slim.yml&#34;&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/a&gt; : postgres only, no monitoring infrastructure&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/ha/full.yml&#34;&gt;&lt;code&gt;ha/full&lt;/code&gt;&lt;/a&gt; : 4-node sandbox for HA demonstration&lt;/li&gt;&#xA;&lt;li&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; : minimal postgres kernel configuration example&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;configuration&#34;&gt;Configuration&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Vanilla PostgreSQL kernel requires no special adjustments:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Supabase</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/supabase/</link>
        <pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/supabase/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://supabase.com/&#34;&gt;Supabase&lt;/a&gt; — Build in a weekend, Scale to millions&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Supabase is an open-source Firebase alternative that wraps PostgreSQL and provides authentication, out-of-the-box APIs, edge functions, real-time subscriptions, object storage, and vector embedding capabilities.&#xA;This is a low-code all-in-one backend platform that lets you skip most backend development work, requiring only database design and frontend knowledge to quickly ship products!&lt;/p&gt;&#xA;&lt;p&gt;Supabase&amp;rsquo;s motto is: &amp;ldquo;&lt;strong&gt;Build in a weekend, Scale to millions&lt;/strong&gt;&amp;rdquo;. Indeed, Supabase is &lt;a href=&#34;https://supabase.com/pricing&#34;&gt;extremely cost-effective&lt;/a&gt; at small to micro scales (4c8g), like a cyber bodhisattva.&#xA;— But when you really scale to millions of users — you should seriously consider self-hosting Supabase — whether for functionality, performance, or cost considerations.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Bind a L2 VIP to PostgreSQL Primary with VIP-Manager</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/pg-vip/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/pg-vip/</guid>
        <description>&lt;p&gt;You can define an &lt;strong&gt;OPTIONAL&lt;/strong&gt; L2 VIP on a PostgreSQL cluster, provided that all nodes in the cluster are in the same L2 network.&lt;/p&gt;&#xA;&lt;p&gt;This VIP works on Master-Backup mode and always points to the node where the primary instance of the database cluster is located.&lt;/p&gt;&#xA;&lt;p&gt;This VIP is managed by the &lt;a href=&#34;https://github.com/cybertec-postgresql/vip-manager&#34;&gt;VIP-Manager&lt;/a&gt;, which reads the Leader Key written by Patroni from DCS (etcd) to determine whether it is the master.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Deploy HA Citus Cluster</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/citus/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/citus/</guid>
        <description>&lt;p&gt;Citus is a PostgreSQL extension that transforms PostgreSQL into a distributed database, enabling horizontal scaling across multiple nodes to handle large amounts of data and queries.&lt;/p&gt;&#xA;&lt;p&gt;Patroni v3.0+ provides native high-availability support for Citus, simplifying the setup of Citus clusters. Pigsty also provides native support for this.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.citusdata.com/en/stable/get_started/what_is_citus.html&#34;&gt;What is Citus&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://patroni.readthedocs.io/en/latest/citus.html&#34;&gt;Patroni Citus Support&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Note&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Citus 13.x supports PostgreSQL 18, 17, 16, 15, and 14. The Pigsty extension repository provides Citus ARM64 packages.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Babelfish</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/babelfish/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/babelfish/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://babelfishpg.org/&#34;&gt;Babelfish&lt;/a&gt; is a PostgreSQL-based SQL Server compatibility layer, open-sourced by AWS.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty lets you deploy Babelfish in &lt;code&gt;mssql&lt;/code&gt; mode and provide, on top of PostgreSQL:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL Server wire protocol compatibility (TDS, &lt;code&gt;1433&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;T-SQL compatibility&lt;/li&gt;&#xA;&lt;li&gt;Unified integration with Pigsty capabilities (HA, backup, monitoring, IaC)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In Pigsty v4, Babelfish supports &lt;strong&gt;PostgreSQL 17/18&lt;/strong&gt;. The default template uses &lt;code&gt;pg_version: 17&lt;/code&gt;, and Babelfish is part of Pigsty&amp;rsquo;s standard delivery path with support for all Linux platforms.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Percona</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/percona/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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; is a patched Postgres kernel with &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; (Transparent Data Encryption) extension.&lt;/p&gt;&#xA;&lt;p&gt;Starting with v4.4.0, Pigsty packages Percona PostgreSQL under the private &lt;code&gt;/usr/pgtde-$v&lt;/code&gt;; v4.5.0 keeps this layout&#xA;prefix (&lt;code&gt;/usr/pgtde-18&lt;/code&gt; for PostgreSQL 18). The &lt;code&gt;pgtde&lt;/code&gt; package alias installs&#xA;both the kernel package and its contrib package, including &lt;code&gt;pg_tde&lt;/code&gt;, PostGIS,&#xA;pgvector, wal2json, pg_repack, pgaudit, and pg_stat_monitor.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://andreas.scherbaum.la/post/2025-06-30_performance-test-for-percona-transparent-data-encryption-tde/&#34;&gt;Performance Test for Percona Transparent Data Encryption (TDE)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use Pigsty&amp;rsquo;s &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;standard installation process&lt;/strong&gt;&lt;/a&gt; with the &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/pgtde.yml&#34;&gt;&lt;code&gt;pgtde&lt;/code&gt;&lt;/a&gt; configuration template.&lt;/p&gt;</description>
      </item>
    <item>
        <title>openHalo</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/openhalo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/openhalo/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.openhalo.org/&#34;&gt;OpenHalo&lt;/a&gt; is an open-source PostgreSQL kernel that provides MySQL wire-protocol compatibility.&lt;/p&gt;&#xA;&lt;p&gt;openHalo is based on PostgreSQL 14.18 and provides wire-level compatibility with MySQL 5.7.32-log / 8.0. Pigsty delivers it through &lt;code&gt;pg_mode: mysql&lt;/code&gt; and the &lt;code&gt;openhalo&lt;/code&gt; package alias.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty supports OpenHalo deployment on all supported Linux platforms.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RPM build spec: &lt;a href=&#34;https://github.com/pgsty/rpm/blob/main/rpmbuild/SPECS/openhalodb.spec&#34;&gt;github.com/pgsty/rpm/rpmbuild/specs/openhalodb.spec&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;DEB build spec: &lt;a href=&#34;https://github.com/pgsty/deb/tree/main/debbuild/openhalodb&#34;&gt;github.com/pgsty/deb/debbuild/openhalodb&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use Pigsty&amp;rsquo;s &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;standard installation flow&lt;/strong&gt;&lt;/a&gt; with the &lt;a href=&#34;https://pgsty.pro/docs/conf/mysql/&#34;&gt;&lt;code&gt;mysql&lt;/code&gt;&lt;/a&gt; template.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-7cb98979-fence-0&#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-7cb98979-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;curl -fsSL https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/pigsty&lt;span class=&#34;p&#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;./configure -c mysql    &lt;span class=&#34;c1&#34;&gt;# Use MySQL (openHalo) template&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./deploy.yml            &lt;span class=&#34;c1&#34;&gt;# Install (change passwords in pigsty.yml before production use)&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;cluster-config&#34;&gt;Cluster Config&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-7cb98979-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;19&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-7cb98979-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-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;&#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;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;&#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;nt&#34;&gt;dbuser_meta ,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;DBUser.Meta   ,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;nt&#34;&gt;true ,roles&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;[dbrole_admin]    ,comment&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;pigsty admin user }&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;nt&#34;&gt;dbuser_view ,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;DBUser.Viewer ,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;nt&#34;&gt;true ,roles&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;[dbrole_readonly] ,comment&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;read-only viewer for meta database }&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;nt&#34;&gt;postgres, 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;aux_mysql ]}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# mysql-compatible database&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;nt&#34;&gt;meta ,baseline&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;cmdb.sql ,comment&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;pigsty meta database ,schemas&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;l&#34;&gt;pigsty]}&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;&#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_view , 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;infra ,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;allow grafana dashboard access cmdb from infra nodes&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;pg_crontab&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;s1&#34;&gt;&amp;#39;00 01 * * * /pg/bin/pg-backup full&amp;#39;&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;# full backup at 1 AM daily&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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# OpenHalo specific settings&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_mode&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;mysql&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_version&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;m&#34;&gt;14&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_packages&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;openhalo, pgsql-common ]&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;OpenHalo provides a dedicated extension, &lt;code&gt;aux_mysql&lt;/code&gt;, which includes functions and types needed for MySQL compatibility. Enable it in the &lt;code&gt;postgres&lt;/code&gt; database to get full compatibility behavior.&lt;/p&gt;</description>
      </item>
    <item>
        <title>OrioleDB</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/orioledb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/orioledb/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://orioledb.com/&#34;&gt;OrioleDB&lt;/a&gt; is a PostgreSQL storage engine extension that claims to provide 4x OLTP performance, no xid wraparound and table bloat issues, and &amp;ldquo;cloud-native&amp;rdquo; (data stored in S3) capabilities.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty ships OrioleDB as a patched PostgreSQL kernel plus the &lt;a href=&#34;https://github.com/orioledb/orioledb&#34;&gt;OrioleDB extension&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;You can run OrioleDB as an RDS using Pigsty. Current packages support PostgreSQL 16, 17, and 18 on supported Linux platforms. &lt;code&gt;pg_mode&lt;/code&gt; still uses &lt;code&gt;oriole&lt;/code&gt; for the &lt;code&gt;/usr/oriole-$v&lt;/code&gt; install path, while the &lt;code&gt;orioledb&lt;/code&gt; package alias resolves to versioned kernel packages such as &lt;code&gt;orioledb-16&lt;/code&gt;, &lt;code&gt;orioledb-17&lt;/code&gt;, and &lt;code&gt;orioledb-18&lt;/code&gt;.&#xA;The current Pigsty package line is OrioleDB 1.8 beta16.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Cloudberry</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/cloudberry/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/cloudberry/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://cloudberry.apache.org/&#34;&gt;Cloudberry&lt;/a&gt; is an open-source MPP data warehouse kernel derived from the Greenplum ecosystem, suitable for large-scale parallel analytics workloads.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In Pigsty, Cloudberry uses &lt;code&gt;gpsql&lt;/code&gt; mode and shares the same identity model, monitoring logic, and directory conventions as Greenplum / MatrixDB.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Kernel package: &lt;code&gt;cloudberry&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Mode identifier: &lt;code&gt;pg_mode: gpsql&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Role flag: &lt;code&gt;gp_role: master | segment&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Current repo version: &lt;code&gt;Cloudberry 2.1.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Current main package version: DEB &lt;code&gt;2.1.0-2PIGSTY&lt;/code&gt;, RPM &lt;code&gt;2.1.0-3PIGSTY&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Default binary directory: &lt;code&gt;/usr/cloudberry&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The important boundary is this: Pigsty currently focuses on package delivery, node management, monitoring onboarding, access control, and configuration orchestration for Cloudberry.&#xA;For MPP cluster initialization, scale-out, rebalance, and other upstream-specific operational actions, you should still use the official Cloudberry toolchain.&lt;/p&gt;</description>
      </item>
    <item>
        <title>AgensGraph</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/agensgraph/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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; is a property graph database kernel built on PostgreSQL, supporting openCypher queries and mixed Cypher/SQL workflows.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty integrates AgensGraph through &lt;code&gt;pg_mode: agens&lt;/code&gt; while preserving most of the standard PostgreSQL operational model.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Kernel package: &lt;code&gt;agensgraph&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Mode identifier: &lt;code&gt;pg_mode: agens&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Current template version: &lt;code&gt;AgensGraph 2.17.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Current version string: &lt;code&gt;PostgreSQL 17.10 (AgensGraph 2.17.0)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Built-in template: &lt;code&gt;agens&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Typical use cases: graph relationship analysis, path queries, knowledge graphs, and risk/association analysis layered onto relational data&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;From the client side, AgensGraph still speaks the PostgreSQL wire protocol, so normal PostgreSQL clients, drivers, and connection pools can connect directly.&#xA;The real difference from vanilla PostgreSQL is not how you connect, but that the database now contains graph objects, Cypher syntax, and the &lt;code&gt;agtype&lt;/code&gt; data type.&lt;/p&gt;</description>
      </item>
    <item>
        <title>pgEdge</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/pgedge/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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; is a distributed PostgreSQL distribution for edge scenarios, built on &lt;a href=&#34;https://docs.pgedge.com/spock-v5&#34;&gt;&lt;strong&gt;Spock&lt;/strong&gt;&lt;/a&gt; multi-master logical replication.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty integrates pgEdge through &lt;code&gt;pg_mode: pgedge&lt;/code&gt; and delivers it through the standard PostgreSQL cluster workflow:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pgedge&lt;/code&gt;: a PG15, PG16, PG17, and PG18 compatible kernel; the template defaults to PG18&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/ext/e/spock/&#34;&gt;&lt;code&gt;spock&lt;/code&gt;&lt;/a&gt;: Active-active multi-master logical replication&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/ext/e/snowflake/&#34;&gt;&lt;code&gt;snowflake&lt;/code&gt;&lt;/a&gt;: Distributed unique sequences&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/ext/e/lolor/&#34;&gt;&lt;code&gt;lolor&lt;/code&gt;&lt;/a&gt;: Large object logical replication compatibility layer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The current Pigsty repository ships versioned pgEdge kernel packages for &lt;code&gt;pgedge-15&lt;/code&gt;, &lt;code&gt;pgedge-16&lt;/code&gt;, &lt;code&gt;pgedge-17&lt;/code&gt;, and &lt;code&gt;pgedge-18&lt;/code&gt;; the template defaults to &lt;code&gt;pg_version: 18&lt;/code&gt;. The &lt;code&gt;spock&lt;/code&gt;, &lt;code&gt;snowflake&lt;/code&gt;, and &lt;code&gt;lolor&lt;/code&gt; control files, SQL files, and shared libraries are bundled in the &lt;code&gt;pgedge-$v&lt;/code&gt; kernel package, so they are no longer listed as separate &lt;code&gt;pg_extensions&lt;/code&gt; packages to install.&#xA;From the client side, pgEdge is still PostgreSQL wire compatible, so &lt;code&gt;psql&lt;/code&gt;, JDBC/ODBC, DBeaver, and similar tools work as usual.&lt;/p&gt;</description>
      </item>
    <item>
        <title>DocumentDB</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/documentdb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/documentdb/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pigsty.io/ext/e/documentdb&#34;&gt;&lt;strong&gt;DocumentDB&lt;/strong&gt;&lt;/a&gt; is an open-source PostgreSQL document database extension maintained by Microsoft. &lt;a href=&#34;https://github.com/FerretDB/FerretDB&#34;&gt;&lt;strong&gt;FerretDB&lt;/strong&gt;&lt;/a&gt; is a stateless protocol translation proxy built on top of it.&#xA;Together, they expose a MongoDB wire-compatible endpoint from a standard PostgreSQL kernel: applications using MongoDB drivers can connect directly, while requests are translated into PostgreSQL operations.&lt;/p&gt;&#xA;&lt;p&gt;Unlike other kernel variants, this is not a standalone PostgreSQL fork. The data layer runs native PostgreSQL 16–18 and is managed by the standard &lt;code&gt;PGSQL&lt;/code&gt; module.&#xA;Persistence, transactions, high availability, backup, monitoring, and access control remain PostgreSQL responsibilities; FerretDB is deployed as a Pigsty Docker APP and handles only protocol translation.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Quick Start</title>
        <link>https://pgsty.pro/docs/pgsql/ext/start/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/start/</guid>
        <description>&lt;p&gt;Using extensions in Pigsty requires four steps: &lt;strong&gt;Download&lt;/strong&gt;, &lt;strong&gt;Install&lt;/strong&gt;, &lt;strong&gt;Config&lt;/strong&gt;, and &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Download&lt;/strong&gt;: Download extension packages to the local repository (the default local repository only guarantees the base kernel and &lt;code&gt;pgsql-main&lt;/code&gt; package set)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Install&lt;/strong&gt;: Install extension packages on cluster nodes&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Config&lt;/strong&gt;: Some extensions need to be preloaded or configured with parameters&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Create&lt;/strong&gt;: Execute &lt;code&gt;CREATE EXTENSION&lt;/code&gt; in the database to create the extension&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;declarative-configuration&#34;&gt;Declarative Configuration&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Declare extensions in the Pigsty configuration manifest, and they will be automatically installed and created during cluster initialization:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Introduction</title>
        <link>https://pgsty.pro/docs/pgsql/ext/intro/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/intro/</guid>
        <description>&lt;p&gt;Extensions are the soul of PostgreSQL. Pigsty includes 575 pre-compiled, out-of-the-box extension plugins, fully unleashing PostgreSQL&amp;rsquo;s potential.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-are-extensions&#34;&gt;What are Extensions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;PostgreSQL extensions are a modular mechanism that allows enhancing database functionality without modifying the core code.&#xA;An extension typically consists of three parts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Control file&lt;/strong&gt; (&lt;code&gt;.control&lt;/code&gt;): Required, contains extension metadata&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SQL scripts&lt;/strong&gt; (&lt;code&gt;.sql&lt;/code&gt;): Optional, defines functions, types, operators, and other database objects&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dynamic library&lt;/strong&gt; (&lt;code&gt;.so&lt;/code&gt;): Optional, provides high-performance functionality implemented in C&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Extensions can add to PostgreSQL: new data types, index methods, functions and operators, foreign data access, procedural languages, performance monitoring, security auditing, and more.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Packages</title>
        <link>https://pgsty.pro/docs/pgsql/ext/pkg/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/pkg/</guid>
        <description>&lt;p&gt;Pigsty uses a &lt;strong&gt;package alias&lt;/strong&gt; mechanism to simplify extension installation and management.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;package-alias-mechanism&#34;&gt;Package Alias Mechanism&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Managing extensions involves multiple layers of name mapping:&lt;/p&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;Layer&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Example &lt;code&gt;pgvector&lt;/code&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Example &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;Extension Name&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;Package Alias&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 Package Name&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 Package Name&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 provides a &lt;strong&gt;package alias&lt;/strong&gt; abstraction layer, so users don&amp;rsquo;t need to worry about specific RPM/DEB package names:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Download</title>
        <link>https://pgsty.pro/docs/pgsql/ext/download/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/download/</guid>
        <description>&lt;p&gt;Before installing extensions, ensure that extension packages are downloaded to the local repository or available from upstream.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;default-behavior&#34;&gt;Default Behavior&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty downloads the base PostgreSQL 18 kernel packages to the local software repository by default. The default extra download set is &lt;code&gt;repo_extra_packages_default: [ pgsql-main ]&lt;/code&gt;, which includes the PostgreSQL kernel, client, procedural languages, and basic extension packages such as &lt;code&gt;pg_repack&lt;/code&gt;, &lt;code&gt;wal2json&lt;/code&gt;, and &lt;code&gt;pgvector&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you need other extensions from the 575-extension catalog, explicitly add them to &lt;a href=&#34;https://pgsty.pro/docs/infra/param/#repo_extra_packages&#34;&gt;&lt;code&gt;repo_extra_packages&lt;/code&gt;&lt;/a&gt;. Pigsty does not download every extension to the local repository by default.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Install</title>
        <link>https://pgsty.pro/docs/pgsql/ext/install/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/install/</guid>
        <description>&lt;p&gt;Pigsty uses the operating system&amp;rsquo;s package manager (yum/apt) to install extension packages.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;related-parameters&#34;&gt;Related Parameters&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Two parameters are used to specify extensions to install:&lt;/p&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;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Purpose&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Default Behavior&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/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;Global common packages&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ensure present (no upgrade)&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/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;Cluster-specific extensions&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Install latest version&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; is typically used to specify base components needed by all clusters (PostgreSQL kernel, Patroni, pgBouncer, etc.) and essential extensions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;pg_extensions&lt;/code&gt; is used to specify extensions needed by specific clusters.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Config</title>
        <link>https://pgsty.pro/docs/pgsql/ext/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/config/</guid>
        <description>&lt;p&gt;Some extensions require preloading dynamic libraries or configuring parameters before use. This section describes how to configure extensions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;preload-extensions&#34;&gt;Preload Extensions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Most extensions can be enabled directly with &lt;code&gt;CREATE EXTENSION&lt;/code&gt; after installation, but some extensions using PostgreSQL&amp;rsquo;s Hook mechanism require &lt;strong&gt;preloading&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Preloading is specified via the &lt;code&gt;shared_preload_libraries&lt;/code&gt; parameter and requires a &lt;strong&gt;database restart&lt;/strong&gt; to take effect.&lt;/p&gt;&#xA;&lt;h3 id=&#34;extensions-requiring-preload&#34;&gt;Extensions Requiring Preload&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Common extensions that require preloading:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Create</title>
        <link>https://pgsty.pro/docs/pgsql/ext/create/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/create/</guid>
        <description>&lt;p&gt;After installing extension packages, you need to execute &lt;code&gt;CREATE EXTENSION&lt;/code&gt; in the database to use extension features.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;view-available-extensions&#34;&gt;View Available Extensions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;After installing extension packages, you can view available extensions:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4d5f3b71-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-4d5f3b71-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;-- View all available extensions&#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;-- View specific extension&#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;-- View enabled extensions&#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;create-extensions&#34;&gt;Create Extensions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use &lt;code&gt;CREATE EXTENSION&lt;/code&gt; to enable extensions in the database:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Update</title>
        <link>https://pgsty.pro/docs/pgsql/ext/update/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/update/</guid>
        <description>&lt;p&gt;Extension updates involve two levels: &lt;strong&gt;package updates&lt;/strong&gt; (operating system level) and &lt;strong&gt;extension object updates&lt;/strong&gt; (database level).&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;update-packages&#34;&gt;Update Packages&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use package managers to update extension packages:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-7f55e18a-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-7f55e18a-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;# EL systems&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo yum update pgvector_18*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&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;# Debian/Ubuntu systems&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt upgrade postgresql-18-pgvector&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;Batch update using Pigsty:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-7f55e18a-fence-1&#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-7f55e18a-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;# Update extension packages for specified cluster&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 pg-meta -t pg_extension -e &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;pg_extensions&amp;#34;:[&amp;#34;pgvector&amp;#34;]}&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;&#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;# Using pig package manager&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pig update pgvector&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;update-extension-objects&#34;&gt;Update Extension Objects&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;After package updates, extension objects in the database may need to be synchronized.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Remove</title>
        <link>https://pgsty.pro/docs/pgsql/ext/remove/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/remove/</guid>
        <description>&lt;p&gt;Removing extensions involves two levels: &lt;strong&gt;dropping extension objects&lt;/strong&gt; (database level) and &lt;strong&gt;uninstalling packages&lt;/strong&gt; (operating system level).&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;drop-extension-objects&#34;&gt;Drop Extension Objects&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use &lt;code&gt;DROP EXTENSION&lt;/code&gt; to remove extensions from the database:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-b69cc747-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-b69cc747-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;-- Drop extension&#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;DROP&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;pgvector&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;-- If there are dependent objects, cascade delete is required&#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;DROP&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;pgvector&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CASCADE&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;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Warning&lt;/strong&gt;: &lt;code&gt;CASCADE&lt;/code&gt; will drop all objects that depend on this extension (tables, functions, views, etc.). Use with caution.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Default Extensions</title>
        <link>https://pgsty.pro/docs/pgsql/ext/extension/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/extension/</guid>
        <description>&lt;p&gt;Pigsty installs and enables some core extensions by default when initializing PostgreSQL clusters.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;default-installed-extensions&#34;&gt;Default Installed Extensions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Extensions installed by default via &lt;a href=&#34;https://pgsty.pro/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--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;Extension&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 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;Handle table bloat online, important maintenance tool&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;Logical decoding outputs JSON format changes, commonly used in CDC scenarios&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;Vector data type and indexes, installed with &lt;code&gt;pgsql-main&lt;/code&gt; by default&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The default value of &lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_extensions&#34;&gt;&lt;code&gt;pg_extensions&lt;/code&gt;&lt;/a&gt; is an empty array &lt;code&gt;[]&lt;/code&gt;. Declare additional extensions as needed, for example:&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/pgsql/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;why-cant-my-current-user-use-the-pg-admin-alias&#34;&gt;Why can&amp;rsquo;t my current user use the &lt;code&gt;pg&lt;/code&gt; admin alias?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Starting from Pigsty v4.0, permissions to manage global Patroni / PostgreSQL clusters using the &lt;code&gt;pg&lt;/code&gt; admin alias have been tightened to the admin group (&lt;code&gt;admin&lt;/code&gt;) on admin nodes.&lt;/p&gt;&#xA;&lt;p&gt;The admin user (&lt;code&gt;dba&lt;/code&gt;) created by the &lt;a href=&#34;https://pgsty.pro/docs/node/playbook/#nodeyml&#34;&gt;&lt;strong&gt;&lt;code&gt;node.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; playbook has this permission by default. If your current user wants this permission, you need to explicitly add them to the &lt;code&gt;admin&lt;/code&gt; group:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Repository</title>
        <link>https://pgsty.pro/docs/pgsql/ext/repo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/repo/</guid>
        <description>&lt;p&gt;Pigsty provides supplementary extension repositories, offering additional extension packages on top of the PGDG official repository.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;yum-repository&#34;&gt;YUM Repository&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Applicable to EL 8/9/10 and compatible systems (RHEL, Rocky, AlmaLinux, CentOS, etc.).&lt;/p&gt;&#xA;&lt;h3 id=&#34;add-repository&#34;&gt;Add Repository&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4120da50-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;8&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-4120da50-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;# Add GPG public key&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.io/key &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty &amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&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;# Add repository configuration&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.io/yum/repo &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/yum.repos.d/pigsty.repo &amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&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;# Refresh cache&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo yum makecache&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;china-mainland-mirror&#34;&gt;China Mainland Mirror&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4120da50-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-4120da50-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;curl -fsSL https://repo.pigsty.cc/key &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty &amp;gt;/dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.cc/yum/repo &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/yum.repos.d/pigsty.repo &amp;gt;/dev/null&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;repository-urls&#34;&gt;Repository URLs&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;International: &lt;a href=&#34;https://repo.pigsty.io/yum/&#34;&gt;https://repo.pigsty.io/yum/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;China: &lt;a href=&#34;https://repo.pigsty.cc/yum/&#34;&gt;https://repo.pigsty.cc/yum/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;apt-repository&#34;&gt;APT Repository&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Applicable to Debian 12/13 and Ubuntu 22.04/24.04/26.04 and compatible systems.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Citus</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/citus/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/citus/</guid>
        <description>&lt;p&gt;Pigsty natively supports Citus. This is a distributed horizontal scaling extension based on the native PostgreSQL kernel.&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;installation&#34;&gt;Installation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Citus is a PostgreSQL &lt;a href=&#34;https://pgsty.pro/docs/pgsql/ext/&#34;&gt;extension plugin&lt;/a&gt; that can be installed and enabled on a native PostgreSQL cluster following the standard plugin installation process.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-87ea6f73-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-87ea6f73-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;configuration&#34;&gt;Configuration&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To define a citus cluster, you need to specify the following parameters:&lt;/p&gt;</description>
      </item>
    <item>
        <title>IvorySQL</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/ivorysql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/ivorysql/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.ivorysql.org/&#34;&gt;IvorySQL&lt;/a&gt; is an open-source PostgreSQL kernel fork that aims to provide &amp;ldquo;Oracle compatibility&amp;rdquo; based on PG.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The Pigsty PGSQL repository directly provides IvorySQL 5.4 packages compatible with PostgreSQL 18.4 across the currently supported EL, Debian, Ubuntu, and dual-architecture platforms.&#xA;Online installation uses Pigsty&amp;rsquo;s &lt;code&gt;pgsql&lt;/code&gt; repository; the Professional Edition also provides offline delivery for the corresponding platforms.&lt;/p&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/pigsty/ivory.jpg&#34; alt=&#34;IvorySQL&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;p&gt;Pigsty&amp;rsquo;s &lt;code&gt;ivorysql&lt;/code&gt; package alias points to IvorySQL 5, compatible with PostgreSQL 18. Real package names are mapped by platform variables under &lt;code&gt;roles/node_id/vars/&lt;/code&gt;; for example, EL uses &lt;code&gt;ivorysql5&lt;/code&gt;, while Debian/Ubuntu uses &lt;code&gt;ivorysql-5&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PolarDB PG</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/polardb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/polardb/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty allows you to create PostgreSQL clusters with &amp;ldquo;domestic innovation qualification&amp;rdquo; credentials using PolarDB!&lt;/p&gt;&#xA;&lt;p&gt;PolarDB for PostgreSQL now uses PostgreSQL 17 as its base. The &lt;code&gt;polar&lt;/code&gt; template, default path, and extension notes in Pigsty have all been updated to PG17. Any client tool compatible with the PostgreSQL wire protocol can access PolarDB clusters.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty&amp;rsquo;s PGSQL repository provides PolarDB PG open-source installation packages, but they are not downloaded to the local software repository during Pigsty installation.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PolarDB Oracle</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/polardb-o/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/polardb-o/</guid>
        <description>&lt;p&gt;Pigsty allows you to create PolarDB for Oracle clusters with &amp;ldquo;domestic innovation qualification&amp;rdquo; credentials using PolarDB!&lt;/p&gt;&#xA;&lt;p&gt;According to the &lt;a href=&#34;http://www.itsec.gov.cn/aqkkcp/cpgg/202312/t20231226_162074.html&#34;&gt;Security and Reliability Evaluation Results Announcement (No. 1, 2023)&lt;/a&gt;, Appendix 3, Centralized Database. PolarDB v2.0 is an autonomous, controllable, secure, and reliable domestic innovation database.&lt;/p&gt;&#xA;&lt;p&gt;PolarDB for Oracle is an Oracle-compatible version developed based on PolarDB for PostgreSQL. Both share the same kernel, distinguished by the &lt;code&gt;--compatibility-mode&lt;/code&gt; parameter.&lt;/p&gt;&#xA;&lt;p&gt;We collaborate with the Alibaba Cloud kernel team to provide a complete database solution based on PolarDB v2.0 kernel and Pigsty. Please contact sales for inquiries, or purchase on Alibaba Cloud Marketplace.&lt;/p&gt;</description>
      </item>
    <item>
        <title>PostgresML</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/pgml/</link>
        <pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/pgml/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://postgresml.org/&#34;&gt;PostgresML&lt;/a&gt; is a PostgreSQL extension that supports the latest large language models (LLM), vector operations, classical machine learning, and traditional Postgres application workloads.&lt;/p&gt;&#xA;&lt;p&gt;PostgresML (pgml) is a PostgreSQL extension written in Rust. You can run standalone Docker images, but this documentation is not a docker-compose template introduction, for reference only.&lt;/p&gt;&#xA;&lt;p&gt;PostgresML officially supports Ubuntu 22.04, but we also maintain RPM versions for EL 8/9, if you don&amp;rsquo;t need CUDA and NVIDIA-related features.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Greenplum</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/greenplum/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/kernel/greenplum/</guid>
        <description>&lt;p&gt;Pigsty supports deploying Greenplum clusters and its derivative distribution YMatrixDB, and provides the capability to integrate existing Greenplum deployments into Pigsty monitoring.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Greenplum / YMatrix cluster deployment capabilities are only available in the professional/enterprise editions and are not currently open source.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty provides installation packages for Greenplum 6 (@el7) and Greenplum 7 (@el8). Open source users can install and configure them manually.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Neon</title>
        <link>https://pgsty.pro/docs/pgsql/kernel/neon/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/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; adopts a storage and compute separation architecture, providing seamless autoscaling, scale to zero, and unique database branching capabilities.&lt;/p&gt;&#xA;&lt;p&gt;Neon official website: &lt;a href=&#34;https://neon.tech/&#34;&gt;https://neon.tech/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Neon binaries are currently too large to include in the open-source package set. This support path remains in pilot stage; contact Pigsty sales if you need it.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/infra/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/config/</guid>
        <description>&lt;h2 id=&#34;configuration-guide&#34;&gt;Configuration Guide&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;INFRA = primarily &lt;strong&gt;monitoring&lt;/strong&gt; infrastructure, &lt;strong&gt;optional&lt;/strong&gt; for PostgreSQL databases.&lt;/p&gt;&#xA;&lt;p&gt;Unless manually configured to depend on DNS/NTP services on INFRA nodes, INFRA module failures typically don&amp;rsquo;t affect PG cluster operations.&lt;/p&gt;&#xA;&lt;p&gt;Single INFRA node suffices for most scenarios. Prod env recommends 2-3 INFRA nodes for HA.&lt;/p&gt;&#xA;&lt;p&gt;For better resource utilization, ETCD module (required by PG HA) can share nodes with INFRA module.&lt;/p&gt;&#xA;&lt;p&gt;Using more than 3 INFRA nodes provides little additional benefit, but more ETCD nodes (e.g., 5) can improve DCS availability.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/infra/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/param/</guid>
        <description>&lt;p&gt;The INFRA module is responsible for deploying Pigsty&amp;rsquo;s infrastructure components: local software repository, Nginx, DNSMasq, VictoriaMetrics, VictoriaLogs, Grafana, Alertmanager, Blackbox Exporter, and other monitoring and alerting infrastructure.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Pigsty v4.x uses VictoriaMetrics to replace Prometheus and VictoriaLogs to replace Loki, providing a superior observability solution.&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; style=&#34;text-align: left&#34;&gt;Section&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#meta&#34;&gt;&lt;code&gt;META&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Pigsty metadata: version, admin IP, region, language, proxy&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/docs/infra/param/#ca&#34;&gt;&lt;code&gt;CA&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Self-signed CA certificate management&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/docs/infra/param/#infra_id&#34;&gt;&lt;code&gt;INFRA_ID&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Infrastructure node identity and service portal&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/docs/infra/param/#repo&#34;&gt;&lt;code&gt;REPO&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Local software repository configuration&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/docs/infra/param/#infra_package&#34;&gt;&lt;code&gt;INFRA_PACKAGE&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Infrastructure node package installation&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/docs/infra/param/#nginx&#34;&gt;&lt;code&gt;NGINX&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Nginx web server and reverse proxy configuration&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/docs/infra/param/#dns&#34;&gt;&lt;code&gt;DNS&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;DNSMasq DNS server configuration&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/docs/infra/param/#victoria&#34;&gt;&lt;code&gt;VICTORIA&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;VictoriaMetrics/Logs/Traces observability stack&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/docs/infra/param/#prometheus&#34;&gt;&lt;code&gt;PROMETHEUS&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Alertmanager and Blackbox Exporter&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/docs/infra/param/#grafana&#34;&gt;&lt;code&gt;GRAFANA&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Grafana visualization platform configuration&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;parameter-overview&#34;&gt;Parameter Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#meta&#34;&gt;&lt;code&gt;META&lt;/code&gt;&lt;/a&gt; parameters define Pigsty metadata, including version string, admin node IP, repository mirror region, default language, and proxy settings.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/infra/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/playbook/</guid>
        <description>&lt;p&gt;Pigsty provides three playbooks related to the INFRA module:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/playbook/#deployyml&#34;&gt;&lt;code&gt;deploy.yml&lt;/code&gt;&lt;/a&gt;: Deploy the NODE, INFRA, ETCD, MINIO, and PGSQL core modules on all nodes in one pass&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/playbook/#infrayml&#34;&gt;&lt;code&gt;infra.yml&lt;/code&gt;&lt;/a&gt;: Initialize Pigsty infrastructure on infra nodes&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/playbook/#infra-rmyml&#34;&gt;&lt;code&gt;infra-rm.yml&lt;/code&gt;&lt;/a&gt;: Remove infrastructure components from infra nodes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;deployyml&#34;&gt;&lt;code&gt;deploy.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Deploy the NODE, INFRA, ETCD, MINIO, and PGSQL core modules on all nodes in one pass, resolving INFRA/NODE circular dependency issues.&lt;/p&gt;&#xA;&lt;p&gt;This playbook interleaves subtasks from &lt;code&gt;infra.yml&lt;/code&gt; and &lt;code&gt;node.yml&lt;/code&gt;, completing deployment of the core components in the following order:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/infra/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/monitor/</guid>
        <description>&lt;p&gt;This document describes monitoring dashboards and alert rules for the INFRA module in Pigsty.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;dashboards&#34;&gt;Dashboards&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty provides the following monitoring dashboards for the Infra module:&lt;/p&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;Dashboard&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://demo.pigsty.io/d/pigsty&#34;&gt;Pigsty Home&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Pigsty monitoring system homepage&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://demo.pigsty.io/d/infra-overview&#34;&gt;INFRA Overview&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Pigsty infrastructure self-monitoring overview&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://demo.pigsty.io/d/nginx-instance&#34;&gt;Nginx Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Nginx metrics and logs&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://demo.pigsty.io/d/grafana-instance&#34;&gt;Grafana Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Grafana metrics and logs&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://demo.pigsty.io/d/vmetrics-instance&#34;&gt;VictoriaMetrics Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;VictoriaMetrics scraping/query status&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://demo.pigsty.io/d/vmalert-instance&#34;&gt;VMAlert Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Alert rule execution status&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://demo.pigsty.io/d/alertmanager-instance&#34;&gt;Alertmanager Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Alert aggregation and notifications&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://demo.pigsty.io/d/vlogs-instance&#34;&gt;VictoriaLogs Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Log ingestion, querying, and indexing&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://demo.pigsty.io/d/logs-instance&#34;&gt;Logs Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;View log information on a single node&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://demo.pigsty.io/d/vtraces-instance&#34;&gt;VictoriaTraces Instance&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Trace storage and querying&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://demo.pigsty.io/d/inventory-cmdb&#34;&gt;Inventory CMDB&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;CMDB visualization&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://demo.pigsty.io/d/etcd-overview&#34;&gt;ETCD Overview&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;etcd cluster monitoring&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;alert-rules&#34;&gt;Alert Rules&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty provides the following two alert rules for the INFRA module:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/infra/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/metric/</guid>
        <description>&lt;hr&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Pigsty v4.0 has replaced Prometheus/Loki with VictoriaMetrics/Logs/Traces. The following metric list is still based on v3.x generation, for reference when troubleshooting older versions only. To get the latest metrics, query directly in &lt;code&gt;https://p.pigsty&lt;/code&gt; (VMUI) or Grafana. Future versions will regenerate metric reference sheets consistent with the Victoria suite.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;infra-metrics&#34;&gt;INFRA Metrics&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module has 964 available metrics.&lt;/p&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;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;alertmanager_alerts&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many alerts by state.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_alerts_invalid_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of received alerts that were invalid.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_alerts_received_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of received alerts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which alertmanager was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_alive_messages_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;peer&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of received alive messages.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_enabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Indicates whether the clustering is enabled or not.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_failed_peers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number indicating the current number of failed peers in the cluster.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_health_score&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Health score of the cluster. Lower values are better and zero means &amp;rsquo;totally healthy&amp;rsquo;.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_members&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number indicating current number of members in cluster.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_messages_pruned_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of cluster messages pruned.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_messages_queued&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of cluster messages which are queued.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_messages_received_size_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;msg_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total size of cluster messages received.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_messages_received_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;msg_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of cluster messages received.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_messages_sent_size_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;msg_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total size of cluster messages sent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_messages_sent_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;msg_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of cluster messages sent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_peer_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;peer&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by peer name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_peers_joined_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A counter of the number of peers that have joined.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_peers_left_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A counter of the number of peers that have left.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_peers_update_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A counter of the number of peers that have updated metadata.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_reconnections_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A counter of the number of failed cluster peer reconnection attempts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_reconnections_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A counter of the number of cluster peer reconnections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_refresh_join_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A counter of the number of failed cluster peer joined attempts via refresh.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_cluster_refresh_join_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A counter of the number of cluster peer joined via refresh.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_config_hash&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hash of the currently loaded alertmanager configuration.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_config_last_reload_success_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the last successful configuration reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_config_last_reload_successful&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether the last configuration reload attempt was successful.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_dispatcher_aggregation_groups&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of active aggregation groups&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_dispatcher_alert_processing_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_dispatcher_alert_processing_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_http_concurrency_limit_exceeded_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of times an HTTP request failed because the concurrency limit was reached.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_http_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;alertmanager_http_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;alertmanager_http_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;alertmanager_http_requests_in_flight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of HTTP requests being processed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_http_response_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;alertmanager_http_response_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;alertmanager_http_response_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;alertmanager_integrations&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of configured integrations.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_marked_alerts&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many alerts by state are currently marked in the Alertmanager regardless of their expiry.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_nflog_gc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_nflog_gc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_nflog_gossip_messages_propagated_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of received gossip messages that have been further gossiped.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_nflog_maintenance_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many maintenances were executed for the notification log that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_nflog_maintenance_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many maintenances were executed for the notification log.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_nflog_queries_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of notification log queries were received.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_nflog_query_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;alertmanager_nflog_query_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_nflog_query_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_nflog_query_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number notification log received queries that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_nflog_snapshot_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_nflog_snapshot_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_nflog_snapshot_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the last notification log snapshot in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_notification_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;integration&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;alertmanager_notification_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;integration&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_notification_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;integration&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_notification_requests_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;integration&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of failed notification requests.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_notification_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;integration&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of attempted notification requests.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_notifications_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;integration&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of failed notifications.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_notifications_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;integration&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of attempted notifications.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_oversize_gossip_message_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;key&lt;/code&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;alertmanager_oversize_gossip_message_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;key&lt;/code&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;alertmanager_oversize_gossip_message_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;key&lt;/code&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;alertmanager_oversized_gossip_message_dropped_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;key&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of oversized gossip messages that were dropped due to a full message queue.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_oversized_gossip_message_failure_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;key&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of oversized gossip message sends that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_oversized_gossip_message_sent_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;key&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of oversized gossip message sent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_peer_position&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Position the Alertmanager instance believes it&amp;rsquo;s in. The position determines a peer&amp;rsquo;s behavior in the cluster.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_receivers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of configured receivers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_silences&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many silences by state.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_silences_gc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_silences_gc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_silences_gossip_messages_propagated_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of received gossip messages that have been further gossiped.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_silences_maintenance_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many maintenances were executed for silences that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_silences_maintenance_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many maintenances were executed for silences.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_silences_queries_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many silence queries were received.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_silences_query_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;alertmanager_silences_query_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_silences_query_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_silences_query_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many silence received queries did not succeed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;alertmanager_silences_snapshot_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_silences_snapshot_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;alertmanager_silences_snapshot_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the last silence snapshot in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;blackbox_exporter_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which blackbox_exporter was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;blackbox_exporter_config_last_reload_success_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the last successful configuration reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;blackbox_exporter_config_last_reload_successful&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Blackbox exporter config loaded successfully.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;blackbox_module_unknown_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Count of unknown modules requested by probes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_distributor_ingester_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current number of ingester clients.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_dns_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_dns_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_frontend_query_range_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;cortex_frontend_query_range_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;cortex_frontend_query_range_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;cortex_ingester_flush_queue_length&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of series pending in the flush queue.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_kv_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;cortex_kv_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;cortex_kv_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;cortex_member_consul_heartbeats_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_prometheus_notifications_alertmanagers_discovered&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of alertmanagers discovered and active.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_prometheus_notifications_dropped_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;cortex_prometheus_notifications_queue_capacity&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The capacity of the alert notifications queue.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_prometheus_notifications_queue_length&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of alert notifications in the queue.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_prometheus_rule_evaluation_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration for a rule to execute.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_prometheus_rule_evaluation_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;cortex_prometheus_rule_evaluation_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;cortex_prometheus_rule_group_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of rule group evaluations.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_prometheus_rule_group_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;cortex_prometheus_rule_group_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;cortex_query_frontend_connected_schedulers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of schedulers this frontend is connected to.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_query_frontend_queries_in_progress&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries in progress handled by this frontend.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_query_frontend_retries_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;cortex_query_frontend_retries_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_query_frontend_retries_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_query_scheduler_connected_frontend_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of query-frontend worker clients currently connected to the query-scheduler.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_query_scheduler_connected_querier_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of querier worker clients currently connected to the query-scheduler.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_query_scheduler_inflight_requests&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of inflight requests (either queued or processing) sampled at a regular interval. Quantile buckets keep track of inflight requests over the last 60s.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_query_scheduler_inflight_requests_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_query_scheduler_inflight_requests_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_query_scheduler_queue_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;cortex_query_scheduler_queue_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_query_scheduler_queue_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_query_scheduler_queue_length&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;cortex_query_scheduler_running&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value will be 1 if the scheduler is in the ReplicationSet and actively receiving/processing requests&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ring_member_heartbeats_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_ring_member_tokens_owned&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of tokens owned in the ring.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ring_member_tokens_to_own&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of tokens to own in the ring.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ring_members&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of members in the ring&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ring_oldest_member_timestamp&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the oldest member in the ring.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ring_tokens_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of tokens in the ring&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ruler_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current number of ruler clients in the pool.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ruler_config_last_reload_successful&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Boolean set to 1 whenever the last configuration reload attempt was successful.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ruler_config_last_reload_successful_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the last successful configuration reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ruler_config_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;cortex_ruler_managers_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of managers registered and running in the ruler&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;cortex_ruler_ring_check_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;cortex_ruler_sync_rules_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;reason&lt;/code&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;deprecated_flags_inuse_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cgo_go_to_c_calls_calls_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_gc_mark_assist_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_gc_mark_dedicated_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_gc_mark_idle_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_gc_pause_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_gc_total_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_idle_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_scavenge_assist_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_scavenge_background_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_scavenge_total_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_total_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cpu_classes_user_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cycles_automatic_gc_cycles_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cycles_forced_gc_cycles_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_cycles_total_gc_cycles_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_gogc_percent&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Heap size target percentage configured by the user, otherwise 100. This value is set by the GOGC environment variable, and the runtime/debug.SetGCPercent function.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_gomemlimit_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Go runtime memory limit configured by the user, otherwise math.MaxInt64. This value is set by the GOMEMLIMIT environment variable, and the runtime/debug.SetMemoryLimit function.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_heap_allocs_by_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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_heap_allocs_by_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_allocs_by_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_allocs_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_allocs_objects_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_frees_by_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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_heap_frees_by_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_frees_by_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_frees_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_frees_objects_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_heap_goal_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Heap size target for the end of the GC cycle.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_heap_live_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Heap memory occupied by live objects that were marked by the previous GC.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_heap_objects_objects&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of objects, live or unswept, occupying heap memory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_heap_tiny_allocs_objects_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_limiter_last_enabled_gc_cycle&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;GC cycle the last time the GC CPU limiter was enabled. This metric is useful for diagnosing the root cause of an out-of-memory error, because the limiter trades memory for CPU time when the GC&amp;rsquo;s CPU time gets too high. This is most likely to occur with use of SetMemoryLimit. The first GC cycle is cycle 1, so a value of 0 indicates that it was never enabled.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_pauses_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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_pauses_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_pauses_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_scan_globals_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total amount of global variable space that is scannable.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_scan_heap_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total amount of heap space that is scannable.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_scan_stack_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of bytes of stack that were scanned last GC cycle.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_scan_total_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total amount space that is scannable. Sum of all metrics in /gc/scan.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_gc_stack_starting_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The stack size of new goroutines.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_godebug_non_default_behavior_execerrdot_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_gocachehash_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_gocachetest_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_gocacheverify_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_http2client_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_http2server_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_installgoroot_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_jstmpllitinterp_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_multipartmaxheaders_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_multipartmaxparts_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_multipathtcp_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_panicnil_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_randautoseed_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_tarinsecurepath_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_tlsmaxrsasize_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_x509sha1_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_x509usefallbackroots_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_godebug_non_default_behavior_zipinsecurepath_events_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_goroutines&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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_memory_classes_heap_free_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is completely free and eligible to be returned to the underlying system, but has not been. This metric is the runtime&amp;rsquo;s estimate of free address space that is backed by physical memory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_heap_objects_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory occupied by live objects and dead objects that have not yet been marked free by the garbage collector.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_heap_released_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is completely free and has been returned to the underlying system. This metric is the runtime&amp;rsquo;s estimate of free address space that is still mapped into the process, but is not backed by physical memory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_heap_stacks_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory allocated from the heap that is reserved for stack space, whether or not it is currently in-use. Currently, this represents all stack memory for goroutines. It also includes all OS thread stacks in non-cgo programs. Note that stacks may be allocated differently in the future, and this may change.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_heap_unused_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is reserved for heap objects but is not currently used to hold heap objects.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_metadata_mcache_free_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is reserved for runtime mcache structures, but not in-use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_metadata_mcache_inuse_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is occupied by runtime mcache structures that are currently being used.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_metadata_mspan_free_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is reserved for runtime mspan structures, but not in-use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_metadata_mspan_inuse_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is occupied by runtime mspan structures that are currently being used.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_metadata_other_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is reserved for or used to hold runtime metadata.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_os_stacks_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Stack memory allocated by the underlying operating system. In non-cgo programs this metric is currently zero. This may change in the future.In cgo programs this metric includes OS thread stacks allocated directly from the OS. Currently, this only accounts for one stack in c-shared and c-archive build modes, and other sources of stacks from the OS are not measured. This too may change in the future.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_other_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory used by execution trace buffers, structures for debugging the runtime, finalizer and profiler specials, and more.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_profiling_buckets_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory that is used by the stack trace hash map used for profiling.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memory_classes_total_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;All memory mapped by the Go runtime into the current process as read-write. Note that this does not include memory mapped by code called via cgo or via the syscall package. Sum of all metrics in /memory/classes.&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;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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_alloc_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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_sched_gomaxprocs_threads&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current runtime.GOMAXPROCS setting, or the number of operating system threads that can execute user-level Go code simultaneously.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sched_goroutines_goroutines&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Count of live goroutines.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sched_latencies_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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_sched_latencies_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_sched_latencies_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_sql_stats_connections_blocked_seconds&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total time blocked waiting for a new connection.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_closed_max_idle&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of connections closed due to SetMaxIdleConns.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_closed_max_idle_time&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of connections closed due to SetConnMaxIdleTime.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_closed_max_lifetime&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of connections closed due to SetConnMaxLifetime.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_idle&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of idle connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_in_use&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of connections currently in use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_max_open&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum number of open connections to the database.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_open&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of established connections both in use and idle.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sql_stats_connections_waited_for&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;db_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of connections waited for.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_sync_mutex_wait_total_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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_threads&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;grafana_access_evaluation_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;number of evaluation calls&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_access_evaluation_duration_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_access_evaluation_duration_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_access_evaluation_duration_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_access_permissions_duration_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_access_permissions_duration_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_access_permissions_duration_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_aggregator_discovery_aggregation_count_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_active_alerts&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;amount of active alerts&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_active_configurations&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of active Alertmanager configurations.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_alertmanager_config_match&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of match&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_alertmanager_config_match_re&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of matchRE&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_alertmanager_config_matchers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of matchers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_alertmanager_config_object_matchers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of object_matchers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_discovered_configurations&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of organizations we&amp;rsquo;ve discovered that require an Alertmanager configuration.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_dispatcher_aggregation_groups&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of active aggregation groups&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_dispatcher_alert_processing_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_dispatcher_alert_processing_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_execution_time_milliseconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;summary of alert execution duration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_execution_time_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_execution_time_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_gc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_gc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_gossip_messages_propagated_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_queries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_query_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_alerting_nflog_query_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_query_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_query_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_snapshot_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_snapshot_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_nflog_snapshot_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the last notification log snapshot in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_notification_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_alerting_notification_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_notification_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_schedule_alert_rules&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of alert rules that could be considered for evaluation at the next tick.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_schedule_alert_rules_hash&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A hash of the alert rules that could be considered for evaluation at the next tick.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_schedule_periodic_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_alerting_schedule_periodic_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_schedule_periodic_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_schedule_query_alert_rules_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_alerting_schedule_query_alert_rules_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_schedule_query_alert_rules_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_scheduler_behind_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of seconds the scheduler is behind.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_silences_gc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_gc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_gossip_messages_propagated_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_queries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_query_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_alerting_silences_query_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_query_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_query_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_snapshot_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_snapshot_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_silences_snapshot_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the last silence snapshot in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_state_calculation_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_alerting_state_calculation_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_state_calculation_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_state_history_writes_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_alerting_ticker_interval_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Interval at which the ticker is meant to tick.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_ticker_last_consumed_tick_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the last consumed tick in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_alerting_ticker_next_tick_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the next tick in seconds before it is consumed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_api_admin_user_created_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_get_milliseconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;summary for dashboard get duration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_api_dashboard_get_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_get_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_save_milliseconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;summary for dashboard save duration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_api_dashboard_save_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_save_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_search_milliseconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;summary for dashboard search duration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_api_dashboard_search_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_search_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_snapshot_create_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_snapshot_external_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dashboard_snapshot_get_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dataproxy_request_all_milliseconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;summary for dataproxy request duration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_api_dataproxy_request_all_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_dataproxy_request_all_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_login_oauth_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_login_post_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_login_saml_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_models_dashboard_insert_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_org_create_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_response_status_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;grafana_api_user_signup_completed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_user_signup_invite_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_api_user_signup_started_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_audit_event_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_audit_requests_rejected_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_client_certificate_expiration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_apiserver_client_certificate_expiration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_client_certificate_expiration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_envelope_encryption_dek_cache_fill_percent&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;[ALPHA] Percent of the cache slots currently occupied by cached DEKs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_apiserver_flowcontrol_seat_fair_frac&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;[ALPHA] Fair fraction of server&amp;rsquo;s concurrency to allocate to each priority level that can use it&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_apiserver_storage_data_key_generation_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_apiserver_storage_data_key_generation_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_storage_data_key_generation_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_storage_data_key_generation_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_storage_envelope_transformation_cache_misses_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_tls_handshake_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_webhooks_x509_insecure_sha1_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_apiserver_webhooks_x509_missing_san_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_authn_authn_failed_authentication_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_authn_authn_successful_authentication_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;client&lt;/code&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;grafana_authn_authn_successful_login_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;client&lt;/code&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;grafana_aws_cloudwatch_get_metric_data_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_aws_cloudwatch_get_metric_statistics_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_aws_cloudwatch_list_metrics_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;edition&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, and goversion from which Grafana was built&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_build_timestamp&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;edition&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric exposing when the binary was built in epoch&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_cardinality_enforcement_unexpected_categorizations_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_database_conn_idle&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of idle connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_database_conn_in_use&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of connections currently in use&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_database_conn_max_idle_closed_seconds&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of connections closed due to SetConnMaxIdleTime&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_database_conn_max_idle_closed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_database_conn_max_lifetime_closed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_database_conn_max_open&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum number of open connections to the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_database_conn_open&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of established connections both in use and idle&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_database_conn_wait_count_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_database_conn_wait_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total time blocked waiting for a new connection&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_datasource_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;grafana_datasource_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;grafana_datasource_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;grafana_datasource_request_in_flight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A gauge of outgoing data source requests currently being sent by Grafana&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_datasource_request_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;grafana_datasource_response_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&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;grafana_datasource_response_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&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;grafana_datasource_response_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;datasource&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;datasource_type&lt;/code&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;grafana_db_datasource_query_by_id_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_disabled_metrics_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_emails_sent_failed&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of emails Grafana failed to send&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_emails_sent_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_encryption_cache_reads_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;hit&lt;/code&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;grafana_encryption_ops_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;success&lt;/code&gt;, &lt;code&gt;operation&lt;/code&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;grafana_environment_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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;commit&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by environment information about the running instance.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_feature_toggles_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;info metric that exposes what feature toggles are enabled or not&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_frontend_boot_css_time_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_frontend_boot_css_time_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_css_time_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_first_contentful_paint_time_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_frontend_boot_first_contentful_paint_time_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_first_contentful_paint_time_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_first_paint_time_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_frontend_boot_first_paint_time_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_first_paint_time_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_js_done_time_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_frontend_boot_js_done_time_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_js_done_time_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_load_time_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_frontend_boot_load_time_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_boot_load_time_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_plugins_preload_ms_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_frontend_plugins_preload_ms_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_frontend_plugins_preload_ms_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_hidden_metrics_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_http_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;handler&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;grafana_http_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;handler&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;grafana_http_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;handler&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;grafana_http_request_in_flight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A gauge of requests currently being served by Grafana.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_idforwarding_idforwarding_failed_token_signing_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_idforwarding_idforwarding_token_signing_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_idforwarding_idforwarding_token_signing_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_idforwarding_idforwarding_token_signing_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_idforwarding_idforwarding_token_signing_from_cache_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_idforwarding_idforwarding_token_signing_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_instance_start_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_ldap_users_sync_execution_time&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;summary for LDAP users sync execution duration&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_ldap_users_sync_execution_time_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_ldap_users_sync_execution_time_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_live_client_command_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Client command duration summary.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_client_command_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_live_client_command_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_live_client_num_reply_errors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of errors in replies sent to clients.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_client_num_server_disconnects&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of server initiated disconnects.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_client_recover&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;recovered&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Count of recover operations.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_action_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;action&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of node actions called.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_build&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Node build info.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_messages_received_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of messages received.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_messages_sent_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of messages sent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_num_channels&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of channels with one or more subscribers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_num_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of clients connected.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_num_nodes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of nodes in cluster.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_num_subscriptions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of subscriptions.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_node_num_users&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of unique users connected.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_transport_connect_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;transport&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of connections to specific transport.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_live_transport_messages_sent&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;transport&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of messages sent over specific transport.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_loki_plugin_parse_response_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;grafana_loki_plugin_parse_response_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;grafana_loki_plugin_parse_response_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;grafana_page_response_status_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;grafana_plugin_build_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;signature_status&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;plugin_type&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by pluginId, pluginType and version from which Grafana plugin was built&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_plugin_request_duration_milliseconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&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;grafana_plugin_request_duration_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&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;grafana_plugin_request_duration_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&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;grafana_plugin_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;grafana_plugin_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;grafana_plugin_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;grafana_plugin_request_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;grafana_plugin_request_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;grafana_plugin_request_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;grafana_plugin_request_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&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;grafana_process_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_process_max_fds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;grafana_process_open_fds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;grafana_process_resident_memory_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;grafana_process_start_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;grafana_process_virtual_memory_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;grafana_process_virtual_memory_max_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;grafana_prometheus_plugin_backend_request_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;errorSource&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total amount of prometheus backend plugin requests&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_proxy_response_status_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;grafana_public_dashboard_request_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;counter for public dashboards requests&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_registered_metrics_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;stability_level&lt;/code&gt;, &lt;code&gt;deprecated_version&lt;/code&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;grafana_rendering_queue_size&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;size of rendering queue&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_search_dashboard_search_failures_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_search_dashboard_search_failures_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_search_dashboard_search_failures_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_search_dashboard_search_successes_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;grafana_search_dashboard_search_successes_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_search_dashboard_search_successes_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;grafana_stat_active_users&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;number of active users&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_total_orgs&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of orgs&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_total_playlists&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of playlists&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_total_service_account_tokens&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of service account tokens&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_total_service_accounts&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of service accounts&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_total_service_accounts_role_none&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of service accounts with no role&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_total_teams&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of teams&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_total_users&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of users&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_active_admins&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of active admins&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_active_editors&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of active editors&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_active_viewers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of active viewers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_admins&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of admins&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_alert_rules&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of alert rules in the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_annotations&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of annotations in the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_correlations&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of correlations&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_dashboard&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of dashboards&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_dashboard_versions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of dashboard versions in the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_data_keys&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;active&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of data keys in the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_datasource&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;plugin_id&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total number of defined datasources, labeled by pluginId&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_editors&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of editors&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_folder&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of folders&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_library_panels&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of library panels in the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_library_variables&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of library variables in the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_public_dashboard&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of public dashboards&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_rule_groups&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of alert rule groups in the database&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grafana_stat_totals_viewers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total amount of viewers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;infra_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_baggage_restrictions_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;result&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_baggage_truncations_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_baggage_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;result&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_finished_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;sampled&lt;/code&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;jaeger_tracer_reporter_queue_length&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of spans in the reporter queue&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;jaeger_tracer_reporter_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;result&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_sampler_queries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;result&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_sampler_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;result&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_span_context_decoding_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_started_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;sampled&lt;/code&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;jaeger_tracer_throttled_debug_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_throttler_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;result&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;jaeger_tracer_traces_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;sampled&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;state&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;kv_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;kv_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;kv_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;legacy_grafana_alerting_ticker_interval_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Interval at which the ticker is meant to tick.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;legacy_grafana_alerting_ticker_last_consumed_tick_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the last consumed tick in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;legacy_grafana_alerting_ticker_next_tick_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the next tick in seconds before it is consumed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;logql_query_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;query_type&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;logql_query_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;query_type&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;logql_query_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;query_type&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_azure_blob_egress_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_boltdb_shipper_apply_retention_last_successful_run_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Unix timestamp of the last successful retention run&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_boltdb_shipper_compact_tables_operation_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time (in seconds) spent in compacting all the tables&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_boltdb_shipper_compact_tables_operation_last_successful_run_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Unix timestamp of the last successful compaction run&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_boltdb_shipper_compact_tables_operation_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;loki_boltdb_shipper_compactor_running&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value will be 1 if compactor is currently running on this instance&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_boltdb_shipper_open_existing_file_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;component&lt;/code&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;loki_boltdb_shipper_query_time_table_download_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;table&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time (in seconds) spent in downloading of files per table at query time&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_boltdb_shipper_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_boltdb_shipper_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_boltdb_shipper_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_boltdb_shipper_tables_download_operation_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time (in seconds) spent in downloading updated files for all the tables&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_boltdb_shipper_tables_sync_operation_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;component&lt;/code&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;loki_boltdb_shipper_tables_upload_operation_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;component&lt;/code&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;loki_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which loki was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_bytes_per_line_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_bytes_per_line_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_bytes_per_line_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_cache_corrupt_chunks_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_cache_fetched_keys&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total count of keys requested from cache.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_cache_hits&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total count of keys found in cache.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_cache_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_cache_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_cache_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_cache_value_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_cache_value_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_cache_value_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_fetcher_cache_dequeued_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_fetcher_cache_enqueued_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_fetcher_cache_skipped_buffer_full_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_fetcher_fetched_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;loki_chunk_fetcher_fetched_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;loki_chunk_fetcher_fetched_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;source&lt;/code&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;loki_chunk_store_chunks_per_query_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_chunk_store_chunks_per_query_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_chunks_per_query_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_deduped_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_deduped_chunks_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_fetched_chunk_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;loki_chunk_store_fetched_chunks_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;loki_chunk_store_index_entries_per_chunk_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_chunk_store_index_entries_per_chunk_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_index_entries_per_chunk_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_index_lookups_per_query_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_chunk_store_index_lookups_per_query_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_index_lookups_per_query_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_series_post_intersection_per_query_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_chunk_store_series_post_intersection_per_query_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_series_post_intersection_per_query_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_series_pre_intersection_per_query_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_chunk_store_series_pre_intersection_per_query_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_series_pre_intersection_per_query_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_chunk_store_stored_chunk_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;loki_chunk_store_stored_chunks_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;loki_consul_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_consul_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_consul_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_delete_request_lookups_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_delete_request_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_discarded_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_discarded_samples_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_distributor_bytes_received_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;retention_hours&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_distributor_ingester_appends_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ingester&lt;/code&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;loki_distributor_lines_received_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_distributor_replication_factor&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The configured replication factor.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_distributor_structured_metadata_bytes_received_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;retention_hours&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_experimental_features_in_use_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_index_chunk_refs_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;loki_index_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_index_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_index_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_inflight_requests&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of inflight requests.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_autoforget_unhealthy_ingesters_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_blocks_per_chunk_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_blocks_per_chunk_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_blocks_per_chunk_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_checkpoint_creations_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_checkpoint_creations_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_checkpoint_deletions_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_checkpoint_deletions_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_checkpoint_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time taken to create a checkpoint.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_checkpoint_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_checkpoint_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_checkpoint_logged_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_age_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_chunk_age_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_age_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_bounds_hours_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_chunk_bounds_hours_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_bounds_hours_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_compression_ratio_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_chunk_compression_ratio_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_compression_ratio_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_encode_time_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_chunk_encode_time_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_encode_time_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_entries_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_chunk_entries_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_entries_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_chunk_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_stored_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_ingester_chunk_utilization_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_chunk_utilization_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunk_utilization_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunks_created_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_chunks_flushed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;reason&lt;/code&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;loki_ingester_chunks_stored_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_ingester_client_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_ingester_client_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_ingester_client_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_ingester_limiter_enabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether the ingester&amp;rsquo;s limiter is enabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_memory_chunks&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of chunks in memory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_memory_streams&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of streams in memory per tenant.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_memory_streams_labels_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total bytes of labels of the streams in memory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_received_chunks&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of chunks received by this ingester whilst joining.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_samples_per_chunk_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_ingester_samples_per_chunk_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_samples_per_chunk_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_sent_chunks&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of chunks sent by this ingester whilst leaving.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_shutdown_marker&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1 if prepare shutdown has been called, 0 otherwise&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_streams_created_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_ingester_streams_removed_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;tenant&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;loki_ingester_wal_bytes_in_use&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes in use by the WAL recovery process.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_wal_disk_full_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_duplicate_entries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_logged_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_records_logged_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_recovered_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_recovered_chunks_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_recovered_entries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_recovered_streams_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_ingester_wal_replay_active&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether the WAL is replaying&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_wal_replay_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time taken to replay the checkpoint and the WAL.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_ingester_wal_replay_flushing&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether the wal replay is in a flushing phase due to backpressure&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_internal_log_messages_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;level&lt;/code&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;loki_kv_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_kv_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_kv_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;kv_name&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_log_flushes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_log_flushes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_log_flushes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_log_messages_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;level&lt;/code&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;loki_logql_querystats_bytes_processed_per_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;sharded&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;latency_type&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;loki_logql_querystats_bytes_processed_per_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;sharded&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;latency_type&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;loki_logql_querystats_bytes_processed_per_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;sharded&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;latency_type&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;loki_logql_querystats_chunk_download_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_logql_querystats_chunk_download_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_logql_querystats_chunk_download_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_logql_querystats_downloaded_chunk_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_logql_querystats_duplicates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_logql_querystats_ingester_sent_lines_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_logql_querystats_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_logql_querystats_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_logql_querystats_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;range&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_panic_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_querier_index_cache_corruptions_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_querier_index_cache_encode_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_querier_index_cache_gets_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_querier_index_cache_hits_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_querier_index_cache_puts_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_querier_query_frontend_clients&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current number of clients connected to query-frontend.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_querier_query_frontend_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_querier_query_frontend_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_querier_query_frontend_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;operation&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_querier_tail_active&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of active tailers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_querier_tail_active_streams&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of active streams being tailed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_querier_tail_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_querier_worker_concurrency&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of concurrent querier workers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_querier_worker_inflight_queries&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of queries being processed by the querier workers&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_query_frontend_log_result_cache_hit_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_query_frontend_log_result_cache_miss_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_query_frontend_partitions_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_query_frontend_partitions_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_query_frontend_partitions_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_query_frontend_shard_factor_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;mapper&lt;/code&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;loki_query_frontend_shard_factor_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;mapper&lt;/code&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;loki_query_frontend_shard_factor_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;mapper&lt;/code&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;loki_query_scheduler_enqueue_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;user&lt;/code&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;loki_rate_store_expired_streams_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_rate_store_max_stream_rate_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The maximum stream rate for any stream reported by ingesters during a sync operation. Sharded Streams are combined.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_rate_store_max_stream_shards&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of shards for a single stream reported by ingesters during a sync operation.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_rate_store_max_unique_stream_rate_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The maximum stream rate for any stream reported by ingesters during a sync operation. Sharded Streams are considered separate.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_rate_store_stream_rate_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_rate_store_stream_rate_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_rate_store_stream_rate_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_rate_store_stream_shards_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;loki_rate_store_stream_shards_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_rate_store_stream_shards_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_rate_store_streams&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of unique streams reported by all ingesters. Sharded streams are combined&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ws&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ws&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ws&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;status_code&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;loki_request_message_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;route&lt;/code&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;loki_request_message_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;route&lt;/code&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;loki_request_message_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;route&lt;/code&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;loki_response_message_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;route&lt;/code&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;loki_response_message_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;route&lt;/code&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;loki_response_message_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;route&lt;/code&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;loki_results_cache_version_comparisons_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;loki_store_chunks_downloaded_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;loki_store_chunks_per_batch_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;loki_store_chunks_per_batch_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;loki_store_chunks_per_batch_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;loki_store_series_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;status&lt;/code&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;loki_stream_sharding_count&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of times the distributor has sharded streams&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_tcp_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;protocol&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of accepted TCP connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;loki_tcp_connections_limit&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;protocol&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The max number of TCP connections that can be accepted (0 means no limit).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_dialer_conn_attempted_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections attempted by the given dialer a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_dialer_conn_closed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections closed which originated from the dialer of a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_dialer_conn_established_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections successfully established by the given dialer a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_dialer_conn_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections failed to dial by the dialer a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_listener_conn_accepted_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;listener_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections opened to the listener of a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_listener_conn_closed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;listener_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections closed that were made to the listener of a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_connections_accepted&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Accepted client connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_connections_active&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Active client connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_connections_handled&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Handled client connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_connections_reading&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Connections where NGINX is reading the request header&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_connections_waiting&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Idle client connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_connections_writing&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Connections where NGINX is writing the response back to the client&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_exporter_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which nginx_exporter was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_http_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total http requests&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nginx_up&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Status of the last metric scrape&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;plugins_active_instances&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of active plugin instances&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;plugins_datasource_instances_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;process_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;prometheus_api_remote_read_queries&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current number of remote read queries being executed or waiting.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which prometheus was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_config_last_reload_success_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp of the last successful configuration reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_config_last_reload_successful&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether the last configuration reload attempt was successful.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_engine_queries&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current number of queries being executed or waiting.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_engine_queries_concurrent_max&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The max number of concurrent queries.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_engine_query_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;, &lt;code&gt;slice&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Query timings&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_engine_query_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;slice&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;prometheus_engine_query_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;slice&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;prometheus_engine_query_log_enabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;State of the query log.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_engine_query_log_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of query log failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_engine_query_samples_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of samples loaded by all queries.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_http_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;prometheus_http_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;prometheus_http_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;prometheus_http_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;handler&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Counter of HTTP requests.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_http_response_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;prometheus_http_response_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;prometheus_http_response_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;handler&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;prometheus_notifications_alertmanagers_discovered&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of alertmanagers discovered and active.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_notifications_dropped_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of alerts dropped due to errors when sending to Alertmanager.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_notifications_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;alertmanager&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of errors sending alert notifications.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_notifications_latency_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;alertmanager&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Latency quantiles for sending alert notifications.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_notifications_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;alertmanager&lt;/code&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;prometheus_notifications_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;alertmanager&lt;/code&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;prometheus_notifications_queue_capacity&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The capacity of the alert notifications queue.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_notifications_queue_length&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of alert notifications in the queue.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_notifications_sent_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;alertmanager&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of alerts sent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_ready&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether Prometheus startup was fully completed and the server is ready for normal operation.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_exemplars_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Exemplars in to remote storage, compare to exemplars out for queue managers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_highest_timestamp_in_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest timestamp that has come into the remote storage via the Appender interface, in seconds since epoch.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_histograms_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;HistogramSamples in to remote storage, compare to histograms out for queue managers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_samples_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Samples in to remote storage, compare to samples out for queue managers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_string_interner_zero_reference_releases_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of times release has been called for strings that are not interned.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_evaluation_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration for a rule to execute.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_evaluation_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_rule_evaluation_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_rule_evaluation_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of rule evaluation failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_evaluations_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of rule evaluations.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of rule group evaluations.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_rule_group_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_rule_group_interval_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The interval of a rule group.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_iterations_missed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of rule group evaluations missed due to slow rule group evaluation.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_iterations_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of scheduled rule group evaluations, whether executed or missed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_last_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of the last rule group evaluation.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_last_evaluation_samples&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of samples returned during the last rule group evaluation.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_last_evaluation_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The timestamp of the last rule group evaluation in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_rule_group_rules&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;rule_group&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of rules.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_azure_cache_hit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of cache hit during refresh.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_azure_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of Azure service discovery refresh failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_consul_rpc_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of a Consul RPC call in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_consul_rpc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;call&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;prometheus_sd_consul_rpc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;call&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;prometheus_sd_consul_rpc_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of Consul RPC call failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_discovered_targets&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;config&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of discovered targets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_dns_lookup_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of DNS-SD lookup failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_dns_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of DNS-SD lookups.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_failed_configs&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of service discovery configurations that failed to load.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_file_mtime_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;filename&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Timestamp (mtime) of files read by FileSD. Timestamp is set at read time.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_file_read_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of File-SD read errors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_file_scan_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of the File-SD scan in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_file_scan_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_sd_file_scan_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_sd_file_watcher_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of File-SD errors caused by filesystem watch failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_http_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of HTTP service discovery refresh failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_kubernetes_events_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;event&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of Kubernetes events handled.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_kuma_fetch_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of a Kuma MADS fetch call.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_kuma_fetch_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_sd_kuma_fetch_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_sd_kuma_fetch_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of Kuma MADS fetch call failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_kuma_fetch_skipped_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of Kuma MADS fetch calls that result in no updates to the targets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_linode_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of Linode service discovery refresh failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_nomad_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of nomad service discovery refresh failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_received_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of update events received from the SD providers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of update events sent to the SD consumers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_interval_length_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;interval&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Actual intervals between scrapes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_interval_length_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;interval&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_target_interval_length_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;interval&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_target_metadata_cache_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of bytes that are currently used for storing metric metadata in the cache&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_metadata_cache_entries&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of metric metadata entries in the cache&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_exceeded_label_limits_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of times scrape pools hit the label limits, during sync or config reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_exceeded_target_limit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of times scrape pools hit the target limit, during sync or config reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_reloads_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed scrape pool reloads.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_reloads_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrape pool reloads.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_sync_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of syncs that were executed on a scrape pool.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_target_limit&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum number of targets allowed in this scrape pool.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_targets&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of targets in this scrape pool.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pools_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrape pool creations that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pools_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrape pool creation attempts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_cache_flush_forced_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many times a scrape cache was flushed due to getting big while scrapes are failing.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_exceeded_body_size_limit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrapes that hit the body size limit&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_exceeded_native_histogram_bucket_limit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrapes that hit the native histogram bucket limit and were rejected.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_exceeded_sample_limit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrapes that hit the sample limit and were rejected.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_exemplar_out_of_order_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of exemplar rejected due to not being out of the expected order.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_sample_duplicate_timestamp_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of samples rejected due to duplicate timestamps but different values.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_sample_out_of_bounds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of samples rejected due to timestamp falling outside of the time bounds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_sample_out_of_order_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of samples rejected due to not being out of the expected order.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_sync_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of target sync failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_sync_length_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Actual interval to sync the scrape pool.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_sync_length_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&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;prometheus_target_sync_length_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;scrape_job&lt;/code&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;prometheus_template_text_expansion_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of template text expansion failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_template_text_expansions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of template text expansions.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_treecache_watcher_goroutines&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current number of watcher goroutines.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_treecache_zookeeper_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of ZooKeeper failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_blocks_loaded&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of currently loaded data blocks&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_checkpoint_creations_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of checkpoint creations that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_checkpoint_creations_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of checkpoint creations attempted.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_checkpoint_deletions_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of checkpoint deletions that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_checkpoint_deletions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of checkpoint deletions attempted.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_clean_start&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;-1: lockfile is disabled. 0: a lockfile from a previous execution was replaced. 1: lockfile creation was clean&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_compaction_chunk_range_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;prometheus_tsdb_compaction_chunk_range_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_chunk_range_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_chunk_samples_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;prometheus_tsdb_compaction_chunk_samples_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_chunk_samples_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_chunk_size_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;prometheus_tsdb_compaction_chunk_size_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_chunk_size_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;prometheus_tsdb_compaction_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_compaction_populating_block&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Set to 1 when a block is currently being written to the disk.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_compactions_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of compactions that failed for the partition.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_compactions_skipped_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of skipped compactions due to disabled auto compaction.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_compactions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of compactions that were executed for the partition.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_compactions_triggered_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of triggered compactions for the partition.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_data_replay_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time taken to replay the data on disk.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_exemplar_exemplars_appended_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of appended exemplars.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_exemplar_exemplars_in_storage&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of exemplars currently in circular storage.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_exemplar_last_exemplars_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The timestamp of the oldest exemplar stored in circular storage. Useful to check for what timerange the current exemplar buffer limit allows. This usually means the last timestampfor all exemplars for a typical setup. This is not true though if one of the series timestamp is in future compared to rest series.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_exemplar_max_exemplars&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of exemplars the exemplar storage can store, resizeable.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_exemplar_out_of_order_exemplars_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of out of order exemplar ingestion failed attempts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_exemplar_series_with_exemplars_in_storage&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of series with exemplars currently in circular storage.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_active_appenders&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of currently active appender transactions&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_chunks&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of chunks in the head block.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_chunks_created_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of chunks created in the head&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_chunks_removed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of chunks removed in the head&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_chunks_storage_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the chunks_head directory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_gc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_head_gc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_head_max_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum timestamp of the head block. The unit is decided by the library consumer.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_max_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum timestamp of the head block.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_min_time&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Minimum time bound of the head block. The unit is decided by the library consumer.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_min_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Minimum time bound of the head block.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_out_of_order_samples_appended_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of appended out of order samples.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_samples_appended_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of appended samples.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_series&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of series in the head block.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_series_created_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of series created in the head&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_series_not_found_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests for series that were not found.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_series_removed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of series removed in the head&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_truncations_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of head truncations that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_head_truncations_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of head truncations attempted.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_isolation_high_watermark&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The highest TSDB append ID that has been given out.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_isolation_low_watermark&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The lowest TSDB append ID that is still referenced.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_lowest_timestamp&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Lowest timestamp value stored in the database. The unit is decided by the library consumer.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_lowest_timestamp_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Lowest timestamp value stored in the database.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_mmap_chunk_corruptions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of memory-mapped chunk corruptions.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_mmap_chunks_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of chunks that were memory-mapped.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_out_of_bound_samples_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of out of bound samples ingestion failed attempts with out of order support disabled.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_out_of_order_samples_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of out of order samples ingestion failed attempts due to out of order being disabled.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_reloads_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times the database failed to reloadBlocks block data from disk.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_reloads_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of times the database reloaded block data from disk.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_retention_limit_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Max number of bytes to be retained in the tsdb blocks, configured 0 means disabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_retention_limit_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How long to retain samples in storage.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_size_retentions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of times that blocks were deleted because the maximum number of bytes was exceeded.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_snapshot_replay_error_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number snapshot replays that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_storage_blocks_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of bytes that are currently used for local storage by all blocks.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_symbol_table_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of symbol table in memory for loaded blocks&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_time_retentions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of times that blocks were deleted because the maximum time limit was exceeded.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_tombstone_cleanup_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&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;prometheus_tsdb_tombstone_cleanup_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_tombstone_cleanup_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_too_old_samples_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of out of order samples ingestion failed attempts with out of support enabled, but sample outside of time window.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_vertical_compactions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of compactions done on overlapping blocks.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_completed_pages_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of completed pages.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_corruptions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of WAL corruptions.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_fsync_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Duration of write log fsync.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_fsync_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_wal_fsync_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_wal_page_flushes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of page flushes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_segment_current&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Write log segment index that TSDB is currently writing to.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_storage_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Size of the write log directory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_truncate_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_wal_truncate_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;prometheus_tsdb_wal_truncations_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of write log truncations that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_truncations_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of write log truncations attempted.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_tsdb_wal_writes_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of write log writes that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_web_federation_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of errors that occurred while sending federation responses.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_web_federation_warnings_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of warnings that occurred while sending federation responses.&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&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;pushgateway_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which pushgateway was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;pushgateway_http_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;handler&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total HTTP requests processed by the Pushgateway, excluding scrapes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;querier_cache_added_new_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cache&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;querier_cache_added_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cache&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;querier_cache_entries&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cache&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of entries&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;querier_cache_evicted_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;, &lt;code&gt;cache&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;querier_cache_gets_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cache&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;querier_cache_memory_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cache&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current cache size in bytes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;querier_cache_misses_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cache&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;querier_cache_stale_gets_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cache&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;ring_member_heartbeats_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;ring_member_tokens_owned&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of tokens owned in the ring.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ring_member_tokens_to_own&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of tokens to own in the ring.&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;scrape_samples_post_metric_relabeling&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;scrape_samples_scraped&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;scrape_series_added&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;ping-metrics&#34;&gt;PING Metrics&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;PING&lt;/code&gt;&lt;/strong&gt; job has 54 metrics, provided by &lt;code&gt;blackbox_exporter&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/infra/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-components-are-included-in-the-infra-module&#34;&gt;What components are included in the INFRA module?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Strictly following the current source, the &lt;code&gt;infra&lt;/code&gt; role directly manages:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Nginx&lt;/strong&gt;: Exposes Grafana, VictoriaMetrics (VMUI), Alertmanager, and other WebUIs, and hosts local YUM/APT repositories.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DNSMasq&lt;/strong&gt;: Provides DNS registration and resolution.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VictoriaMetrics suite&lt;/strong&gt;: VictoriaMetrics, VMAlert, VictoriaLogs, and VictoriaTraces.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Alertmanager, Blackbox Exporter, and Grafana&lt;/strong&gt;: Alert dispatch, blackbox probing, and visualization.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;infra.yml&lt;/code&gt; also chains the CA, repository, NODE, HAProxy, and node-monitoring roles, so it configures supporting capabilities such as the self-signed CA, Chronyd, Node Exporter, and Vector on Infra nodes. ETCD, PostgreSQL, and Docker are separate modules and are not deployed by &lt;code&gt;infra.yml&lt;/code&gt;; use &lt;code&gt;etcd.yml&lt;/code&gt;, &lt;code&gt;pgsql.yml&lt;/code&gt;, and &lt;code&gt;docker.yml&lt;/code&gt;, respectively.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Nginx Management</title>
        <link>https://pgsty.pro/docs/infra/admin/portal/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/admin/portal/</guid>
        <description>&lt;p&gt;Pigsty installs Nginx on INFRA nodes as the entry point for all web services, listening on standard ports 80/443.&lt;/p&gt;&#xA;&lt;p&gt;In Pigsty, you can configure Nginx to provide various services through inventory:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Expose web interfaces for monitoring components like Grafana, VictoriaMetrics (VMUI), Alertmanager, and VictoriaLogs&lt;/li&gt;&#xA;&lt;li&gt;Serve static files (software repos, documentation sites, websites, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Proxy custom application services (internal apps, database management UIs, Docker application interfaces, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Automatically issue self-signed HTTPS certificates, or use Certbot to obtain free Let&amp;rsquo;s Encrypt certificates&lt;/li&gt;&#xA;&lt;li&gt;Expose services through a single port using different subdomains for unified access&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;basic-configuration&#34;&gt;Basic Configuration&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Customize Nginx behavior via &lt;a href=&#34;https://pgsty.pro/docs/infra/param/#infra_portal&#34;&gt;&lt;code&gt;infra_portal&lt;/code&gt;&lt;/a&gt; parameter:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Software Repository</title>
        <link>https://pgsty.pro/docs/infra/admin/repo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/admin/repo/</guid>
        <description>&lt;p&gt;Pigsty&amp;rsquo;s REPO role downloads required packages and creates a local YUM/APT repository under &lt;code&gt;/www/pigsty&lt;/code&gt; that Nginx can serve. The current package candidate is &lt;strong&gt;SOW 0.3.0&lt;/strong&gt;; the source uses SOW to generate metadata for both repository types instead of calling &lt;code&gt;createrepo_c&lt;/code&gt;, &lt;code&gt;modifyrepo_c&lt;/code&gt;, or &lt;code&gt;dpkg-scanpackages&lt;/code&gt; separately.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Add packages to &lt;a href=&#34;https://pgsty.pro/docs/infra/param/#repo_packages&#34;&gt;&lt;code&gt;repo_packages&lt;/code&gt;&lt;/a&gt; or &lt;a href=&#34;https://pgsty.pro/docs/infra/param/#repo_extra_packages&#34;&gt;&lt;code&gt;repo_extra_packages&lt;/code&gt;&lt;/a&gt;, then run:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-63a415b9-fence-0&#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-63a415b9-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;./infra.yml -t repo_build   &lt;span class=&#34;c1&#34;&gt;# Download and build only when the repository is absent&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./node.yml -t node_repo     &lt;span class=&#34;c1&#34;&gt;# Refresh repository definitions and caches on each node&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;If &lt;code&gt;/www/pigsty/repo_complete&lt;/code&gt; already exists, the default &lt;code&gt;repo_build&lt;/code&gt; skips the build. To force a rebuild, override it explicitly:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Domain Management</title>
        <link>https://pgsty.pro/docs/infra/admin/domain/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/admin/domain/</guid>
        <description>&lt;p&gt;Use domain names instead of IP addresses to access Pigsty&amp;rsquo;s various web services.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Add the following static resolution records to &lt;code&gt;/etc/hosts&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-58b1a411-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-58b1a411-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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;10.10.10.10 i.pigsty&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;Replace IP address with your actual Pigsty node&amp;rsquo;s IP.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;why-use-domain-names&#34;&gt;Why Use Domain Names&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Easier to remember than IP addresses&lt;/li&gt;&#xA;&lt;li&gt;Flexible pointing to different IPs&lt;/li&gt;&#xA;&lt;li&gt;Unified service management through Nginx&lt;/li&gt;&#xA;&lt;li&gt;Support for HTTPS encryption&lt;/li&gt;&#xA;&lt;li&gt;Prevent ISP hijacking in some regions&lt;/li&gt;&#xA;&lt;li&gt;Allow access to internally bound services via proxy&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;dns-mechanism&#34;&gt;DNS Mechanism&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;DNS Protocol&lt;/strong&gt;: Resolves domain names to IP addresses. Multiple domains can point to same IP.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Module Management</title>
        <link>https://pgsty.pro/docs/infra/admin/sop/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/admin/sop/</guid>
        <description>&lt;p&gt;This document covers daily management operations for the INFRA module, including installation, uninstallation, scaling, and component maintenance.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;install-infra-module&#34;&gt;Install INFRA Module&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use the &lt;a href=&#34;https://pgsty.pro/docs/infra/playbook/#infrayml&#34;&gt;&lt;code&gt;infra.yml&lt;/code&gt;&lt;/a&gt; playbook to install the INFRA module on the &lt;code&gt;infra&lt;/code&gt; group:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-b6ac265d-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-b6ac265d-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;./infra.yml     &lt;span class=&#34;c1&#34;&gt;# Install INFRA module on infra group&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;uninstall-infra-module&#34;&gt;Uninstall INFRA Module&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use the &lt;a href=&#34;https://pgsty.pro/docs/infra/playbook/#infra-rmyml&#34;&gt;&lt;code&gt;infra-rm.yml&lt;/code&gt;&lt;/a&gt; playbook to uninstall the INFRA module from the &lt;code&gt;infra&lt;/code&gt; group:&lt;/p&gt;</description>
      </item>
    <item>
        <title>CA and Certificates</title>
        <link>https://pgsty.pro/docs/infra/admin/cert/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/admin/cert/</guid>
        <description>&lt;p&gt;Pigsty maintains a self-signed Certificate Authority (CA) on the admin node by default. It signs certificates for PostgreSQL, Patroni, etcd, Silo, Nginx, and other internal services. Public Nginx entries can use Certbot/Let&amp;rsquo;s Encrypt certificates configured through &lt;code&gt;infra_portal&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--caution&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-xmark&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Protect the CA private key&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;&lt;code&gt;files/pki/ca/ca.key&lt;/code&gt; is the trust-root private key for the entire deployment. Never print, commit, upload, or transmit it over an unprotected channel. Back it up together with &lt;code&gt;ca.crt&lt;/code&gt;, encrypted, with tightly restricted read access.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/node/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/node/config/</guid>
        <description>&lt;p&gt;Pigsty uses &lt;strong&gt;IP address&lt;/strong&gt; as the unique identifier for &lt;strong&gt;nodes&lt;/strong&gt;. &lt;strong&gt;This IP should be the internal IP address on which the database instance listens and provides external services&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a7e88132-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-a7e88132-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;node-test&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;&#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;10.10.10.11&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;nodename&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;node-test-1 }&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;10.10.10.12&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;nodename&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;node-test-2 }&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;10.10.10.13&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;nodename&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;node-test-3 }&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;node_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;node-test&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;This IP address must be the address on which the database instance listens and provides external services, but should not be a public IP address. That said, you don&amp;rsquo;t necessarily have to connect to the database via this IP. For example, managing target nodes indirectly through SSH tunnels or jump hosts is also feasible. However, when identifying database nodes, the primary IPv4 address remains the node&amp;rsquo;s core identifier. &lt;strong&gt;This is critical, and you should ensure this during configuration&lt;/strong&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/node/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/node/param/</guid>
        <description>&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;NODE&lt;/a&gt; module tunes target nodes into the desired state and integrates them into the Pigsty monitoring system.&lt;/p&gt;&#xA;&lt;hr&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;Parameter Section&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/param/#node_id&#34;&gt;&lt;code&gt;NODE_ID&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node identity parameters&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/docs/node/param/#node_dns&#34;&gt;&lt;code&gt;NODE_DNS&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node DNS resolution&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/docs/node/param/#node_package&#34;&gt;&lt;code&gt;NODE_PACKAGE&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upstream repo &amp;amp; package install&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/docs/node/param/#node_tune&#34;&gt;&lt;code&gt;NODE_TUNE&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node tuning &amp;amp; kernel features&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/docs/node/param/#node_sec&#34;&gt;&lt;code&gt;NODE_SEC&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node security configurations&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/docs/node/param/#node_admin&#34;&gt;&lt;code&gt;NODE_ADMIN&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Admin user &amp;amp; SSH keys&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/docs/node/param/#node_time&#34;&gt;&lt;code&gt;NODE_TIME&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Timezone, NTP, 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/docs/node/param/#node_vip&#34;&gt;&lt;code&gt;NODE_VIP&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Optional L2 VIP for cluster&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/docs/node/param/#haproxy&#34;&gt;&lt;code&gt;HAPROXY&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;HAProxy load balancer&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/docs/node/param/#node_exporter&#34;&gt;&lt;code&gt;NODE_EXPORTER&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node monitoring exporter&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/docs/node/param/#vector&#34;&gt;&lt;code&gt;VECTOR&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Vector log collector&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;parameters-overview&#34;&gt;Parameters Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/param/#node_id&#34;&gt;&lt;code&gt;NODE_ID&lt;/code&gt;&lt;/a&gt; section defines node identity parameters, including node name, cluster name, and whether to borrow identity from PostgreSQL.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/node/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/node/playbook/</guid>
        <description>&lt;p&gt;Pigsty provides two playbooks related to the NODE module:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/playbook/#nodeyml&#34;&gt;&lt;code&gt;node.yml&lt;/code&gt;&lt;/a&gt;: Add nodes to Pigsty and configure them to the desired state&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/playbook/#node-rmyml&#34;&gt;&lt;code&gt;node-rm.yml&lt;/code&gt;&lt;/a&gt;: Remove managed nodes from Pigsty&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Two wrapper scripts are also provided: &lt;code&gt;bin/node-add&lt;/code&gt; and &lt;code&gt;bin/node-rm&lt;/code&gt;, for quickly invoking these playbooks.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;nodeyml&#34;&gt;&lt;code&gt;node.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/node.yml&#34;&gt;&lt;code&gt;node.yml&lt;/code&gt;&lt;/a&gt; playbook for adding nodes to Pigsty contains the following subtasks:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-7866e6fe-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;24&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-7866e6fe-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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node-id       : generate node identity&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_name     : setup hostname&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_hosts    : setup /etc/hosts records&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_resolv   : setup DNS resolver /etc/resolv.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_firewall : setup firewall &amp;amp; selinux&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_ca       : add &amp;amp; trust CA certificate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_repo     : add upstream software repository&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_pkg      : install rpm/deb packages&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_uv       : setup uv Python virtual environment&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_feature  : setup numa, grub, static network&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_kernel   : enable kernel modules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_tune     : setup tuned profile&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_sysctl   : setup additional sysctl parameters&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_profile  : write /etc/profile.d/node.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_alias    : write /etc/profile.d/node.alias.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_ulimit   : setup resource limits&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_data     : setup data directory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_admin    : setup admin user and ssh key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_timezone : setup timezone&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_ntp      : setup NTP server/client&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_crontab  : add/overwrite crontab tasks&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node_vip      : setup optional L2 VIP for node cluster&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;haproxy       : setup haproxy on node to expose services&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;monitor       : setup node monitoring: node_exporter &amp;amp; vector&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;node-rmyml&#34;&gt;&lt;code&gt;node-rm.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/node-rm.yml&#34;&gt;&lt;code&gt;node-rm.yml&lt;/code&gt;&lt;/a&gt; playbook for removing nodes from Pigsty contains the following subtasks:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/node/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/node/admin/</guid>
        <description>&lt;p&gt;Here are common administration operations for the NODE module:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/admin/#add-node&#34;&gt;Add Node&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/admin/#remove-node&#34;&gt;Remove Node&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/admin/#create-admin&#34;&gt;Create Admin&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/admin/#bind-vip&#34;&gt;Bind VIP&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/admin/#add-node-monitoring&#34;&gt;Add Node Monitoring&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/node/admin/#other-tasks&#34;&gt;Other Tasks&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For more questions, see &lt;a href=&#34;https://pgsty.pro/docs/node/faq/&#34;&gt;FAQ: NODE&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;add-node&#34;&gt;Add Node&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To add a node to Pigsty, you need passwordless ssh/sudo access to that node.&lt;/p&gt;&#xA;&lt;p&gt;You can also add an entire cluster at once, or use wildcards to match nodes in the inventory to add to Pigsty.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/node/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/node/monitor/</guid>
        <description>&lt;p&gt;Pigsty currently provides 10 monitoring dashboards in the NODE dashboard directory, along with comprehensive alerting rules.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;dashboards&#34;&gt;Dashboards&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The NODE dashboard directory currently contains 10 dashboards. The JuiceFS and Claude Code dashboards show data only after those components are deployed and emit metrics.&lt;/p&gt;&#xA;&lt;h3 id=&#34;node-overview&#34;&gt;NODE Overview&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Displays an overall overview of all host nodes in the current environment.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/d/node-overview&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/dashboard/node-overview.jpg&#34; alt=&#34;node-overview.jpg&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;node-cluster&#34;&gt;NODE Cluster&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Shows detailed monitoring data for a specific host cluster.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/node/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/node/metric/</guid>
        <description>&lt;p&gt;This page is a snapshot of 727 monitoring metric categories for the &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module. The actual runtime metric set varies with package version, enabled collectors, and target state.&lt;/p&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;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;alertname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;alertstate&lt;/code&gt;, &lt;code&gt;category&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;alertname&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;category&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;deprecated_flags_inuse_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;go_gc_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;quantile&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;go_gc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;go_goroutines&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;haproxy:cls: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;haproxy:ins:uptime&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;haproxy:ins:usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;haproxy_backend_active_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of active UP servers with a non-zero weight&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_agg_check_status&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;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Backend&amp;rsquo;s aggregated gauge of servers&amp;rsquo; state check status&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_agg_server_check_status&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;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;[DEPRECATED] Backend&amp;rsquo;s aggregated gauge of servers&amp;rsquo; status&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_agg_server_status&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;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Backend&amp;rsquo;s aggregated gauge of servers&amp;rsquo; status&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_backup_servers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of backup UP servers with a non-zero weight&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_bytes_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of request bytes since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of response bytes since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_check_last_change_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How long ago the last server state changed, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_check_up_down_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed checks causing UP to DOWN server transitions, per server/backend, since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_client_aborts_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests or connections aborted by the client since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_connect_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. connect time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_connection_attempts_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of outgoing connection attempts on this backend/server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_connection_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed connections to server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_connection_reuses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of reused connection on this backend/server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_current_queue&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of current queued connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_current_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of current sessions on the frontend, backend or server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_downtime_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total time spent in DOWN state, for server or backend&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_failed_header_rewriting_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed HTTP header rewrites since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_cache_hits_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP requests not found in the cache on this frontend/backend since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_cache_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP requests looked up in the cache on this frontend/backend since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_comp_bytes_bypassed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes that bypassed HTTP compression for this object since the worker process started (CPU/memory/bandwidth limitation)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_comp_bytes_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes submitted to the HTTP compressor for this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_comp_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes emitted by the HTTP compressor for this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_comp_responses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP responses that were compressed for this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP requests processed by this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_http_responses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;job&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 HTTP responses with status 100-199 returned by this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_internal_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of internal errors since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_last_session_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How long ago some traffic was seen on this object on this worker process, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_limit_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Frontend/listener/server&amp;rsquo;s maxconn, backend&amp;rsquo;s fullconn&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_loadbalanced_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests routed by load balancing since the worker process started (ignores queue pop and stickiness)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_max_connect_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed time spent waiting for a connection to complete&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_max_queue&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of queued connections encountered since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_max_queue_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed time spent in the queue&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_max_response_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed time spent waiting for a server response&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_max_session_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of sessions per second observed since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_max_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of current sessions encountered since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_max_total_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed total request+response time (request+queue+connect+response+processing)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_queue_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. queue time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_redispatch_warnings_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of server redispatches due to connection failures since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_requests_denied_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of denied requests since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_response_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of invalid responses since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_response_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. response time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_responses_denied_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of denied responses since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_retry_warnings_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of server connection retries since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_server_aborts_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests or connections aborted by the server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_sessions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of sessions since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_status&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;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current status of the service, per state label value.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_total_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. total time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_uweight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server&amp;rsquo;s user weight, or sum of active servers&amp;rsquo; user weights for a backend&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_backend_weight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server&amp;rsquo;s effective weight, or sum of active servers&amp;rsquo; effective weights for a backend&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_bytes_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of request bytes since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of response bytes since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_connections_rate_max&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of connections per second observed since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_connections_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of new connections accepted on this frontend since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_current_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of current sessions on the frontend, backend or server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_denied_connections_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of incoming connections blocked on a listener/frontend by a tcp-request connection rule since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_denied_sessions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of incoming sessions blocked on a listener/frontend by a tcp-request connection rule since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_failed_header_rewriting_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed HTTP header rewrites since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_cache_hits_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP requests not found in the cache on this frontend/backend since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_cache_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP requests looked up in the cache on this frontend/backend since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_comp_bytes_bypassed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes that bypassed HTTP compression for this object since the worker process started (CPU/memory/bandwidth limitation)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_comp_bytes_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes submitted to the HTTP compressor for this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_comp_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes emitted by the HTTP compressor for this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_comp_responses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP responses that were compressed for this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_requests_rate_max&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of http requests observed since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP requests processed by this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_http_responses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;job&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 HTTP responses with status 100-199 returned by this object since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_intercepted_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of HTTP requests intercepted on the frontend (redirects/stats/services) since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_internal_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of internal errors since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_limit_session_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Limit on the number of sessions accepted in a second (frontend only, &amp;lsquo;rate-limit sessions&amp;rsquo; setting)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_limit_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Frontend/listener/server&amp;rsquo;s maxconn, backend&amp;rsquo;s fullconn&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_max_session_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of sessions per second observed since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_max_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of current sessions encountered since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_request_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of invalid requests since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_requests_denied_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of denied requests since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_responses_denied_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of denied responses since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_sessions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of sessions since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_frontend_status&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;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current status of the service, per state label value.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_active_peers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of verified active peers connections on the current worker process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_build_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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Build info&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_busy_polling_enabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1 if busy-polling is currently in use on the worker process, otherwise zero (config.busy-polling)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_bytes_out_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes emitted by current worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes emitted by current worker process since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_connected_peers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of peers having passed the connection step on the current worker process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_connections_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections on this worker process since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_backend_ssl_key_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of SSL keys created on backends in this worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_connection_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of front connections created on this worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of connections on this worker process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_frontend_ssl_key_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of SSL keys created on frontends in this worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_run_queue&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of active tasks+tasklets in the current worker process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_session_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of sessions created on this worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_ssl_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of SSL endpoints on this worker process (front+back)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_ssl_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of SSL connections created on this worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_tasks&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of tasks in the current worker process (active + sleeping)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_current_zlib_memory&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Amount of memory currently used by HTTP compression on the current worker process (in bytes)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_dropped_logs_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of dropped logs for current worker process since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_failed_resolutions&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed DNS resolutions in current worker process since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_frontend_ssl_reuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Percent of frontend SSL connections which did not require a new key&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_hard_max_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit on the number of per-process connections (imposed by Memmax_MB or Ulimit-n)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_http_comp_bytes_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes submitted to the HTTP compressor in this worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_http_comp_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes emitted by the HTTP compressor in this worker process over the last second&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_idle_time_percent&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Percentage of last second spent waiting in the current worker thread&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_jobs&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of active jobs on the current worker process (frontend connections, master connections, listeners)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_limit_connection_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit for ConnRate (global.maxconnrate)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_limit_http_comp&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Limit of CompressBpsOut beyond which HTTP compression is automatically disabled&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_limit_session_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit for SessRate (global.maxsessrate)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_limit_ssl_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit for SslRate (global.maxsslrate)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_listeners&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of active listeners on the current worker process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_backend_ssl_key_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest SslBackendKeyRate reached on this worker process since started (in SSL keys per second)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_connection_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest ConnRate reached on this worker process since started (in connections per second)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit on the number of per-process connections (configured or imposed by Ulimit-n)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_fds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit on the number of per-process file descriptors&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_frontend_ssl_key_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest SslFrontendKeyRate reached on this worker process since started (in SSL keys per second)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_memory_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Worker process&amp;rsquo;s hard limit on memory usage in byes (-m on command line)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_pipes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit on the number of pipes for splicing, 0=unlimited&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_session_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest SessRate reached on this worker process since started (in sessions per second)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_sockets&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit on the number of per-process sockets&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_ssl_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hard limit on the number of per-process SSL endpoints (front+back), 0=unlimited&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_ssl_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest SslRate reached on this worker process since started (in connections per second)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_max_zlib_memory&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Limit on the amount of memory used by HTTP compression above which it is automatically disabled (in bytes, see global.maxzlibmem)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_nbproc&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of started worker processes (historical, always 1)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_nbthread&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of started threads (global.nbthread)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_pipes_free_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of allocated and available pipes in this worker process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_pipes_used_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of pipes in use in this worker process&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_pool_allocated_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Amount of memory allocated in pools (in bytes)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_pool_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of failed pool allocations since this worker was started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_pool_used_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Amount of pool memory currently used (in bytes)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_recv_logs_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of log messages received by log-forwarding listeners on this worker process since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_relative_process_id&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Relative worker process number (1)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests on this worker process since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_spliced_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes emitted by current worker process through a kernel pipe since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_ssl_cache_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of SSL session ID lookups in the SSL session cache on this worker since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_ssl_cache_misses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of SSL session ID lookups that didn&amp;rsquo;t find a session in the SSL session cache on this worker since started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_ssl_connections_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of SSL endpoints on this worker process since started (front+back)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_start_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Start time in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_stopping&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1 if the worker process is currently stopping, otherwise zero&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_unstoppable_jobs&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of unstoppable jobs on the current worker process (master connections)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_process_uptime_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How long ago this worker process was started (seconds)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_bytes_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of request bytes since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_bytes_out_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of response bytes since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_check_code&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;layer5-7 code, if available of the last health check.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_check_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total duration of the latest server health check, in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_check_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed individual health checks per server/backend, since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_check_last_change_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How long ago the last server state changed, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_check_status&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;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Status of last health check, per state label value.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_check_up_down_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed checks causing UP to DOWN server transitions, per server/backend, since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_client_aborts_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests or connections aborted by the client since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_connect_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. connect time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_connection_attempts_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of outgoing connection attempts on this backend/server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_connection_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed connections to server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_connection_reuses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of reused connection on this backend/server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_current_queue&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of current queued connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_current_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of current sessions on the frontend, backend or server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_current_throttle&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Throttling ratio applied to a server&amp;rsquo;s maxconn and weight during the slowstart period (0 to 100%)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_downtime_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total time spent in DOWN state, for server or backend&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_failed_header_rewriting_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed HTTP header rewrites since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_idle_connections_current&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of idle connections available for reuse on this server&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_idle_connections_limit&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Limit on the number of available idle connections on this server (server &amp;lsquo;pool_max_conn&amp;rsquo; directive)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_internal_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of internal errors since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_last_session_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How long ago some traffic was seen on this object on this worker process, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_limit_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Frontend/listener/server&amp;rsquo;s maxconn, backend&amp;rsquo;s fullconn&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_loadbalanced_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests routed by load balancing since the worker process started (ignores queue pop and stickiness)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_max_connect_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed time spent waiting for a connection to complete&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_max_queue&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of queued connections encountered since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_max_queue_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed time spent in the queue&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_max_response_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed time spent waiting for a server response&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_max_session_rate&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of sessions per second observed since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_max_sessions&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Highest value of current sessions encountered since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_max_total_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum observed total request+response time (request+queue+connect+response+processing)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_need_connections_current&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Estimated needed number of connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_queue_limit&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Limit on the number of connections in queue, for servers only (maxqueue argument)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_queue_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. queue time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_redispatch_warnings_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of server redispatches due to connection failures since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_response_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of invalid responses since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_response_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. response time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_responses_denied_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of denied responses since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_retry_warnings_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of server connection retries since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_safe_idle_connections_current&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of safe idle connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_server_aborts_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of requests or connections aborted by the server since the worker process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_sessions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of sessions since process started&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_status&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;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current status of the service, per state label value.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_total_time_average_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Avg. total time for last 1024 successful connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_unsafe_idle_connections_current&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of unsafe idle connections&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_used_connections_current&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of connections in use&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_uweight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server&amp;rsquo;s user weight, or sum of active servers&amp;rsquo; user weights for a backend&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_server_weight&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;proxy&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server&amp;rsquo;s effective weight, or sum of active servers&amp;rsquo; effective weights for a backend&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;haproxy_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;inflight_requests&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of inflight requests.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;jaeger_tracer_baggage_restrictions_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;result&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;jaeger_tracer_baggage_truncations_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;jaeger_tracer_baggage_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;result&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;jaeger_tracer_finished_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;sampled&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;jaeger_tracer_reporter_queue_length&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of spans in the reporter queue&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;jaeger_tracer_reporter_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;result&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;jaeger_tracer_sampler_queries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;result&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;jaeger_tracer_sampler_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;result&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;jaeger_tracer_span_context_decoding_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;jaeger_tracer_started_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;sampled&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;jaeger_tracer_throttled_debug_spans_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;jaeger_tracer_throttler_updates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;result&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;jaeger_tracer_traces_total&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;sampled&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;loki_experimental_features_in_use_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_internal_log_messages_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;level&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_log_flushes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&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;loki_log_flushes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_log_flushes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_log_messages_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;level&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_logql_querystats_duplicates_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_logql_querystats_ingester_sent_lines_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_querier_index_cache_corruptions_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_querier_index_cache_encode_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_querier_index_cache_gets_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_querier_index_cache_hits_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;loki_querier_index_cache_puts_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;net_conntrack_dialer_conn_attempted_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections attempted by the given dialer a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_dialer_conn_closed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections closed which originated from the dialer of a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_dialer_conn_established_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections successfully established by the given dialer a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;net_conntrack_dialer_conn_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;dialer_name&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of connections failed to dial by the dialer a given name.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node:cls:avail_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;node: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;node: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;node: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;node: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;node: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;node:cls:disk_io_bytes_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;node:cls:disk_iops_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;node:cls:disk_mreads_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;node:cls:disk_mreads_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;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;node:cls:disk_mwrites_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;node:cls:disk_mwrites_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;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;node:cls:disk_read_bytes_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;node:cls:disk_reads_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;node:cls:disk_write_bytes_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;node:cls:disk_writes_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;node:cls:free_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;node:cls:mem_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;node:cls:network_io_bytes_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;node:cls:network_rx_bytes_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;node:cls:network_rx_pps1m&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;node:cls:network_tx_bytes_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;node:cls:network_tx_pps1m&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;node:cls:size_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;node:cls: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;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;node:cls:space_usage_max&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;node:cls:stdload1&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;node:cls:stdload15&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;node:cls:stdload5&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;node:cls:time_drift_max&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;node:cpu:idle_time_irate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:sched_timeslices_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:sched_wait_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:time_irate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;mode&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:total_time_irate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:usage_avg15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:usage_avg1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:cpu:usage_avg5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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;node:dev:disk_avg_queue_size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_io_batch_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_io_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_io_rt_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_io_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_iops_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_mreads_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_mreads_ratio1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_mwrites_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_mwrites_ratio1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_read_batch_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_read_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_read_rt_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_read_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_reads_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_util_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_write_batch_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_write_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_write_rt_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_write_time_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:disk_writes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:network_io_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:network_rx_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:network_rx_pps1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:network_tx_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:dev:network_tx_pps1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:env:avail_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;node: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;node: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;node: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;node: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;node: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;node:env:device_space_usage_max&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;fstype&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;node:env:free_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;node:env:mem_avail&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;node:env:mem_total&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;node:env:mem_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;node:env:size_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;node:env: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;/td&gt;&#xA;      &lt;td&gt;N/A&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node:env:stdload1&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;node:env:stdload15&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;node:env:stdload5&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;node:fs:avail_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:free_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:inode_free&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:inode_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:inode_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:inode_used&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:space_deriv1h&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:space_exhaust&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:space_predict_1d&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:fs:space_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&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;node:ins&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;id&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;nodename&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;node:ins:avail_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:cpu_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:cpu_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:cpu_usage_15m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:cpu_usage_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:cpu_usage_5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:ctx_switch_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_io_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_iops_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_mreads_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_mreads_ratio1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_mwrites_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_mwrites_ratio1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_read_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_reads_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_write_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:disk_writes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:fd_alloc_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:fd_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:forks_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:free_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:inode_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:interrupt_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:mem_avail&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:mem_commit_ratio&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:mem_kernel&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:mem_rss&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:mem_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:network_io_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:network_rx_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:network_rx_pps1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:network_tx_bytes_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:network_tx_pps1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:pagefault_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:pagein_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:pageout_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:pgmajfault_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:sched_wait_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:space_usage_max&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:stdload1&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:stdload15&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:stdload5&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:swap_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:swapin_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:swapout_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_active_opens_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_dropped_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_error&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_error_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_insegs_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_outsegs_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_overflow_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_passive_opens_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_retrans_ratio1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_retranssegs_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:tcp_segs_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:time_drift&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:udp_in_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:udp_out_rate1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node:ins:uptime&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node_arp_entries&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;ARP entries by device&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_boot_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Node boot time, in unixtime.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_context_switches_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of context switches.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_cooling_device_cur_state&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current throttle state of the cooling device&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_cooling_device_max_state&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum throttle state of the cooling device&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_cpu_guest_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;mode&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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 the CPUs spent in guests (VMs) for each mode.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_cpu_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;mode&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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 the CPUs spent in each mode.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_discard_time_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 is the total number of seconds spent by all discards.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_discarded_sectors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of sectors discarded successfully.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_discards_completed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of discards completed successfully.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_discards_merged_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of discards merged.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_filesystem_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;usage&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;uuid&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Info about disk filesystem.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;minor&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;major&lt;/code&gt;, &lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;model&lt;/code&gt;, &lt;code&gt;serial&lt;/code&gt;, &lt;code&gt;path&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Info of /sys/block/&amp;lt;block_device&amp;gt;.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_io_now&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 I/Os currently in progress.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_io_time_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 seconds spent doing I/Os.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_io_time_weighted_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 weighted # of seconds spent doing I/Os.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_read_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of bytes read successfully.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_read_time_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of seconds spent by all reads.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_reads_completed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of reads completed successfully.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_reads_merged_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of reads merged.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_write_time_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 is the total number of seconds spent by all writes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_writes_completed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of writes completed successfully.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_writes_merged_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 writes merged.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_disk_written_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 total number of bytes written successfully.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_dmi_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;bios_vendor&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;product_family&lt;/code&gt;, &lt;code&gt;product_version&lt;/code&gt;, &lt;code&gt;product_uuid&lt;/code&gt;, &lt;code&gt;system_vendor&lt;/code&gt;, &lt;code&gt;bios_version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;bios_date&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;product_name&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;chassis_version&lt;/code&gt;, &lt;code&gt;chassis_vendor&lt;/code&gt;, &lt;code&gt;product_serial&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by bios_date, bios_release, bios_vendor, bios_version, board_asset_tag, board_name, board_serial, board_vendor, board_version, chassis_asset_tag, chassis_serial, chassis_vendor, chassis_version, product_family, product_name, product_serial, product_sku, product_uuid, product_version, system_vendor if provided by DMI.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_entropy_available_bits&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bits of available entropy.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_entropy_pool_size_bits&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bits of entropy pool.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_exporter_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which node_exporter was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filefd_allocated&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;File descriptor statistics: allocated.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filefd_maximum&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;File descriptor statistics: maximum.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filesystem_avail_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Filesystem space available to non-root users in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filesystem_device_error&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether an error occurred while getting statistics for the given device.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filesystem_files&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Filesystem total file nodes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filesystem_files_free&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Filesystem total free file nodes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filesystem_free_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Filesystem free space in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filesystem_readonly&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Filesystem read-only status.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_filesystem_size_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;mountpoint&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;fstype&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Filesystem size in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_forks_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of forks.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_hwmon_chip_names&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;chip_name&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;chip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Annotation metric for human-readable chip names&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_hwmon_energy_joule_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;sensor&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;chip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Hardware monitor for joules used so far (input)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_hwmon_sensor_label&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;sensor&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;chip&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;label&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Label for given chip and sensor&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_intr_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of interrupts serviced.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_ipvs_connections_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of connections made.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_ipvs_incoming_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total amount of incoming data.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_ipvs_incoming_packets_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of incoming packets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_ipvs_outgoing_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total amount of outgoing data.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_ipvs_outgoing_packets_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of outgoing packets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_load1&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1m load average.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_load15&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;15m load average.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_load5&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;5m load average.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Active_anon_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Active_anon_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Active_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Active_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Active_file_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Active_file_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_AnonHugePages_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field AnonHugePages_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_AnonPages_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field AnonPages_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Bounce_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Bounce_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Buffers_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Buffers_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Cached_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Cached_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_CommitLimit_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field CommitLimit_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Committed_AS_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Committed_AS_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_DirectMap1G_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field DirectMap1G_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_DirectMap2M_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field DirectMap2M_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_DirectMap4k_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field DirectMap4k_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Dirty_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Dirty_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_FileHugePages_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field FileHugePages_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_FilePmdMapped_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field FilePmdMapped_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_HardwareCorrupted_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field HardwareCorrupted_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_HugePages_Free&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field HugePages_Free.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_HugePages_Rsvd&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field HugePages_Rsvd.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_HugePages_Surp&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field HugePages_Surp.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_HugePages_Total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field HugePages_Total.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Hugepagesize_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Hugepagesize_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Hugetlb_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Hugetlb_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Inactive_anon_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Inactive_anon_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Inactive_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Inactive_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Inactive_file_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Inactive_file_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_KReclaimable_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field KReclaimable_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_KernelStack_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field KernelStack_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Mapped_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Mapped_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_MemAvailable_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field MemAvailable_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_MemFree_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field MemFree_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_MemTotal_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field MemTotal_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Mlocked_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Mlocked_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_NFS_Unstable_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field NFS_Unstable_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_PageTables_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field PageTables_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Percpu_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Percpu_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_SReclaimable_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field SReclaimable_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_SUnreclaim_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field SUnreclaim_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_ShmemHugePages_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field ShmemHugePages_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_ShmemPmdMapped_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field ShmemPmdMapped_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Shmem_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Shmem_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Slab_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Slab_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_SwapCached_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field SwapCached_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_SwapFree_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field SwapFree_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_SwapTotal_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field SwapTotal_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Unevictable_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Unevictable_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_VmallocChunk_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field VmallocChunk_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_VmallocTotal_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field VmallocTotal_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_VmallocUsed_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field VmallocUsed_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_WritebackTmp_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field WritebackTmp_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_memory_Writeback_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Memory information field Writeback_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Icmp6_InErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Icmp6InErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Icmp6_InMsgs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Icmp6InMsgs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Icmp6_OutMsgs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Icmp6OutMsgs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Icmp_InErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic IcmpInErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Icmp_InMsgs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic IcmpInMsgs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Icmp_OutMsgs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic IcmpOutMsgs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Ip6_InOctets&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Ip6InOctets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Ip6_OutOctets&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Ip6OutOctets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_IpExt_InOctets&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic IpExtInOctets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_IpExt_OutOctets&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic IpExtOutOctets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Ip_Forwarding&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic IpForwarding.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_TcpExt_ListenDrops&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpExtListenDrops.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_TcpExt_ListenOverflows&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpExtListenOverflows.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_TcpExt_SyncookiesFailed&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpExtSyncookiesFailed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_TcpExt_SyncookiesRecv&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpExtSyncookiesRecv.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_TcpExt_SyncookiesSent&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpExtSyncookiesSent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_TcpExt_TCPSynRetrans&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpExtTCPSynRetrans.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_TcpExt_TCPTimeouts&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpExtTCPTimeouts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_ActiveOpens&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpActiveOpens.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_CurrEstab&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpCurrEstab.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_InErrs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpInErrs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_InSegs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpInSegs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_OutRsts&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpOutRsts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_OutSegs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpOutSegs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_PassiveOpens&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpPassiveOpens.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Tcp_RetransSegs&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic TcpRetransSegs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp6_InDatagrams&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Udp6InDatagrams.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp6_InErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Udp6InErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp6_NoPorts&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Udp6NoPorts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp6_OutDatagrams&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Udp6OutDatagrams.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp6_RcvbufErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Udp6RcvbufErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp6_SndbufErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic Udp6SndbufErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_UdpLite6_InErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpLite6InErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_UdpLite_InErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpLiteInErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp_InDatagrams&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpInDatagrams.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp_InErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpInErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp_NoPorts&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpNoPorts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp_OutDatagrams&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpOutDatagrams.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp_RcvbufErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpRcvbufErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_netstat_Udp_SndbufErrors&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Statistic UdpSndbufErrors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_address_assign_type&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: address_assign_type&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_carrier&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: carrier&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_carrier_changes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: carrier_changes_total&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_carrier_down_changes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: carrier_down_changes_total&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_carrier_up_changes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: carrier_up_changes_total&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_device_id&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: device_id&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_dormant&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: dormant&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_flags&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: flags&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_iface_id&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: iface_id&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_iface_link&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: iface_link&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_iface_link_mode&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: iface_link_mode&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;broadcast&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;operstate&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;adminstate&lt;/code&gt;, &lt;code&gt;duplex&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Non-numeric data from /sys/class/net/&lt;iface&gt;, value is always 1.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_mtu_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: mtu_bytes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_name_assign_type&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: name_assign_type&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_net_dev_group&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: net_dev_group&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_protocol_type&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: protocol_type&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_compressed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_compressed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_drop_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_drop.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_errs_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_errs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_fifo_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_fifo.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_frame_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_frame.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_multicast_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_multicast.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_nohandler_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_nohandler.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_receive_packets_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic receive_packets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_speed_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: speed_bytes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_carrier_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_carrier.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_colls_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_colls.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_compressed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_compressed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_drop_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_drop.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_errs_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_errs.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_fifo_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_fifo.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_packets_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device statistic transmit_packets.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_transmit_queue_length&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Network device property: transmit_queue_length&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_network_up&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value is 1 if operstate is &amp;lsquo;up&amp;rsquo;, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_entries&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of currently allocated flow entries for connection tracking.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_entries_limit&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum size of connection tracking table.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_drop&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of packets dropped due to conntrack failure.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_early_drop&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of dropped conntrack entries to make room for new ones, if maximum table size was reached.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_found&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of searched entries which were successful.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_ignore&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of packets seen which are already connected to a conntrack entry.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_insert&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of entries inserted into the list.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_insert_failed&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of entries for which list insertion was attempted but failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_invalid&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of packets seen which can not be tracked.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_nf_conntrack_stat_search_restart&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of conntrack table lookups which had to be restarted due to hashtable resizes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_os_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;id&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;version_id&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;pretty_name&lt;/code&gt;, &lt;code&gt;id_like&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by build_id, id, id_like, image_id, image_version, name, pretty_name, variant, variant_id, version, version_codename, version_id.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_os_version&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;id&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;id_like&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Metric containing the major.minor part of the OS version.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_processes_max_processes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of max PIDs limit&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_processes_max_threads&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Limit of threads in the system&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_processes_pids&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of PIDs&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_processes_state&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of processes in each state.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_processes_threads&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Allocated threads in system&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_processes_threads_state&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;thread_state&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of threads in each state.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_procs_blocked&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of processes blocked waiting for I/O to complete.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_procs_running&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of processes in runnable state.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_schedstat_running_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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 CPU spent running a process.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_schedstat_timeslices_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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 timeslices executed by CPU.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_schedstat_waiting_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;cpu&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 spent by processing waiting for this CPU.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_scrape_collector_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;collector&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;node_exporter: Duration of a collector scrape.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_scrape_collector_success&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;collector&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;node_exporter: Whether a collector succeeded.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_selinux_enabled&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;SELinux is enabled, 1 is true, 0 is false&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_FRAG6_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of FRAG6 sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_FRAG6_memory&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of FRAG6 sockets in state memory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_FRAG_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of FRAG sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_FRAG_memory&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of FRAG sockets in state memory.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_RAW6_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of RAW6 sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_RAW_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of RAW sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_TCP6_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of TCP6 sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_TCP_alloc&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of TCP sockets in state alloc.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_TCP_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of TCP sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_TCP_mem&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of TCP sockets in state mem.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_TCP_mem_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of TCP sockets in state mem_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_TCP_orphan&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of TCP sockets in state orphan.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_TCP_tw&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of TCP sockets in state tw.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_UDP6_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of UDP6 sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_UDPLITE6_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of UDPLITE6 sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_UDPLITE_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of UDPLITE sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_UDP_inuse&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of UDP sockets in state inuse.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_UDP_mem&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of UDP sockets in state mem.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_UDP_mem_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of UDP sockets in state mem_bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_sockstat_sockets_used&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of IPv4 sockets in use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_tcp_connection_states&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of connection states.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_textfile_scrape_error&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1 if there was an error opening or reading a file, 0 otherwise&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_time_clocksource_available_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;clocksource&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Available clocksources read from &amp;lsquo;/sys/devices/system/clocksource&amp;rsquo;.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_time_clocksource_current_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;device&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;clocksource&lt;/code&gt;, &lt;code&gt;job&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 clocksource read from &amp;lsquo;/sys/devices/system/clocksource&amp;rsquo;.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_time_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;System time in seconds since epoch (1970).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_time_zone_offset_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;time_zone&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;System time zone offset in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_estimated_error_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Estimated error in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_frequency_adjustment_ratio&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Local clock frequency adjustment.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_loop_time_constant&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Phase-locked loop time constant.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_maxerror_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Maximum error in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_offset_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Time offset in between local system and reference clock.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_calibration_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second count of calibration intervals.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_error_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second count of calibration errors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_frequency_hertz&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second frequency.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_jitter_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second jitter.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_jitter_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second count of jitter limit exceeded events.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_shift_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second interval duration.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_stability_exceeded_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second count of stability limit exceeded events.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_pps_stability_hertz&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pulse per second stability, average of recent frequency changes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_status&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Value of the status array bits.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_sync_status&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Is clock synchronized to a reliable server (1 = yes, 0 = no).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_tai_offset_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;International Atomic Time (TAI) offset.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_timex_tick_seconds&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Seconds between clock ticks.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_udp_queues&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;queue&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;exported_ip&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 memory in the kernel for UDP datagrams in bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_uname_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;sysname&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;domainname&lt;/code&gt;, &lt;code&gt;release&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;nodename&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;machine&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Labeled system information as provided by the uname system call.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;node_vmstat_oom_kill&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;/proc/vmstat information field oom_kill.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_vmstat_pgfault&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;/proc/vmstat information field pgfault.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_vmstat_pgmajfault&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;/proc/vmstat information field pgmajfault.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_vmstat_pgpgin&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;/proc/vmstat information field pgpgin.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_vmstat_pgpgout&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;/proc/vmstat information field pgpgout.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_vmstat_pswpin&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;/proc/vmstat information field pswpin.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;node_vmstat_pswpout&lt;/td&gt;&#xA;      &lt;td&gt;unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;/proc/vmstat information field pswpout.&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;prometheus_remote_storage_exemplars_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Exemplars in to remote storage, compare to exemplars out for queue managers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_histograms_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;HistogramSamples in to remote storage, compare to histograms out for queue managers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_samples_in_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Samples in to remote storage, compare to samples out for queue managers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_remote_storage_string_interner_zero_reference_releases_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of times release has been called for strings that are not interned.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_azure_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of Azure service discovery refresh failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_consul_rpc_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of a Consul RPC call in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_consul_rpc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;endpoint&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;prometheus_sd_consul_rpc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;endpoint&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;prometheus_sd_consul_rpc_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of Consul RPC call failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_consulagent_rpc_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of a Consul Agent RPC call in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_consulagent_rpc_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;endpoint&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;prometheus_sd_consulagent_rpc_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;endpoint&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;prometheus_sd_consulagent_rpc_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;prometheus_sd_dns_lookup_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of DNS-SD lookup failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_dns_lookups_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of DNS-SD lookups.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_file_read_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of File-SD read errors.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_file_scan_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;quantile&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The duration of the File-SD scan in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_file_scan_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;prometheus_sd_file_scan_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;prometheus_sd_file_watcher_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of File-SD errors caused by filesystem watch failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_sd_kubernetes_events_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;event&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;role&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 Kubernetes events handled.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_exceeded_label_limits_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of times scrape pools hit the label limits, during sync or config reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_exceeded_target_limit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of times scrape pools hit the target limit, during sync or config reload.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_reloads_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of failed scrape pool reloads.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pool_reloads_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrape pool reloads.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pools_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrape pool creations that failed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrape_pools_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrape pool creation attempts.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_cache_flush_forced_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;How many times a scrape cache was flushed due to getting big while scrapes are failing.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_exceeded_body_size_limit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrapes that hit the body size limit&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_exceeded_sample_limit_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of scrapes that hit the sample limit and were rejected.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_exemplar_out_of_order_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of exemplar rejected due to not being out of the expected order.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_sample_duplicate_timestamp_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of samples rejected due to duplicate timestamps but different values.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_sample_out_of_bounds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of samples rejected due to timestamp falling outside of the time bounds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_target_scrapes_sample_out_of_order_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of samples rejected due to not being out of the expected order.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_template_text_expansion_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of template text expansion failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_template_text_expansions_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of template text expansions.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_treecache_watcher_goroutines&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The current number of watcher goroutines.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;prometheus_treecache_zookeeper_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of ZooKeeper failures.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promhttp_metric_handler_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cause&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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 internal errors encountered by the promhttp metric handler.&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;job&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;promtail_batch_retries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;promtail_build_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;goversion&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;goarch&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;goos&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A metric with a constant &amp;lsquo;1&amp;rsquo; value labeled by version, revision, branch, goversion from which promtail was built, and the goos and goarch for the build.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promtail_config_reload_fail_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;promtail_config_reload_success_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;promtail_dropped_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;reason&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;promtail_dropped_entries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;reason&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;promtail_encoded_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;promtail_file_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;path&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes total.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promtail_files_active_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of active files.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promtail_mutated_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;reason&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;promtail_mutated_entries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;reason&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;promtail_read_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;path&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of bytes read.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promtail_read_lines_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;path&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;promtail_request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;le&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;promtail_request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;status_code&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;promtail_request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;status_code&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;promtail_sent_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;promtail_sent_entries_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;promtail_targets_active_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of active total.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;promtail_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;request_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ws&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;request_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ws&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;request_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;status_code&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ws&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;request_message_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;request_message_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;request_message_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;response_message_bytes_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;response_message_bytes_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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;response_message_bytes_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;route&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;method&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_duration_seconds&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;scrape_samples_post_metric_relabeling&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;scrape_samples_scraped&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;scrape_series_added&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;tcp_connections&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;protocol&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current number of accepted TCP connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;tcp_connections_limit&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;protocol&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The max number of TCP connections that can be accepted (0 means no limit).&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;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&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;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/node/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/node/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;how-to-configure-ntp-service&#34;&gt;How to configure NTP service?&#xA;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;NTP is critical for various production services. If NTP is not configured, you can use public NTP services or the Chronyd on the admin node as the time standard.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;If your nodes already have NTP configured, you can preserve the existing configuration without making any changes by setting &lt;code&gt;node_ntp_enabled&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Otherwise, if you have Internet access, you can use public NTP services such as &lt;code&gt;pool.ntp.org&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/etcd/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/etcd/config/</guid>
        <description>&lt;p&gt;Before deployment, define etcd cluster in &lt;a href=&#34;https://pgsty.pro/docs/setup/config/&#34;&gt;config inventory&lt;/a&gt;. Typical choices:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/config/#one-node&#34;&gt;One Node&lt;/a&gt;: No HA, suitable for dev, test, demo, or standalone deployments using external S3 backup for PITR&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/config/#three-nodes&#34;&gt;Three Nodes&lt;/a&gt;: Basic HA, tolerates 1 node failure, suitable for small-medium prod&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/config/#five-nodes&#34;&gt;Five Nodes&lt;/a&gt;: Better HA, tolerates 2 node failures, suitable for large prod&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;An even-member Etcd cluster is technically valid, but it does not tolerate more failures than an odd-member cluster with one fewer member, while increasing deployment and quorum cost. Production therefore usually uses one, three, or five members; clusters larger than five are uncommon.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/etcd/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/etcd/param/</guid>
        <description>&lt;p&gt;The ETCD module has &lt;strong&gt;13&lt;/strong&gt; parameters, divided into two sections:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/param/#etcd&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: 10 parameters for etcd cluster deployment and configuration&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/param/#etcd_remove&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD_REMOVE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: 3 parameters for controlling etcd cluster removal&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Architecture Change: Pigsty v3.6+&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Since Pigsty v3.6, the &lt;code&gt;etcd.yml&lt;/code&gt; playbook no longer includes removal functionality—removal parameters have been migrated to a standalone &lt;code&gt;etcd_remove&lt;/code&gt; role. Starting from v4.0, RBAC authentication is enabled by default, with a new &lt;code&gt;etcd_root_password&lt;/code&gt; parameter.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;parameter-overview&#34;&gt;Parameter Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/etcd/param/#etcd&#34;&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/a&gt; parameter group is used for etcd cluster deployment and configuration, including instance identification, cluster name, data directory, ports, and authentication password.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/etcd/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/etcd/admin/</guid>
        <description>&lt;p&gt;Common etcd admin SOPs:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#create-cluster&#34;&gt;Create Cluster&lt;/a&gt;: Initialize an etcd cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#destroy-cluster&#34;&gt;Destroy Cluster&lt;/a&gt;: Destroy an etcd cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#cli-environment&#34;&gt;CLI Environment&lt;/a&gt;: Configure etcd client to access server cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#rbac-authentication&#34;&gt;RBAC Authentication&lt;/a&gt;: Use etcd RBAC auth&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#reload-config&#34;&gt;Reload Config&lt;/a&gt;: Update etcd server member list for clients&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#add-member&#34;&gt;Add Member&lt;/a&gt;: Add new member to existing etcd cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#remove-member&#34;&gt;Remove Member&lt;/a&gt;: Remove member from etcd cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/#utility-scripts&#34;&gt;Utility Scripts&lt;/a&gt;: Simplify ops with &lt;code&gt;bin/etcd-add&lt;/code&gt; and &lt;code&gt;bin/etcd-rm&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For more, refer to &lt;a href=&#34;https://pgsty.pro/docs/etcd/faq/&#34;&gt;FAQ: ETCD&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;create-cluster&#34;&gt;Create Cluster&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Define &lt;code&gt;etcd&lt;/code&gt; cluster in &lt;a href=&#34;https://pgsty.pro/docs/setup/config/&#34;&gt;&lt;strong&gt;config inventory&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/etcd/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/etcd/playbook/</guid>
        <description>&lt;p&gt;The ETCD module provides two core playbooks: &lt;a href=&#34;https://pgsty.pro/docs/etcd/playbook/#etcdyml&#34;&gt;&lt;code&gt;etcd.yml&lt;/code&gt;&lt;/a&gt; for installing and configuring etcd clusters, and &lt;a href=&#34;https://pgsty.pro/docs/etcd/playbook/#etcd-rmyml&#34;&gt;&lt;code&gt;etcd-rm.yml&lt;/code&gt;&lt;/a&gt; for removing etcd clusters or members.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Architecture Change: Pigsty v3.6+&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Since Pigsty v3.6, the &lt;code&gt;etcd.yml&lt;/code&gt; playbook focuses on cluster installation and member addition. All removal operations have been moved to the dedicated &lt;code&gt;etcd-rm.yml&lt;/code&gt; playbook using the &lt;code&gt;etcd_remove&lt;/code&gt; role.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;etcdyml&#34;&gt;&lt;code&gt;etcd.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Playbook source: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/etcd.yml&#34;&gt;&lt;code&gt;etcd.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This playbook installs and configures an etcd cluster on the hardcoded &lt;code&gt;etcd&lt;/code&gt; group, then launches the etcd service.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/etcd/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/etcd/monitor/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;dashboards&#34;&gt;Dashboards&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;ETCD module provides one monitoring dashboard: Etcd Overview.&lt;/p&gt;&#xA;&lt;h3 id=&#34;etcd-overview-dashboard&#34;&gt;ETCD Overview Dashboard&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/d/etcd-overview&#34;&gt;ETCD Overview&lt;/a&gt;: Overview of ETCD cluster&lt;/p&gt;&#xA;&lt;p&gt;Dashboard provides key ETCD status info. Notable: ETCD Aliveness—shows overall etcd cluster service status.&lt;/p&gt;&#xA;&lt;p&gt;Red bands = instance downtime; blue-gray below = cluster unavailable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/d/etcd-overview&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/dashboard/etcd-overview.jpg&#34; alt=&#34;etcd-overview.jpg&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;alert-rules&#34;&gt;Alert Rules&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty provides five preset alert rules for etcd, defined in &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/files/victoria/rules/etcd.yml&#34;&gt;&lt;code&gt;files/victoria/rules/etcd.yml&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/etcd/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/etcd/metric/</guid>
        <description>&lt;p&gt;This snapshot records 177 monitoring metric families for the &lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module. The metrics present at runtime vary with package version, enabled collectors, and target state.&lt;/p&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;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;etcd:ins:backend_commit_rt_p99_5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd:ins:disk_fsync_rt_p99_5m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd:ins:network_peer_rt_p99_1m&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;To&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_cluster_version&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;cluster_version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Running version. 1 = &amp;lsquo;cluster_version&amp;rsquo; label with current version&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_auth_revision&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current auth store revision.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_rebalance_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_rebalance_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_spill_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_spill_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_write_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_write_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_disk_backend_commit_write_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_lease_granted_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total granted leases.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_lease_renewed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Renewed leases seen by leader.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_lease_revoked_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Revoked leases.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_lease_ttl_total_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_lease_ttl_total_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_lease_ttl_total_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_compact_revision&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last compaction revision in store.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_current_revision&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current store revision.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_db_compaction_keys_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;DB keys compacted.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_db_compaction_last&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last db compaction unix time. Resets to 0 on start.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_events_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Events sent by this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_mvcc_keys_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total keys.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_pending_events_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pending events to send.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_range_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Ranges seen by this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_slow_watcher_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Unsynced slow watchers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_total_put_size_in_bytes&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total put kv size seen by this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_watch_stream_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Watch streams.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_mvcc_watcher_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Watchers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_server_lease_expired_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Expired leases.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_snap_save_marshalling_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_snap_save_marshalling_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_snap_save_marshalling_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_snap_save_total_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_snap_save_total_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_snap_save_total_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_debugging_store_expires_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Expired keys.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_store_reads_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;action&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Reads (get/getRecursive) to this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_store_watch_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Incoming watch requests (new/reestablished).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_store_watchers&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Active watchers.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_debugging_store_writes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;action&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Writes (set/compareAndDelete) to this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_disk_backend_commit_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_commit_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_commit_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_defrag_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_defrag_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_defrag_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_snapshot_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_snapshot_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_backend_snapshot_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_defrag_inflight&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Defrag active. 1 = active, 0 = not.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_disk_wal_fsync_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_wal_fsync_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_wal_fsync_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_disk_wal_write_bytes_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;WAL bytes written.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_grpc_proxy_cache_hits_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Cache hits.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_grpc_proxy_cache_keys_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Keys/ranges cached.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_grpc_proxy_cache_misses_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Cache misses.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_grpc_proxy_events_coalescing_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Events coalescing.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_grpc_proxy_watchers_coalescing_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current watchers coalescing.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_mvcc_db_open_read_transactions&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Open read transactions.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_mvcc_db_total_size_in_bytes&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;DB physical bytes allocated.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_mvcc_db_total_size_in_use_in_bytes&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;DB logical bytes in use.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_mvcc_delete_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Deletes seen by this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_mvcc_hash_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_mvcc_hash_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_mvcc_hash_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_mvcc_hash_rev_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_mvcc_hash_rev_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_mvcc_hash_rev_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_mvcc_put_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Puts seen by this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_mvcc_range_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Ranges seen by this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_mvcc_txn_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Txns seen by this member.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_network_active_peers&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;ins&lt;/code&gt;, &lt;code&gt;Local&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;Remote&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Active peer connections.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_network_client_grpc_received_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;gRPC client bytes received.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_network_client_grpc_sent_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;gRPC client bytes sent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_network_peer_received_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;From&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Peer bytes received.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_network_peer_round_trip_time_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;To&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_network_peer_round_trip_time_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;To&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_network_peer_round_trip_time_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;To&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_network_peer_sent_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;To&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Peer bytes sent.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_apply_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;success&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;op&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;etcd_server_apply_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;success&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;op&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;etcd_server_apply_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;success&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;op&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;etcd_server_client_requests_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;client_api_version&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Client requests per version.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_go_version&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server_go_version&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Go version running. 1 = &amp;lsquo;server_go_version&amp;rsquo; label with current version.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_has_leader&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Leader exists. 1 = exists, 0 = not.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_health_failures&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Failed health checks.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_health_success&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Successful health checks.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_heartbeat_send_failures_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Leader heartbeat send failures (likely overloaded from slow disk).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_id&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;server_id&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Server/member ID (hex). 1 = &amp;lsquo;server_id&amp;rsquo; label with current ID.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_is_leader&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Member is leader. 1 if is, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_is_learner&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Member is learner. 1 if is, 0 otherwise.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_leader_changes_seen_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Leader changes seen.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_learner_promote_successes&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Successful learner promotions while this member is leader.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_proposals_applied_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Consensus proposals applied.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_proposals_committed_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Consensus proposals committed.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_proposals_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Failed proposals seen.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_proposals_pending&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pending proposals to commit.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_quota_backend_bytes&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Backend storage quota bytes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_read_indexes_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Failed read indexes seen.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_slow_apply_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Slow apply requests (likely overloaded from slow disk).&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_slow_read_indexes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Pending read indexes not in sync with leader or timed out read index requests.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_snapshot_apply_in_progress_total&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;1 if server applying incoming snapshot. 0 if none.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_server_version&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;server_version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Version running. 1 = &amp;lsquo;server_version&amp;rsquo; label with current version.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_snap_db_fsync_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_db_fsync_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_db_fsync_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_db_save_total_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_db_save_total_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_db_save_total_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_fsync_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_fsync_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_snap_fsync_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;etcd_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;quantile&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;GC pause duration summary.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Goroutines.&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;cls&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Go environment info.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes allocated and 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes used by 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Frees.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;go_memstats_gc_cpu_fraction&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;GC CPU fraction since program started.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes used for GC 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Heap bytes allocated and 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Heap bytes 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Seconds since 1970 of last GC.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes used for mcache structures 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes used for mspan structures 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Heap bytes when next GC 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Bytes in use by 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;OS threads created.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grpc_server_handled_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;grpc_code&lt;/code&gt;, &lt;code&gt;grpc_method&lt;/code&gt;, &lt;code&gt;grpc_type&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;grpc_service&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;RPCs completed on server.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grpc_server_msg_received_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;grpc_type&lt;/code&gt;, &lt;code&gt;grpc_method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;grpc_service&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;RPC stream messages received on server.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grpc_server_msg_sent_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;grpc_type&lt;/code&gt;, &lt;code&gt;grpc_method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;grpc_service&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;gRPC stream messages sent on server.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;grpc_server_started_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;grpc_type&lt;/code&gt;, &lt;code&gt;grpc_method&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;grpc_service&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;RPCs started on server.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;os_fd_limit&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;FD limit.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;os_fd_used&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;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Used FDs.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;User + system CPU 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Max FDs.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Open FDs.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Resident memory 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Start time (unix epoch 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Virtual memory 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Max virtual memory 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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current scrapes.&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;ip&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>FAQ</title>
        <link>https://pgsty.pro/docs/etcd/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/etcd/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-etcds-role-in-pigsty&#34;&gt;What is etcd&amp;rsquo;s role in Pigsty?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;etcd is a distributed, reliable key-value store for critical system data. Pigsty uses etcd as DCS (Distributed Config Store) service for Patroni, storing PG HA status.&lt;/p&gt;&#xA;&lt;p&gt;Patroni uses etcd for: cluster failure detection, auto failover, primary-replica switchover, and cluster config management.&lt;/p&gt;&#xA;&lt;p&gt;etcd is critical for PostgreSQL HA, and its own availability depends on a reachable majority. Production deployments normally spread three or five voting members across independent failure domains.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Usage</title>
        <link>https://pgsty.pro/docs/minio/usage/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/usage/</guid>
        <description>&lt;p&gt;After you &lt;a href=&#34;https://pgsty.pro/docs/minio/config/&#34;&gt;configure&lt;/a&gt; and deploy Silo with the &lt;a href=&#34;https://pgsty.pro/docs/minio/playbook/&#34;&gt;playbook&lt;/a&gt;, use this page to access it through the compatible S3 and &lt;code&gt;mcli&lt;/code&gt; interfaces.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;deploy-cluster&#34;&gt;Deploy Cluster&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;First, define a single-node, single-disk object-storage cluster in the &lt;a href=&#34;https://pgsty.pro/docs/setup/config/&#34;&gt;config inventory&lt;/a&gt; and explicitly pin its engine:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a063fa46-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-a063fa46-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;minio&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;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;minio_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 } }, vars&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;minio_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;nt&#34;&gt;minio, minio_type&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;silo } }&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;Then, run the &lt;a href=&#34;https://pgsty.pro/docs/minio/playbook/&#34;&gt;&lt;code&gt;minio.yml&lt;/code&gt;&lt;/a&gt; playbook provided by Pigsty against the defined group (here &lt;code&gt;minio&lt;/code&gt;):&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/minio/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/config/</guid>
        <description>&lt;p&gt;Before deploying the MINIO module, define a Silo object-storage cluster in the &lt;a href=&#34;https://pgsty.pro/docs/setup/config/&#34;&gt;config inventory&lt;/a&gt;. The current role requires &lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_type&#34;&gt;&lt;code&gt;minio_type: silo&lt;/code&gt;&lt;/a&gt; and supports these inventory deployment modes:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/config/#single-node-single-disk&#34;&gt;Single-Node Single-Disk: SNSD&lt;/a&gt;: Single-node single-disk mode, can use any directory as a data disk, for development, testing, and demo only.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/config/#single-node-multi-disk&#34;&gt;Single-Node Multi-Disk: SNMD&lt;/a&gt;: Compromise mode, using multiple disks (&amp;gt;=2) on a single server, only when resources are extremely limited.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/config/#multi-node-single-disk&#34;&gt;Multi-Node Single-Disk: MNSD&lt;/a&gt;: Multiple servers with one independent data drive each, providing compact node-level high availability.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/config/#multi-node-multi-disk&#34;&gt;Multi-Node Multi-Disk: MNMD&lt;/a&gt;: Multi-node multi-disk mode, standard production deployment with the best reliability, but requires multiple servers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;SNSD is suitable for development and testing, three-node MNSD for resource-constrained compact HA, and MNMD for production environments with higher capacity, throughput, and drive-redundancy requirements. SNMD handles drive failures within one server but cannot tolerate losing the server.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/minio/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/param/</guid>
        <description>&lt;p&gt;The MINIO module exposes &lt;strong&gt;22&lt;/strong&gt; public parameters in two groups:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio&#34;&gt;&lt;strong&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: 19 parameters for deploying Silo object-storage clusters&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_remove&#34;&gt;&lt;strong&gt;&lt;code&gt;MINIO_REMOVE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: 3 parameters controlling object-storage cluster removal&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Architecture Change: Pigsty v3.6+&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Since Pigsty v3.6, the &lt;code&gt;minio.yml&lt;/code&gt; playbook no longer includes removal functionality. Removal-related parameters have been migrated to the dedicated &lt;code&gt;minio_remove&lt;/code&gt; role and &lt;code&gt;minio-rm.yml&lt;/code&gt; playbook.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;parameter-overview&#34;&gt;Parameter Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio&#34;&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/a&gt; group configures a Silo object-storage cluster, including identity, storage paths, ports, credentials, and bucket/user provisioning.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/minio/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/playbook/</guid>
        <description>&lt;p&gt;The MINIO module provides two built-in playbooks:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/playbook/#minioyml&#34;&gt;&lt;code&gt;minio.yml&lt;/code&gt;&lt;/a&gt;: Install and configure Silo&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/playbook/#minio-rmyml&#34;&gt;&lt;code&gt;minio-rm.yml&lt;/code&gt;&lt;/a&gt;: Remove Silo, its configuration, and optionally its data&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;minioyml&#34;&gt;&lt;code&gt;minio.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/minio.yml&#34;&gt;&lt;code&gt;minio.yml&lt;/code&gt;&lt;/a&gt; runs with &lt;code&gt;hosts: all&lt;/code&gt;, but its pre-tasks skip hosts where &lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_cluster&#34;&gt;&lt;code&gt;minio_cluster&lt;/code&gt;&lt;/a&gt; is undefined. The role then validates that:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;minio_cluster&lt;/code&gt; is defined and non-empty&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;minio_seq&lt;/code&gt; is defined and is a non-negative integer&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;minio_type&lt;/code&gt; must equal &lt;code&gt;silo&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Thus, &lt;code&gt;minio_cluster&lt;/code&gt; is the module-membership gate, while invalid &lt;code&gt;minio_seq&lt;/code&gt; or &lt;code&gt;minio_type&lt;/code&gt; values fail identity validation explicitly. Do not define &lt;code&gt;minio_cluster&lt;/code&gt; in &lt;code&gt;all.vars&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/minio/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/admin/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;create-cluster&#34;&gt;Create Cluster&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To create a cluster, define it in the config inventory and run the &lt;a href=&#34;https://pgsty.pro/docs/minio/playbook/#minioyml&#34;&gt;&lt;code&gt;minio.yml&lt;/code&gt;&lt;/a&gt; playbook.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-ab1960b7-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;yaml&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-ab1960b7-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;minio&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;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;minio_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 } }, vars&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;minio_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;nt&#34;&gt;minio, minio_type&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;silo } }&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;The configuration above defines an SNSD &lt;a href=&#34;https://pgsty.pro/docs/minio/config/#single-node-single-disk&#34;&gt;Single-Node Single-Disk&lt;/a&gt; Silo cluster. Create it with:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-ab1960b7-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-ab1960b7-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;./minio.yml -l minio  &lt;span class=&#34;c1&#34;&gt;# Install Silo on the minio group&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;remove-cluster&#34;&gt;Remove Cluster&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To destroy a cluster, run the dedicated &lt;a href=&#34;https://pgsty.pro/docs/minio/playbook/#minio-rmyml&#34;&gt;&lt;code&gt;minio-rm.yml&lt;/code&gt;&lt;/a&gt; playbook:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring and Alerting</title>
        <link>https://pgsty.pro/docs/minio/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/monitor/</guid>
        <description>&lt;h2 id=&#34;administration-ui&#34;&gt;Administration UI&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Silo provides an administration UI through &lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_admin_port&#34;&gt;&lt;code&gt;minio_admin_port&lt;/code&gt;&lt;/a&gt;, which defaults to &lt;code&gt;9001&lt;/code&gt;. Access it directly at &lt;code&gt;https://&amp;lt;node-ip&amp;gt;:9001&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Some configuration templates also expose the administration entry point at &lt;code&gt;m.pigsty&lt;/code&gt;. Login credentials come from &lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_access_key&#34;&gt;&lt;code&gt;minio_access_key&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/minio/param/#minio_secret_key&#34;&gt;&lt;code&gt;minio_secret_key&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;HTTPS and Certificate Trust&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Object storage uses HTTPS certificates issued by the Pigsty CA by default. Browsers and container clients must trust that CA. Do not substitute disabled certificate verification for a correct trust configuration in production.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/minio/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/metric/</guid>
        <description>&lt;p&gt;The MINIO module collects Silo metrics through &lt;code&gt;/minio/metrics/v3&lt;/code&gt;. The metric set varies with server versions and enabled features, so this page documents the stable interfaces used by current dashboards and alerts rather than treating a complete scrape from one version as a permanent contract.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;stable-identity-labels&#34;&gt;Stable Identity Labels&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;All object-storage targets use these Pigsty labels:&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;Label&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Meaning&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Example&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;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Fixed module namespace&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;minio&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;code&gt;flavor&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Actual backend&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;silo&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;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;minio_cluster&lt;/code&gt; identity&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;minio&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;code&gt;ins&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&amp;lt;minio_cluster&amp;gt;-&amp;lt;minio_seq&amp;gt;&lt;/code&gt; instance identity&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;minio-1&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;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Inventory management address&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;10.10.10.10&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;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Metric target address&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;10.10.10.10:9000&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;Queries and recording rules should prefer the stable &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, and &lt;code&gt;ip&lt;/code&gt; identity labels.&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/minio/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/minio/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;which-backend-does-the-minio-module-deploy-by-default&#34;&gt;Which backend does the MINIO module deploy by default?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In v4.5.0, the current source deploys Silo—and only Silo. The only valid value for &lt;code&gt;minio_type&lt;/code&gt; is &lt;code&gt;silo&lt;/code&gt;. MINIO remains the compatibility module name; it does not mean the MinIO server is running.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Explicitly set &lt;code&gt;minio_type: silo&lt;/code&gt; for new clusters.&lt;/li&gt;&#xA;&lt;li&gt;Both &lt;code&gt;minio_type: minio&lt;/code&gt; and &lt;code&gt;minio_type: rustfs&lt;/code&gt; fail during identity validation.&lt;/li&gt;&#xA;&lt;li&gt;External MinIO, RustFS, or other S3 services can still serve as pgBackRest repositories, but the current MINIO role does not manage them.&lt;/li&gt;&#xA;&lt;li&gt;Before upgrading a MinIO cluster managed by an older release, validate the MinIO-to-Silo data compatibility, backup, and rollback procedure.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;why-does-the-pigsty-repository-still-carry-minio-or-rustfs-packages&#34;&gt;Why does the Pigsty repository still carry MinIO or RustFS packages?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Upstream MinIO &lt;a href=&#34;https://github.com/minio/minio/commit/9e49d5e&#34;&gt;switched to source-only distribution on 2025-10-15&lt;/a&gt;, &lt;a href=&#34;https://github.com/minio/minio/commit/27742d4&#34;&gt;marked the repository as maintenance mode on 2025-12-03&lt;/a&gt;, and &lt;a href=&#34;https://github.com/minio/minio&#34;&gt;archived it on 2026-04-25&lt;/a&gt;. Here, “source-only distribution” means that new prebuilt community binaries stopped being published—not merely RPM and DEB packages.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/redis/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/redis/config/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;concept&#34;&gt;Concept&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The entity model of Redis is almost the same as that of &lt;a href=&#34;https://pgsty.pro/docs/concept/model/pgsql/#examples&#34;&gt;PostgreSQL&lt;/a&gt;, which also includes the concepts of &lt;strong&gt;Cluster&lt;/strong&gt; and &lt;strong&gt;Instance&lt;/strong&gt;. Note that the Cluster here does not refer to the native Redis Cluster mode.&lt;/p&gt;&#xA;&lt;p&gt;The core difference between the REDIS module and the PGSQL module is that Redis uses a &lt;strong&gt;single-node multi-instance&lt;/strong&gt; deployment rather than the 1:1 deployment: multiple Redis instances are typically deployed on a physical/virtual machine node to utilize multi-core CPUs fully. Therefore, the ways to &lt;a href=&#34;https://pgsty.pro/docs/redis/config/&#34;&gt;configure&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/redis/admin/&#34;&gt;administer&lt;/a&gt; Redis instances are slightly different from PGSQL.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/redis/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/redis/param/</guid>
        <description>&lt;p&gt;The REDIS module has &lt;strong&gt;22&lt;/strong&gt; parameters: 19 for Redis/Valkey deployment and configuration, and 3 for removal.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;parameter-overview&#34;&gt;Parameter Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/redis/param/#redis&#34;&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/a&gt; parameter group is used for Redis cluster deployment and configuration, including identity, instance definitions, operating mode, memory configuration, persistence, and monitoring.&lt;/p&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;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Level&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/param/#redis_cluster&#34;&gt;&lt;code&gt;redis_cluster&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis cluster name, required identity parameter&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/docs/redis/param/#redis_instances&#34;&gt;&lt;code&gt;redis_instances&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;dict&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis instance definitions on this node&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/docs/redis/param/#redis_node&#34;&gt;&lt;code&gt;redis_node&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis node number, unique positive integer in cluster&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/docs/redis/param/#redis_fs_main&#34;&gt;&lt;code&gt;redis_fs_main&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis main data directory, &lt;code&gt;/data/redis&lt;/code&gt; by default&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/docs/redis/param/#redis_exporter_enabled&#34;&gt;&lt;code&gt;redis_exporter_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Enable Redis Exporter?&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/docs/redis/param/#redis_exporter_port&#34;&gt;&lt;code&gt;redis_exporter_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis Exporter listen port&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/docs/redis/param/#redis_exporter_options&#34;&gt;&lt;code&gt;redis_exporter_options&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis Exporter CLI arguments&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/docs/redis/param/#redis_type&#34;&gt;&lt;code&gt;redis_type&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Server engine: &lt;code&gt;redis&lt;/code&gt; (default) or &lt;code&gt;valkey&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;a href=&#34;https://pgsty.pro/docs/redis/param/#redis_mode&#34;&gt;&lt;code&gt;redis_mode&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis mode: standalone, cluster, sentinel&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/docs/redis/param/#redis_conf&#34;&gt;&lt;code&gt;redis_conf&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis config template, except sentinel&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/docs/redis/param/#redis_bind_address&#34;&gt;&lt;code&gt;redis_bind_address&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis bind address, defaults to &lt;code&gt;0.0.0.0&lt;/code&gt;; empty uses host IP&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/docs/redis/param/#redis_max_memory&#34;&gt;&lt;code&gt;redis_max_memory&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;size&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Max memory for each Redis instance&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/docs/redis/param/#redis_mem_policy&#34;&gt;&lt;code&gt;redis_mem_policy&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis memory eviction policy&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/docs/redis/param/#redis_password&#34;&gt;&lt;code&gt;redis_password&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis password, empty disables password&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/docs/redis/param/#redis_rdb_save&#34;&gt;&lt;code&gt;redis_rdb_save&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Redis RDB save directives, empty list disables RDB&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/docs/redis/param/#redis_aof_enabled&#34;&gt;&lt;code&gt;redis_aof_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Enable Redis AOF?&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/docs/redis/param/#redis_rename_commands&#34;&gt;&lt;code&gt;redis_rename_commands&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;dict&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Rename dangerous Redis commands&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/docs/redis/param/#redis_cluster_replicas&#34;&gt;&lt;code&gt;redis_cluster_replicas&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Replicas per master in Redis native cluster&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/docs/redis/param/#redis_sentinel_monitor&#34;&gt;&lt;code&gt;redis_sentinel_monitor&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;master[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Master list for Redis Sentinel to monitor&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/redis/param/#redis_remove&#34;&gt;&lt;code&gt;REDIS_REMOVE&lt;/code&gt;&lt;/a&gt; parameter group controls Redis instance removal behavior.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/redis/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/redis/playbook/</guid>
        <description>&lt;p&gt;The REDIS module provides two playbooks for deploying/removing Redis clusters/nodes/instances:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/playbook/#redisyml&#34;&gt;&lt;code&gt;redis.yml&lt;/code&gt;&lt;/a&gt;: Deploy Redis cluster/node/instance&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/playbook/#redis-rmyml&#34;&gt;&lt;code&gt;redis-rm.yml&lt;/code&gt;&lt;/a&gt;: Remove Redis cluster/node/instance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;redisyml&#34;&gt;&lt;code&gt;redis.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/redis.yml&#34;&gt;&lt;code&gt;redis.yml&lt;/code&gt;&lt;/a&gt; playbook for deploying Redis contains the following subtasks:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-5856fbea-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;13&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-5856fbea-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;redis_node        : Init redis node&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - redis_install : Install Redis and the &lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;redis-exporter&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt; package&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - redis_user    : Create OS user redis&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - redis_dir     : Configure redis FHS directory structure&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;redis_exporter    : Configure redis_exporter monitoring&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - redis_exporter_config  : Generate redis_exporter config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - redis_exporter_launch  : Launch redis_exporter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;redis_instance    : Init and restart redis cluster/node/instance&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - redis_config  : Generate redis instance config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - redis_launch  : Launch redis instance&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;redis_register    : Register redis to infrastructure&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;redis_ha          : Configure redis sentinel &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;sentinel mode only&lt;span class=&#34;o&#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;redis_join        : Join redis native cluster &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;cluster mode only&lt;span class=&#34;o&#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;h3 id=&#34;operation-levels&#34;&gt;Operation Levels&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;redis.yml&lt;/code&gt; supports three operation levels, controlled by &lt;code&gt;-l&lt;/code&gt; to limit target scope and &lt;code&gt;-e redis_port=&amp;lt;port&amp;gt;&lt;/code&gt; to specify a single instance:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/redis/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/redis/admin/</guid>
        <description>&lt;p&gt;Here are some common Redis administration task SOPs (Standard Operating Procedures):&lt;/p&gt;&#xA;&lt;p&gt;The REDIS module defaults to &lt;code&gt;redis_type: redis&lt;/code&gt;. With &lt;code&gt;redis_type: valkey&lt;/code&gt;, the server and client commands become &lt;code&gt;valkey-server&lt;/code&gt; and &lt;code&gt;valkey-cli&lt;/code&gt;. Examples on this page use the default &lt;code&gt;redis-cli&lt;/code&gt;; substitute &lt;code&gt;valkey-cli&lt;/code&gt; for Valkey clusters. Playbooks choose the correct CLI automatically.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Basic Operations&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/admin/#initialize-redis&#34;&gt;Initialize Redis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/admin/#remove-redis&#34;&gt;Remove Redis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/admin/#reconfigure-redis&#34;&gt;Reconfigure Redis&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/admin/#using-redis-client&#34;&gt;Using Redis Client&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;High Availability&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/admin/#configure-redis-replica&#34;&gt;Configure Redis Replica&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/admin/#configure-ha-with-sentinel&#34;&gt;Configure HA with Sentinel&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/redis/admin/#initialize-redis-native-cluster&#34;&gt;Initialize Redis Native Cluster&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Scaling &amp;amp; Migration&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/redis/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/redis/monitor/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;dashboards&#34;&gt;Dashboards&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The REDIS module provides 3 monitoring dashboards:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Redis Overview: Overview of all Redis clusters&lt;/li&gt;&#xA;&lt;li&gt;Redis Cluster: Details of a single Redis cluster&lt;/li&gt;&#xA;&lt;li&gt;Redis Instance: Details of a single Redis instance&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;monitoring&#34;&gt;Monitoring&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty provides three monitoring dashboards for the &lt;a href=&#34;https://pgsty.pro/docs/redis/&#34;&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/a&gt; module:&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;redis-overview&#34;&gt;Redis Overview&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/d/redis-overview&#34;&gt;Redis Overview&lt;/a&gt;: Overview of all Redis clusters/instances&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/d/redis-overview&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/dashboard/redis-overview.jpg&#34; alt=&#34;redis-overview.jpg&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;redis-cluster&#34;&gt;Redis Cluster&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://demo.pigsty.io/d/redis-cluster&#34;&gt;Redis Cluster&lt;/a&gt;: Details of a single Redis cluster&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/redis/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/redis/metric/</guid>
        <description>&lt;p&gt;This page is a snapshot of 275 monitoring metric categories for the &lt;a href=&#34;https://pgsty.pro/docs/redis/&#34;&gt;&lt;strong&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module. The actual runtime metric set varies with package version, enabled collectors, and target state.&lt;/p&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;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;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;category&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;alertname&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;alertstate&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;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;category&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;alertname&lt;/code&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;redis:cls:aof_rewrite_time&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:blocked_clients&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:clients&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:cmd_qps&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&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;redis:cls:cmd_rt&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&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;redis:cls:cmd_time&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&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;redis:cls:conn_rate&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:conn_reject&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:cpu_sys&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:cpu_sys_child&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:cpu_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:cpu_usage_child&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:cpu_user&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:cpu_user_child&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:fork_time&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:key_evict&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:key_expire&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:key_hit&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:key_hit_rate&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:key_miss&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:mem_max&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:mem_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:mem_usage_max&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:mem_used&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:net_traffic&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:qps&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:qps_mu&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:qps_realtime&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:qps_sigma&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:rt&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:rt_mu&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:rt_sigma&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:rx&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:size&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:cls:tx&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&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;redis:env:blocked_clients&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;redis:env:clients&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;redis:env:cmd_qps&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cmd&lt;/code&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;redis:env:cmd_rt&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cmd&lt;/code&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;redis:env:cmd_time&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cmd&lt;/code&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;redis:env:conn_rate&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;redis:env:conn_reject&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;redis: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;redis:env:cpu_usage_child&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;redis:env:key_evict&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;redis:env:key_expire&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;redis:env:key_hit&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;redis:env:key_hit_rate&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;redis:env:key_miss&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;redis:env:mem_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;redis:env:net_traffic&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;redis:env:qps&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;redis:env:qps_mu&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;redis:env:qps_realtime&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;redis:env:qps_sigma&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;redis:env:rt&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;redis:env:rt_mu&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;redis:env:rt_sigma&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;redis:env:rx&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;redis:env:tx&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;redis:ins&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:blocked_clients&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:clients&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cmd_qps&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cmd_rt&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cmd_time&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:conn_rate&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:conn_reject&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cpu_sys&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cpu_sys_child&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cpu_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cpu_usage_child&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cpu_user&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:cpu_user_child&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:key_evict&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:key_expire&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:key_hit&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:key_hit_rate&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:key_miss&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:lsn_rate&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:mem_usage&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:net_traffic&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:qps&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:qps_mu&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:qps_realtime&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:qps_sigma&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:rt&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:rt_mu&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:rt_sigma&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:rx&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:ins:tx&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:node:ip&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis:node:mem_alloc&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;redis:node:mem_total&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;redis:node:mem_used&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;redis:node:qps&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&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;redis_active_defrag_running&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;active_defrag_running metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_allocator_active_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;allocator_active_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_allocator_allocated_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;allocator_allocated_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_allocator_frag_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;allocator_frag_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_allocator_frag_ratio&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;allocator_frag_ratio metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_allocator_resident_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;allocator_resident_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_allocator_rss_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;allocator_rss_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_allocator_rss_ratio&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;allocator_rss_ratio metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_current_rewrite_duration_sec&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_current_rewrite_duration_sec metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_enabled&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_enabled metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_last_bgrewrite_status&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_last_bgrewrite_status metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_last_cow_size_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_last_cow_size_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_last_rewrite_duration_sec&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_last_rewrite_duration_sec metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_last_write_status&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_last_write_status metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_rewrite_in_progress&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_rewrite_in_progress metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_aof_rewrite_scheduled&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;aof_rewrite_scheduled metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_blocked_clients&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;blocked_clients metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_client_recent_max_input_buffer_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;client_recent_max_input_buffer_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_client_recent_max_output_buffer_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;client_recent_max_output_buffer_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_clients_in_timeout_table&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;clients_in_timeout_table metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_connections&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_connections metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_current_epoch&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_current_epoch metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_enabled&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_enabled metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_known_nodes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_known_nodes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_messages_received_total&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_messages_received_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_messages_sent_total&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_messages_sent_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_my_epoch&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_my_epoch metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_size&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_size metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_slots_assigned&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_slots_assigned metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_slots_fail&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_slots_fail metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_slots_ok&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_slots_ok metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_slots_pfail&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_slots_pfail metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_state&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_state metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_stats_messages_meet_received&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_stats_messages_meet_received metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_stats_messages_meet_sent&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_stats_messages_meet_sent metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_stats_messages_ping_received&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_stats_messages_ping_received metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_stats_messages_ping_sent&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_stats_messages_ping_sent metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_stats_messages_pong_received&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_stats_messages_pong_received metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cluster_stats_messages_pong_sent&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cluster_stats_messages_pong_sent metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_commands_duration_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total amount of time in seconds spent per command&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_commands_failed_calls_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of errors prior command execution per command&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_commands_latencies_usec_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis_commands_latencies_usec_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis_commands_latencies_usec_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis_commands_processed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;commands_processed_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_commands_rejected_calls_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of errors within command execution per command&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_commands_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of calls per command&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_config_io_threads&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;config_io_threads metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_config_maxclients&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;config_maxclients metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_config_maxmemory&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;config_maxmemory metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_connected_clients&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;connected_clients metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_connected_slave_lag_seconds&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;ip&lt;/code&gt;, &lt;code&gt;slave_ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;slave_state&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;slave_port&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Lag of connected slave&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_connected_slave_offset_bytes&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;ip&lt;/code&gt;, &lt;code&gt;slave_ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;slave_state&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;slave_port&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Offset of connected slave&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_connected_slaves&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;connected_slaves metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_connections_received_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;connections_received_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cpu_sys_children_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cpu_sys_children_seconds_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cpu_sys_main_thread_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cpu_sys_main_thread_seconds_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cpu_sys_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cpu_sys_seconds_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cpu_user_children_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cpu_user_children_seconds_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cpu_user_main_thread_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cpu_user_main_thread_seconds_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_cpu_user_seconds_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;cpu_user_seconds_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_db_keys&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;db&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of keys by DB&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_db_keys_expiring&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;db&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of expiring keys by DB&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_defrag_hits&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;defrag_hits metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_defrag_key_hits&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;defrag_key_hits metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_defrag_key_misses&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;defrag_key_misses metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_defrag_misses&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;defrag_misses metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_dump_payload_sanitizations&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;dump_payload_sanitizations metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;err&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of errors per error type&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_evicted_keys_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;evicted_keys_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_expired_keys_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;expired_keys_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_expired_stale_percentage&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;expired_stale_percentage metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_expired_time_cap_reached_total&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;expired_time_cap_reached_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_exporter_build_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;golang_version&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;commit_sha&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;build_date&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;redis exporter build_info&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_exporter_last_scrape_connect_time_seconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;exporter_last_scrape_connect_time_seconds metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_exporter_last_scrape_duration_seconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;exporter_last_scrape_duration_seconds metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_exporter_last_scrape_error&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The last scrape error status.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_exporter_scrape_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis_exporter_scrape_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis_exporter_scrapes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Current total redis scrapes.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_instance_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;ip&lt;/code&gt;, &lt;code&gt;os&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;run_id&lt;/code&gt;, &lt;code&gt;redis_version&lt;/code&gt;, &lt;code&gt;tcp_port&lt;/code&gt;, &lt;code&gt;process_id&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;redis_mode&lt;/code&gt;, &lt;code&gt;maxmemory_policy&lt;/code&gt;, &lt;code&gt;redis_build_id&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Information about the Redis instance&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_io_threaded_reads_processed&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;io_threaded_reads_processed metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_io_threaded_writes_processed&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;io_threaded_writes_processed metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_io_threads_active&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;io_threads_active metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_keyspace_hits_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;keyspace_hits_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_keyspace_misses_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;keyspace_misses_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_last_key_groups_scrape_duration_milliseconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Duration of the last key group metrics scrape in milliseconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_last_slow_execution_duration_seconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The amount of time needed for last slow execution, in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_latency_percentiles_usec&lt;/td&gt;&#xA;      &lt;td&gt;summary&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&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;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;A summary of latency percentile distribution per command&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_latency_percentiles_usec_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis_latency_percentiles_usec_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;cmd&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;redis_latest_fork_seconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;latest_fork_seconds metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_lazyfree_pending_objects&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;lazyfree_pending_objects metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_loading_dump_file&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;loading_dump_file metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_master_last_io_seconds_ago&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;ip&lt;/code&gt;, &lt;code&gt;master_host&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;master_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Master last io seconds ago&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_master_link_up&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;ip&lt;/code&gt;, &lt;code&gt;master_host&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;master_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Master link status on Redis slave&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_master_repl_offset&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;master_repl_offset metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_master_sync_in_progress&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;ip&lt;/code&gt;, &lt;code&gt;master_host&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;master_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Master sync in progress&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_mem_clients_normal&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;mem_clients_normal metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_mem_clients_slaves&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;mem_clients_slaves metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_mem_fragmentation_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;mem_fragmentation_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_mem_fragmentation_ratio&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;mem_fragmentation_ratio metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_mem_not_counted_for_eviction_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;mem_not_counted_for_eviction_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_max_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_max_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_dataset_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_dataset_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_lua_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_lua_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_overhead_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_overhead_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_peak_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_peak_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_rss_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_rss_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_scripts_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_scripts_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_memory_used_startup_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;memory_used_startup_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_migrate_cached_sockets_total&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;migrate_cached_sockets_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_module_fork_in_progress&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;module_fork_in_progress metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_module_fork_last_cow_size&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;module_fork_last_cow_size metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_net_input_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;net_input_bytes_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_net_output_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;net_output_bytes_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_number_of_cached_scripts&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;number_of_cached_scripts metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_process_id&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;process_id metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_pubsub_channels&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;pubsub_channels metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_pubsub_patterns&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;pubsub_patterns metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_pubsubshard_channels&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;pubsubshard_channels metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rdb_bgsave_in_progress&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rdb_bgsave_in_progress metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rdb_changes_since_last_save&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rdb_changes_since_last_save metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rdb_current_bgsave_duration_sec&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rdb_current_bgsave_duration_sec metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rdb_last_bgsave_duration_sec&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rdb_last_bgsave_duration_sec metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rdb_last_bgsave_status&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rdb_last_bgsave_status metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rdb_last_cow_size_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rdb_last_cow_size_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rdb_last_save_timestamp_seconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rdb_last_save_timestamp_seconds metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_rejected_connections_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;rejected_connections_total metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_repl_backlog_first_byte_offset&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;repl_backlog_first_byte_offset metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_repl_backlog_history_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;repl_backlog_history_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_repl_backlog_is_active&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;repl_backlog_is_active metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_replica_partial_resync_accepted&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;replica_partial_resync_accepted metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_replica_partial_resync_denied&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;replica_partial_resync_denied metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_replica_resyncs_full&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;replica_resyncs_full metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_replication_backlog_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;replication_backlog_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_second_repl_offset&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;second_repl_offset metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_ckquorum_status&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;ip&lt;/code&gt;, &lt;code&gt;message&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Master ckquorum status&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_ok_sentinels&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of okay sentinels monitoring this master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_ok_slaves&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of okay slaves of the master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_sentinels&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of sentinels monitoring this master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_setting_ckquorum&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Show the current ckquorum config for each master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_setting_down_after_milliseconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Show the current down-after-milliseconds config for each master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_setting_failover_timeout&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Show the current failover-timeout config for each master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_setting_parallel_syncs&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Show the current parallel-syncs config for each master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_slaves&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of slaves of the master&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_master_status&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;ip&lt;/code&gt;, &lt;code&gt;master_status&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;master_address&lt;/code&gt;, &lt;code&gt;master_name&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Master status on Sentinel&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_masters&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of masters this sentinel is watching&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_running_scripts&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of scripts in execution right now&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_scripts_queue_length&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Queue of user scripts to execute&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_simulate_failure_flags&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Failures simulations&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_sentinel_tilt&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Sentinel is in TILT mode&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_slave_expires_tracked_keys&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;slave_expires_tracked_keys metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_slave_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;ip&lt;/code&gt;, &lt;code&gt;master_host&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;read_only&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;master_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Information about the Redis slave&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_slave_priority&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;slave_priority metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_slave_repl_offset&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;ip&lt;/code&gt;, &lt;code&gt;master_host&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;master_port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Slave replication offset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_slowlog_last_id&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Last id of slowlog&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_slowlog_length&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total slowlog&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_start_time_seconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Start time of the Redis instance since unix epoch in seconds.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_target_scrape_request_errors_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Errors in requests to the exporter&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_total_error_replies&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total_error_replies metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_total_reads_processed&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total_reads_processed metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_total_system_memory_bytes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total_system_memory_bytes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_total_writes_processed&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;total_writes_processed metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_tracking_clients&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;tracking_clients metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_tracking_total_items&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;tracking_total_items metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_tracking_total_keys&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;tracking_total_keys metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_tracking_total_prefixes&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;tracking_total_prefixes metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_unexpected_error_replies&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;unexpected_error_replies metric&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_up&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Information about the Redis instance&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;redis_uptime_in_seconds&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;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;uptime_in_seconds metric&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;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;scrape_samples_post_metric_relabeling&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;scrape_samples_scraped&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;scrape_series_added&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;ins&lt;/code&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;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/redis/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/redis/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;abort-due-to-redis_safeguard-enabled&#34;&gt;ABORT due to redis_safeguard enabled&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;This means the Redis instance you are trying to remove has the safeguard enabled. When &lt;a href=&#34;https://pgsty.pro/docs/redis/param/#redis_safeguard&#34;&gt;&lt;code&gt;redis_safeguard&lt;/code&gt;&lt;/a&gt; is &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;redis-rm.yml&lt;/code&gt; refuses to run unconditionally; the switch does not probe whether an instance is running.&lt;/p&gt;&#xA;&lt;p&gt;After confirming the exact &lt;code&gt;-l&lt;/code&gt;/&lt;code&gt;redis_port&lt;/code&gt; target, a recent backup, and the &lt;code&gt;redis_rm_data&lt;/code&gt; setting, override the protection with &lt;code&gt;-e redis_safeguard=false&lt;/code&gt; and run the removal. This switch only releases the guard; it does not verify the target or recoverability for you.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Grafana High Availability: Using PostgreSQL Backend</title>
        <link>https://pgsty.pro/docs/infra/admin/grafana/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/infra/admin/grafana/</guid>
        <description>&lt;p&gt;You can use PostgreSQL as Grafana&amp;rsquo;s backend database.&lt;/p&gt;&#xA;&lt;p&gt;This is a great opportunity to understand Pigsty&amp;rsquo;s deployment system. By completing this tutorial, you&amp;rsquo;ll learn:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;How to &lt;a href=&#34;https://pgsty.pro/docs/infra/admin/grafana/#create-database-cluster&#34;&gt;create a new database cluster&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;How to &lt;a href=&#34;https://pgsty.pro/docs/infra/admin/grafana/#create-grafana-business-user&#34;&gt;create new business users&lt;/a&gt; in an existing cluster&lt;/li&gt;&#xA;&lt;li&gt;How to &lt;a href=&#34;https://pgsty.pro/docs/infra/admin/grafana/#create-grafana-business-database&#34;&gt;create new business databases&lt;/a&gt; in an existing cluster&lt;/li&gt;&#xA;&lt;li&gt;How to &lt;a href=&#34;https://pgsty.pro/docs/infra/admin/grafana/#use-grafana-business-database&#34;&gt;access databases&lt;/a&gt; created by Pigsty&lt;/li&gt;&#xA;&lt;li&gt;How to &lt;a href=&#34;https://pgsty.pro/docs/infra/admin/grafana/#manage-grafana-dashboards&#34;&gt;manage Grafana dashboards&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;How to manage &lt;a href=&#34;https://pgsty.pro/docs/infra/admin/grafana/#manage-postgres-datasources&#34;&gt;PostgreSQL datasources&lt;/a&gt; in Grafana&lt;/li&gt;&#xA;&lt;li&gt;How to &lt;a href=&#34;https://pgsty.pro/docs/infra/admin/grafana/#one-step-grafana-upgrade&#34;&gt;upgrade Grafana database&lt;/a&gt; in one step&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-b81464a5-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;9&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-b81464a5-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;vi pigsty.yml &lt;span class=&#34;c1&#34;&gt;# Uncomment DB/User definitions: dbuser_grafana  grafana&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-user  pg-meta  dbuser_grafana&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bin/pgsql-db    pg-meta  grafana&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;psql postgres://dbuser_grafana:DBUser.Grafana@meta:5436/grafana -c &lt;span class=&#34;se&#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;s1&#34;&gt;&amp;#39;CREATE TABLE t(); DROP TABLE t;&amp;#39;&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# Verify connection string works&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vi /etc/grafana/grafana.ini &lt;span class=&#34;c1&#34;&gt;# Modify [database] type url&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl restart grafana-server&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;create-database-cluster&#34;&gt;Create Database Cluster&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;We can define a new database &lt;code&gt;grafana&lt;/code&gt; on &lt;code&gt;pg-meta&lt;/code&gt;, or create a dedicated Grafana database cluster &lt;code&gt;pg-grafana&lt;/code&gt; on new nodes.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Usage</title>
        <link>https://pgsty.pro/docs/docker/usage/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/docker/usage/</guid>
        <description>&lt;p&gt;Pigsty has built-in &lt;a href=&#34;https://www.docker.com/&#34;&gt;&lt;strong&gt;Docker&lt;/strong&gt;&lt;/a&gt; support, which you can use to quickly deploy containerized applications.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;getting-started&#34;&gt;Getting Started&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Docker is an &lt;strong&gt;optional module&lt;/strong&gt;. In Pigsty, whether Docker is installed is controlled by &lt;a href=&#34;https://pgsty.pro/docs/docker/param/#docker_enabled&#34;&gt;&lt;code&gt;docker_enabled&lt;/code&gt;&lt;/a&gt;, which is disabled by default.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;docker-ce&lt;/code&gt; upstream repository belongs to the &lt;code&gt;infra&lt;/code&gt; module. If you need to explicitly include Docker packages in the offline repository, use &lt;code&gt;repo_extra_packages&lt;/code&gt; with the &lt;code&gt;docker&lt;/code&gt; package alias (mapped to &lt;code&gt;docker-ce&lt;/code&gt; and &lt;code&gt;docker-compose-plugin&lt;/code&gt;).&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/docker/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/docker/param/</guid>
        <description>&lt;p&gt;The DOCKER module provides 8 configuration parameters.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameter-overview&#34;&gt;Parameter Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://pgsty.pro/docs/docker/param/#docker&#34;&gt;&lt;code&gt;DOCKER&lt;/code&gt;&lt;/a&gt; parameter group is used for Docker container engine deployment and configuration, including enable switch, data directory, storage driver, registry mirrors, and monitoring.&lt;/p&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;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Level&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/docker/param/#docker_enabled&#34;&gt;&lt;code&gt;docker_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Enable Docker on current node? disabled by default&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/docs/docker/param/#docker_data&#34;&gt;&lt;code&gt;docker_data&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker data directory, &lt;code&gt;/data/docker&lt;/code&gt; by default&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/docs/docker/param/#docker_storage_driver&#34;&gt;&lt;code&gt;docker_storage_driver&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker storage driver, &lt;code&gt;overlay2&lt;/code&gt; by default&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/docs/docker/param/#docker_cgroups_driver&#34;&gt;&lt;code&gt;docker_cgroups_driver&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker cgroup driver: cgroupfs or systemd&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/docs/docker/param/#docker_registry_mirrors&#34;&gt;&lt;code&gt;docker_registry_mirrors&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker registry mirror list&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/docs/docker/param/#docker_exporter_port&#34;&gt;&lt;code&gt;docker_exporter_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker metrics exporter port, &lt;code&gt;9323&lt;/code&gt; by default&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/docs/docker/param/#docker_image&#34;&gt;&lt;code&gt;docker_image&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker images to pull, empty list by default&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/docs/docker/param/#docker_image_cache&#34;&gt;&lt;code&gt;docker_image_cache&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;G/C/I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Docker image cache tarball path, &lt;code&gt;/tmp/docker/*.tgz&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;You can use the &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/docker.yml&#34;&gt;&lt;code&gt;docker.yml&lt;/code&gt;&lt;/a&gt; playbook to install and enable Docker on nodes.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbooks</title>
        <link>https://pgsty.pro/docs/docker/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/docker/playbook/</guid>
        <description>&lt;p&gt;The Docker module provides a default playbook &lt;a href=&#34;https://pgsty.pro/docs/docker/playbook/#dockeryml&#34;&gt;&lt;code&gt;docker.yml&lt;/code&gt;&lt;/a&gt; for installing Docker Daemon and Docker Compose.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;dockeryml&#34;&gt;&lt;code&gt;docker.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Playbook source file: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/docker.yml&#34;&gt;&lt;code&gt;docker.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Running this playbook will install &lt;code&gt;docker-ce&lt;/code&gt; and &lt;code&gt;docker-compose-plugin&lt;/code&gt; on target nodes with the &lt;code&gt;docker_enabled: true&lt;/code&gt; flag, and enable the &lt;code&gt;dockerd&lt;/code&gt; service.&lt;/p&gt;&#xA;&lt;p&gt;The following are the available task subsets in the &lt;code&gt;docker.yml&lt;/code&gt; playbook:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_install&lt;/code&gt;   : Install Docker and Docker Compose packages on the node&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_admin&lt;/code&gt;     : Add specified users to the Docker admin user group&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_dir&lt;/code&gt;       : Create Docker related directories&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_config&lt;/code&gt;    : Generate Docker daemon service configuration file&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_launch&lt;/code&gt;    : Start the Docker daemon service&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_register&lt;/code&gt;  : Register Docker daemon as a monitoring target (alias tags: &lt;code&gt;register&lt;/code&gt; / &lt;code&gt;add_metrics&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_image&lt;/code&gt;     : Attempt to load pre-cached image tarballs from &lt;code&gt;/tmp/docker/*.tgz&lt;/code&gt; (if they exist)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The Docker module does not provide a dedicated uninstall playbook. If you need to uninstall Docker, you can manually stop Docker and then remove it:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/docker/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/docker/metric/</guid>
        <description>&lt;p&gt;This snapshot records 123 monitoring metric families for the &lt;a href=&#34;https://pgsty.pro/docs/docker/&#34;&gt;&lt;strong&gt;&lt;code&gt;DOCKER&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module. The metrics present at runtime vary with package version, enabled collectors, and target state.&lt;/p&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;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;builder_builds_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;reason&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of failed image builds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;builder_builds_triggered_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of triggered image builds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;docker_up&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;engine_daemon_container_actions_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_container_actions_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_container_actions_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_container_states_containers&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The count of containers in various states&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_engine_cpus_cpus&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of cpus that the host system of the engine has&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_engine_info&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;architecture&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;os_version&lt;/code&gt;, &lt;code&gt;kernel&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;graphdriver&lt;/code&gt;, &lt;code&gt;os&lt;/code&gt;, &lt;code&gt;daemon_id&lt;/code&gt;, &lt;code&gt;commit&lt;/code&gt;, &lt;code&gt;os_type&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The information related to the engine and the OS it is running on&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_engine_memory_bytes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of bytes of memory that the host system of the engine has&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_events_subscribers_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of current subscribers to events&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_events_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of events logged&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_health_checks_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of failed health checks&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_health_check_start_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;engine_daemon_health_check_start_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;engine_daemon_health_check_start_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;engine_daemon_health_checks_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The total number of health checks&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;engine_daemon_host_info_functions_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;function&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;engine_daemon_host_info_functions_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;function&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;engine_daemon_host_info_functions_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;function&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;engine_daemon_image_actions_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_image_actions_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_image_actions_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_network_actions_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_network_actions_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;action&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;engine_daemon_network_actions_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;action&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;etcd_debugging_snap_save_marshalling_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;etcd_debugging_snap_save_marshalling_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_debugging_snap_save_marshalling_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_debugging_snap_save_total_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;etcd_debugging_snap_save_total_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_debugging_snap_save_total_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_disk_wal_fsync_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;etcd_disk_wal_fsync_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_disk_wal_fsync_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_disk_wal_write_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Total number of bytes written in WAL.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;etcd_snap_db_fsync_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;etcd_snap_db_fsync_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_snap_db_fsync_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_snap_db_save_total_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;etcd_snap_db_save_total_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_snap_db_save_total_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_snap_fsync_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;etcd_snap_fsync_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;etcd_snap_fsync_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;quantile&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;instance&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;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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_alloc_bytes_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;logger_log_entries_size_greater_than_buffer_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of log entries which are larger than the log buffer&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;logger_log_read_operations_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of log reads from container stdio that failed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;logger_log_write_operations_failed_total&lt;/td&gt;&#xA;      &lt;td&gt;counter&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Number of log write operations that failed&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;code&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_dispatcher_scheduling_delay_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_dispatcher_scheduling_delay_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_dispatcher_scheduling_delay_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_manager_configs_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of configs in the cluster object store&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_manager_leader&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Indicates if this manager node is a leader&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_manager_networks_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of networks in the cluster object store&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_manager_nodes&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of nodes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_manager_secrets_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of secrets in the cluster object store&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_manager_services_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of services in the cluster object store&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_manager_tasks_total&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The number of tasks in the cluster object store&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_node_manager&lt;/td&gt;&#xA;      &lt;td&gt;gauge&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Whether this node is a manager or not&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;swarm_raft_snapshot_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_raft_snapshot_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_raft_snapshot_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_raft_transaction_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_raft_transaction_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_raft_transaction_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_batch_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_store_batch_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_batch_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_lookup_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_store_lookup_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_lookup_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_memory_store_lock_duration_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_store_memory_store_lock_duration_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_memory_store_lock_duration_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_read_tx_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_store_read_tx_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_read_tx_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_write_tx_latency_seconds_bucket&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, &lt;code&gt;le&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;swarm_store_write_tx_latency_seconds_count&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;swarm_store_write_tx_latency_seconds_sum&lt;/td&gt;&#xA;      &lt;td&gt;Unknown&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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;ip&lt;/code&gt;, &lt;code&gt;cls&lt;/code&gt;, &lt;code&gt;ins&lt;/code&gt;, &lt;code&gt;job&lt;/code&gt;, &lt;code&gt;instance&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>FAQ</title>
        <link>https://pgsty.pro/docs/docker/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/docker/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;who-can-run-docker-commands&#34;&gt;Who Can Run Docker Commands?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;By default, Pigsty adds both the management user running the playbook on the remote node (i.e., the SSH login user on the target node) and the admin user specified in the &lt;a href=&#34;https://pgsty.pro/docs/node/param/#node_admin_username&#34;&gt;&lt;code&gt;node_admin_username&lt;/code&gt;&lt;/a&gt; parameter to the Docker operating system group.&#xA;All users in this group (&lt;code&gt;docker&lt;/code&gt;) can manage Docker using the &lt;code&gt;docker&lt;/code&gt; CLI command.&lt;/p&gt;&#xA;&lt;p&gt;If you want other users to be able to run Docker commands, add that OS user to the docker group:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/juice/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/juice/config/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;concepts-and-implementation&#34;&gt;Concepts and Implementation&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;JuiceFS consists of a &lt;strong&gt;metadata engine&lt;/strong&gt; and &lt;strong&gt;data storage&lt;/strong&gt;.&#xA;In the current version, &lt;code&gt;meta&lt;/code&gt; is passed through to &lt;code&gt;juicefs&lt;/code&gt; as the metadata engine URL, and PostgreSQL is typically used in production.&#xA;Data storage is defined by &lt;code&gt;data&lt;/code&gt; options passed to &lt;code&gt;juicefs format&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;JUICE module core commands:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9387b696-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-9387b696-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;# Format (only effective on first creation)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;juicefs format --no-update &amp;lt;data&amp;gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;meta&amp;gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&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;# Mount&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;juicefs mount &amp;lt;mount_opts&amp;gt; --cache-dir &amp;lt;juice_cache&amp;gt; --metrics 0.0.0.0:&amp;lt;port&amp;gt; &amp;lt;meta&amp;gt; &amp;lt;path&amp;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;Notes:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/juice/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/juice/param/</guid>
        <description>&lt;p&gt;JUICE module has &lt;strong&gt;2&lt;/strong&gt; parameters:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/param/#juice_cache&#34;&gt;&lt;code&gt;juice_cache&lt;/code&gt;&lt;/a&gt;: shared cache directory&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/param/#juice_instances&#34;&gt;&lt;code&gt;juice_instances&lt;/code&gt;&lt;/a&gt;: instance definition dict&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;parameter-overview&#34;&gt;Parameter Overview&#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;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Level&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/param/#juice_cache&#34;&gt;&lt;code&gt;juice_cache&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JuiceFS shared cache directory&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/docs/juice/param/#juice_instances&#34;&gt;&lt;code&gt;juice_instances&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;dict&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;I&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JuiceFS instance definition dict (can be empty)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Level&lt;/strong&gt;: &lt;code&gt;C&lt;/code&gt; = cluster level, &lt;code&gt;I&lt;/code&gt; = instance level.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;default-parameters&#34;&gt;Default Parameters&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Defined in &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/juice/defaults/main.yml&#34;&gt;&lt;code&gt;roles/juice/defaults/main.yml&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d8e92c9f-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-d8e92c9f-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;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;c&#34;&gt;# JUICE&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;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;nt&#34;&gt;juice_cache&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;/data/juice&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;nt&#34;&gt;juice_instances&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&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;juice_cache&#34;&gt;&lt;code&gt;juice_cache&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Parameter: &lt;code&gt;juice_cache&lt;/code&gt;, type: &lt;code&gt;path&lt;/code&gt;, level: &lt;code&gt;C&lt;/code&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/juice/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/juice/playbook/</guid>
        <description>&lt;p&gt;JUICE module provides &lt;code&gt;juice.yml&lt;/code&gt; playbook to deploy and remove JuiceFS instances.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;juiceyml&#34;&gt;&lt;code&gt;juice.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Task structure in &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/juice.yml&#34;&gt;&lt;code&gt;juice.yml&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-bc40b6df-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;10&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-bc40b6df-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;juice_id        : validate config, check port conflicts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;juice_install   : install juicefs package&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;juice_cache     : create shared cache dir&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;juice_clean     : remove instance &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;absent&lt;span class=&#34;o&#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;juice_instance  : create instance &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;state&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;create&lt;span class=&#34;o&#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;  - juice_init  : format filesystem &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;--no-update&lt;span class=&#34;o&#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;  - juice_dir   : create mount dir&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - juice_config: render env file and systemd unit&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  - juice_launch: start service and &lt;span class=&#34;nb&#34;&gt;wait&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; metrics port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;juice_register  : register to VictoriaMetrics targets&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;scope&#34;&gt;Scope&#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;Scope&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Limit&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;Node&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;-l &amp;lt;host&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy all instances on the node&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;-l &amp;lt;host&amp;gt; -e fsname=&amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Only handle specified instance&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Examples:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/juice/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/juice/admin/</guid>
        <description>&lt;p&gt;Common operations:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#initialize-instance&#34;&gt;Initialize Instance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#reconfigure&#34;&gt;Reconfigure&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#remove-instance&#34;&gt;Remove Instance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#add-new-instance&#34;&gt;Add New Instance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#shared-mount-across-nodes&#34;&gt;Shared Mount Across Nodes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#pitr-recovery&#34;&gt;PITR Recovery&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#troubleshooting&#34;&gt;Troubleshooting&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/juice/admin/#performance-tuning&#34;&gt;Performance Tuning&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://pgsty.pro/docs/juice/faq/&#34;&gt;FAQ&lt;/a&gt; for more.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;initialize-instance&#34;&gt;Initialize Instance&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-90c680cd-fence-0&#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-90c680cd-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;./juice.yml -l &amp;lt;host&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./juice.yml -l &amp;lt;host&amp;gt; -e &lt;span class=&#34;nv&#34;&gt;fsname&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&amp;lt;name&amp;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;Initialization steps:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Install &lt;code&gt;juicefs&lt;/code&gt; package&lt;/li&gt;&#xA;&lt;li&gt;Create shared cache dir (default &lt;code&gt;/data/juice&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Run &lt;code&gt;juicefs format --no-update&lt;/code&gt; (only effective on first creation)&lt;/li&gt;&#xA;&lt;li&gt;Create mount point and set permissions&lt;/li&gt;&#xA;&lt;li&gt;Render systemd unit and env files&lt;/li&gt;&#xA;&lt;li&gt;Start service and wait for metrics port&lt;/li&gt;&#xA;&lt;li&gt;Register to VictoriaMetrics (if infra node exists)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;reconfigure&#34;&gt;Reconfigure&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;After changing config, it&amp;rsquo;s recommended to run (update config and ensure service is online):&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/juice/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/juice/monitor/</guid>
        <description>&lt;p&gt;JuiceFS instances expose Prometheus metrics via &lt;code&gt;juicefs mount --metrics&lt;/code&gt;.&#xA;In JUICE, metrics listen on &lt;code&gt;0.0.0.0:&amp;lt;port&amp;gt;&lt;/code&gt;, default port &lt;code&gt;9567&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;monitoring-architecture&#34;&gt;Monitoring Architecture&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d9871b71-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-d9871b71-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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;JuiceFS Mount (metrics: 0.0.0.0:&amp;lt;port&amp;gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;VictoriaMetrics (scrape)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Grafana Dashboard&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;If &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/a&gt; is deployed, &lt;code&gt;juice_register&lt;/code&gt; writes scrape targets to:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d9871b71-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-d9871b71-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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/infra/targets/juice/&amp;lt;hostname&amp;gt;.yml&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;The current source includes the &lt;a href=&#34;https://demo.pigsty.io/d/node-juice&#34;&gt;Node JuiceFS&lt;/a&gt; dashboard (UID: &lt;code&gt;node-juice&lt;/code&gt;) for capacity, cache, object-storage, metadata-transaction, and client-resource metrics across JuiceFS mounts on a node.&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/juice/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/juice/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;port-conflicts&#34;&gt;Port Conflicts?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Multiple instances on the same node must use different &lt;code&gt;port&lt;/code&gt; values. Example:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-7a4f68bd-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-7a4f68bd-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;juice_instances&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;fs1&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;path&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;/fs1&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;meta&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;postgres://...&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;port&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;m&#34;&gt;9567&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;fs2&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;path&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;/fs2&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;meta&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;postgres://...&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;port&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;m&#34;&gt;9568&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;why-does-changing-data-not-take-effect&#34;&gt;Why does changing &lt;code&gt;data&lt;/code&gt; not take effect?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;data&lt;/code&gt; is only used by &lt;code&gt;juicefs format --no-update&lt;/code&gt;. After filesystem creation it will not change.&#xA;To switch backend, migrate data and reformat manually.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/vibe/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/vibe/config/</guid>
        <description>&lt;p&gt;VIBE supports enabling components on demand and exposes services via a unified workspace and Nginx portal.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#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;Component&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Enable Param&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Default&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;Code-Server&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;code_enabled&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Enabled&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;VS Code in browser&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JupyterLab&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;jupyter_enabled&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Disabled&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Notebook / terminal / editor&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node.js&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nodejs_enabled&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Enabled&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Node.js runtime and npm&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Claude Code&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;claude_enabled&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Enabled&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;CLI installation, config, and observability&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Codex CLI&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;codex_enabled&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Enabled&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;CLI installation only; configuration is not managed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Note: module default is &lt;code&gt;jupyter_enabled: false&lt;/code&gt;, while &lt;code&gt;conf/vibe.yml&lt;/code&gt; explicitly sets it to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/vibe/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/vibe/param/</guid>
        <description>&lt;p&gt;VIBE module has &lt;strong&gt;18&lt;/strong&gt; parameters, grouped as:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Common&lt;/li&gt;&#xA;&lt;li&gt;Code-Server&lt;/li&gt;&#xA;&lt;li&gt;JupyterLab&lt;/li&gt;&#xA;&lt;li&gt;Node.js&lt;/li&gt;&#xA;&lt;li&gt;Claude Code&lt;/li&gt;&#xA;&lt;li&gt;Codex CLI&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#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;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Level&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Default&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/vibe/param/#vibe_data&#34;&gt;&lt;code&gt;vibe_data&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/fs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Workspace dir&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/docs/vibe/param/#code_enabled&#34;&gt;&lt;code&gt;code_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Enable Code-Server&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/docs/vibe/param/#code_port&#34;&gt;&lt;code&gt;code_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;8443&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Code-Server port&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/docs/vibe/param/#code_data&#34;&gt;&lt;code&gt;code_data&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/data/code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Code-Server data dir&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/docs/vibe/param/#code_password&#34;&gt;&lt;code&gt;code_password&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Vibe.Coding&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Code-Server password&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/docs/vibe/param/#code_gallery&#34;&gt;&lt;code&gt;code_gallery&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;openvsx&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Extension marketplace&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/docs/vibe/param/#jupyter_enabled&#34;&gt;&lt;code&gt;jupyter_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Enable JupyterLab&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/docs/vibe/param/#jupyter_port&#34;&gt;&lt;code&gt;jupyter_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;8888&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JupyterLab port&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/docs/vibe/param/#jupyter_data&#34;&gt;&lt;code&gt;jupyter_data&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/data/jupyter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JupyterLab data dir&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/docs/vibe/param/#jupyter_password&#34;&gt;&lt;code&gt;jupyter_password&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Vibe.Coding&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JupyterLab token&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/docs/vibe/param/#jupyter_venv&#34;&gt;&lt;code&gt;jupyter_venv&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/data/venv&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Python venv path&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/docs/vibe/param/#nodejs_enabled&#34;&gt;&lt;code&gt;nodejs_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Enable Node.js&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/docs/vibe/param/#nodejs_registry&#34;&gt;&lt;code&gt;nodejs_registry&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;&#39;&#39;&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;npm registry mirror&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/docs/vibe/param/#npm_packages&#34;&gt;&lt;code&gt;npm_packages&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Additional global npm packages&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/docs/vibe/param/#claude_enabled&#34;&gt;&lt;code&gt;claude_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Install and configure Claude Code&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/docs/vibe/param/#claude_package&#34;&gt;&lt;code&gt;claude_package&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;@anthropic-ai/claude-code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Claude Code npm package&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/docs/vibe/param/#claude_env&#34;&gt;&lt;code&gt;claude_env&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;dict&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Claude env vars&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/docs/vibe/param/#codex_enabled&#34;&gt;&lt;code&gt;codex_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Install Codex CLI&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;default-parameters&#34;&gt;Default Parameters&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Defined in &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/roles/vibe/defaults/main.yml&#34;&gt;&lt;code&gt;roles/vibe/defaults/main.yml&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/vibe/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/vibe/playbook/</guid>
        <description>&lt;p&gt;VIBE provides the &lt;code&gt;vibe.yml&lt;/code&gt; playbook to deploy Code-Server, JupyterLab, Node.js, Claude Code, and Codex CLI.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;vibe.yml&lt;/code&gt; includes only &lt;code&gt;node_id&lt;/code&gt; and &lt;code&gt;vibe&lt;/code&gt; roles, it does not include &lt;code&gt;node/infra&lt;/code&gt;.&#xA;Run &lt;a href=&#34;https://pgsty.pro/docs/deploy/&#34;&gt;&lt;code&gt;deploy.yml&lt;/code&gt;&lt;/a&gt; first, or explicitly run &lt;a href=&#34;https://pgsty.pro/docs/node/playbook/&#34;&gt;&lt;code&gt;node.yml&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/infra/playbook/&#34;&gt;&lt;code&gt;infra.yml&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;vibeyml&#34;&gt;&lt;code&gt;vibe.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/vibe.yml&#34;&gt;&lt;code&gt;vibe.yml&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-c3999bd2-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-c3999bd2-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;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;VIBE&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;l&#34;&gt;all&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;become&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;&#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;gather_facts&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;no&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;roles&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;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;nt&#34;&gt;node_id, tags&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;id }&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;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;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;nt&#34;&gt;vibe,    tags&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;vibe }&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;task-structure&#34;&gt;Task Structure&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-c3999bd2-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;21&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-c3999bd2-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;vibe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── vibe_dir          &lt;span class=&#34;c1&#34;&gt;# create workspace and context files&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── code              &lt;span class=&#34;c1&#34;&gt;# Code-Server&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── code_install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── code_dir&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── code_config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── code_launch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── jupyter           &lt;span class=&#34;c1&#34;&gt;# JupyterLab&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── jupyter_install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── jupyter_dir&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── jupyter_config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── jupyter_launch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── nodejs            &lt;span class=&#34;c1&#34;&gt;# Node.js runtime and additional npm packages&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── nodejs_install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── nodejs_config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── nodejs_pkg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── codex             &lt;span class=&#34;c1&#34;&gt;# Codex CLI&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── codex_install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── claude            &lt;span class=&#34;c1&#34;&gt;# Claude Code&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── claude_install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── claude_config&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;Notes:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/vibe/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/vibe/admin/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;service-management&#34;&gt;Service Management&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9e3720d6-fence-0&#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-9e3720d6-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;systemctl status code-server&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl restart code-server&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl status jupyter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl restart jupyter&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;Logs:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9e3720d6-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-9e3720d6-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;journalctl -u code-server -f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;journalctl -u jupyter -f&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;workspace-and-context&#34;&gt;Workspace and Context&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;vibe_dir&lt;/code&gt; creates these under &lt;code&gt;vibe_data&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;: Context file rendered from the role template&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;: Symlink to &lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Default locations (adjustable via &lt;code&gt;vibe_data&lt;/code&gt;):&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/vibe/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/vibe/monitor/</guid>
        <description>&lt;p&gt;VIBE monitoring mainly focuses on Claude Code OpenTelemetry data.&#xA;Code-Server and JupyterLab do not expose Prometheus metrics; use systemd and logs for health checks.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;claude-code-observability&#34;&gt;Claude Code Observability&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;VIBE writes default OpenTelemetry env vars into &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9297681f-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;json&#34; data-td-line-count=&#34;12&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-9297681f-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-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;CLAUDE_CODE_ENABLE_TELEMETRY&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;OTEL_METRICS_EXPORTER&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;otlp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;OTEL_LOGS_EXPORTER&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;otlp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;OTEL_EXPORTER_OTLP_METRICS_PROTOCOL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http/protobuf&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;OTEL_EXPORTER_OTLP_LOGS_PROTOCOL&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http/protobuf&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;OTEL_EXPORTER_OTLP_METRICS_ENDPOINT&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://127.0.0.1:8428/opentelemetry/v1/metrics&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;OTEL_EXPORTER_OTLP_LOGS_ENDPOINT&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://127.0.0.1:9428/insert/opentelemetry/v1/logs&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;nt&#34;&gt;&amp;#34;OTEL_RESOURCE_ATTRIBUTES&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ip=&amp;lt;host&amp;gt;,job=claude&amp;#34;&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;p&#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;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;&lt;code&gt;claude_env&lt;/code&gt; is merged with the defaults, and can be used for API keys or custom endpoints.&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/vibe/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/vibe/faq/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;deployment&#34;&gt;Deployment&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;code-server-package-not-found&#34;&gt;code-server package not found&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Ensure &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/a&gt; and repo config are in place:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-be5674fd-fence-0&#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-be5674fd-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;yum repolist    &lt;span class=&#34;c1&#34;&gt;# EL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt-cache policy   &lt;span class=&#34;c1&#34;&gt;# Debian/Ubuntu, read-only inspection&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./infra.yml -l infra -t repo --check&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;jupyterlab-installation-failed&#34;&gt;JupyterLab installation failed&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;jupyter_venv&lt;/code&gt; must exist:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-be5674fd-fence-1&#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-be5674fd-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;uv venv /data/venv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./vibe.yml -l &amp;lt;host&amp;gt; -t jupyter --check&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./vibe.yml -l &amp;lt;host&amp;gt; -t jupyter&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;access&#34;&gt;Access&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;cannot-access-code-or-jupyter&#34;&gt;Cannot access &lt;code&gt;/code/&lt;/code&gt; or &lt;code&gt;/jupyter/&lt;/code&gt;&#xA;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Check service status&lt;/li&gt;&#xA;&lt;li&gt;Check port listening&lt;/li&gt;&#xA;&lt;li&gt;Check Nginx config&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-be5674fd-fence-2&#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-be5674fd-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;systemctl status code-server&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl status jupyter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ss -tlnp &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep &lt;span class=&#34;m&#34;&gt;8443&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ss -tlnp &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep &lt;span class=&#34;m&#34;&gt;8888&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -t&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;websocket-connection-fails&#34;&gt;WebSocket connection fails&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Ensure Nginx enables WebSocket (default is enabled).&#xA;If using custom &lt;code&gt;infra_portal&lt;/code&gt;, set &lt;code&gt;websocket: true&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Quick Start</title>
        <link>https://pgsty.pro/docs/kafka/start/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/start/</guid>
        <description>&lt;p&gt;This tutorial starts from a minimal single-node cluster, walking through topic creation and message read/write; it then deploys a separate, secured three-node cluster with application users, ACLs, quotas, and production topics; finally, it demonstrates core parameter changes, client access, monitoring verification, and pre-launch checks.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Tutorial Scope&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Here, &amp;ldquo;from scratch&amp;rdquo; means starting before any Kafka is deployed. You will need a working Pigsty admin node with the base &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/a&gt; services already deployed; if you don&amp;rsquo;t have one yet, complete the &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;Pigsty quick install&lt;/a&gt; first. The target nodes require SSH/sudo access and must be manageable by the &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/a&gt; module.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/kafka/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/config/</guid>
        <description>&lt;p&gt;The KAFKA module expresses cluster intent through 15 persistent public parameters; everything else — topology, listeners, storage subdirectories, replication safety, authorization, and Exporter placement — is derived by the role in a single, consistent way. For a first deployment, start with the &lt;a href=&#34;https://pgsty.pro/docs/kafka/start/&#34;&gt;Quickstart&lt;/a&gt;; for the full field reference, see &lt;a href=&#34;https://pgsty.pro/docs/kafka/param/&#34;&gt;Parameters&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--warning&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-triangle-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Plan First, Then Format&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;&lt;code&gt;kafka_seq&lt;/code&gt; becomes the KRaft &lt;code&gt;node.id&lt;/code&gt;. For a new cluster, the randomly generated Cluster ID, the initial controller identities, the security profile, and the initial replication policy are all written into the bootstrap manifest. Once storage has been formatted, do not casually change identities, the security profile, or the controller set. The role validates the live state against the manifest and fails closed on any conflict; it never silently overwrites or reformats data.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/kafka/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/param/</guid>
        <description>&lt;p&gt;The KAFKA role deliberately exposes only 15 persistent parameters. Details such as topology, listeners, security implementation, storage subdirectories, replication safety, and Exporter placement are derived by the role in a single, consistent way, and cannot be overridden as additional persistent variables.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;parameter-overview&#34;&gt;Parameter Overview&#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;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Level&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Default&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/kafka/param/#kafka_cluster&#34;&gt;&lt;code&gt;kafka_cluster&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;required&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Kafka cluster identity&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/docs/kafka/param/#kafka_seq&#34;&gt;&lt;code&gt;kafka_seq&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;required&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Cluster-unique KRaft &lt;code&gt;node.id&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;a href=&#34;https://pgsty.pro/docs/kafka/param/#kafka_role&#34;&gt;&lt;code&gt;kafka_role&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;combined&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;combined&lt;/code&gt;, &lt;code&gt;broker&lt;/code&gt;, or &lt;code&gt;controller&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;a href=&#34;https://pgsty.pro/docs/kafka/param/#kafka_cluster_id&#34;&gt;&lt;code&gt;kafka_cluster_id&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;unset&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Takeover/recovery assertion; randomly generated for a new cluster&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/docs/kafka/param/#kafka_data&#34;&gt;&lt;code&gt;kafka_data&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/data/kafka&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Role-owned data root directory&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/docs/kafka/param/#kafka_heap_opts&#34;&gt;&lt;code&gt;kafka_heap_opts&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;-Xms1G -Xmx1G&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Kafka JVM heap&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/docs/kafka/param/#kafka_port&#34;&gt;&lt;code&gt;kafka_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;9092&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Broker/client port&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/docs/kafka/param/#kafka_controller_port&#34;&gt;&lt;code&gt;kafka_controller_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;9093&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;KRaft controller port&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/docs/kafka/param/#kafka_rack&#34;&gt;&lt;code&gt;kafka_rack&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;unset&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Broker fault-domain label&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/docs/kafka/param/#kafka_parameters&#34;&gt;&lt;code&gt;kafka_parameters&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster/Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Non-role-owned broker parameters&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/docs/kafka/param/#kafka_jmx_exporter_port&#34;&gt;&lt;code&gt;kafka_jmx_exporter_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;9404&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;JMX Exporter HTTP port&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/docs/kafka/param/#kafka_exporter_port&#34;&gt;&lt;code&gt;kafka_exporter_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;9308&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Protocol Exporter HTTP port&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/docs/kafka/param/#kafka_security&#34;&gt;&lt;code&gt;kafka_security&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;plaintext&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;plaintext&lt;/code&gt; or the production &lt;code&gt;scram&lt;/code&gt; profile&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/docs/kafka/param/#kafka_users&#34;&gt;&lt;code&gt;kafka_users&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;User credentials, ACLs, and quotas&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/docs/kafka/param/#kafka_topics&#34;&gt;&lt;code&gt;kafka_topics&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Declarative topics&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;kafka_cluster&lt;/code&gt; and &lt;code&gt;kafka_seq&lt;/code&gt; must be defined; &lt;code&gt;kafka_role&lt;/code&gt; has a real default. The cluster&amp;rsquo;s roles are either all omitted or all declared explicitly.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/kafka/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/admin/</guid>
        <description>&lt;p&gt;The KAFKA module installs Kafka under &lt;code&gt;/opt/kafka&lt;/code&gt;, manages the service with Systemd, and keeps its persistent intent in &lt;code&gt;pigsty.yml&lt;/code&gt;. The files generated on the nodes are not meant to be edited by hand.&lt;/p&gt;&#xA;&lt;p&gt;All of the Kafka CLI examples below use the role-generated &lt;code&gt;/etc/kafka/admin.properties&lt;/code&gt;. Even when the current profile is &lt;code&gt;plaintext&lt;/code&gt;, keep &lt;code&gt;--command-config&lt;/code&gt; on every command: that way the command structure stays the same when you switch the admin channel to &lt;code&gt;scram&lt;/code&gt;. Replace &lt;code&gt;&amp;lt;broker&amp;gt;:9092&lt;/code&gt; with a reachable &lt;code&gt;inventory_hostname&lt;/code&gt; and port.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/kafka/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/playbook/</guid>
        <description>&lt;p&gt;The KAFKA module ships two playbooks: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/kafka.yml&#34;&gt;&lt;code&gt;kafka.yml&lt;/code&gt;&lt;/a&gt; deploys an Apache Kafka 4.1+ dynamic KRaft cluster and converges its security,&#xA;resource, and monitoring state; &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/kafka-rm.yml&#34;&gt;&lt;code&gt;kafka-rm.yml&lt;/code&gt;&lt;/a&gt; tears down a cluster or removes a member.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--warning&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-triangle-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Cluster Completeness Constraint&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Every selected &lt;code&gt;kafka_cluster&lt;/code&gt; must include all of its members: a partial selection fails before anything is written, while one cluster, several complete clusters, or a bare run over the whole inventory are all allowed. Run &lt;code&gt;--check&lt;/code&gt; first against the exact same target; before the real run, still verify the backup/rebuild intent, capacity, business window, rollback plan, and change approval by hand.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/kafka/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/monitor/</guid>
        <description>&lt;p&gt;Pigsty gives the KAFKA module a unified observability stack that combines metrics, logs, dashboards, and alerts. Monitoring covers both the Kafka JVM internals and the Kafka protocol view, so you never end up seeing only that the process is alive without visibility into partitions, ISR, and consumer lag, nor seeing only cluster metadata without visibility into the JVM, request queues, and KRaft controller health.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;scrape-architecture&#34;&gt;Scrape Architecture&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The KAFKA module uses two complementary exporters:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/kafka/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/metric/</guid>
        <description>&lt;p&gt;The KAFKA module uses two kinds of metric sources, both registered under the same &lt;code&gt;job=kafka&lt;/code&gt; scrape job: the JMX target (with a &lt;code&gt;role&lt;/code&gt; label) collects the internal state of each JVM, while the protocol exporter target (without a &lt;code&gt;role&lt;/code&gt; label) collects the state of the logical cluster, topics, partitions, and consumer groups over the Kafka protocol. The protocol exporter is placed only on the one or two broker-capable nodes with the smallest &lt;code&gt;kafka_seq&lt;/code&gt;, and a single-broker cluster runs just one.&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/kafka/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/faq/</guid>
        <description>&lt;h2 id=&#34;how-mature-is-the-current-kafka-module&#34;&gt;How mature is the current KAFKA module?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The current role implements a production-grade v1 baseline: dynamic KRaft, full cluster guardrails, cold-start/repair, serial broker admission and dynamic controller join, member retirement (including dead nodes), three-command failed-node replacement, strict rolling restart, TLS/SCRAM/ACL, declarative convergence of topics/users, internal credential and certificate rotation, and the full monitoring pipeline.&lt;/p&gt;&#xA;&lt;p&gt;It is not a managed Kafka product. Production still requires &lt;code&gt;kafka_security: scram&lt;/code&gt;, an odd number of controllers, sufficient brokers/RF/minISR, plus your own capacity planning, reassignment/data balancing, upgrade, backup, restore, and failure drills. The default &lt;code&gt;plaintext&lt;/code&gt; is only suitable for development or a trusted, isolated network.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Configuration</title>
        <link>https://pgsty.pro/docs/mysql/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/mysql/config/</guid>
        <description>&lt;p&gt;The MYSQL module is driven by the inventory: you declare the desired cluster, and &lt;code&gt;mysql.yml&lt;/code&gt; converges the live state to match. This page covers topology planning and every configuration block; see &lt;a href=&#34;https://pgsty.pro/docs/mysql/param/&#34;&gt;Parameters&lt;/a&gt; for the full reference.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;before-you-deploy&#34;&gt;Before You Deploy&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Target nodes are &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/a&gt;-managed, with the shared CA installed at &lt;code&gt;/etc/pki/ca.crt&lt;/code&gt; (managed by the &lt;code&gt;node_ca&lt;/code&gt; role; the MySQL role only issues leaf certificates);&lt;/li&gt;&#xA;&lt;li&gt;Package repositories include the &lt;code&gt;mysql&lt;/code&gt; module: &lt;code&gt;node_repo_modules: node,infra,mysql&lt;/code&gt;, or a local repo cached with &lt;code&gt;repo_extra_packages: [mysql]&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;The platform is in the support matrix: &lt;code&gt;x86_64&lt;/code&gt; on EL 8/9/10, Debian 12/13, Ubuntu 22/24; or &lt;code&gt;aarch64&lt;/code&gt; on EL 9/10;&lt;/li&gt;&#xA;&lt;li&gt;The three platform passwords (&lt;code&gt;mysql_root_password&lt;/code&gt;, &lt;code&gt;mysql_monitor_password&lt;/code&gt;, &lt;code&gt;mysql_cluster_password&lt;/code&gt;) are set to production values — preflight rejects &lt;code&gt;CHANGE_ME&lt;/code&gt; placeholders.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;identity&#34;&gt;Identity&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Each cluster is an inventory group with two required identity parameters:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Parameters</title>
        <link>https://pgsty.pro/docs/mysql/param/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/mysql/param/</guid>
        <description>&lt;p&gt;The MYSQL deployment role deliberately exposes only 11 parameters; the removal role adds 2 protected operations parameters. Software versions, ports, directories, charset, TLS paths, and timer schedules are fixed by the role; memory sizing is derived from node specs. To adjust server behavior, use &lt;a href=&#34;https://pgsty.pro/docs/mysql/param/#mysql_parameters&#34;&gt;&lt;code&gt;mysql_parameters&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-reference&#34;&gt;Quick Reference&#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;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Level&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Default&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#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 style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/mysql/param/#mysql_cluster&#34;&gt;&lt;code&gt;mysql_cluster&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;required&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Cluster name and identity&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/docs/mysql/param/#mysql_seq&#34;&gt;&lt;code&gt;mysql_seq&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;required&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;1&lt;/code&gt; for standalone; sequential &lt;code&gt;1..3&lt;/code&gt; for HA&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/docs/mysql/param/#mysql_root_password&#34;&gt;&lt;code&gt;mysql_root_password&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;DBUser.Root&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Local root password&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/docs/mysql/param/#mysql_monitor_password&#34;&gt;&lt;code&gt;mysql_monitor_password&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;DBUser.Monitor&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Exporter identity password&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/docs/mysql/param/#mysql_cluster_password&#34;&gt;&lt;code&gt;mysql_cluster_password&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;DBUser.Cluster&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;AdminAPI/Router/backup identity password&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/docs/mysql/param/#mysql_databases&#34;&gt;&lt;code&gt;mysql_databases&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Additive database declarations&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/docs/mysql/param/#mysql_users&#34;&gt;&lt;code&gt;mysql_users&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Additive user and grant declarations&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/docs/mysql/param/#mysql_parameters&#34;&gt;&lt;code&gt;mysql_parameters&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster/Instance&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;[mysqld]&lt;/code&gt; option overrides&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/docs/mysql/param/#mysql_backup_enabled&#34;&gt;&lt;code&gt;mysql_backup_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Daily full-backup timer&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/docs/mysql/param/#mysql_backup_repo&#34;&gt;&lt;code&gt;mysql_backup_repo&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;see below&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Local backup path and retention&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/docs/mysql/param/#mysql_exporter_enabled&#34;&gt;&lt;code&gt;mysql_exporter_enabled&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Exporter and monitoring target&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The removal parameters are used by &lt;code&gt;mysql-rm.yml&lt;/code&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Administration</title>
        <link>https://pgsty.pro/docs/mysql/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/mysql/admin/</guid>
        <description>&lt;p&gt;This page covers day-to-day operations for the MYSQL module. The governing principle: &lt;strong&gt;declare state in the inventory, converge with the playbook.&lt;/strong&gt; Most anomalies — a dropped member, drifted AdminAPI state — heal with a single &lt;code&gt;./mysql.yml -l &amp;lt;cluster&amp;gt;&lt;/code&gt; rerun. Only three destructive scenarios (member replacement, physical restore, complete-outage recovery) require the manual runbooks below.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-reference&#34;&gt;Quick Reference&#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;Operation&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Command&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;Deploy / converge a cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./mysql.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;Preflight without changes&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./mysql.yml -l &amp;lt;cluster&amp;gt; --check&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Local root session&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mysql --defaults-extra-file=/etc/mysql/pigsty/root.cnf&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Inspect MGR topology&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;SELECT MEMBER_HOST,MEMBER_STATE,MEMBER_ROLE FROM performance_schema.replication_group_members;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;AdminAPI status&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;dba.getCluster().status()&lt;/code&gt; in &lt;code&gt;mysqlsh&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Trigger a backup&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;systemctl start mysql-backup&lt;/code&gt; (in HA, only the primary runs it)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Retire a secondary&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./mysql-rm.yml -l &amp;lt;IP&amp;gt; -e mysql_safeguard=false -e mysql_rm_confirm=&amp;lt;instance&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;Retire a whole cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./mysql-rm.yml -l &amp;lt;cluster&amp;gt; -e mysql_safeguard=false -e mysql_rm_confirm=&amp;lt;cluster&amp;gt;&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;status-checks&#34;&gt;Status Checks&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Run the commands in this page on a cluster member as root: the client configs and secrets under &lt;code&gt;/etc/mysql/pigsty/&lt;/code&gt; are readable by root only. Examples use EL unit names — on Debian/Ubuntu the MySQL service unit is &lt;code&gt;mysql&lt;/code&gt;, not &lt;code&gt;mysqld&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Playbook</title>
        <link>https://pgsty.pro/docs/mysql/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/mysql/playbook/</guid>
        <description>&lt;p&gt;The MYSQL module ships two playbooks: &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/mysql.yml&#34;&gt;&lt;code&gt;mysql.yml&lt;/code&gt;&lt;/a&gt; deploys and converges, while &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/mysql-rm.yml&#34;&gt;&lt;code&gt;mysql-rm.yml&lt;/code&gt;&lt;/a&gt; performs protected member retirement and cluster teardown. Re-running the former converges toward declared state; the latter is a separate lifecycle operation whose target, backups, and exact confirmation value must be checked again before every real run.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;mysqlyml&#34;&gt;&lt;code&gt;mysql.yml&lt;/code&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Runs the full check → install → bootstrap → access → provision → backup → monitor convergence on the selected clusters:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Monitoring</title>
        <link>https://pgsty.pro/docs/mysql/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/mysql/monitor/</guid>
        <description>&lt;p&gt;The MYSQL module plugs into Pigsty&amp;rsquo;s observability stack: metrics flow through mysqld_exporter into VictoriaMetrics, error logs flow through Journald/Vector into VictoriaLogs, Grafana ships 5 dashboards, and vmalert loads 68 recording rules plus 27 alert rules.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;collection-architecture&#34;&gt;Collection Architecture&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Each MySQL node runs one &lt;code&gt;mysqld_exporter&lt;/code&gt; (port &lt;code&gt;9104&lt;/code&gt;) using the least-privilege monitor account (&lt;code&gt;dbuser_monitor@&#39;127.0.0.1&#39;&lt;/code&gt;). Deployment writes a file-based service-discovery target on the Infra node:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-42cfc217-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-42cfc217-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-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/infra/targets/mysql/&amp;lt;instance&amp;gt;.yml     # e.g. my-test-1.yml&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;The VictoriaMetrics &lt;code&gt;mysql&lt;/code&gt; scrape job consumes this directory. &lt;code&gt;mysql_exporter_enabled: false&lt;/code&gt; converges the target to an empty list; only &lt;code&gt;mysql-rm.yml&lt;/code&gt; deletes target files.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Metrics</title>
        <link>https://pgsty.pro/docs/mysql/metric/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/mysql/metric/</guid>
        <description>&lt;p&gt;MYSQL metrics come from &lt;code&gt;mysqld_exporter&lt;/code&gt; (raw metrics, &lt;code&gt;mysql_&lt;/code&gt; prefix) and vmalert recording rules (&lt;code&gt;mysql:ins:*&lt;/code&gt; / &lt;code&gt;mysql:cls:*&lt;/code&gt;). Dashboards and alerts are built on the derived metrics; this page is their dictionary.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;common-labels&#34;&gt;Common Labels&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Every metric carries &lt;code&gt;job=mysql&lt;/code&gt; and the identity labels &lt;code&gt;cls&lt;/code&gt; / &lt;code&gt;ins&lt;/code&gt; / &lt;code&gt;ip&lt;/code&gt; / &lt;code&gt;topology&lt;/code&gt; (&lt;code&gt;standalone&lt;/code&gt; or &lt;code&gt;innodb_cluster&lt;/code&gt;). Instance-level derived metrics keep all identity labels; cluster-level metrics aggregate to &lt;code&gt;cls&lt;/code&gt; + &lt;code&gt;topology&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;availability&#34;&gt;Availability&#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;Metric&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Meaning&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;mysql:ins:exporter_up&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Scrape success (transport health)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mysql:ins:up&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;MySQL connection probe success (database health)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mysql:ins:uptime&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Instance uptime in seconds&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mysql:cls:instances&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Declared instance count&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mysql:cls:up&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Online instance count&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mysql:cls:health&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Cluster health: 2 healthy / 1 degraded-writable / 0 critical&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;For HA clusters, &lt;code&gt;mysql:cls:health&lt;/code&gt; combines quorum, single-primary, and full-membership status; for standalones it is &lt;code&gt;2 × mysql:cls:up&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>FAQ</title>
        <link>https://pgsty.pro/docs/mysql/faq/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/mysql/faq/</guid>
        <description>&lt;h2 id=&#34;how-mature-is-the-mysql-module&#34;&gt;How mature is the MYSQL module?&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;It is a pilot module aiming for a simple, inexpensive, good-enough MySQL cluster. The four core capabilities — deployment and convergence, HA failover, daily backups, monitoring and alerting — have been tested systematically, including fault injection and complete-outage drills. Destructive recovery flows are deliberately manual, with &lt;a href=&#34;https://pgsty.pro/docs/mysql/admin/&#34;&gt;runbooks&lt;/a&gt; provided. It does not aim for PGSQL-module completeness: no PITR, no VIP/DNS access layer, no automatic scaling. Validate and rehearse recovery against your own requirements before serious production use.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.5.0</title>
        <link>https://pgsty.pro/blog/release/4.5.0/</link>
        <pubDate>Sat, 15 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.5.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.5.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-08-15&#34;&gt;2026-08-15&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.5.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.5.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.5.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Pigsty v4.5.0 is a feature release focused on new pilot modules, replaceable data services, cluster-identity-aware orchestration, observability, and the software supply chain. It introduces Kafka KRaft and MySQL 8.4 modules, adds Valkey to REDIS, converges the MINIO module on Silo, and expands the packaged extension catalog from 531 to 575 extensions. Released on &lt;strong&gt;2026-08-15&lt;/strong&gt;. See the &lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.5.0&#34;&gt;GitHub release&lt;/a&gt; and the complete source comparison at &lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v4.4.0...v4.5.0&#34;&gt;&lt;code&gt;v4.4.0...v4.5.0&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.4.0</title>
        <link>https://pgsty.pro/blog/release/4.4.0/</link>
        <pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.4.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.4.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-07-10&#34;&gt;2026-07-10&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.4.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.4.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.4.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Pigsty v4.4.0 is a maintenance release centered on PostgreSQL 18.4, PostgreSQL 19 beta readiness, 531 extensions, refreshed kernel variants, and broader platform coverage.&lt;/p&gt;&#xA;&lt;p&gt;Released on &lt;strong&gt;2026-07-10&lt;/strong&gt;. See the &lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.4.0&#34;&gt;GitHub release&lt;/a&gt; and &lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v4.3.0...v4.4.0&#34;&gt;all changes since v4.3.0&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;PostgreSQL 18.4 / 19 beta:&lt;/strong&gt; PostgreSQL 18.4 is now the production default, with a minimal PostgreSQL 19 beta template for evaluation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;531 extensions and refreshed kernels:&lt;/strong&gt; The catalog adds 21 extensions and updates major PostgreSQL variants across the supported platform matrix.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Safer operations with Pig 1.5.1:&lt;/strong&gt; New clone, fork, and PITR workflows arrive alongside automatic VIP discovery, Zstandard pgBackRest compression, and dedicated Patroni log collection.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security, applications, and tooling:&lt;/strong&gt; Secret handling and repository automation are hardened, with new app templates, a redesigned portal, and optional Codex support.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Platform validation:&lt;/strong&gt; All 14 offline deployment tests pass across seven OS baselines on both &lt;code&gt;x86_64&lt;/code&gt; and &lt;code&gt;aarch64&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Offline artifacts:&lt;/strong&gt; The Community Edition publishes six dual-architecture offline packages for Debian 13, EL 10, and Ubuntu 24.04 on GitHub. Prebuilt packages for the other validated baselines are available with the Professional Edition.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrade-notes&#34;&gt;Upgrade Notes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Generated pgBackRest configurations now use &lt;code&gt;compress-type=zst&lt;/code&gt;; preserve intentional local overrides before re-rendering them. &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/744&#34;&gt;#744&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Patroni logs now use &lt;code&gt;/pg/log/patroni&lt;/code&gt; and &lt;code&gt;job=patroni&lt;/code&gt;; update custom log queries and alert rules that use the old syslog selector.&lt;/li&gt;&#xA;&lt;li&gt;VIP interfaces now default to &lt;code&gt;auto&lt;/code&gt;, dnsmasq records move to &lt;code&gt;/etc/dnsmasq.d/pigsty&lt;/code&gt;, and Pigsty manages &lt;code&gt;/etc/default/haproxy&lt;/code&gt;; preserve explicit network overrides where needed.&lt;/li&gt;&#xA;&lt;li&gt;The default etcd backend quota drops from 16 GiB to 8 GiB; check existing backend usage before applying the new configuration.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig&lt;/code&gt; automation must use &lt;code&gt;-y/--yes&lt;/code&gt; for destructive commands, while &lt;code&gt;pig pb restore&lt;/code&gt; and &lt;code&gt;pig pitr&lt;/code&gt; require one explicit recovery target. See the &lt;a href=&#34;https://pigsty.io/docs/pig/release/#v150&#34;&gt;&lt;code&gt;pig&lt;/code&gt; v1.5&lt;/a&gt; notes.&lt;/li&gt;&#xA;&lt;li&gt;Supabase analytics moves to the &lt;code&gt;_supabase&lt;/code&gt; database and &lt;code&gt;_analytics&lt;/code&gt; schema; existing deployments should create them before switching stacks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;security-and-operations&#34;&gt;Security and Operations&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;code&gt;pg-pitr&lt;/code&gt; wrapper adds safer target selection, timelines, dry runs, and stronger checks against unsafe recovery targets.&lt;/li&gt;&#xA;&lt;li&gt;Application secrets are hidden from Ansible output, generated &lt;code&gt;.env&lt;/code&gt; files use mode &lt;code&gt;0600&lt;/code&gt;, and Grafana no longer prints the administrator password.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;dbsu&lt;/code&gt; sudo policy gains controlled journal access, while the repository adds a security policy, CodeQL, Dependabot, pinned actions, and release-signing automation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;applications-and-tooling&#34;&gt;Applications and Tooling&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added Immich, Maybe, and JumpServer templates; refreshed Supabase, Dify, InsForge, Registry, Jupyter, Kong, Odoo, Teable, Mattermost, and related launch helpers.&lt;/li&gt;&#xA;&lt;li&gt;Rebuilt the bilingual infrastructure portal and added opt-in Codex CLI support to the experimental VIBE module; Claude Code remains its default managed coding agent.&lt;/li&gt;&#xA;&lt;li&gt;Removed the legacy FerretDB Compose template; the FERRET module remains available.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed EL10 PostgreSQL/libpq provider conflicts, EPEL path handling, and PGDG minor-version repository rules. &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/752&#34;&gt;#752&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Reused an existing &lt;code&gt;/www&lt;/code&gt; directory during bootstrap and fixed Redis Sentinel HA password rendering. &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/753&#34;&gt;#753&lt;/a&gt; &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/748&#34;&gt;#748&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Corrected RPM naming and package groups for &lt;code&gt;pg_http&lt;/code&gt;, &lt;code&gt;pg_gzip&lt;/code&gt;, &lt;code&gt;apache-age&lt;/code&gt;, and &lt;code&gt;odbc_fdw&lt;/code&gt;. &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/750&#34;&gt;#750&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Prevented unexpected service starts during Debian and Ubuntu package installation, and improved EL9 aarch64 Patroni package handling.&lt;/li&gt;&#xA;&lt;li&gt;Fixed VirtualBox private-network routing and default NIC selection.&lt;/li&gt;&#xA;&lt;li&gt;Fixed shell portability and Vector log lifecycle issues, along with PG19 &lt;code&gt;io_workers&lt;/code&gt;, Teable HBA, and application runtime defaults.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;postgresql-and-extension-package-changes&#34;&gt;PostgreSQL and Extension Package Changes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The release adds 21 extensions, updates the PostgreSQL 18.4 package graph, introduces the PostgreSQL 19 beta template, and refreshes major kernel variants. Versions below are verified against final repository metadata and, where bundled, the v4.4.0 artifacts; PG major ranges describe catalog and repository coverage.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.3.0</title>
        <link>https://pgsty.pro/blog/release/4.3.0/</link>
        <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.3.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.3.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-05-01&#34;&gt;2026-05-01&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.3.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.3.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.3.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added about 50 PostgreSQL extensions, bringing the total available extension count to 510.&lt;/li&gt;&#xA;&lt;li&gt;Added Ubuntu 26.04 x86_64/arm64 support, deprecated Ubuntu 20.04 support, and refreshed minor OS variants to Debian 13.4 / Ubuntu 24.04.4.&lt;/li&gt;&#xA;&lt;li&gt;Kernel updates: Supabase is updated to the latest version, pgEdge to PG 18, and PolarDB to PG 17.&lt;/li&gt;&#xA;&lt;li&gt;Grafana is updated to 13.0.1, and MinIO now uses the pgsty branch with CVE fixes.&lt;/li&gt;&#xA;&lt;li&gt;Vagrant templates now consistently use cloud-image series images.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Relaxed PostgreSQL username validation to allow &lt;code&gt;@.-&lt;/code&gt; in usernames.&lt;/li&gt;&#xA;&lt;li&gt;Fixed IPv6 nameserver parsing so DNS configuration is not limited to legacy IPv4 DNS server extraction.&lt;/li&gt;&#xA;&lt;li&gt;Changed the VictoriaTraces Grafana datasource path to &lt;code&gt;/select/jaeger&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Made Vagrant disk probing more robust and added &lt;code&gt;bin/el-fix&lt;/code&gt;, a guest-network fix script for EL Vagrant images.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;postgresql-and-extension-package-changes&#34;&gt;PostgreSQL and Extension Package Changes&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;stretch-last&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Package&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Old Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;New Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Notes&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;block_copy_command&lt;/code&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;0.1.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18; Rust/pgrx 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;cloudberry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Kernel package group; RPM release 2 fixes initdb errno issue&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;cloudberry-backup&lt;/code&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;2.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New Cloudberry backup tool package&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;cloudberry-pxf&lt;/code&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;2.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New Cloudberry PXF package&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;credcheck&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 14-18; PGDG&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;datasketches&lt;/code&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;1.7.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ddl_historization&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.0.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;documentdb&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.109&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.110&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgraded to upstream version; PG 15-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;external_file&lt;/code&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;1.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;logical_ddl&lt;/code&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;0.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nominatim_fdw&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;onesparse&lt;/code&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;1.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 18 only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;orioledb&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;beta15 1.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;beta15 1.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Paired with OriolePG 17.18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;oriolepg&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;17.16&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;Kernel patch set update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;parray_gin&lt;/code&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;1.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Added, then upgraded; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_accumulator&lt;/code&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;1.1.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_anon&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.0.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.0.13&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.16.1 -&amp;gt; 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_background&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.8&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.9.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;DEB only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_bikram_sambat&lt;/code&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;0.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; Bikram Sambat date type and AD/BS conversion functions&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_byteamagic&lt;/code&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;0.2.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_cardano&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_clickhouse&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.1.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_datasentinel&lt;/code&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;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 15-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_dbms_job&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 14-18; PGDG&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_dispatch&lt;/code&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;0.1.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_failover_slots&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_fsql&lt;/code&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;1.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_incremental&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_isok&lt;/code&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;1.4.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_ivm&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.13&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.14&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_kazsearch&lt;/code&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;2.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 16-18; Rust/pgrx 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_liquid&lt;/code&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;0.1.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_pathcheck&lt;/code&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;0.9.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 17-18; requires shared_preload_libraries&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_query_rewrite&lt;/code&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;0.0.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_regresql&lt;/code&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;2.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_rrf&lt;/code&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;0.0.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-17; Rust/pgrx 0.16.1 -&amp;gt; 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_savior&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.0.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; high-risk DDL/DML guard hook; requires preload or LOAD&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_search&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.22.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.23.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 15-18; pgrx 0.18.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_slug_gen&lt;/code&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;1.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 15-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_stat_ch&lt;/code&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;0.3.6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Added, then upgraded; PG 16-18; EL8 break&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_store_plans&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.10&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_strict&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.16.1 -&amp;gt; 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_text_semver&lt;/code&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;1.2.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_textsearch&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 17-18; requires shared_preload_libraries&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_trickle&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.16.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.40.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 18 only; pgrx 0.18.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_tzf&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.2.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.2.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_vectorize&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.26.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.26.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.16.1 -&amp;gt; 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_variables&lt;/code&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;1.2.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_when&lt;/code&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;0.1.9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18; Rust/pgrx 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgxicor&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.1.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgcalendar&lt;/code&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;1.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgclone&lt;/code&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;4.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Added, then upgraded; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgelog&lt;/code&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;1.0.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pglinter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.16.1 -&amp;gt; 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pglock&lt;/code&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;1.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgmq&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.11.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.11.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgmqtt&lt;/code&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;0.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18; Rust/pgrx 0.16.1 -&amp;gt; 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgproto&lt;/code&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;0.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Added, then upgraded; native Protobuf support&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pghydro&lt;/code&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;6.6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgx_ulid&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.2.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.2.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;plv8&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.2.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.2.4-2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;RPM only; EL10 build fix&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;PolarDB&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;15.15&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;17.9.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;PG 15 -&amp;gt; 17&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgresbson&lt;/code&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;2.0.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgis&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;DEB only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;prefix&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.10&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.11&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; PG 14-18; PGDG&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;provsql&lt;/code&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;1.2.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;rdf_fdw&lt;/code&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;2.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Added, then upgraded; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;rdkit&lt;/code&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;202503.6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;re2&lt;/code&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;0.1.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 16-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;storage_engine&lt;/code&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;1.3.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Added, then upgraded; columnar and row-compression table access methods&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;supautils&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.2.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;system_stats&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;timescaledb&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.25.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.26.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; TSL minor update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ulak&lt;/code&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;0.0.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New; PG 14-18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;wrappers&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.5.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.6.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade; Rust/pgrx 0.16.1 -&amp;gt; 0.17.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;infrastructure-package-updates&#34;&gt;Infrastructure Package Updates&#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;Package&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Old Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;New Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Notes&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;alertmanager&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.31.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.32.1&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;agentsview&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.15.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.26.0&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;claude&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.1.81&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.1.123&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Downloaded through the 8118 proxy and verified&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.112.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.118.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Direct-link metadata update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;code-server&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.112.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.117.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Direct-link metadata update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;codex&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.116.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.125.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Moved from prerelease track to stable, then upgraded further&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;crush&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.51.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.64.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Direct-link metadata update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;dblab&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.34.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.38.0&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;duckdb&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5.2&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;etcd&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.10&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Unified package version&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;garage&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.3.0&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;genai-toolbox&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.27.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upstream renamed to mcp-toolbox&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;golang&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.26.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.26.2&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;grafana&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;12.4.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;13.0.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Metadata refreshed after major upgrade&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;grafana-infinity-ds&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.7.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.8.0&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;grafana-plugins&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;12.3.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;13.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Noarch plugin bundle, manually collected&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;grafana-victoriametrics-ds&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.23.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.24.0&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;hugo&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.158.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.161.1&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;maddy&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.8.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.9.3&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;mcli&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260321000000&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260417000000&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgsty branch, CVE fixed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;minio&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260325000000&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260417000000&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgsty branch, CVE fixed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mongodb_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.49.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.50.0&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;node_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.10.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.11.1&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;nodejs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;24.14.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;24.15.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Stays on the 24.x policy line&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;npgsqlrest&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.11.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.12.0&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;opencode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.27&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.14.30&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Switched to versioned cache and rebuilt&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Direct-link metadata update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgflo&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.0.15&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;Removed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgschema&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.7.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.9.0&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;pig&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.3.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Metadata only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgrest&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.10&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;prometheus&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.10.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.11.3&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;rainfrog&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.3.17&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.3.18&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;rclone&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.73.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.73.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Direct-link metadata update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;rustfs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0-alpha.89&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0-b1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Prerelease line&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;sabiql&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.8.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.11.1&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;seaweedfs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.17&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.22&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;sqlcmd&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.9.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.10.0&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;stalwart&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.15.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.16.2&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;tigerbeetle&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.16.77&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.17.2&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;tigerfs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.6.0&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;timescaledb-tools&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.18.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.19.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Rebuilt timescaledb-tune&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;uv&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.10.12&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.11.8&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;victoria-logs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.48.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.50.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Main package&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;victoria-metrics&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.138.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.142.0&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;victoria-metrics-cluster&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.138.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.142.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;VictoriaMetrics companion component&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;victoria-traces&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.8.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.8.2&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;vip-manager&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Direct-link metadata update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vlagent&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.48.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.50.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;VictoriaLogs companion component&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vlogscli&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.48.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.50.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;VictoriaLogs companion component&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vmutils&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.138.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.142.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;VictoriaMetrics companion component&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&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;0.54.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.55.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Direct-link metadata update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;v2ray&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5.47.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5.48.0&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;xray&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;26.2.6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;26.3.27&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;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-1170019d-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;15&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-1170019d-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;58a914fce7bc521b65e167f66e7961a3  pigsty-v4.3.0.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9ce070efb0420057a83c632b2856d1b3  pigsty-pkg-v4.3.0.d12.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bf21c36d3aff94a1a6353130597ffa85  pigsty-pkg-v4.3.0.d12.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;81b4790c4e5567cee9d1beadd06e48e6  pigsty-pkg-v4.3.0.d13.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;06baab9341ab683eaeea2e066b28a0f4  pigsty-pkg-v4.3.0.d13.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fb4bf751df5e09f547c49b8ab7cac9a0  pigsty-pkg-v4.3.0.el10.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;a3e752c8148122d1eaea74a6d8d8df0d  pigsty-pkg-v4.3.0.el10.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cb2a9af36615513e66fd5ac3e9f4d797  pigsty-pkg-v4.3.0.el9.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;e24641a879dec7a8eea74dab42f85920  pigsty-pkg-v4.3.0.el9.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6b675fd8d9e039193481f0838aa4b92c  pigsty-pkg-v4.3.0.u22.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;c0e344ccb9d190a619591e5d46116424  pigsty-pkg-v4.3.0.u22.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3e0ec9534cf595201ec79eb1fc6549d8  pigsty-pkg-v4.3.0.u24.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;0a3d19513eca9615bdd66a4b2bf66f1d  pigsty-pkg-v4.3.0.u24.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;683a10ff8fd993358d6befa9f4e02913  pigsty-pkg-v4.3.0.u26.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fd1ea5cd5554bfe91fadd51ad80860e3  pigsty-pkg-v4.3.0.u26.x86_64.tgz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.3.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v4.3/&#34;&gt;Pigsty v4.3 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v430&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v4.2.2...v4.3.0&#34;&gt;Source comparison: &lt;code&gt;v4.2.2...v4.3.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.2.2</title>
        <link>https://pgsty.pro/blog/release/4.2.2/</link>
        <pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.2.2/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.2.2&lt;/strong&gt; · &lt;time datetime=&#34;2026-03-23&#34;&gt;2026-03-23&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.2.2&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.2.2.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.2.2.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Insforge 2.0.1 self-hosted template&lt;/li&gt;&#xA;&lt;li&gt;Batch infra package updates, MinIO/MCLI updated to 20260321&lt;/li&gt;&#xA;&lt;li&gt;New infra packages: tigerfs, pgstream, sql-studio, rainfog, crush&lt;/li&gt;&#xA;&lt;li&gt;New PG tools: data recovery pdu, connection pooler pgdog&lt;/li&gt;&#xA;&lt;li&gt;Update PG extensions: pg_search, pgsentinel, pg_track_optimizer, pgcollection, pg_ttl_index, pg_clickhouse&lt;/li&gt;&#xA;&lt;li&gt;Update PG Kernel: ivorysql 5.1 -&amp;gt; 5.3&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;postgresql-package-updates&#34;&gt;PostgreSQL Package Updates&#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;Name&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Old Ver&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;New Ver&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Note&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;pg_search&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.21.12&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.22.2&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;pgsentinel&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;rpm only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pg_track_optimizer&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.9.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.9.2&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;pgcollection&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.0.0&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;pg_ttl_index&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.0.0&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;pg_clickhouse&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.1.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.1.5&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;pdu&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;3.0.25.12&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;new&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;pgdog&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;0.1.32&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;new&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;infrastructure-package-updates&#34;&gt;Infrastructure Package Updates&#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;Name&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Old Ver&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;New Ver&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Note&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;grafana&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;12.4.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;12.4.1&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;pgbackrest_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.22.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.23.0&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;redis_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.81.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.82.0&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;victoria-logs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.47.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.48.0&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;vlagent&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.47.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.48.0&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;vlogscli&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.47.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.48.0&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;victoria-traces&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.7.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.8.0&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;duckdb&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.5.0&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;pg_timetable&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;6.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;6.3.0&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;pgschema&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.4.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.7.4&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;pgstream&lt;/code&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;1.0.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;new&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;tigerbeetle&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.16.75&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.16.77&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;grafana-victorialogs-ds&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.26.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.26.3&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;grafana-infinity-ds&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.7.3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.7.4&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;caddy&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.11.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.11.2&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;npgsqlrest&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.10.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.11.1&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;postgrest&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.7&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;opencode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.17&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.27&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;pev2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.20.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.21.0&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;golang&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.26.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.26.1&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;vector&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.53.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.54.0&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;rclone&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.73.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.73.2&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;code-server&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.109.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.112.0&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;code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.109.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.112.0&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;seaweedfs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.15&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.17&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;uv&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.10.8&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.10.12&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;codex&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.110.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.116.0&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;v2ray&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5.44.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5.47.0&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;sabiql&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.6.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.8.2&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;sql-studio&lt;/code&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;0.1.51&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;new&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;rainfrog&lt;/code&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;0.3.17&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;new&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;agentsview&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.10.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.15.0&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;crush&lt;/code&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;0.51.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;new&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;tigerfs&lt;/code&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;0.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;new&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;victoria-metrics&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.137.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.138.0&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;victoria-metrics-cluster&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.137.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.138.0&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;vmutils&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.137.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.138.0&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;hugo&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.157.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.158.0&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;rustfs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0-alpha.85&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0-alpha.89&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;mysqld_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.18.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.19.0&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;pg_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.1&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;pig&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.3.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.3.2&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;minio&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260214&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260321&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;mcli&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260213&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;20260321&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;claude&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.1.68&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.1.81&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;ivroysql&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5.3&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;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-e05afc4b-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;13&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-e05afc4b-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;0d9f907ff626203578c687d1418b38ba  pigsty-pkg-v4.2.2.d12.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4129baf773c3005f4d697cf452f927a0  pigsty-pkg-v4.2.2.d12.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;40d5a0d9c2a97615bf0421bae42458ae  pigsty-pkg-v4.2.2.d13.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cf91113a2296ad11fff79802ac9b1483  pigsty-pkg-v4.2.2.d13.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dbccfeb3978ffb928bd0b501c3c0d42d  pigsty-pkg-v4.2.2.el10.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;8c848a4e3fa93c2455285fbcad5ddd78  pigsty-pkg-v4.2.2.el10.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7c15c9a36f7d2dd740019c20e8c75a4b  pigsty-pkg-v4.2.2.el9.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7d6e9e529236a0db2382f42660790ed9  pigsty-pkg-v4.2.2.el9.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;8f64bb14885ce330603172b186062671  pigsty-pkg-v4.2.2.u22.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;16d4c36c9e1ff848848c34a257b1025c  pigsty-pkg-v4.2.2.u22.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;401230741af5b04f163ffc8e688315ab  pigsty-pkg-v4.2.2.u24.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5312aa0841694fc560778b9377a32c89  pigsty-pkg-v4.2.2.u24.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cabeeb898b56b26c0855f33d5e60411a  pigsty-v4.2.2.tgz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.2.2&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v4.2/&#34;&gt;Pigsty v4.2 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v422&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v4.2.1...v4.2.2&#34;&gt;Source comparison: &lt;code&gt;v4.2.1...v4.2.2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.2.1</title>
        <link>https://pgsty.pro/blog/release/4.2.1/</link>
        <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.2.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.2.1&lt;/strong&gt; · &lt;time datetime=&#34;2026-03-06&#34;&gt;2026-03-06&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.2.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.2.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.2.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;A maintenance release that adds 3 new extensions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;major-changes&#34;&gt;Major Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;New Extensions&lt;/strong&gt;: &lt;code&gt;pg_eviltransform&lt;/code&gt; is added to the GIS package group, &lt;code&gt;pg_pinyin&lt;/code&gt; to the FTS group, and &lt;code&gt;pg_qos&lt;/code&gt; to the admin group — all for PG 14–18.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PG13 Removed&lt;/strong&gt;: All &lt;code&gt;pgdg13&lt;/code&gt;, &lt;code&gt;pgdg13-nonfree&lt;/code&gt; repo entries and PG13 package aliases (&lt;code&gt;pg13-*&lt;/code&gt;) are removed from every platform variant (EL7/8/9/10, Debian 12/13, Ubuntu 22/24/26, both x86_64 and aarch64).&lt;/li&gt;&#xA;&lt;li&gt;Config templates (&lt;code&gt;fat.yml&lt;/code&gt;, &lt;code&gt;pro.yml&lt;/code&gt;, &lt;code&gt;dev.yml&lt;/code&gt;, &lt;code&gt;el.yml&lt;/code&gt;, &lt;code&gt;debian.yml&lt;/code&gt;) no longer reference PG13 packages or repos. Extension version comments are updated to reflect PG 14–18 coverage only.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Percona Repo&lt;/strong&gt;: Origin URL updated from &lt;code&gt;ppg-18.1&lt;/code&gt; to &lt;code&gt;ppg-18.3&lt;/code&gt; to track the latest Percona PostgreSQL distribution.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Nginx Repo&lt;/strong&gt;: Module tag for the Nginx upstream APT repo corrected from &lt;code&gt;infra&lt;/code&gt; to &lt;code&gt;nginx&lt;/code&gt; on Debian/Ubuntu platforms.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;UV Venv Fix&lt;/strong&gt;: &lt;code&gt;roles/node/tasks/pkg.yml&lt;/code&gt; now checks for an existing virtualenv before running &lt;code&gt;uv venv&lt;/code&gt;, preventing redundant re-creation and potential errors on re-provisioning.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Docker Image&lt;/strong&gt;: &lt;code&gt;less&lt;/code&gt; is added to the Pigsty Docker image base packages.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Demo Config&lt;/strong&gt;: Default firewall rules in &lt;code&gt;el.yml&lt;/code&gt; and &lt;code&gt;debian.yml&lt;/code&gt; demo configs now include port &lt;code&gt;5432&lt;/code&gt; for direct PostgreSQL access.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;compatibility-notes&#34;&gt;Compatibility Notes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;PostgreSQL 13 reached its &lt;a href=&#34;https://www.postgresql.org/support/versioning/&#34;&gt;end of life&lt;/a&gt; on 2025-11-13.&#xA;The PGDG YUM repository has archived and removed the &lt;a href=&#34;https://yum.postgresql.org/news/pg13-end-of-life/&#34;&gt;pg13&lt;/a&gt; / &lt;a href=&#34;https://yum.postgresql.org/news/pg12-end-of-life/&#34;&gt;pg12&lt;/a&gt; directories.&#xA;If you install Pigsty on EL systems (even without using PG 13), repo access failures may cause installation or update errors.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.2.0</title>
        <link>https://pgsty.pro/blog/release/4.2.0/</link>
        <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.2.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.2.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-02-28&#34;&gt;2026-02-28&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.2.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.2.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.2.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Aligned with PostgreSQL out-of-band minor updates: 18.3, 17.9, 16.13, 15.17, 14.22.&lt;/li&gt;&#xA;&lt;li&gt;Total PostgreSQL extension coverage reaches 461 packages.&lt;/li&gt;&#xA;&lt;li&gt;Kernel updates across Babelfish, AgensGraph, pgEdge, OriolePG, OpenHalo, and Cloudberry.&lt;/li&gt;&#xA;&lt;li&gt;Babelfish template now uses a Pigsty-maintained PG17-compatible build, with no WiltonDB repo dependency.&lt;/li&gt;&#xA;&lt;li&gt;Supabase images and self-hosted templates are refreshed to the latest stack, using Pigsty-maintained &lt;a href=&#34;https://github.com/pgsty/minio&#34;&gt;pgsty/minio&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;major-changes&#34;&gt;Major Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;mssql&lt;/code&gt; now defaults to Babelfish PG17 (&lt;code&gt;pg_version: 17&lt;/code&gt;, &lt;code&gt;pg_packages: [babelfish, pgsql-common, sqlcmd]&lt;/code&gt;) and no longer requires an extra &lt;code&gt;mssql&lt;/code&gt; repo.&lt;/li&gt;&#xA;&lt;li&gt;Kernel install paths are normalized in &lt;code&gt;pg_home_map&lt;/code&gt;: &lt;code&gt;mssql -&amp;gt; /usr/babelfish-$v/&lt;/code&gt;, &lt;code&gt;gpsql -&amp;gt; /usr/local/cloudberry&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;package_map&lt;/code&gt; adds a dedicated &lt;code&gt;cloudberry&lt;/code&gt; mapping and fixes &lt;code&gt;babelfish*&lt;/code&gt; aliases to versioned RPM/DEB package names.&lt;/li&gt;&#xA;&lt;li&gt;Redis data root default changes from &lt;code&gt;/data&lt;/code&gt; to &lt;code&gt;/data/redis&lt;/code&gt;; deployment blocks legacy defaults, while &lt;code&gt;redis_remove&lt;/code&gt; keeps backward-compatible cleanup.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;configure&lt;/code&gt; now supports absolute &lt;code&gt;-o&lt;/code&gt; output paths with auto-created parent directories, tri-state region detection (CN/global/offline fallback), and a fix for &lt;code&gt;behind_gfw()&lt;/code&gt; hangs.&lt;/li&gt;&#xA;&lt;li&gt;Debian/Ubuntu default repo URL mappings (&lt;code&gt;updates/backports/security&lt;/code&gt;) and China mirror components are corrected to prevent bootstrap package failures.&lt;/li&gt;&#xA;&lt;li&gt;Supabase stack is updated (including PostgREST &lt;code&gt;14.5&lt;/code&gt; and Vector &lt;code&gt;0.53.0&lt;/code&gt;) and now includes missing S3 protocol credential variables.&lt;/li&gt;&#xA;&lt;li&gt;Rich/Sample templates explicitly define &lt;code&gt;dbuser_meta&lt;/code&gt; defaults; &lt;code&gt;node.sh&lt;/code&gt; systemd completion is simplified.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pgbackrest&lt;/code&gt; stanza initialization now retries (2 attempts, 5-second interval) to reduce lock contention with &lt;code&gt;archive-push&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Vibe template now ships &lt;code&gt;@anthropic-ai/claude-code&lt;/code&gt;, &lt;code&gt;@openai/codex&lt;/code&gt;, and &lt;code&gt;happy-coder&lt;/code&gt;, and includes &lt;code&gt;age&lt;/code&gt; in the default example.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;pg-software-updates&#34;&gt;PG Software Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 18.3, 17.9, 16.13, 15.17, 14.22&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/repo/pgsql/rpm/#2026-02-27&#34;&gt;RPM Changelog 2026-02-27&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/repo/pgsql/deb/#2026-02-27&#34;&gt;DEB Changelog 2026-02-27&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Core upgrades: &lt;code&gt;timescaledb 2.25.0 -&amp;gt; 2.25.1&lt;/code&gt;, &lt;code&gt;citus 14.0.0-3 -&amp;gt; 14.0.0-4&lt;/code&gt;, &lt;code&gt;pg_search -&amp;gt; 0.21.9&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New/rebuilt: &lt;code&gt;pgedge 17.9&lt;/code&gt;, &lt;code&gt;spock 5.0.5&lt;/code&gt;, &lt;code&gt;lolor 1.2.2&lt;/code&gt;, &lt;code&gt;snowflake 2.4&lt;/code&gt;, &lt;code&gt;babelfish 5.5.0&lt;/code&gt;, &lt;code&gt;cloudberry 2.0.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Kernel-side updates: &lt;code&gt;oriolepg 17.11 -&amp;gt; 17.16&lt;/code&gt;, &lt;code&gt;orioledb beta12 -&amp;gt; beta14&lt;/code&gt;, &lt;code&gt;openhalo 14.10 -&amp;gt; 1.0(14.18)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&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;Package&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Old Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;New Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Notes&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;timescaledb&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.25.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.25.1&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;citus&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.0.0-3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.0.0-4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Rebuilt from the latest official release&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;age&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.7.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.7.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Added PG 17 support for version 1.7.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgmq&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.10.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.10.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Package currently unavailable&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_search&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.21.7 / 0.21.6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.21.9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Previous RPM/DEB versions differ&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;oriolepg&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;17.11&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;17.16&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;OriolePG kernel update&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;orioledb&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;beta12&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;beta14&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Matches OriolePG 17.16&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;openhalo&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.10&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Updated and renamed, based on 14.18&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pgedge&lt;/code&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;17.9&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New multi-master edge-distributed kernel&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;spock&lt;/code&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;5.0.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New core pgEdge extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;lolor&lt;/code&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;1.2.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New core pgEdge extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;snowflake&lt;/code&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;2.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New core pgEdge extension&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;babelfishpg&lt;/code&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;5.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New BabelfishPG package group&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;babelfish&lt;/code&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;5.5.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New Babelfish compatibility package&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;antlr4-runtime413&lt;/code&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;4.13&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;New runtime dependency for Babelfish&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;cloudberry&lt;/code&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;2.0.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;RPM build only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_background&lt;/code&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;1.8&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;DEB build only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;infrastructure-software-updates&#34;&gt;Infrastructure Software Updates&#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;Name&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Old Version&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;New Version&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;grafana&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;12.3.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;12.4.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;prometheus&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.9.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.10.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;mongodb_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.47.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.49.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;victoria-metrics&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.135.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.136.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;victoria-metrics-cluster&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.135.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.136.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vmutils&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.135.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.136.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;victoria-logs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.45.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.47.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vlagent&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.45.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.47.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;vlogscli&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.45.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.47.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;loki&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.7&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;promtail&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.7&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;logcli&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.7&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;grafana-victorialogs-ds&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.24.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.26.2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;grafana-victoriametrics-ds&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.21.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.23.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;grafana-infinity-ds&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.7.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.7.2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;redis_exporter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.80.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.81.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;etcd&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.6.8&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;dblab&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.34.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.34.3&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;tigerbeetle&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.16.72&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.16.74&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;seaweedfs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.09&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.13&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;rustfs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0-alpha.82&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.0.0-alpha.83&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;uv&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.10.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.10.4&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;kafka&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.1.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.2.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;npgsqlrest&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.7.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3.10.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;postgrest&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;14.5&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;caddy&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.10.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.11.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;rclone&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.73.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.73.1&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pev2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.20.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.20.2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;genai-toolbox&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.25.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.27.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;opencode&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.59&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.2.15&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;claude&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.1.37&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2.1.59&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;codex&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.104.0&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;0.105.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;code&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.109.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.109.4&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;code-server&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.108.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4.109.2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nodejs&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;24.13.1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;24.14.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pig&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.1.2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1.3.0&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;stalwart&lt;/code&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;0.15.5&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;maddy&lt;/code&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;0.8.2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_mode&lt;/code&gt; now includes &lt;code&gt;agens&lt;/code&gt; and &lt;code&gt;pgedge&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;mssql&lt;/code&gt; defaults are updated to &lt;code&gt;pg_version: 17&lt;/code&gt; and &lt;code&gt;pg_packages: [babelfish, pgsql-common, sqlcmd]&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Kernel/package alias mappings are updated in &lt;code&gt;pg_home_map&lt;/code&gt; and &lt;code&gt;package_map&lt;/code&gt; (Babelfish, OpenHalo, IvorySQL, Cloudberry, pgEdge family).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;redis_fs_main&lt;/code&gt; now defaults to &lt;code&gt;/data/redis&lt;/code&gt;, with deployment guardrails and backward-compatible cleanup behavior.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;configure&lt;/code&gt; output path handling and region detection logic are updated, with offline fallback warnings and unified SSH probe timeouts.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;grafana.ini.j2&lt;/code&gt; is updated for Grafana 12.4 config changes and deprecations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;compatibility-notes&#34;&gt;Compatibility Notes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If existing Redis configs still use &lt;code&gt;redis_fs_main: /data&lt;/code&gt;, migrate to &lt;code&gt;/data/redis&lt;/code&gt; before deployment.&lt;/li&gt;&#xA;&lt;li&gt;Grafana 12.4 changes data link merge behavior. This release moves key links into field overrides; review custom dashboards accordingly.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;26 commits&lt;/strong&gt;, 122 files changed, +2,116 / -2,215 lines (&lt;code&gt;v4.1.0..v4.2.0&lt;/code&gt;, 2026-02-15 ~ 2026-02-28)&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.1.0</title>
        <link>https://pgsty.pro/blog/release/4.1.0/</link>
        <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.1.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.1.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-02-12&#34;&gt;2026-02-12&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.1.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.1.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.1.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-90dc7fea-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-90dc7fea-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;curl https://pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash -s v4.1.0&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;&lt;strong&gt;72 commits&lt;/strong&gt;, 252 files changed, +5,744 / -5,015 lines (&lt;code&gt;v4.0.0..v4.1.0&lt;/code&gt;, 2026-02-02 ~ 2026-02-13)&lt;/p&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL minor update: 18.2, 17.8, 16.12, 15.16, 14.21.&lt;/li&gt;&#xA;&lt;li&gt;Default EL minors updated to &lt;code&gt;9.7 / 10.1&lt;/code&gt;, Debian minors updated to &lt;code&gt;12.13 / 13.3&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Added 7 new extensions, bringing total support to &lt;strong&gt;451&lt;/strong&gt; extensions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig&lt;/code&gt; moved from a traditional script interface to an &lt;strong&gt;Agent-Native CLI&lt;/strong&gt; (&lt;code&gt;1.0.0 -&amp;gt; 1.1.0&lt;/code&gt;), with explicit context and JSON/YAML output.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig&lt;/code&gt; now provides unified &lt;strong&gt;major/minor upgrade&lt;/strong&gt; workflows for PostgreSQL and OS lifecycle updates.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_exporter&lt;/code&gt; upgraded to &lt;strong&gt;v1.2.0&lt;/strong&gt; (&lt;code&gt;1.1.2 -&amp;gt; 1.2.0&lt;/code&gt;), with PG17/18 metric pipeline and unit fixes.&lt;/li&gt;&#xA;&lt;li&gt;Default firewall security policy updated: &lt;code&gt;node_firewall_mode&lt;/code&gt; now defaults to &lt;code&gt;zone&lt;/code&gt;, and &lt;code&gt;node_firewall_public_port&lt;/code&gt; default changed from &lt;code&gt;[22,80,443,5432]&lt;/code&gt; to &lt;code&gt;[22,80,443]&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Focused PGSQL/PGCAT Grafana usability fixes: dynamic datasource &lt;code&gt;$dsn&lt;/code&gt;, schema-level drilldown, age metrics, link mapping consistency.&lt;/li&gt;&#xA;&lt;li&gt;Added one-click Mattermost application template, including database/storage/portal and optional PGFS/JuiceFS options.&lt;/li&gt;&#xA;&lt;li&gt;Refactored &lt;code&gt;infra-rm&lt;/code&gt; uninstall flow with segmented &lt;code&gt;deregister&lt;/code&gt; cleanup for Victoria targets, Grafana datasources, and Vector logs.&lt;/li&gt;&#xA;&lt;li&gt;Optimized default PostgreSQL autovacuum thresholds to reduce excessive vacuum/analyze on small tables.&lt;/li&gt;&#xA;&lt;li&gt;Fixed FD limit chain: added &lt;code&gt;fs.nr_open=8M&lt;/code&gt; and unified &lt;code&gt;LimitNOFILE=8M&lt;/code&gt; to avoid startup failures from systemd/setrlimit.&lt;/li&gt;&#xA;&lt;li&gt;Updated VIBE defaults: Jupyter disabled by default; Claude Code managed via npm package.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;version-updates&#34;&gt;Version Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pigsty version: &lt;code&gt;v4.0.0 -&amp;gt; v4.1.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pig&lt;/code&gt; CLI: &lt;code&gt;1.0.0 -&amp;gt; 1.1.0&lt;/code&gt; (Agent-Native + major/minor upgrade support)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_exporter&lt;/code&gt;: &lt;code&gt;1.1.2 -&amp;gt; 1.2.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Default EL minors: &lt;code&gt;9.6/10.0 -&amp;gt; 9.7/10.1&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Default Debian minors: &lt;code&gt;12.12/13.1 -&amp;gt; 12.13/13.3&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;extension-updates&#34;&gt;Extension Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/repo/pgsql/rpm/#2026-02-12&#34;&gt;RPM Changelog 2026-02-12&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/repo/pgsql/deb/#2026-02-12&#34;&gt;DEB Changelog 2026-02-12&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;timescaledb &lt;code&gt;2.24.0 -&amp;gt; 2.25.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;pg_search &lt;code&gt;0.21.4 -&amp;gt; 0.21.7&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;pgmq &lt;code&gt;1.9.0 -&amp;gt; 1.10.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;pg_textsearch &lt;code&gt;0.4.0 -&amp;gt; 0.5.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;pljs &lt;code&gt;1.0.4 -&amp;gt; 1.0.5&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;pg_track_optimizer &lt;code&gt;0.9.1&lt;/code&gt; (new)&lt;/li&gt;&#xA;&lt;li&gt;nominatim_fdw &lt;code&gt;1.1.0&lt;/code&gt; (new)&lt;/li&gt;&#xA;&lt;li&gt;pg_utl_smtp &lt;code&gt;1.0.0&lt;/code&gt; (new)&lt;/li&gt;&#xA;&lt;li&gt;pg_strict &lt;code&gt;1.0.2&lt;/code&gt; (new)&lt;/li&gt;&#xA;&lt;li&gt;pgmb &lt;code&gt;1.0.0&lt;/code&gt; (new)&lt;/li&gt;&#xA;&lt;li&gt;pg_pwhash (new support)&lt;/li&gt;&#xA;&lt;li&gt;informix_fdw (new support)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;infra-component-versions&#34;&gt;INFRA Component Versions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pigsty.io/docs/repo/infra/log/#2026-02-12&#34;&gt;Infra Changelog 2026-02-12&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v4.0.0</title>
        <link>https://pgsty.pro/blog/release/4.0.0/</link>
        <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/4.0.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v4.0.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-01-28&#34;&gt;2026-01-28&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v4.0.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.0.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v4.0.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f49e0e3b-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-f49e0e3b-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;curl https://pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash -s v4.0.0&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;&lt;strong&gt;318 commits&lt;/strong&gt;, 604 files changed, +118,655 / -327,552 lines&lt;/p&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Observability Revolution&lt;/strong&gt;: Prometheus → VictoriaMetrics (10x perf), Loki+Promtail → VictoriaLogs+Vector&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security Hardening&lt;/strong&gt;: Auto-generated passwords, etcd RBAC, firewall/SELinux modes, permission tightening, Nginx Basic Auth&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Docker Support&lt;/strong&gt;: Run Pigsty in Docker containers with full systemd support (macOS &amp;amp; Linux)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;New Module&lt;/strong&gt;: JUICE - Mount PostgreSQL as filesystem with PITR recovery capability&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;New Module&lt;/strong&gt;: VIBE - AI coding sandbox with Claude Code, JupyterLab, VS Code Server, Node.js&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Database Management&lt;/strong&gt;: &lt;code&gt;pg_databases&lt;/code&gt; state (create/absent/recreate), instant clone with &lt;code&gt;strategy&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PITR &amp;amp; Fork&lt;/strong&gt;: &lt;code&gt;/pg/bin/pg-fork&lt;/code&gt; for instant CoW cloning, enhanced &lt;code&gt;pg-pitr&lt;/code&gt; with pre-backup&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HA Enhancement&lt;/strong&gt;: &lt;code&gt;pg_rto_plan&lt;/code&gt; with 4 RTO presets (fast/norm/safe/wide), &lt;code&gt;pg_crontab&lt;/code&gt; scheduled tasks&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Multi-Cloud Terraform&lt;/strong&gt;: AWS, Azure, GCP, Hetzner, DigitalOcean, Linode, Vultr, TencentCloud templates&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;License Change&lt;/strong&gt;: AGPL-3.0 → Apache-2.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Infra Software Versions&lt;/strong&gt; - MinIO now uses &lt;a href=&#34;https://github.com/pgsty/minio&#34;&gt;&lt;strong&gt;pgsty/minio&lt;/strong&gt;&lt;/a&gt; fork RPM/DEB.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.7.0</title>
        <link>https://pgsty.pro/blog/release/3.7.0/</link>
        <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.7.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.7.0&lt;/strong&gt; · &lt;time datetime=&#34;2025-12-02&#34;&gt;2025-12-02&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.7.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.7.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.7.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;PostgreSQL 18 Deep Support:&lt;/strong&gt; Now the default major PG version, with full extension readiness!&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Expanded OS Support:&lt;/strong&gt; Added EL10 and Debian 13, bringing the total supported operating systems to 14.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Extension Growth:&lt;/strong&gt; The PostgreSQL extension library now includes 437 entries.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ansible 2.19 Compatibility:&lt;/strong&gt; Full support for Ansible 2.19 following its breaking changes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Kernel Updates:&lt;/strong&gt; Latest versions for Supabase, PolarDB, IvorySQL, and Percona kernels.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Optimized Tuning:&lt;/strong&gt; Refined logic for default PG parameters to maximize resource utilization.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/ext/&#34;&gt;&lt;strong&gt;PGEXT.CLOUD&lt;/strong&gt;&lt;/a&gt;: Dedicated extension website open-sourced under Apache-2.0 license&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;version-updates&#34;&gt;Version Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, 13.23&lt;/li&gt;&#xA;&lt;li&gt;Patroni 4.1.0&lt;/li&gt;&#xA;&lt;li&gt;Pgbouncer 1.25.0&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter 1.0.3&lt;/li&gt;&#xA;&lt;li&gt;pgbackrest 2.57.0&lt;/li&gt;&#xA;&lt;li&gt;Supabase 2025-11&lt;/li&gt;&#xA;&lt;li&gt;PolarDB 15.15.5.0&lt;/li&gt;&#xA;&lt;li&gt;FerretDB 2.7.0&lt;/li&gt;&#xA;&lt;li&gt;DuckDB 1.4.2&lt;/li&gt;&#xA;&lt;li&gt;Etcd 3.6.6&lt;/li&gt;&#xA;&lt;li&gt;pig 0.7.4&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For detailed version changes, please refer to:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.6.1</title>
        <link>https://pgsty.pro/blog/release/3.6.1/</link>
        <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.6.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.6.1&lt;/strong&gt; · &lt;time datetime=&#34;2025-08-15&#34;&gt;2025-08-15&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.6.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.6.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.6.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-234c5823-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-234c5823-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;curl https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash -s v3.6.1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 17.6, 16.10, 15.14, 14.19, 13.22, and 18 Beta 3 Released!&lt;/li&gt;&#xA;&lt;li&gt;PGDG APT/YUM mirror for Mainland China Users&lt;/li&gt;&#xA;&lt;li&gt;New home website &lt;a href=&#34;https://pgsty.com&#34;&gt;https://pgsty.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add el10, debian 13 stub, add el10 terraform images&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;infra-package-updates&#34;&gt;Infra Package Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Grafana 12.1.0&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter 1.0.2&lt;/li&gt;&#xA;&lt;li&gt;pig 0.6.1&lt;/li&gt;&#xA;&lt;li&gt;vector 0.49.0&lt;/li&gt;&#xA;&lt;li&gt;redis_exporter 1.75.0&lt;/li&gt;&#xA;&lt;li&gt;mongo_exporter 0.47.0&lt;/li&gt;&#xA;&lt;li&gt;victoriametrics 1.123.0&lt;/li&gt;&#xA;&lt;li&gt;victorialogs: 1.28.0&lt;/li&gt;&#xA;&lt;li&gt;grafana-victoriametrics-ds 0.18.3&lt;/li&gt;&#xA;&lt;li&gt;grafana-victorialogs-ds 0.19.3&lt;/li&gt;&#xA;&lt;li&gt;grafana-infinity-ds 3.4.1&lt;/li&gt;&#xA;&lt;li&gt;etcd 3.6.4&lt;/li&gt;&#xA;&lt;li&gt;ferretdb 2.5.0&lt;/li&gt;&#xA;&lt;li&gt;tigerbeetle 0.16.54&lt;/li&gt;&#xA;&lt;li&gt;genai-toolbox 0.12.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;extension-package-updates&#34;&gt;Extension Package Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pg_search 0.17.3&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;remove &lt;code&gt;br_filter&lt;/code&gt; from default &lt;code&gt;node_kernel_modules&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;do not use OS minor version dir for pgdg yum repos&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-234c5823-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;11&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-234c5823-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;045977aff647acbfa77f0df32d863739  pigsty-pkg-v3.6.1.d12.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;636b15c2d87830f2353680732e1af9d2  pigsty-pkg-v3.6.1.d12.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;700a9f6d0db9c686d371bf1c05b54221  pigsty-pkg-v3.6.1.el8.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2aff03f911dd7be363ba38a392b71a16  pigsty-pkg-v3.6.1.el8.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ce07261b02b02b36a307dab83e460437  pigsty-pkg-v3.6.1.el9.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;d598d62a47bbba2e811059a53fe3b2b5  pigsty-pkg-v3.6.1.el9.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;13fd68752e59f5fd2a9217e5bcad0acd  pigsty-pkg-v3.6.1.u22.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;c25ccfb98840c01eb7a6e18803de55bb  pigsty-pkg-v3.6.1.u22.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;0d71e58feebe5299df75610607bf428c  pigsty-pkg-v3.6.1.u24.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4fbbab1f8465166f494110c5ec448937  pigsty-pkg-v3.6.1.u24.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;083d8680fa48e9fec3c3fcf481d25d2f  pigsty-v3.6.1.tgz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.6.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.6/&#34;&gt;Pigsty v3.6 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v361&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.6.0...v3.6.1&#34;&gt;Source comparison: &lt;code&gt;v3.6.0...v3.6.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.6.0</title>
        <link>https://pgsty.pro/blog/release/3.6.0/</link>
        <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.6.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.6.0&lt;/strong&gt; · &lt;time datetime=&#34;2025-07-30&#34;&gt;2025-07-30&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.6.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.6.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.6.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a005baf6-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-a005baf6-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;curl https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash -s v3.6.0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Brand-new documentation site: &lt;a href=&#34;https://doc.pgsty.com&#34;&gt;https://doc.pgsty.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;pgsql-pitr&lt;/code&gt; playbook and backup/restore tutorial, improved PITR experience&lt;/li&gt;&#xA;&lt;li&gt;Added kernel support: Percona PG TDE (PG17)&lt;/li&gt;&#xA;&lt;li&gt;Optimized self-hosted Supabase experience, updated to the latest version, and fixed issues with the official template&lt;/li&gt;&#xA;&lt;li&gt;Simplified installation steps, online install by default, bootstrap now part of install script&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;improvements&#34;&gt;Improvements&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Refactored &lt;code&gt;ETCD&lt;/code&gt; module with dedicated remove playbook and bin utils&lt;/li&gt;&#xA;&lt;li&gt;Refactored &lt;code&gt;MinIO&lt;/code&gt; module with plain HTTP mode, better bucket provisioning options.&lt;/li&gt;&#xA;&lt;li&gt;Reorganized and streamlined all configuration templates for easier use&lt;/li&gt;&#xA;&lt;li&gt;Faster Docker Registry mirror for users in mainland China&lt;/li&gt;&#xA;&lt;li&gt;Optimized tuned OS parameter templates for modern hardware and NVMe disks&lt;/li&gt;&#xA;&lt;li&gt;Added extension &lt;code&gt;pgactive&lt;/code&gt; for multi-master replication and sub-second failover&lt;/li&gt;&#xA;&lt;li&gt;Adjusted default values for &lt;code&gt;pg_fs_main&lt;/code&gt; / &lt;code&gt;pg_fs_backup&lt;/code&gt;, simplified file directory structure design&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed pgbouncer configuration file error by @housei-zzy&lt;/li&gt;&#xA;&lt;li&gt;Fixed OrioleDB issues on Debian platform&lt;/li&gt;&#xA;&lt;li&gt;Fixed tuned shm configuration parameter issue&lt;/li&gt;&#xA;&lt;li&gt;Offline packages now use the PGDG source directly, avoiding out-of-sync mirror sites&lt;/li&gt;&#xA;&lt;li&gt;Fix ivorysql &lt;a href=&#34;https://github.com/IvorySQL/IvorySQL/issues/826&#34;&gt;libxcrypt&lt;/a&gt; dependencies issues&lt;/li&gt;&#xA;&lt;li&gt;Fix Replace the slow and broken epel mirror&lt;/li&gt;&#xA;&lt;li&gt;Fix &lt;code&gt;haproxy_enabled&lt;/code&gt; flag not working&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;infra-package-updates&#34;&gt;Infra Package Updates&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Added Victoria Metrics / Victoria Logs related packages&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.5.0</title>
        <link>https://pgsty.pro/blog/release/3.5.0/</link>
        <pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.5.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.5.0&lt;/strong&gt; · &lt;time datetime=&#34;2025-06-16&#34;&gt;2025-06-16&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.5.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.5.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.5.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New website: &lt;a href=&#34;https://pgsty.com&#34;&gt;https://pgsty.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PostgreSQL 18 (Beta) support&lt;/strong&gt;: monitoring via &lt;code&gt;pg_exporter 1.0.0&lt;/code&gt;, installer alias via &lt;code&gt;pig 0.4.2&lt;/code&gt;, and a &lt;code&gt;pg18&lt;/code&gt; template&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;421 bundled extensions&lt;/strong&gt;, now including OrioleDB and OpenHalo kernels on all platforms&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;pig do&lt;/code&gt; CLI&lt;/strong&gt; replaces legacy &lt;code&gt;bin/&lt;/code&gt; scripts&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hardening for self-hosted Supabase&lt;/strong&gt; (replication lag, key distribution, etc.)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code &amp;amp; architecture refactor&lt;/strong&gt; — slimmer tasks, cleaner defaults for Postgres &amp;amp; PgBouncer&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Monitoring stack refresh&lt;/strong&gt; — Grafana 12, &lt;code&gt;pg_exporter 1.0&lt;/code&gt;, new panels &amp;amp; plugins&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Run vagrant on Apple Silicon&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a1954295-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-a1954295-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;curl https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash -s v3.5.0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;module-changes&#34;&gt;Module Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add PostgreSQL 18 support&lt;/li&gt;&#xA;&lt;li&gt;PG18 metrics support with pg_exporter 1.0.0+&lt;/li&gt;&#xA;&lt;li&gt;PG18 install support with pig 0.4.1+&lt;/li&gt;&#xA;&lt;li&gt;New config template &lt;code&gt;pg18.yml&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Refactored &lt;code&gt;pgsql&lt;/code&gt; module&lt;/li&gt;&#xA;&lt;li&gt;Split monitoring into a new &lt;strong&gt;&lt;code&gt;pg_monitor&lt;/code&gt;&lt;/strong&gt; role; removed &lt;code&gt;clean&lt;/code&gt; logic&lt;/li&gt;&#xA;&lt;li&gt;Pruned duplicate tasks, dropped &lt;code&gt;dir/utils&lt;/code&gt; block, renamed templates (no &lt;code&gt;.j2&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;All extensions install in &lt;strong&gt;&lt;code&gt;extensions&lt;/code&gt;&lt;/strong&gt; schema (Supabase best-practice)&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;SET search_path=&#39;&#39;&lt;/code&gt; to every monitoring function&lt;/li&gt;&#xA;&lt;li&gt;Tuned PgBouncer defaults (larger pool, cleanup query); new &lt;code&gt;pgbouncer_ignore_param&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;pg_key&lt;/code&gt; task to generate &lt;code&gt;pgsodium&lt;/code&gt; master keys&lt;/li&gt;&#xA;&lt;li&gt;Enabled &lt;code&gt;sync_replication_slots&lt;/code&gt; by default on PG 17&lt;/li&gt;&#xA;&lt;li&gt;Retagged subtasks for clearer structure&lt;/li&gt;&#xA;&lt;li&gt;Refactored &lt;code&gt;pg_remove&lt;/code&gt; module&lt;/li&gt;&#xA;&lt;li&gt;New flags &lt;code&gt;pg_rm_data&lt;/code&gt;, &lt;code&gt;pg_rm_bkup&lt;/code&gt;, &lt;code&gt;pg_rm_pkg&lt;/code&gt; control what gets wiped&lt;/li&gt;&#xA;&lt;li&gt;Clearer role layout &amp;amp; tagging&lt;/li&gt;&#xA;&lt;li&gt;Added new &lt;code&gt;pg_monitor&lt;/code&gt; module&lt;/li&gt;&#xA;&lt;li&gt;pgbouncer_exporter no longer shares configuration files with &lt;code&gt;pg_exporter&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added monitoring metrics for TimescaleDB and Citus&lt;/li&gt;&#xA;&lt;li&gt;Using &lt;code&gt;pg_exporter&lt;/code&gt; 0.9.0 with updated replication slot metrics for PG16/17&lt;/li&gt;&#xA;&lt;li&gt;Using more compact, newly designed collector configuration files&lt;/li&gt;&#xA;&lt;li&gt;Supabase Enhancement (thanks &lt;a href=&#34;https://github.com/lawso017&#34;&gt;@lawso017&lt;/a&gt; for the contribution)&lt;/li&gt;&#xA;&lt;li&gt;update supabase containers and schemas to the latest version&lt;/li&gt;&#xA;&lt;li&gt;Support &lt;code&gt;pgsodium&lt;/code&gt; server key loading&lt;/li&gt;&#xA;&lt;li&gt;fix logflare lag issue with &lt;code&gt;supa-kick&lt;/code&gt; crontab&lt;/li&gt;&#xA;&lt;li&gt;add &lt;code&gt;set search_path&lt;/code&gt; clause for monitor functions&lt;/li&gt;&#xA;&lt;li&gt;Added new &lt;code&gt;pig do&lt;/code&gt; command to CLI, allowing command-line tool to replace Shell scripts in &lt;code&gt;bin/&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;infra-package-updates&#34;&gt;Infra Package Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pig 0.4.2&lt;/li&gt;&#xA;&lt;li&gt;duckdb 1.3.0&lt;/li&gt;&#xA;&lt;li&gt;etcd 3.6.0&lt;/li&gt;&#xA;&lt;li&gt;vector 0.47.0&lt;/li&gt;&#xA;&lt;li&gt;minio 20250422221226&lt;/li&gt;&#xA;&lt;li&gt;mcli 20250416181326&lt;/li&gt;&#xA;&lt;li&gt;pev 1.5.0&lt;/li&gt;&#xA;&lt;li&gt;rclone 1.69.3&lt;/li&gt;&#xA;&lt;li&gt;mtail 3.0.8 (new)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;observability-package-updates&#34;&gt;Observability Package Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;grafana 12.0.0&lt;/li&gt;&#xA;&lt;li&gt;grafana-victorialogs-ds 0.16.3&lt;/li&gt;&#xA;&lt;li&gt;grafana-victoriametrics-ds 0.15.1&lt;/li&gt;&#xA;&lt;li&gt;grafana-infinity-ds 3.2.1&lt;/li&gt;&#xA;&lt;li&gt;grafana_plugins 12.0.0&lt;/li&gt;&#xA;&lt;li&gt;prometheus 3.4.0&lt;/li&gt;&#xA;&lt;li&gt;pushgateway 1.11.1&lt;/li&gt;&#xA;&lt;li&gt;nginx_exporter 1.4.2&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter &lt;a href=&#34;https://github.com/pgsty/pg_exporter/releases/tag/v1.0.0&#34;&gt;1.0.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;pgbackrest_exporter 0.20.0&lt;/li&gt;&#xA;&lt;li&gt;redis_exporter 1.72.1&lt;/li&gt;&#xA;&lt;li&gt;keepalived_exporter 1.6.2&lt;/li&gt;&#xA;&lt;li&gt;victoriametrics 1.117.1&lt;/li&gt;&#xA;&lt;li&gt;victoria_logs 1.22.2&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;database-package-updates&#34;&gt;Database Package Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 17.5, 16.9, 15.13, 14.18, 13.21&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 18beta1 support&lt;/li&gt;&#xA;&lt;li&gt;pgbouncer 1.24.1&lt;/li&gt;&#xA;&lt;li&gt;pgbackrest 2.55&lt;/li&gt;&#xA;&lt;li&gt;pgbadger 13.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;extension-package-updates&#34;&gt;Extension Package Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;spat &lt;a href=&#34;https://github.com/Florents-Tselai/spat&#34;&gt;0.1.0a4&lt;/a&gt; new extension&lt;/li&gt;&#xA;&lt;li&gt;pgsentinel &lt;a href=&#34;https://github.com/pgsentinel/pgsentinel/releases/tag/v1.1.0&#34;&gt;1.1.0&lt;/a&gt; new extension&lt;/li&gt;&#xA;&lt;li&gt;pgdd &lt;a href=&#34;https://github.com/rustprooflabs/pgdd&#34;&gt;0.6.0&lt;/a&gt; (pgrx 0.14.1) new extension add back&lt;/li&gt;&#xA;&lt;li&gt;convert &lt;a href=&#34;https://github.com/rustprooflabs/convert&#34;&gt;0.0.4&lt;/a&gt; (pgrx 0.14.1) new extension&lt;/li&gt;&#xA;&lt;li&gt;pg_tokenizer.rs &lt;a href=&#34;https://github.com/tensorchord/pg_tokenizer.rs&#34;&gt;0.1.0&lt;/a&gt; (pgrx 0.13.1)&lt;/li&gt;&#xA;&lt;li&gt;pg_render &lt;a href=&#34;https://github.com/mkaski/pg_render&#34;&gt;0.1.2&lt;/a&gt; (pgrx 0.12.8)&lt;/li&gt;&#xA;&lt;li&gt;pgx_ulid &lt;a href=&#34;https://github.com/pksunkara/pgx_ulid&#34;&gt;0.2.0&lt;/a&gt; (pgrx 0.12.7)&lt;/li&gt;&#xA;&lt;li&gt;pg_idkit &lt;a href=&#34;https://github.com/VADOSWARE/pg_idkit&#34;&gt;0.3.0&lt;/a&gt; (pgrx 0.14.1)&lt;/li&gt;&#xA;&lt;li&gt;pg_ivm &lt;a href=&#34;https://github.com/sraoss/pg_ivm&#34;&gt;1.11.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;orioledb &lt;a href=&#34;https://github.com/orioledb/orioledb&#34;&gt;1.4.0 beta11&lt;/a&gt; rpm &amp;amp; add debian/ubuntu support&lt;/li&gt;&#xA;&lt;li&gt;openhalo &lt;a href=&#34;https://github.com/HaloTech-Co-Ltd/openHalo&#34;&gt;14.10&lt;/a&gt; add debian/ubuntu support&lt;/li&gt;&#xA;&lt;li&gt;omnigres 20250507 (miss on d12/u22)&lt;/li&gt;&#xA;&lt;li&gt;citus &lt;a href=&#34;https://github.com/citusdata/citus/releases/tag/v13.0.3&#34;&gt;12.0.3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;timescaledb &lt;a href=&#34;https://github.com/timescale/timescaledb/releases/tag/2.20.0&#34;&gt;2.20.0&lt;/a&gt; (DROP PG14 support)&lt;/li&gt;&#xA;&lt;li&gt;supautils &lt;a href=&#34;https://github.com/supabase/supautils/releases/tag/v2.9.2&#34;&gt;2.9.2&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;pg_envvar &lt;a href=&#34;https://github.com/theory/pg-envvar/releases/tag/v1.0.1&#34;&gt;1.0.1&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;pgcollection &lt;a href=&#34;https://github.com/aws/pgcollection/releases/tag/v1.0.0&#34;&gt;1.0.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;aggs_for_vecs &lt;a href=&#34;https://github.com/pjungwir/aggs_for_vecs/releases/tag/1.4.0&#34;&gt;1.4.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;pg_tracing &lt;a href=&#34;https://github.com/DataDog/pg_tracing/releases/tag/v0.1.3&#34;&gt;0.1.3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;pgmq &lt;a href=&#34;https://github.com/pgmq/pgmq/releases/tag/v1.5.1&#34;&gt;1.5.1&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;tzf-pg &lt;a href=&#34;https://github.com/ringsaturn/tzf-pg/releases/tag/v0.2.0&#34;&gt;0.2.0&lt;/a&gt; (pgrx 0.14.1)&lt;/li&gt;&#xA;&lt;li&gt;pg_search &lt;a href=&#34;https://github.com/paradedb/paradedb/releases/tag/v0.15.18&#34;&gt;0.15.18&lt;/a&gt; (pgrx 0.14.1)&lt;/li&gt;&#xA;&lt;li&gt;anon &lt;a href=&#34;https://gitlab.com/dalibo/postgresql_anonymizer/-/tree/latest/debian?ref_type=heads&#34;&gt;2.1.1&lt;/a&gt; (pgrx 0.14.1)&lt;/li&gt;&#xA;&lt;li&gt;pg_parquet &lt;a href=&#34;https://github.com/CrunchyData/pg_parquet/releases/tag/v0.3.2&#34;&gt;0.4.0&lt;/a&gt; (0.14.1)&lt;/li&gt;&#xA;&lt;li&gt;pg_cardano &lt;a href=&#34;https://github.com/Fell-x27/pg_cardano/commits/master/&#34;&gt;1.0.5&lt;/a&gt; (pgrx 0.12) -&amp;gt; 0.14.1&lt;/li&gt;&#xA;&lt;li&gt;pglite_fusion &lt;a href=&#34;https://github.com/frectonz/pglite-fusion/releases/tag/v0.0.5&#34;&gt;0.0.5&lt;/a&gt; (pgrx 0.12.8) -&amp;gt; 14.1&lt;/li&gt;&#xA;&lt;li&gt;vchord_bm25 &lt;a href=&#34;https://github.com/tensorchord/VectorChord-bm25/releases/tag/0.2.1&#34;&gt;0.2.1&lt;/a&gt; (pgrx 0.13.1)&lt;/li&gt;&#xA;&lt;li&gt;vchord &lt;a href=&#34;https://github.com/tensorchord/VectorChord/releases/tag/0.3.0&#34;&gt;0.3.0&lt;/a&gt; (pgrx 0.13.1)&lt;/li&gt;&#xA;&lt;li&gt;pg_vectorize &lt;a href=&#34;https://github.com/ChuckHend/pg_vectorize/releases/tag/v0.22.1&#34;&gt;0.22.1&lt;/a&gt; (pgrx 0.13.1)&lt;/li&gt;&#xA;&lt;li&gt;wrappers &lt;a href=&#34;https://github.com/supabase/wrappers/releases/tag/v0.4.6&#34;&gt;0.4.6&lt;/a&gt; (pgrx 0.12.9)&lt;/li&gt;&#xA;&lt;li&gt;timescaledb-toolkit &lt;a href=&#34;https://github.com/timescale/timescaledb-toolkit/releases/tag/1.21.0&#34;&gt;1.21.0&lt;/a&gt; (pgrx 0.12.9)&lt;/li&gt;&#xA;&lt;li&gt;pgvectorscale &lt;a href=&#34;https://github.com/timescale/pgvectorscale/releases/tag/0.7.1&#34;&gt;0.7.1&lt;/a&gt; (pgrx 0.12.9)&lt;/li&gt;&#xA;&lt;li&gt;pg_session_jwt &lt;a href=&#34;https://github.com/neondatabase/pg_session_jwt/releases/tag/v0.3.1&#34;&gt;0.3.1&lt;/a&gt; (pgrx 0.12.6) -&amp;gt; 0.12.9&lt;/li&gt;&#xA;&lt;li&gt;pg_timetable 5.13.0&lt;/li&gt;&#xA;&lt;li&gt;ferretdb 2.2.0&lt;/li&gt;&#xA;&lt;li&gt;documentdb &lt;a href=&#34;https://github.com/FerretDB/documentdb/releases/tag/v0.103.0-ferretdb-2.2.0&#34;&gt;0.103.0&lt;/a&gt; (+aarch64 support)&lt;/li&gt;&#xA;&lt;li&gt;pgml &lt;a href=&#34;https://github.com/postgresml/postgresml/releases/tag/v2.10.0&#34;&gt;2.10.0&lt;/a&gt; (pgrx 0.12.9)&lt;/li&gt;&#xA;&lt;li&gt;sqlite_fdw &lt;a href=&#34;https://github.com/pgspider/sqlite_fdw/releases/tag/v2.5.0&#34;&gt;2.5.0&lt;/a&gt; (fix pg17 deb)&lt;/li&gt;&#xA;&lt;li&gt;tzf &lt;a href=&#34;https://github.com/ringsaturn/pg-tzf/releases/tag/v0.2.2&#34;&gt;0.2.2&lt;/a&gt; 0.14.1 (rename src)&lt;/li&gt;&#xA;&lt;li&gt;pg_vectorize &lt;a href=&#34;https://github.com/ChuckHend/pg_vectorize/releases/tag/v0.22.2&#34;&gt;0.22.2&lt;/a&gt; (pgrx 0.13.1)&lt;/li&gt;&#xA;&lt;li&gt;wrappers &lt;a href=&#34;https://github.com/supabase/wrappers/releases/tag/v0.5.0&#34;&gt;0.5.0&lt;/a&gt; (pgrx 0.12.9)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a1954295-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;9&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-a1954295-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;c7e5ce252ddf848e5f034173e0f29345  pigsty-v3.5.0.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ba31f311a16d615c1ee1083dc5a53566  pigsty-pkg-v3.5.0.d12.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3aa5c56c8f0de53303c7100f2b3934f4  pigsty-pkg-v3.5.0.d12.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;a098cb33822633357e6880eee51affd6  pigsty-pkg-v3.5.0.el8.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;63723b0aeb4d6c02fff0da2c78e4de31  pigsty-pkg-v3.5.0.el9.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;eb91c8921d7b8a135d8330c77468bfe7  pigsty-pkg-v3.5.0.el9.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;87ff25e14dfb9001fe02f1dfbe70ae9e  pigsty-pkg-v3.5.0.u22.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;18be503856f6b39a59efbd1d0a8556b6  pigsty-pkg-v3.5.0.u24.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2bbef6a18cfa99af9cd175ef0adf873c  pigsty-pkg-v3.5.0.u24.x86_64.tgz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.5.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.5/&#34;&gt;Pigsty v3.5 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v350&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.4.1...v3.5.0&#34;&gt;Source comparison: &lt;code&gt;v3.4.1...v3.5.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.4.1</title>
        <link>https://pgsty.pro/blog/release/3.4.1/</link>
        <pubDate>Sat, 05 Apr 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.4.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.4.1&lt;/strong&gt; · &lt;time datetime=&#34;2025-04-05&#34;&gt;2025-04-05&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.4.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.4.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.4.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;GitHub Release Page: &lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.4.1&#34;&gt;v3.4.1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added support for MySQL wire-compatible PostgreSQL kernel on EL systems: &lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/openhalo/&#34;&gt;openHalo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added support for OLTP-enhanced PostgreSQL kernel on EL systems: &lt;a href=&#34;https://pgsty.pro/docs/pgsql/kernel/orioledb/&#34;&gt;orioledb&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Optimized pgAdmin 9.2 application template with automatic server list updates and pgpass password population&lt;/li&gt;&#xA;&lt;li&gt;Increased PG default max connections to 250, 500, 1000&lt;/li&gt;&#xA;&lt;li&gt;Removed the &lt;code&gt;mysql_fdw&lt;/code&gt; extension with dependency errors from EL8&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;infra-updates&#34;&gt;Infra Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pig 0.3.4&lt;/li&gt;&#xA;&lt;li&gt;etcd 3.5.21&lt;/li&gt;&#xA;&lt;li&gt;restic 0.18.0&lt;/li&gt;&#xA;&lt;li&gt;ferretdb 2.1.0&lt;/li&gt;&#xA;&lt;li&gt;tigerbeetle 0.16.34&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter 0.8.1&lt;/li&gt;&#xA;&lt;li&gt;node_exporter 1.9.1&lt;/li&gt;&#xA;&lt;li&gt;grafana 11.6.0&lt;/li&gt;&#xA;&lt;li&gt;zfs_exporter 3.8.1&lt;/li&gt;&#xA;&lt;li&gt;mongodb_exporter 0.44.0&lt;/li&gt;&#xA;&lt;li&gt;victoriametrics 1.114.0&lt;/li&gt;&#xA;&lt;li&gt;minio 20250403145628&lt;/li&gt;&#xA;&lt;li&gt;mcli 20250403170756&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;extension-update&#34;&gt;Extension Update&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bump pg_search to 0.15.13&lt;/li&gt;&#xA;&lt;li&gt;Bump citus to 13.0.3&lt;/li&gt;&#xA;&lt;li&gt;Bump timescaledb to 2.19.1&lt;/li&gt;&#xA;&lt;li&gt;Bump pgcollection RPM to 1.0.0&lt;/li&gt;&#xA;&lt;li&gt;Bump pg_vectorize RPM to 0.22.1&lt;/li&gt;&#xA;&lt;li&gt;Bump pglite_fusion RPM to 0.0.4&lt;/li&gt;&#xA;&lt;li&gt;Bump aggs_for_vecs RPM to 1.4.0&lt;/li&gt;&#xA;&lt;li&gt;Bump pg_tracing RPM to 0.1.3&lt;/li&gt;&#xA;&lt;li&gt;Bump pgmq RPM to 1.5.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-9973dc25-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-9973dc25-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;471c82e5f050510bd3cc04d61f098560  pigsty-v3.4.1.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4ce17cc1b549cf8bd22686646b1c33d2  pigsty-pkg-v3.4.1.d12.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;c80391c6f93c9f4cad8079698e910972  pigsty-pkg-v3.4.1.d12.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;811bf89d1087512a4f8801242ca8bed5  pigsty-pkg-v3.4.1.el9.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;9fe2e6482b14a3e60863eeae64a78945  pigsty-pkg-v3.4.1.u22.x86_64.tgz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.4.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.4/&#34;&gt;Pigsty v3.4 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v341&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.4.0...v3.4.1&#34;&gt;Source comparison: &lt;code&gt;v3.4.0...v3.4.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.4.0</title>
        <link>https://pgsty.pro/blog/release/3.4.0/</link>
        <pubDate>Sun, 30 Mar 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.4.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.4.0&lt;/strong&gt; · &lt;time datetime=&#34;2025-03-30&#34;&gt;2025-03-30&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.4.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.4.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.4.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;GitHub Release Page: &lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.4.0&#34;&gt;v3.4.0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Introduction Blog: &lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.4&#34;&gt;&lt;strong&gt;Pigsty v3.4 MySQL Compatibility and Overall Enhancements&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;new-features&#34;&gt;New Features&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added new pgBackRest backup monitoring metrics and dashboards&lt;/li&gt;&#xA;&lt;li&gt;Enhanced Nginx server configuration options, with support for automated Certbot issuance&lt;/li&gt;&#xA;&lt;li&gt;Now prioritizing PostgreSQL&amp;rsquo;s built-in &lt;code&gt;C&lt;/code&gt;/&lt;code&gt;C.UTF-8&lt;/code&gt; locale settings&lt;/li&gt;&#xA;&lt;li&gt;IvorySQL 4.4 is now fully supported across all platforms (RPM/DEB on x86/ARM)&lt;/li&gt;&#xA;&lt;li&gt;Added new software packages: Juicefs, Restic, TimescaleDB EventStreamer&lt;/li&gt;&#xA;&lt;li&gt;The Apache AGE graph database extension now fully supports PostgreSQL 13–17 on EL&lt;/li&gt;&#xA;&lt;li&gt;Improved the &lt;code&gt;app.yml&lt;/code&gt; playbook: launch standard Docker app without extra config&lt;/li&gt;&#xA;&lt;li&gt;Bump Supabase, Dify, and Odoo app templates, bump to their latest versions&lt;/li&gt;&#xA;&lt;li&gt;Add electric app template, local-first PostgreSQL Sync Engine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;infra-packages&#34;&gt;Infra Packages&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;+restic&lt;/strong&gt; 0.17.3&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;+juicefs&lt;/strong&gt; 1.2.3&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;+timescaledb-event-streamer&lt;/strong&gt; 0.12.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Prometheus&lt;/strong&gt; 3.2.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;AlertManager&lt;/strong&gt; 0.28.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;blackbox_exporter&lt;/strong&gt; 0.26.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;node_exporter&lt;/strong&gt; 1.9.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;mysqld_exporter&lt;/strong&gt; 0.17.2&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;kafka_exporter&lt;/strong&gt; 1.9.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;redis_exporter&lt;/strong&gt; 1.69.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pgbackrest_exporter&lt;/strong&gt; 0.19.0-2&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DuckDB&lt;/strong&gt; 1.2.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;etcd&lt;/strong&gt; 3.5.20&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;FerretDB&lt;/strong&gt; 2.0.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;tigerbeetle&lt;/strong&gt; 0.16.31&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;vector&lt;/strong&gt; 0.45.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VictoriaMetrics&lt;/strong&gt; 1.113.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VictoriaLogs&lt;/strong&gt; 1.17.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;rclone&lt;/strong&gt; 1.69.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pev2&lt;/strong&gt; 1.14.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;grafana-victorialogs-ds&lt;/strong&gt; 0.16.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;grafana-victoriametrics-ds&lt;/strong&gt; 0.14.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;grafana-infinity-ds&lt;/strong&gt; 3.0.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;postgresql-related&#34;&gt;PostgreSQL Related&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Patroni&lt;/strong&gt; 4.0.5&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PolarDB&lt;/strong&gt; 15.12.3.0-e1e6d85b&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;IvorySQL&lt;/strong&gt; 4.4&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pgbackrest&lt;/strong&gt; 2.54.2&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pev2&lt;/strong&gt; 1.14&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Babelfish&lt;/strong&gt; 13.17&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;postgresql-extensions&#34;&gt;PostgreSQL Extensions&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;pgspider_ext&lt;/strong&gt; 1.3.0 (new extension)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;apache age&lt;/strong&gt; 13–17 el rpm (1.5.0)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;timescaledb&lt;/strong&gt; 2.18.2 → 2.19.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;citus&lt;/strong&gt; 13.0.1 → 13.0.2&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;documentdb&lt;/strong&gt; 1.101-0 → 1.102-0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_analytics&lt;/strong&gt; 0.3.4 → 0.3.7&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_search&lt;/strong&gt; 0.15.2 → 0.15.8&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_ivm&lt;/strong&gt; 1.9 → 1.10&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;emaj&lt;/strong&gt; 4.4.0 → 4.6.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pgsql_tweaks&lt;/strong&gt; 0.10.0 → 0.11.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pgvectorscale&lt;/strong&gt; 0.4.0 → 0.6.0 (pgrx 0.12.5)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_session_jwt&lt;/strong&gt; 0.1.2 → 0.2.0 (pgrx 0.12.6)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;wrappers&lt;/strong&gt; 0.4.4 → 0.4.5 (pgrx 0.12.9)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_parquet&lt;/strong&gt; 0.2.0 → 0.3.1 (pgrx 0.13.1)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;vchord&lt;/strong&gt; 0.2.1 → 0.2.2 (pgrx 0.13.1)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_tle&lt;/strong&gt; 1.2.0 → 1.5.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;supautils&lt;/strong&gt; 2.5.0 → 2.6.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;sslutils&lt;/strong&gt; 1.3 → 1.4&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_profile&lt;/strong&gt; 4.7 → 4.8&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_snakeoil&lt;/strong&gt; 1.3 → 1.4&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_jsonschema&lt;/strong&gt; 0.3.2 → 0.3.3&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_incremental&lt;/strong&gt; 1.1.1 → 1.2.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_stat_monitor&lt;/strong&gt; 2.1.0 → 2.1.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ddl_historization&lt;/strong&gt; 0.7 → 0.0.7 (bug fix)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_sqlog&lt;/strong&gt; 3.1.7 → 1.6 (bug fix)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_random&lt;/strong&gt; removed development suffix (bug fix)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;asn1oid&lt;/strong&gt; 1.5 → 1.6&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;table_log&lt;/strong&gt; 0.6.1 → 0.6.4&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;interface-changes&#34;&gt;Interface Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added new Docker parameters: &lt;code&gt;docker_data&lt;/code&gt; and &lt;code&gt;docker_storage_driver&lt;/code&gt; (&lt;a href=&#34;https://github.com/pgsty/pigsty/pull/521&#34;&gt;#521&lt;/a&gt; by &lt;a href=&#34;https://github.com/waitingsong&#34;&gt;@waitingsong&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Added new Infra parameter: &lt;code&gt;alertmanager_port&lt;/code&gt;, which lets you specify the AlertManager port&lt;/li&gt;&#xA;&lt;li&gt;Added new Infra parameter: &lt;code&gt;certbot_sign&lt;/code&gt;, apply for cert during nginx init? (false by default)&lt;/li&gt;&#xA;&lt;li&gt;Added new Infra parameter: &lt;code&gt;certbot_email&lt;/code&gt;, specifying the email used when requesting certificates via Certbot&lt;/li&gt;&#xA;&lt;li&gt;Added new Infra parameter: &lt;code&gt;certbot_options&lt;/code&gt;, specifying additional parameters for Certbot&lt;/li&gt;&#xA;&lt;li&gt;Updated IvorySQL to place its default binary under &lt;code&gt;/usr/ivory-4&lt;/code&gt; starting in IvorySQL 4.4&lt;/li&gt;&#xA;&lt;li&gt;Changed the default for &lt;code&gt;pg_lc_ctype&lt;/code&gt; and other locale-related parameters from &lt;code&gt;en_US.UTF-8&lt;/code&gt; to &lt;code&gt;C&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;For PostgreSQL 17, if using &lt;code&gt;UTF8&lt;/code&gt; encoding with &lt;code&gt;C&lt;/code&gt; or &lt;code&gt;C.UTF-8&lt;/code&gt; locales, PostgreSQL&amp;rsquo;s built-in localization rules now take priority&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;configure&lt;/code&gt; automatically detects whether &lt;code&gt;C.utf8&lt;/code&gt; is supported by both the PG version and the environment, and adjusts locale-related options accordingly&lt;/li&gt;&#xA;&lt;li&gt;Set the default IvorySQL binary path to &lt;code&gt;/usr/ivory-4&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Updated the default value of &lt;code&gt;pg_packages&lt;/code&gt; to &lt;code&gt;pgsql-main patroni pgbouncer pgbackrest pg_exporter pgbadger vip-manager&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Updated the default value of &lt;code&gt;repo_packages&lt;/code&gt; to &lt;code&gt;[node-bootstrap, infra-package, infra-addons, node-package1, node-package2, pgsql-utility, extra-modules]&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Removed &lt;code&gt;LANG&lt;/code&gt; and &lt;code&gt;LC_ALL&lt;/code&gt; environment variable settings from &lt;code&gt;/etc/profile.d/node.sh&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Now using &lt;code&gt;bento/rockylinux-8&lt;/code&gt; and &lt;code&gt;bento/rockylinux-9&lt;/code&gt; as the Vagrant box images for EL&lt;/li&gt;&#xA;&lt;li&gt;Added a new alias, &lt;code&gt;extra_modules&lt;/code&gt;, which includes additional optional modules&lt;/li&gt;&#xA;&lt;li&gt;Updated PostgreSQL aliases: &lt;code&gt;postgresql&lt;/code&gt;, &lt;code&gt;pgsql-main&lt;/code&gt;, &lt;code&gt;pgsql-core&lt;/code&gt;, &lt;code&gt;pgsql-full&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;GitLab repositories are now included among available modules&lt;/li&gt;&#xA;&lt;li&gt;The Docker module has been merged into the Infra module&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;node.yml&lt;/code&gt; playbook now includes a &lt;code&gt;node_pip&lt;/code&gt; task to configure a pip mirror on each node&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;pgsql.yml&lt;/code&gt; playbook now includes a &lt;code&gt;pgbackrest_exporter&lt;/code&gt; task for collecting backup metrics&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;Makefile&lt;/code&gt; now allows the use of &lt;code&gt;META&lt;/code&gt;/&lt;code&gt;PKG&lt;/code&gt; environment variables&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;/pg/spool&lt;/code&gt; directory as temporary storage for pgBackRest&lt;/li&gt;&#xA;&lt;li&gt;Disabled pgBackRest&amp;rsquo;s &lt;code&gt;link-all&lt;/code&gt; option by default&lt;/li&gt;&#xA;&lt;li&gt;Enabled block-level incremental backups for MinIO repositories by default&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed the exit status code in &lt;code&gt;pg-backup&lt;/code&gt; (&lt;a href=&#34;https://github.com/pgsty/pigsty/pull/532&#34;&gt;#532&lt;/a&gt; by &lt;a href=&#34;https://github.com/waitingsong&#34;&gt;@waitingsong&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;In &lt;code&gt;pg-tune-hugepage&lt;/code&gt;, restricted PostgreSQL to use only large pages (&lt;a href=&#34;https://github.com/pgsty/pigsty/pull/527&#34;&gt;#527&lt;/a&gt; by &lt;a href=&#34;https://github.com/waitingsong&#34;&gt;@waitingsong&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Fixed logic errors in the &lt;code&gt;pg-role&lt;/code&gt; task&lt;/li&gt;&#xA;&lt;li&gt;Corrected type conversion for hugepage configuration parameters&lt;/li&gt;&#xA;&lt;li&gt;Fixed default value issues for &lt;code&gt;node_repo_modules&lt;/code&gt; in the &lt;code&gt;slim&lt;/code&gt; template&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-79ce6fc2-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;11&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-79ce6fc2-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;768bea3bfc5d492f4c033cb019a81d3a  pigsty-v3.4.0.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7c3d47ef488a9c7961ca6579dc9543d6  pigsty-pkg-v3.4.0.d12.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;b5d76aefb1e1caa7890b3a37f6a14ea5  pigsty-pkg-v3.4.0.d12.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;42dacf2f544ca9a02148aeea91f3153a  pigsty-pkg-v3.4.0.el8.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;d0a694f6cd6a7f2111b0971a60c49ad0  pigsty-pkg-v3.4.0.el8.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7caa82254c1b0750e89f78a54bf065f8  pigsty-pkg-v3.4.0.el9.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;8f817e5fad708b20ee217eb2e12b99cb  pigsty-pkg-v3.4.0.el9.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;8b2fcaa6ef6fd8d2726f6eafbb488aaf  pigsty-pkg-v3.4.0.u22.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;83291db7871557566ab6524beb792636  pigsty-pkg-v3.4.0.u22.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;c927238f0343cde82a4a9ab230ecd2ac  pigsty-pkg-v3.4.0.u24.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;14cbcb90693ed5de8116648a1f2c3e34  pigsty-pkg-v3.4.0.u24.x86_64.tgz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.4.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.4/&#34;&gt;Pigsty v3.4 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v340&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.3.0...v3.4.0&#34;&gt;Source comparison: &lt;code&gt;v3.3.0...v3.4.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.3.0</title>
        <link>https://pgsty.pro/blog/release/3.3.0/</link>
        <pubDate>Mon, 24 Feb 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.3.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.3.0&lt;/strong&gt; · &lt;time datetime=&#34;2025-02-24&#34;&gt;2025-02-24&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.3.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.3.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.3.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Total available extensions increased to &lt;a href=&#34;https://pgsty.pro/docs/pgsql/ext/&#34;&gt;&lt;strong&gt;404&lt;/strong&gt;&lt;/a&gt;!&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL February Minor Updates: 17.4, 16.8, 15.12, 14.17, 13.20&lt;/li&gt;&#xA;&lt;li&gt;New Feature: &lt;code&gt;app.yml&lt;/code&gt; script for auto-installing apps like Odoo, Supabase, Dify.&lt;/li&gt;&#xA;&lt;li&gt;New Feature: Further Nginx configuration customization in &lt;code&gt;infra_portal&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;New Feature: Added Certbot support for quick free HTTPS certificate requests.&lt;/li&gt;&#xA;&lt;li&gt;New Feature: Pure-text extension list now supported in &lt;code&gt;pg_default_extensions&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;New Feature: Default repositories now include mongo, redis, groonga, haproxy, etc.&lt;/li&gt;&#xA;&lt;li&gt;New Parameter: &lt;code&gt;node_aliases&lt;/code&gt; to add command aliases for Nodes.&lt;/li&gt;&#xA;&lt;li&gt;Fix: Resolved default EPEL repo address issue in Bootstrap script.&lt;/li&gt;&#xA;&lt;li&gt;Improvement: Added Aliyun mirror for Debian Security repository.&lt;/li&gt;&#xA;&lt;li&gt;Improvement: pgBackRest backup support for IvorySQL kernel.&lt;/li&gt;&#xA;&lt;li&gt;Improvement: ARM64 and Debian/Ubuntu support for PolarDB.&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter 0.8.0 now supports new metrics in pgbouncer 1.24.&lt;/li&gt;&#xA;&lt;li&gt;New Feature: Auto-completion for common commands like &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;docker&lt;/code&gt;, &lt;code&gt;systemctl&lt;/code&gt; &lt;a href=&#34;https://github.com/pgsty/pigsty/pull/506&#34;&gt;#506&lt;/a&gt; &lt;a href=&#34;https://github.com/pgsty/pigsty/pull/524&#34;&gt;#524&lt;/a&gt; by &lt;a href=&#34;https://github.com/waitingsong&#34;&gt;@waitingsong&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Improvement: Refined &lt;code&gt;ignore_startup_parameters&lt;/code&gt; in &lt;code&gt;pgbouncer&lt;/code&gt; config template &lt;a href=&#34;https://github.com/pgsty/pigsty/pull/488&#34;&gt;#488&lt;/a&gt; by &lt;a href=&#34;https://github.com/waitingsong&#34;&gt;@waitingsong&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;New homepage design: Pigsty&amp;rsquo;s website now features a fresh new look.&lt;/li&gt;&#xA;&lt;li&gt;Extension Directory: Detailed information and download links for RPM/DEB binary packages.&lt;/li&gt;&#xA;&lt;li&gt;Extension Build: &lt;code&gt;pig&lt;/code&gt; CLI now auto-sets PostgreSQL extension build environment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;new-extensions&#34;&gt;New Extensions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;12&lt;/strong&gt; new PostgreSQL extensions added, bringing the total to &lt;a href=&#34;https://pigsty.io/ext/list&#34;&gt;404&lt;/a&gt; available extensions.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.2.2</title>
        <link>https://pgsty.pro/blog/release/3.2.2/</link>
        <pubDate>Thu, 23 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.2.2/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.2.2&lt;/strong&gt; · &lt;time datetime=&#34;2025-01-23&#34;&gt;2025-01-23&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.2.2&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.2.2.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.2.2.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New Extension(s): &lt;a href=&#34;https://pigsty.io/ext/e/omni&#34;&gt;&lt;code&gt;Omnigres&lt;/code&gt;&lt;/a&gt; 33 extensions, postgres as platform&lt;/li&gt;&#xA;&lt;li&gt;New Extension: &lt;a href=&#34;https://pigsty.io/ext/e/pg_mooncake&#34;&gt;&lt;code&gt;pg_mooncake&lt;/code&gt;&lt;/a&gt;: duckdb in postgres&lt;/li&gt;&#xA;&lt;li&gt;New Extensions: &lt;a href=&#34;https://pigsty.io/ext/e/xxhash&#34;&gt;&lt;code&gt;pg_xxhash&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;New Extension: &lt;a href=&#34;https://pigsty.io/ext/e/timescaledb_toolkit&#34;&gt;&lt;code&gt;timescaledb_toolkit&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;New Extension: &lt;a href=&#34;https://pigsty.io/ext/e/pg_xenophile&#34;&gt;&lt;code&gt;pg_xenophile&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;New Extension: &lt;a href=&#34;https://pigsty.io/ext/e/pg_drop_events&#34;&gt;&lt;code&gt;pg_drop_events&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;New Extension: &lt;a href=&#34;https://pigsty.io/ext/e/pg_incremental&#34;&gt;&lt;code&gt;pg_incremental&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Bump &lt;a href=&#34;https://github.com/citusdata/citus/tree/v13.0.0&#34;&gt;&lt;code&gt;citus&lt;/code&gt;&lt;/a&gt; to 13.0.0 with PostgreSQL 17 support.&lt;/li&gt;&#xA;&lt;li&gt;Bump &lt;a href=&#34;https://github.com/postgresml/postgresml/releases/tag/v2.10.0&#34;&gt;&lt;code&gt;pgml&lt;/code&gt;&lt;/a&gt; to 2.10.0&lt;/li&gt;&#xA;&lt;li&gt;Bump &lt;a href=&#34;https://pigsty.io/ext/e/pg_extra_time&#34;&gt;&lt;code&gt;pg_extra_time&lt;/code&gt;&lt;/a&gt; to 2.0.0&lt;/li&gt;&#xA;&lt;li&gt;Bump &lt;a href=&#34;https://pigsty.io/ext/e/vectorize&#34;&gt;&lt;code&gt;pg_vectorize&lt;/code&gt;&lt;/a&gt; to 0.20.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;whats-changed&#34;&gt;What&amp;rsquo;s Changed&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bump IvorySQL to 4.2 (PostgreSQL 17.2)&lt;/li&gt;&#xA;&lt;li&gt;Add Arm64 and Debian support for PolarDB kernel&lt;/li&gt;&#xA;&lt;li&gt;Add certbot and certbot-nginx to default &lt;code&gt;infra_packages&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Increase pgbouncer max_prepared_statements to 256&lt;/li&gt;&#xA;&lt;li&gt;remove &lt;code&gt;pgxxx-citus&lt;/code&gt; package alias&lt;/li&gt;&#xA;&lt;li&gt;hide &lt;code&gt;pgxxx-olap&lt;/code&gt; category in &lt;code&gt;pg_extensions&lt;/code&gt; by default&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.2.2&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.2/&#34;&gt;Pigsty v3.2 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v322&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.2.1...v3.2.2&#34;&gt;Source comparison: &lt;code&gt;v3.2.1...v3.2.2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.2.1</title>
        <link>https://pgsty.pro/blog/release/3.2.1/</link>
        <pubDate>Sun, 12 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.2.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.2.1&lt;/strong&gt; · &lt;time datetime=&#34;2025-01-12&#34;&gt;2025-01-12&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.2.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.2.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.2.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/ext/&#34;&gt;&lt;strong&gt;351&lt;/strong&gt;&lt;/a&gt; PostgreSQL Extensions, including the powerful &lt;a href=&#34;https://postgresql-anonymizer.readthedocs.io/en/stable/&#34;&gt;postgresql-anonymizer 2.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;IvorySQL 4.0 support for EL 8/9&lt;/li&gt;&#xA;&lt;li&gt;Now use the Pigsty compiled Citus, TimescaleDB and pgroonga on all distros&lt;/li&gt;&#xA;&lt;li&gt;Add self-hosting Odoo template and support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bump-software-versions&#34;&gt;Bump software versions&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pig CLI 0.1.2 self-updating capability&lt;/li&gt;&#xA;&lt;li&gt;prometheus 3.1.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;add-new-extension&#34;&gt;Add New Extension&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;add pg_anon 2.0.0&lt;/li&gt;&#xA;&lt;li&gt;add omnisketch 1.0.2&lt;/li&gt;&#xA;&lt;li&gt;add ddsketch 1.0.1&lt;/li&gt;&#xA;&lt;li&gt;add pg_duration 1.0.1&lt;/li&gt;&#xA;&lt;li&gt;add ddl_historization 0.0.7&lt;/li&gt;&#xA;&lt;li&gt;add data_historization 1.1.0&lt;/li&gt;&#xA;&lt;li&gt;add schedoc 0.0.1&lt;/li&gt;&#xA;&lt;li&gt;add floatfile 1.3.1&lt;/li&gt;&#xA;&lt;li&gt;add pg_upless 0.0.3&lt;/li&gt;&#xA;&lt;li&gt;add pg_task 1.0.0&lt;/li&gt;&#xA;&lt;li&gt;add pg_readme 0.7.0&lt;/li&gt;&#xA;&lt;li&gt;add vasco 0.1.0&lt;/li&gt;&#xA;&lt;li&gt;add pg_xxhash 0.0.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;update-extension&#34;&gt;Update Extension&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lower_quantile 1.0.3&lt;/li&gt;&#xA;&lt;li&gt;quantile 1.1.8&lt;/li&gt;&#xA;&lt;li&gt;sequential_uuids 1.0.3&lt;/li&gt;&#xA;&lt;li&gt;pgmq 1.5.0 (subdir)&lt;/li&gt;&#xA;&lt;li&gt;floatvec 1.1.1&lt;/li&gt;&#xA;&lt;li&gt;pg_parquet 0.2.0&lt;/li&gt;&#xA;&lt;li&gt;wrappers 0.4.4&lt;/li&gt;&#xA;&lt;li&gt;pg_later 0.3.0&lt;/li&gt;&#xA;&lt;li&gt;topn fix for deb.arm64&lt;/li&gt;&#xA;&lt;li&gt;add age 17 on debian&lt;/li&gt;&#xA;&lt;li&gt;powa + pg17, 5.0.1&lt;/li&gt;&#xA;&lt;li&gt;h3 + pg17&lt;/li&gt;&#xA;&lt;li&gt;ogr_fdw + pg17&lt;/li&gt;&#xA;&lt;li&gt;age + pg17 1.5 on debian&lt;/li&gt;&#xA;&lt;li&gt;pgtap + pg17 1.3.3&lt;/li&gt;&#xA;&lt;li&gt;repmgr&lt;/li&gt;&#xA;&lt;li&gt;topn + pg17&lt;/li&gt;&#xA;&lt;li&gt;pg_partman 5.2.4&lt;/li&gt;&#xA;&lt;li&gt;credcheck 3.0&lt;/li&gt;&#xA;&lt;li&gt;ogr_fdw 1.1.5&lt;/li&gt;&#xA;&lt;li&gt;ddlx 0.29&lt;/li&gt;&#xA;&lt;li&gt;postgis 3.5.1&lt;/li&gt;&#xA;&lt;li&gt;tdigest 1.4.3&lt;/li&gt;&#xA;&lt;li&gt;pg_repack 1.5.2&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.2.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.2/&#34;&gt;Pigsty v3.2 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v321&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.2.0...v3.2.1&#34;&gt;Source comparison: &lt;code&gt;v3.2.0...v3.2.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.2.0</title>
        <link>https://pgsty.pro/blog/release/3.2.0/</link>
        <pubDate>Tue, 24 Dec 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.2.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.2.0&lt;/strong&gt; · &lt;time datetime=&#34;2024-12-24&#34;&gt;2024-12-24&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.2.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.2.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.2.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;New CLI&lt;/strong&gt;: Introducing the &lt;code&gt;pig&lt;/code&gt; command-line tool for managing extension plugins.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ARM64 Support&lt;/strong&gt;: 390 extensions are now available for ARM64 across five major distributions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Supabase Update&lt;/strong&gt;: Latest Supabase Release Week updates are now supported for self-hosting on all distributions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Grafana v11.4&lt;/strong&gt;: Upgraded Grafana to version 11.4, featuring a new Infinity datasource.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;package-changes&#34;&gt;Package Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New Extensions&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;timescaledb&lt;/code&gt;, &lt;code&gt;timescaledb-loader&lt;/code&gt;, &lt;code&gt;timescaledb-toolkit&lt;/code&gt;, and &lt;code&gt;timescaledb-tool&lt;/code&gt; to the PIGSTY repository.&lt;/li&gt;&#xA;&lt;li&gt;Added a custom-compiled &lt;a href=&#34;https://github.com/timescale/timescaledb&#34;&gt;pg_timescaledb&lt;/a&gt; for EL.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;a href=&#34;https://pigsty.io/ext/e/pgroonga&#34;&gt;pgroonga&lt;/a&gt;, custom-compiled for all EL variants.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;a href=&#34;https://github.com/tensorchord/VectorChord&#34;&gt;vchord&lt;/a&gt; 0.1.0.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;a href=&#34;https://github.com/tensorchord/pg_bestmatch.rs&#34;&gt;pg_bestmatch.rs&lt;/a&gt; 0.0.1.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;a href=&#34;https://github.com/frectonz/pglite-fusion&#34;&gt;pglite_fusion&lt;/a&gt; 0.0.3.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;a href=&#34;https://github.com/Florents-Tselai/pgpdf&#34;&gt;pgpdf&lt;/a&gt; 0.1.0.&lt;/li&gt;&#xA;&lt;li&gt;Updated Extensions&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pgvectorscale&lt;/strong&gt;: 0.4.0 → 0.5.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_parquet&lt;/strong&gt;: 0.1.0 → 0.1.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_polyline&lt;/strong&gt;: 0.0.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_cardano&lt;/strong&gt;: 1.0.2 → 1.0.3&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_vectorize&lt;/strong&gt;: 0.20.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_duckdb&lt;/strong&gt;: 0.1.0 → 0.2.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_search&lt;/strong&gt;: 0.13.0 → 0.13.1&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;aggs_for_vecs&lt;/strong&gt;: 1.3.1 → 1.3.2&lt;/li&gt;&#xA;&lt;li&gt;Infrastructure&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;promscale&lt;/strong&gt; 0.17.0&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;grafana-plugins&lt;/strong&gt; 11.4&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;grafana-infinity-plugins&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;grafana-victoriametrics-ds&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;strong&gt;grafana-victorialogs-ds&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;vip-manager&lt;/strong&gt;: 2.8.0 → 3.0.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;vector&lt;/strong&gt;: 0.42.0 → 0.43.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;grafana&lt;/strong&gt;: 11.3 → 11.4&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;prometheus&lt;/strong&gt;: 3.0.0 → 3.0.1 (package name changed from &lt;code&gt;prometheus2&lt;/code&gt; to &lt;code&gt;prometheus&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;nginx_exporter&lt;/strong&gt;: 1.3.0 → 1.4.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;mongodb_exporter&lt;/strong&gt;: 0.41.2 → 0.43.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VictoriaMetrics&lt;/strong&gt;: 1.106.1 → 1.107.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VictoriaLogs&lt;/strong&gt;: 1.0.0 → 1.3.2&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_timetable&lt;/strong&gt;: 5.9.0 → 5.10.0&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;tigerbeetle&lt;/strong&gt;: 0.16.13 → 0.16.17&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_export&lt;/strong&gt;: 0.7.0 → 0.7.1&lt;/li&gt;&#xA;&lt;li&gt;New Docker App&lt;/li&gt;&#xA;&lt;li&gt;Add &lt;a href=&#34;https://github.com/mattermost/mattermost&#34;&gt;mattermost&lt;/a&gt; the open-source Slack alternative self-hosting template&lt;/li&gt;&#xA;&lt;li&gt;Bug Fixes&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;python3-cdiff&lt;/code&gt; for &lt;code&gt;el8.aarch64&lt;/code&gt; to fix missing Patroni dependency.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;timescaledb-tools&lt;/code&gt; for &lt;code&gt;el9.aarch64&lt;/code&gt; to fix missing package in official repo.&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;pg_filedump&lt;/code&gt; for &lt;code&gt;el9.aarch64&lt;/code&gt; to fix missing package in official repo.&lt;/li&gt;&#xA;&lt;li&gt;Removed Extensions&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_mooncake&lt;/strong&gt;: Removed due to conflicts with &lt;code&gt;pg_duckdb&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pg_top&lt;/strong&gt;: Removed because of repeated version issues and quality concerns.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;hunspell_pt_pt&lt;/strong&gt;: Removed because of conflict with official PG dictionary files.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pgml&lt;/strong&gt;: Disabled by default (no longer downloaded or installed).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/param/#repo_url_packages&#34;&gt;&lt;code&gt;repo_url_packages&lt;/code&gt;&lt;/a&gt; now defaults to an empty array; packages are installed via OS package managers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;grafana_plugin_cache&lt;/code&gt; is deprecated; Grafana plugins are now installed via OS package managers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;grafana_plugin_list&lt;/code&gt; is deprecated for the same reason.&lt;/li&gt;&#xA;&lt;li&gt;The 36-node &amp;ldquo;production&amp;rdquo; template has been renamed to &lt;code&gt;simu&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Auto-generated code under &lt;code&gt;node_id/vars&lt;/code&gt; now includes &lt;code&gt;aarch64&lt;/code&gt; support.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;infra_packages&lt;/code&gt; now includes the &lt;code&gt;pig&lt;/code&gt; CLI tool.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;configure&lt;/code&gt; command now updates the version numbers of &lt;code&gt;pgsql-xxx&lt;/code&gt; aliases in auto-generated config files.&lt;/li&gt;&#xA;&lt;li&gt;Update terraform templates with Makefile shortcuts and better provision experience&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fix&#34;&gt;Bug Fix&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix pgbouncer dashboard selector issue &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/474&#34;&gt;#474&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add &lt;code&gt;--arg value&lt;/code&gt; support for &lt;code&gt;pg-pitr&lt;/code&gt; by &lt;a href=&#34;https://github.com/pgsty/pigsty/pulls?q=is%3Apr&amp;#43;author%3Awaitingsong&#34;&gt;@waitingsong&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Fix redis log message typo by &lt;a href=&#34;https://github.com/pgsty/pigsty/pull/476&#34;&gt;@waitingsong&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-8fa01022-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;7&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-8fa01022-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;c42da231067f25104b71a065b4a50e68  pigsty-pkg-v3.2.0.d12.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ebb818f98f058f932b57d093d310f5c2  pigsty-pkg-v3.2.0.d12.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;d2b85676235c9b9f2f8a0ad96c5b15fd  pigsty-pkg-v3.2.0.el9.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;649f79e1d94ec1845931c73f663ae545  pigsty-pkg-v3.2.0.el9.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;24c0be1d8436f3c64627c12f82665a17  pigsty-pkg-v3.2.0.u22.aarch64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;0b9be0e137661e440cd4f171226d321d  pigsty-pkg-v3.2.0.u22.x86_64.tgz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;8fdc6a60820909b0a2464b0e2b90a3a6  pigsty-v3.2.0.tgz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.2.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.2/&#34;&gt;Pigsty v3.2 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v320&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.1.0...v3.2.0&#34;&gt;Source comparison: &lt;code&gt;v3.1.0...v3.2.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.1.0</title>
        <link>https://pgsty.pro/blog/release/3.1.0/</link>
        <pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.1.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.1.0&lt;/strong&gt; · &lt;time datetime=&#34;2024-11-24&#34;&gt;2024-11-24&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.1.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.1.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.1.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 17 is now the default major version (17.2)&lt;/li&gt;&#xA;&lt;li&gt;Ubuntu 24.04 system support&lt;/li&gt;&#xA;&lt;li&gt;ARM architecture support: EL9, Debian12, Ubuntu 22.04&lt;/li&gt;&#xA;&lt;li&gt;One-click Supabase self-hosting, new &lt;code&gt;supabase.yml&lt;/code&gt; playbook&lt;/li&gt;&#xA;&lt;li&gt;MinIO best practice improvements, config templates and Vagrant templates&lt;/li&gt;&#xA;&lt;li&gt;Series of ready-to-use config templates with documentation&lt;/li&gt;&#xA;&lt;li&gt;Allow specifying PG major version with &lt;code&gt;-v|--version&lt;/code&gt; during &lt;code&gt;configure&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Adjusted default extension policy: &lt;code&gt;pg_repack&lt;/code&gt;, &lt;code&gt;wal2json&lt;/code&gt;, and &lt;code&gt;pgvector&lt;/code&gt; installed by default&lt;/li&gt;&#xA;&lt;li&gt;Greatly simplified &lt;code&gt;repo_packages&lt;/code&gt; local repo build logic, allowing package group aliases in &lt;code&gt;repo_packages&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Provided WiltonDB, IvorySQL, PolarDB repo mirrors, simplifying installation&lt;/li&gt;&#xA;&lt;li&gt;Database checksums enabled by default&lt;/li&gt;&#xA;&lt;li&gt;Fixed ETCD and MINIO log panels&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 17.2, 16.6, 15.10, 14.15, 13.18, 12.22&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL extension versions: see &lt;a href=&#34;https://pgext.cloud/en&#34;&gt;https://pgext.cloud/en&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Patroni 4.0.4&lt;/li&gt;&#xA;&lt;li&gt;MinIO 20241107 / MCLI 20241117&lt;/li&gt;&#xA;&lt;li&gt;Rclone 1.68.2&lt;/li&gt;&#xA;&lt;li&gt;Prometheus: 2.54.0 -&amp;gt; 3.0.0&lt;/li&gt;&#xA;&lt;li&gt;VictoriaMetrics 1.102.1 -&amp;gt; 1.106.1&lt;/li&gt;&#xA;&lt;li&gt;VictoriaLogs v0.28.0 -&amp;gt; 1.0.0&lt;/li&gt;&#xA;&lt;li&gt;vslogcli 1.0.0&lt;/li&gt;&#xA;&lt;li&gt;MySQL Exporter 0.15.1 -&amp;gt; 0.16.0&lt;/li&gt;&#xA;&lt;li&gt;Redis Exporter 1.62.0 -&amp;gt; 1.66.0&lt;/li&gt;&#xA;&lt;li&gt;MongoDB Exporter 0.41.2 -&amp;gt; 0.42.0&lt;/li&gt;&#xA;&lt;li&gt;Keepalived Exporter 1.3.3 -&amp;gt; 1.4.0&lt;/li&gt;&#xA;&lt;li&gt;DuckDB 1.1.2 -&amp;gt; 1.1.3&lt;/li&gt;&#xA;&lt;li&gt;etcd 3.5.16 -&amp;gt; 3.5.17&lt;/li&gt;&#xA;&lt;li&gt;tigerbeetle 16.8 -&amp;gt; 0.16.13&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;repo_upstream&lt;/code&gt;: Generates defaults for each specific OS distribution: &lt;a href=&#34;https://github.com/pgsty/pigsty/tree/main/roles/node_id/vars&#34;&gt;&lt;code&gt;roles/node_id/vars&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;repo_packages&lt;/code&gt;: Allows aliases defined in &lt;code&gt;package_map&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;repo_extra_packages&lt;/code&gt;: New default when unspecified, allows aliases defined in &lt;code&gt;package_map&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_checksum&lt;/code&gt;: Default changed to &lt;code&gt;true&lt;/code&gt;, enabled by default&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_packages&lt;/code&gt;: Default changed to: &lt;code&gt;postgresql, wal2json pg_repack pgvector, patroni pgbouncer pgbackrest pg_exporter pgbadger vip-manager&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_extensions&lt;/code&gt;: Default changed to empty array &lt;code&gt;[]&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;infra_portal&lt;/code&gt;: Allows specifying &lt;code&gt;path&lt;/code&gt; for &lt;code&gt;home&lt;/code&gt; server, replacing default local repo path &lt;code&gt;nginx_home&lt;/code&gt; (&lt;code&gt;/www&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.1.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.1/&#34;&gt;Pigsty v3.1 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v310&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.0.4...v3.1.0&#34;&gt;Source comparison: &lt;code&gt;v3.0.4...v3.1.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.0.4</title>
        <link>https://pgsty.pro/blog/release/3.0.4/</link>
        <pubDate>Mon, 28 Oct 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.0.4/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.0.4&lt;/strong&gt; · &lt;time datetime=&#34;2024-10-28&#34;&gt;2024-10-28&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.4&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.4.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.4.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Build &amp;amp; Packaging applicable extensions for PostgreSQL 17&lt;/li&gt;&#xA;&lt;li&gt;Adding OLAP extensions: &lt;code&gt;pg_duckdb&lt;/code&gt; &amp;amp; &lt;code&gt;pg_parquet&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Better supabase self-hosting experience&lt;/li&gt;&#xA;&lt;li&gt;Allow pulling/load images after docker installation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;extensions&#34;&gt;Extensions&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Check the new extension catalog: &lt;a href=&#34;https://ext.pigsty.io&#34;&gt;https://ext.pigsty.io&lt;/a&gt;&lt;/p&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: center&#34;&gt;Statistics&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;All&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PGDG&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PIGSTY&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;MISC&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;MISS&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG17&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG16&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG15&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG14&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG13&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PG12&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;EL Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;338&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;134&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;130&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;298&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;334&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;336&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;328&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;319&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;310&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Deb Extension&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;326&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;109&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;143&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;74&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;19&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;290&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;322&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;324&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;316&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;307&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;300&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;RPM Package&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;313&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;122&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;129&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;275&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;309&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;311&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;303&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;294&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;285&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;DEB Package&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;298&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;93&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;142&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;64&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;19&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;264&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;294&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;296&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;288&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;279&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;272&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://ext.pigsty.io/&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pigsty.io/img/pigsty/ecosystem.jpg&#34; alt=&#34;landscape&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.0.3</title>
        <link>https://pgsty.pro/blog/release/3.0.3/</link>
        <pubDate>Fri, 27 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.0.3/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.0.3&lt;/strong&gt; · &lt;time datetime=&#34;2024-09-27&#34;&gt;2024-09-27&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.3&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.3.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.3.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;strong&gt;New Feature&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 17 support through config file&lt;/li&gt;&#xA;&lt;li&gt;WiltonDB 16, compatible with PG 16&lt;/li&gt;&#xA;&lt;li&gt;IvorySQL 3.4, sync with PostgreSQL 16.4&lt;/li&gt;&#xA;&lt;li&gt;ETCD alerting &amp;amp; monitoring enhancement&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Version Upgrade&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostGIS 3.5&lt;/li&gt;&#xA;&lt;li&gt;Grafana 11.2&lt;/li&gt;&#xA;&lt;li&gt;duckdb 1.1&lt;/li&gt;&#xA;&lt;li&gt;pg_search 0.10.2&lt;/li&gt;&#xA;&lt;li&gt;pg_analytics 0.1.4&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.3&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.0/&#34;&gt;Pigsty v3.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v303&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.0.2...v3.0.3&#34;&gt;Source comparison: &lt;code&gt;v3.0.2...v3.0.3&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.0.2</title>
        <link>https://pgsty.pro/blog/release/3.0.2/</link>
        <pubDate>Sat, 07 Sep 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.0.2/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.0.2&lt;/strong&gt; · &lt;time datetime=&#34;2024-09-07&#34;&gt;2024-09-07&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.2&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.2.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.2.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;features&#34;&gt;Features&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/setup/mini/&#34;&gt;Minimal Installation&lt;/a&gt; support with &lt;code&gt;pgsql-min.yml&lt;/code&gt; (NODE, PGSQL, ETCD only)&lt;/li&gt;&#xA;&lt;li&gt;Official support for the latest &lt;a href=&#34;https://github.com/ApsaraDB/PolarDB-for-PostgreSQL&#34;&gt;PolarDB for PostgreSQL&lt;/a&gt; Kernel v15&lt;/li&gt;&#xA;&lt;li&gt;Optimize &lt;code&gt;monitor.pg_table_bloat&lt;/code&gt; and &lt;code&gt;monitor.pg_index_bloat&lt;/code&gt; with security definer wrap functions to avoid PolarDB statistics view permission issue.&lt;/li&gt;&#xA;&lt;li&gt;Honor &lt;code&gt;prometheus_enabled&lt;/code&gt;, &lt;code&gt;grafana_enabled&lt;/code&gt; option in target register, not register when disabled.&lt;/li&gt;&#xA;&lt;li&gt;Add &lt;code&gt;PGDATABASE&lt;/code&gt; and &lt;code&gt;PGPORT&lt;/code&gt; environment variable to &lt;code&gt;/etc/profile.d/pgsql.sh&lt;/code&gt;, set to &lt;code&gt;pg_primary_db&lt;/code&gt; (default &lt;code&gt;postgres&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;changes&#34;&gt;Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Remove PolarDB 11, CloudberryDB 1.5.4 packages from pgsql repo.&lt;/li&gt;&#xA;&lt;li&gt;New dedicate repo for PolarDB 15, CloudberryDB 1.6.0, MSSQL, IvorySQL.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fix&#34;&gt;Bug Fix&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix redis &lt;code&gt;/etc/tmp.files.d&lt;/code&gt; entry name&lt;/li&gt;&#xA;&lt;li&gt;Set &lt;code&gt;PGHOST&lt;/code&gt; and &lt;code&gt;PGPORT&lt;/code&gt; when managing pgbouncer users.&lt;/li&gt;&#xA;&lt;li&gt;Remove support for &lt;code&gt;pg_snakeoil&lt;/code&gt; due to &lt;code&gt;clamv&lt;/code&gt; deps break on EL8&lt;/li&gt;&#xA;&lt;li&gt;Remove role &lt;code&gt;pgsql&lt;/code&gt; notify handler for ansible 2.9 compatibility&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;checksums&#34;&gt;Checksums&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-29e807f5-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-29e807f5-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MD5 (pigsty-v3.0.2.tgz) = e366b754ec9b57f5e22c5feadd8f0901&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.2&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.0/&#34;&gt;Pigsty v3.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v302&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.0.1...v3.0.2&#34;&gt;Source comparison: &lt;code&gt;v3.0.1...v3.0.2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.0.1</title>
        <link>https://pgsty.pro/blog/release/3.0.1/</link>
        <pubDate>Sat, 31 Aug 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.0.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.0.1&lt;/strong&gt; · &lt;time datetime=&#34;2024-08-31&#34;&gt;2024-08-31&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;v3.0.1 &lt;a href=&#34;https://pigsty.io/docs/about/release/&#34;&gt;Released&lt;/a&gt; @ 2024-08-31&lt;/p&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://github.com/user-attachments/assets/6b80fa25-fa84-487a-8bfc-fd498391b3d7&#34; alt=&#34;kernels&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;h2 id=&#34;features--enhancement&#34;&gt;Features &amp;amp; Enhancement&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Oracle Compatibility through PolarDB-O (3rd commercial kernel)&lt;/li&gt;&#xA;&lt;li&gt;Rewrite monitoring views and SQL statements using Oracle-compatible SQL syntax&lt;/li&gt;&#xA;&lt;li&gt;Patroni &lt;a href=&#34;https://patroni.readthedocs.io/en/latest/releases.html&#34;&gt;4&lt;/a&gt; support and adaptation&lt;/li&gt;&#xA;&lt;li&gt;New extension &lt;code&gt;pg_analytics&lt;/code&gt; enhances PostgreSQL with analytics capabilities via DuckDB&lt;/li&gt;&#xA;&lt;li&gt;Added new extensions: &lt;code&gt;odbc_fdw&lt;/code&gt; and &lt;code&gt;jdbc_fdw&lt;/code&gt;, providing universal external data source connectivity&lt;/li&gt;&#xA;&lt;li&gt;Added new kernel &lt;code&gt;cloudberrydb&lt;/code&gt; (open-source fork by the original Greenplum developers)&lt;/li&gt;&#xA;&lt;li&gt;Add a restart after PGSQL primary initialization to apply &lt;code&gt;pg_param&lt;/code&gt; &amp;amp; &lt;code&gt;pg_files&lt;/code&gt;, no need to reboot after provisioning a Supabase PG / PolarDB cluster.&lt;/li&gt;&#xA;&lt;li&gt;Add new grafana plugin: &lt;code&gt;volkovlabs-rss-datasource&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add new dashboard panel: Extensions in PGCAT databases&lt;/li&gt;&#xA;&lt;li&gt;Bump Pev2 version to 1.12.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fix&#34;&gt;Bug Fix&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix Grafana 11.1.4 panel plugin failed to load by default&lt;/li&gt;&#xA;&lt;li&gt;Fix BlackBox Exporter Ping probe failed on certain OS Distro (run as root rather than prometheus)&lt;/li&gt;&#xA;&lt;li&gt;Make sure &lt;code&gt;/var/run/postgresql&lt;/code&gt; and &lt;code&gt;/var/run/redis&lt;/code&gt; temporary directory always auto-create after reboot&lt;/li&gt;&#xA;&lt;li&gt;Fix &lt;code&gt;cache.yml&lt;/code&gt; playbook not correctly remove outdated Patroni 3.0.4 RPM package&lt;/li&gt;&#xA;&lt;li&gt;Correct description errors in some alerting rules&lt;/li&gt;&#xA;&lt;li&gt;Remove outdated Bootstrap User/HBA parameters from Patroni configuration file&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-daacf6dd-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-daacf6dd-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MD5 (pigsty-v3.0.1.tgz) = 277a05f8dc944b9b5ef99b682b300b8d&#xA;MD5 (pigsty-pkg-v3.0.1.d12.x86_64.tgz) = 6ca11ea3d3531f2d208fd7dd3b251234&#xA;MD5 (pigsty-pkg-v3.0.1.el8.x86_64.tgz) = 12aa6f2eaac46c907e544677ade1d81f&#xA;MD5 (pigsty-pkg-v3.0.1.el9.x86_64.tgz) = f1cc152e688ff94f984fb45b1ae28968&#xA;MD5 (pigsty-pkg-v3.0.1.u22.x86_64.tgz) = bad1ab8a54df467c46e7d750d92a56c1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.0/&#34;&gt;Pigsty v3.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v301&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v3.0.0...v3.0.1&#34;&gt;Source comparison: &lt;code&gt;v3.0.0...v3.0.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v3.0.0</title>
        <link>https://pgsty.pro/blog/release/3.0.0/</link>
        <pubDate>Wed, 28 Aug 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/3.0.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v3.0.0&lt;/strong&gt; · &lt;time datetime=&#34;2024-08-28&#34;&gt;2024-08-28&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v3.0.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 16.4, 15.8, 14.13, 13.16, 12.20&lt;/li&gt;&#xA;&lt;li&gt;340 PostgreSQL extensions available&lt;/li&gt;&#xA;&lt;li&gt;EL/Debian extension ecosystem parity achieved&lt;/li&gt;&#xA;&lt;li&gt;Pluggable kernels: Babelfish, IvorySQL, PolarDB support&lt;/li&gt;&#xA;&lt;li&gt;Supabase now available on Debian systems&lt;/li&gt;&#xA;&lt;li&gt;Pigsty Pro edition with extended OS and module support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;breaking-changes&#34;&gt;Breaking Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Primary OS support: EL8/EL9, Debian 12, Ubuntu 22.04&lt;/li&gt;&#xA;&lt;li&gt;Legacy systems (EL7, Debian 11, Ubuntu 20.04) require subscription&lt;/li&gt;&#xA;&lt;li&gt;Default online installation; offline packages discontinued&lt;/li&gt;&#xA;&lt;li&gt;Repository consolidation with GPG signing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New &lt;code&gt;pg_mode&lt;/code&gt; options: &lt;code&gt;pgsql&lt;/code&gt;, &lt;code&gt;citus&lt;/code&gt;, &lt;code&gt;gpsql&lt;/code&gt;, &lt;code&gt;mssql&lt;/code&gt;, &lt;code&gt;ivory&lt;/code&gt;, &lt;code&gt;polar&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New parameters: &lt;code&gt;pg_parameters&lt;/code&gt;, &lt;code&gt;pg_files&lt;/code&gt;, &lt;code&gt;repo_extra_packages&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;patroni_citus_db&lt;/code&gt; renamed to &lt;code&gt;pg_primary_db&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Enhanced: &lt;code&gt;proxy_env&lt;/code&gt;, &lt;code&gt;repo_url_packages&lt;/code&gt;, &lt;code&gt;pg_databases.extensions&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Auto-derived defaults for &lt;code&gt;repo_upstream&lt;/code&gt;, &lt;code&gt;repo_packages&lt;/code&gt;, &lt;code&gt;infra_packages&lt;/code&gt;, &lt;code&gt;node_default_packages&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Bootstrap &lt;code&gt;-k|--keep&lt;/code&gt; flag; Configure &lt;code&gt;-m|--conf&lt;/code&gt; and &lt;code&gt;-x|--proxy&lt;/code&gt; flags&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OpenSSH CVE-2024-6387 auto-remediation&lt;/li&gt;&#xA;&lt;li&gt;Loki high-cardinality label memory fix&lt;/li&gt;&#xA;&lt;li&gt;EL8 Ansible dependency bootstrap fix&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4d5eb08c-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-4d5eb08c-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;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-v3.0.0.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; acc802fc2a47a838f09a39e7615ee4d9&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v3.0.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v3.0/&#34;&gt;Pigsty v3.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v300&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.7.0...v3.0.0&#34;&gt;Source comparison: &lt;code&gt;v2.7.0...v3.0.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.7.0</title>
        <link>https://pgsty.pro/blog/release/2.7.0/</link>
        <pubDate>Thu, 16 May 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.7.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.7.0&lt;/strong&gt; · &lt;time datetime=&#34;2024-05-16&#34;&gt;2024-05-16&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.7.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.7.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.7.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;New powerful extensions, especially Rust/pgrx-developed ones:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/paradedb/paradedb/tree/dev/pg_search&#34;&gt;pg_search&lt;/a&gt; v0.7.0: BM25 full-text search&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/paradedb/paradedb/tree/dev/pg_lakehouse&#34;&gt;pg_lakehouse&lt;/a&gt; v0.7.0: Object storage/table format query engine&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/paradedb/pg_analytics&#34;&gt;pg_analytics&lt;/a&gt; v0.6.1: Accelerated analytics&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/supabase/pg_graphql&#34;&gt;pg_graphql&lt;/a&gt; v1.5.4: GraphQL support&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/supabase/pg_jsonschema&#34;&gt;pg_jsonschema&lt;/a&gt; v0.3.1: JSON Schema validation&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/supabase/wrappers&#34;&gt;wrappers&lt;/a&gt; v0.3.1: Supabase FDW collection&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/tembo-io/pgmq&#34;&gt;pgmq&lt;/a&gt; v1.5.2: Lightweight message queue&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/tembo-io/pg_tier&#34;&gt;pg_tier&lt;/a&gt; v0.0.3: S3 cold storage tiering&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/tembo-io/pg_vectorize&#34;&gt;pg_vectorize&lt;/a&gt; v0.15.0: RAG wrapper&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/tembo-io/pg_later&#34;&gt;pg_later&lt;/a&gt; v0.1.0: Async SQL execution&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/VADOSWARE/pg_idkit&#34;&gt;pg_idkit&lt;/a&gt; v0.2.3: UUID generation&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/kaspermarstal/plprql&#34;&gt;plprql&lt;/a&gt; v0.1.0: PRQL language&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/zhuobie/pgsmcrypto&#34;&gt;pgsmcrypto&lt;/a&gt; v0.1.0: Chinese SM cryptography&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/kelvich/pg_tiktoken&#34;&gt;pg_tiktoken&lt;/a&gt; v0.0.1: OpenAI token counting&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/rustprooflabs/pgdd&#34;&gt;pgdd&lt;/a&gt; v0.5.2: Catalog metadata via SQL&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;C/C++ extensions:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.6.0</title>
        <link>https://pgsty.pro/blog/release/2.6.0/</link>
        <pubDate>Thu, 29 Feb 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.6.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.6.0&lt;/strong&gt; · &lt;time datetime=&#34;2024-02-29&#34;&gt;2024-02-29&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.6.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.6.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.6.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 16 is now the default major version (16.2)&lt;/li&gt;&#xA;&lt;li&gt;New &lt;a href=&#34;https://www.paradedb.com/&#34;&gt;ParadeDB&lt;/a&gt; extensions: &lt;code&gt;pg_analytics&lt;/code&gt;, &lt;code&gt;pg_bm25&lt;/code&gt;, and &lt;code&gt;pg_sparse&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New &lt;a href=&#34;https://duckdb.org/&#34;&gt;DuckDB&lt;/a&gt; and &lt;code&gt;duckdb_fdw&lt;/code&gt; support&lt;/li&gt;&#xA;&lt;li&gt;Global Cloudflare CDN &lt;a href=&#34;https://repo.pigsty.io&#34;&gt;https://repo.pigsty.io&lt;/a&gt; and China CDN &lt;a href=&#34;https://repo.pigsty.cc&#34;&gt;https://repo.pigsty.cc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;configuration-changes&#34;&gt;Configuration Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Replaced &lt;code&gt;node_repo_method&lt;/code&gt; with &lt;code&gt;node_repo_modules&lt;/code&gt;, removed &lt;code&gt;node_repo_local_urls&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Temporarily disabled Grafana unified alerting to avoid &amp;ldquo;Database Locked&amp;rdquo; errors&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;node_repo_modules&lt;/code&gt; parameter to specify upstream repos added to nodes&lt;/li&gt;&#xA;&lt;li&gt;Removed &lt;code&gt;node_local_repo_urls&lt;/code&gt;, functionality replaced by &lt;code&gt;node_repo_modules&lt;/code&gt; &amp;amp; &lt;code&gt;repo_upstream&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Removed &lt;code&gt;node_repo_method&lt;/code&gt; parameter, functionality replaced by &lt;code&gt;node_repo_modules&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added new &lt;code&gt;local&lt;/code&gt; source in &lt;code&gt;repo_upstream&lt;/code&gt;, used via &lt;code&gt;node_repo_modules&lt;/code&gt; to replace &lt;code&gt;node_local_repo_urls&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Reorganized &lt;code&gt;node_default_packages&lt;/code&gt;, &lt;code&gt;infra_packages&lt;/code&gt;, &lt;code&gt;pg_packages&lt;/code&gt;, &lt;code&gt;pg_extensions&lt;/code&gt; defaults&lt;/li&gt;&#xA;&lt;li&gt;When replacing &lt;code&gt;repo_upstream.baseurl&lt;/code&gt;, if EL8/9 PGDG minor-version-specific repos are available, use &lt;code&gt;major.minor&lt;/code&gt; instead of &lt;code&gt;major&lt;/code&gt; for $releasever for better minor version compatibility&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Grafana 10.3&lt;/li&gt;&#xA;&lt;li&gt;Prometheus 2.47&lt;/li&gt;&#xA;&lt;li&gt;node_exporter 1.7.0&lt;/li&gt;&#xA;&lt;li&gt;HAProxy 2.9.5&lt;/li&gt;&#xA;&lt;li&gt;Loki / Promtail 2.9.4&lt;/li&gt;&#xA;&lt;li&gt;minio-20240216110548 / mcli-20240217011557&lt;/li&gt;&#xA;&lt;li&gt;etcd 3.5.11&lt;/li&gt;&#xA;&lt;li&gt;Redis 7.2.4&lt;/li&gt;&#xA;&lt;li&gt;Bytebase 2.13.2&lt;/li&gt;&#xA;&lt;li&gt;DuckDB 0.10.0&lt;/li&gt;&#xA;&lt;li&gt;FerretDB 1.19&lt;/li&gt;&#xA;&lt;li&gt;Metabase: new Docker app template&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;postgresql-extensions&#34;&gt;PostgreSQL Extensions&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL minor version upgrades: 16.2, 15.6, 14.11, 13.14, 12.18&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 16: now promoted to default major version&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter 0.6.1: security fix&lt;/li&gt;&#xA;&lt;li&gt;Patroni 3.2.2&lt;/li&gt;&#xA;&lt;li&gt;pgBadger 12.4&lt;/li&gt;&#xA;&lt;li&gt;pgBackRest 2.50&lt;/li&gt;&#xA;&lt;li&gt;vip-manager 2.3.0&lt;/li&gt;&#xA;&lt;li&gt;PostGIS 3.4.2&lt;/li&gt;&#xA;&lt;li&gt;TimescaleDB 2.14.1&lt;/li&gt;&#xA;&lt;li&gt;Vector extension PGVector 0.6.0: added parallel HNSW index creation&lt;/li&gt;&#xA;&lt;li&gt;New extension &lt;a href=&#34;https://github.com/alitrack/duckdb_fdw&#34;&gt;duckdb_fdw&lt;/a&gt; v1.1 for reading/writing DuckDB data&lt;/li&gt;&#xA;&lt;li&gt;New extension &lt;a href=&#34;https://github.com/pramsey/pgsql-gzip&#34;&gt;pgsql-gzip&lt;/a&gt; for Gzip compression/decompression v1.0.0&lt;/li&gt;&#xA;&lt;li&gt;New extension &lt;a href=&#34;https://github.com/paradedb/paradedb/tree/dev/pg_sparse&#34;&gt;pg_sparse&lt;/a&gt; for efficient sparse vectors (ParadeDB) v0.5.6&lt;/li&gt;&#xA;&lt;li&gt;New extension &lt;a href=&#34;https://github.com/paradedb/paradedb/tree/dev/pg_bm25&#34;&gt;pg_bm25&lt;/a&gt; for high-quality BM25 full-text search (ParadeDB) v0.5.6&lt;/li&gt;&#xA;&lt;li&gt;New extension &lt;a href=&#34;https://github.com/paradedb/paradedb/tree/dev/pg_analytics&#34;&gt;pg_analytics&lt;/a&gt; with SIMD + columnar storage for analytics (ParadeDB) v0.5.6&lt;/li&gt;&#xA;&lt;li&gt;Upgraded AIML extension &lt;a href=&#34;https://github.com/postgresml/postgresml&#34;&gt;pgml&lt;/a&gt; to v2.8.1 with PG 16 support&lt;/li&gt;&#xA;&lt;li&gt;Upgraded columnar extension &lt;a href=&#34;https://github.com/hydradatabase/&#34;&gt;hydra&lt;/a&gt; to v1.1.1 with PG 16 support&lt;/li&gt;&#xA;&lt;li&gt;Upgraded graph extension &lt;a href=&#34;https://github.com/apache/age&#34;&gt;age&lt;/a&gt; to v1.5.0 with PG 16 support&lt;/li&gt;&#xA;&lt;li&gt;Upgraded GraphQL extension &lt;a href=&#34;https://github.com/supabase/pg_graphql&#34;&gt;pg_graphql&lt;/a&gt; to v1.5.0 for Supabase support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-6ad4a343-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;8&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-6ad4a343-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;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-v2.6.0.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 330e9bc16a2f65d57264965bf98174ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.6.0.debian11.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 81abcd0ced798e1198740ab13317c29a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.6.0.debian12.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 7304f4458c9abd3a14245eaf72f4eeb4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.6.0.el7.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; f914fbb12f90dffc4e29f183753736bb&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.6.0.el8.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; fc23d122d0743d1c1cb871ca686449c0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.6.0.el9.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 9d258dbcecefd232f3a18bcce512b75e&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.6.0.ubuntu20.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 901ee668621682f99799de8932fb716c&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.6.0.ubuntu22.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 39872cf774c1fe22697c428be2fc2c22&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.6.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.6/&#34;&gt;Pigsty v2.6 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v260&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.5.1...v2.6.0&#34;&gt;Source comparison: &lt;code&gt;v2.5.1...v2.6.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.5.1</title>
        <link>https://pgsty.pro/blog/release/2.5.1/</link>
        <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.5.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.5.1&lt;/strong&gt; · &lt;time datetime=&#34;2023-12-01&#34;&gt;2023-12-01&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.5.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.5.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.5.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Following PostgreSQL v16.1, v15.5, 14.10, 13.13, 12.17, 11.22 routine minor version updates.&lt;/p&gt;&#xA;&lt;p&gt;All important PostgreSQL 16 extensions are now in place (added &lt;code&gt;pg_repack&lt;/code&gt; and &lt;code&gt;timescaledb&lt;/code&gt; support).&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Software updates:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL to v16.1, v15.5, 14.10, 13.13, 12.17, 11.22&lt;/li&gt;&#xA;&lt;li&gt;Patroni v3.2.0&lt;/li&gt;&#xA;&lt;li&gt;PgBackrest v2.49&lt;/li&gt;&#xA;&lt;li&gt;Citus 12.1&lt;/li&gt;&#xA;&lt;li&gt;TimescaleDB 2.13&lt;/li&gt;&#xA;&lt;li&gt;Grafana v10.2.0&lt;/li&gt;&#xA;&lt;li&gt;FerretDB 1.15&lt;/li&gt;&#xA;&lt;li&gt;SealOS 4.3.7&lt;/li&gt;&#xA;&lt;li&gt;Bytebase 2.11.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Removed &lt;code&gt;monitor&lt;/code&gt; schema prefix from PGCAT dashboard queries (allowing users to install &lt;code&gt;pg_stat_statements&lt;/code&gt; elsewhere)&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;wool.yml&lt;/code&gt; config template designed for Alibaba Cloud free 99 ECS single-node&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;python3-jmespath&lt;/code&gt; package for EL9 to fix jmespath missing after Ansible dependency update during bootstrap&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4e684e72-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;7&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-4e684e72-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;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.5.1.el7.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 31ee48df1007151009c060e0edbd74de&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.5.1.el8.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; a40f1b864ae8a19d9431bcd8e74fa116&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.5.1.el9.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; c976cd4431fc70367124fda4e2eac0a7&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.5.1.debian11.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 7fc1b5bdd3afa267a5fc1d7cb1f3c9a7&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.5.1.debian12.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; add0731dc7ed37f134d3cb5b6646624e&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.5.1.ubuntu20.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 99048d09fa75ccb8db8e22e2a3b41f28&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.5.1.ubuntu22.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 431668425f8ce19388d38e5bfa3a948c&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.5.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.5/&#34;&gt;Pigsty v2.5 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v251&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.5.0...v2.5.1&#34;&gt;Source comparison: &lt;code&gt;v2.5.0...v2.5.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.5.0</title>
        <link>https://pgsty.pro/blog/release/2.5.0/</link>
        <pubDate>Tue, 24 Oct 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.5.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.5.0&lt;/strong&gt; · &lt;time datetime=&#34;2023-10-24&#34;&gt;2023-10-24&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.5.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.5.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.5.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-5d89647f-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-5d89647f-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;curl https://get.pigsty.cc/latest &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/blob/master/files/pigsty/ubuntu.yml&#34;&gt;Ubuntu&lt;/a&gt; / &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/master/files/pigsty/debian.yml&#34;&gt;Debian&lt;/a&gt; support: bullseye, bookworm, jammy, focal&lt;/li&gt;&#xA;&lt;li&gt;CDN &lt;code&gt;repo.pigsty.cc&lt;/code&gt; software repository providing RPM/DEB package downloads&lt;/li&gt;&#xA;&lt;li&gt;Anolis OS support (compatible with EL 8.8)&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 16 replaces PostgreSQL 14 as the alternative primary supported version&lt;/li&gt;&#xA;&lt;li&gt;New PGSQL Exporter / PGSQL Patroni dashboards, redesigned PGSQL Query dashboard&lt;/li&gt;&#xA;&lt;li&gt;Extension updates:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostGIS upgraded to 3.4 (EL8/EL9), EL7 remains on PostGIS 3.3&lt;/li&gt;&#xA;&lt;li&gt;Removed &lt;code&gt;pg_embedding&lt;/code&gt; as developer discontinued maintenance, recommend &lt;code&gt;pgvector&lt;/code&gt; instead&lt;/li&gt;&#xA;&lt;li&gt;New extension (EL): Point cloud plugin &lt;code&gt;pointcloud&lt;/code&gt; support, natively available on Ubuntu&lt;/li&gt;&#xA;&lt;li&gt;New extensions (EL): &lt;code&gt;imgsmlr&lt;/code&gt;, &lt;code&gt;pg_similarity&lt;/code&gt;, &lt;code&gt;pg_bigm&lt;/code&gt; for search&lt;/li&gt;&#xA;&lt;li&gt;Recompiled &lt;code&gt;pg_filedump&lt;/code&gt; as PG version-independent package&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;hydra&lt;/code&gt; columnar storage extension, &lt;code&gt;citus&lt;/code&gt; no longer installed by default&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Software updates:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Grafana to v10.1.5&lt;/li&gt;&#xA;&lt;li&gt;Prometheus to v2.47&lt;/li&gt;&#xA;&lt;li&gt;Promtail/Loki to v2.9.1&lt;/li&gt;&#xA;&lt;li&gt;Node Exporter to v1.6.1&lt;/li&gt;&#xA;&lt;li&gt;Bytebase to v2.10.0&lt;/li&gt;&#xA;&lt;li&gt;Patroni to v3.1.2&lt;/li&gt;&#xA;&lt;li&gt;pgbouncer to v1.21.0&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter to v0.6.0&lt;/li&gt;&#xA;&lt;li&gt;pgbackrest to v2.48.0&lt;/li&gt;&#xA;&lt;li&gt;pgbadger to v12.2&lt;/li&gt;&#xA;&lt;li&gt;pg_graphql to v1.4.0&lt;/li&gt;&#xA;&lt;li&gt;pg_net to v0.7.3&lt;/li&gt;&#xA;&lt;li&gt;FerretDB to v0.12.1&lt;/li&gt;&#xA;&lt;li&gt;SealOS to 4.3.5&lt;/li&gt;&#xA;&lt;li&gt;Supabase support to &lt;code&gt;20231013070755&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ubuntu-support-notes&#34;&gt;Ubuntu Support Notes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty supports Ubuntu 22.04 (jammy) and 20.04 (focal) LTS versions with corresponding offline packages.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.4.1</title>
        <link>https://pgsty.pro/blog/release/2.4.1/</link>
        <pubDate>Sun, 24 Sep 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.4.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.4.1&lt;/strong&gt; · &lt;time datetime=&#34;2023-09-24&#34;&gt;2023-09-24&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.4.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.4.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.4.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/master/app/supabase&#34;&gt;Supabase&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://github.com/pgsty/pigsty/tree/master/app/pgml&#34;&gt;PostgresML&lt;/a&gt; support, and other new extensions!&lt;/p&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://github.com/pgsty/pigsty/assets/8587410/e51392a3-a04b-4b50-b0f3-c65cc99770f2&#34; alt=&#34;Pigsty-Distro-En&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/master/app/supabase&#34;&gt;Supabase&lt;/a&gt; support: run open-source Firebase alternative with external postgres managed by Pigsty: &lt;a href=&#34;https://github.com/pgsty/pigsty/tree/master/app/supabase&#34;&gt;example config&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/master/app/pgml&#34;&gt;PostgresML&lt;/a&gt; support: Run LLMs, vector operations, classical Machine Learning in Postgres.&lt;/li&gt;&#xA;&lt;li&gt;GraphQL support: &lt;a href=&#34;https://github.com/supabase/pg_graphql&#34;&gt;&lt;code&gt;pg_graphql&lt;/code&gt;&lt;/a&gt; reflects a GraphQL schema from the existing SQL schema.&lt;/li&gt;&#xA;&lt;li&gt;Async HTTP Client support &lt;a href=&#34;https://github.com/supabase/pg_net&#34;&gt;&lt;code&gt;pg_net&lt;/code&gt;&lt;/a&gt; enables asynchronous (non-blocking) HTTP/HTTPS requests with SQL&lt;/li&gt;&#xA;&lt;li&gt;JWT support: &lt;a href=&#34;https://github.com/michelp/pgjwt&#34;&gt;&lt;code&gt;pgjwt&lt;/code&gt;&lt;/a&gt; is the PostgreSQL implementation of JWT (JSON Web Tokens)&lt;/li&gt;&#xA;&lt;li&gt;Vault support: &lt;a href=&#34;https://github.com/supabase/vault&#34;&gt;&lt;code&gt;vault&lt;/code&gt;&lt;/a&gt; can store encrypted secrets in the Vault&lt;/li&gt;&#xA;&lt;li&gt;New component &lt;a href=&#34;https://github.com/df7cb/pg_filedump&#34;&gt;&lt;code&gt;pg_filedump&lt;/code&gt;&lt;/a&gt; for pg 14 &amp;amp; 15, low-level data recovery tool for PostgreSQL&lt;/li&gt;&#xA;&lt;li&gt;New extension &lt;code&gt;hydra&lt;/code&gt; the columnar available for PG 13 - 15. (not packaged due to conflict with citus columnar)&lt;/li&gt;&#xA;&lt;li&gt;Reduce offline packages size for el9 400MB by removing &lt;code&gt;proj-data*&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Bump &lt;a href=&#34;https://github.com/FerretDB/FerretDB&#34;&gt;FerretDB&lt;/a&gt; version to v1.10&lt;/li&gt;&#xA;&lt;li&gt;Fix patroni v3.1.1 broken issue&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-6a64e710-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;&#34; data-td-line-count=&#34;4&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-6a64e710-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;7e3989a98b7b0cd213e7efa09a8e8ebc  pigsty-v2.4.1.tgz&#xA;efabe7632d8994f3fb58f9838b8f9d7d  pigsty-pkg-v2.4.1.el7.x86_64.tgz&#xA;ea78957e8c8434b120d1c8c43d769b56  pigsty-pkg-v2.4.1.el8.x86_64.tgz&#xA;4ef280a7d28872814e34521978b851bb  pigsty-pkg-v2.4.1.el9.x86_64.tgz&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.4.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.4/&#34;&gt;Pigsty v2.4 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v241&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.4.0...v2.4.1&#34;&gt;Source comparison: &lt;code&gt;v2.4.0...v2.4.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.4.0</title>
        <link>https://pgsty.pro/blog/release/2.4.0/</link>
        <pubDate>Thu, 14 Sep 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.4.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.4.0&lt;/strong&gt; · &lt;time datetime=&#34;2023-09-14&#34;&gt;2023-09-14&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.4.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.4.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.4.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 16 GA released, Pigsty provides support&lt;/li&gt;&#xA;&lt;li&gt;Monitor cloud databases: RDS for PostgreSQL and PolarDB with brand-new PGRDS dashboards&lt;/li&gt;&#xA;&lt;li&gt;Commercial support and consulting services officially launched. First LTS version released, providing up to 5 years of support for subscribers&lt;/li&gt;&#xA;&lt;li&gt;New extension: Apache AGE, openCypher graph query engine on PostgreSQL&lt;/li&gt;&#xA;&lt;li&gt;New extension: zhparser, full text search for Chinese language&lt;/li&gt;&#xA;&lt;li&gt;New extension: pg_roaringbitmap, roaring bitmap for PostgreSQL&lt;/li&gt;&#xA;&lt;li&gt;New extension: pg_embedding, HNSW alternative to pgvector&lt;/li&gt;&#xA;&lt;li&gt;New extension: pg_tle, admin/manage stored procedure extensions&lt;/li&gt;&#xA;&lt;li&gt;New extension: pgsql-http, issue HTTP requests with SQL interface&lt;/li&gt;&#xA;&lt;li&gt;Additional extensions: pg_auth_mon, pg_checksums, pg_failover_slots, pg_readonly, postgresql-unit, pg_store_plans, pg_uuidv7, set_user&lt;/li&gt;&#xA;&lt;li&gt;Redis improvements: Sentinel monitoring support, automatic HA configuration for primary-replica clusters&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New parameter: &lt;code&gt;REDIS&lt;/code&gt;.&lt;code&gt;redis_sentinel_monitor&lt;/code&gt; — specify list of primaries monitored by Sentinel cluster&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed missing &lt;code&gt;uid&lt;/code&gt; when registering datasources in Grafana 10.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-2c42b85b-fence-0&#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-2c42b85b-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;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.4.0.el7.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 257443e3c171439914cbfad8e9f72b17&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.4.0.el8.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 41ad8007ffbfe7d5e8ba5c4b51ff2adc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.4.0.el9.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 9a950aed77a6df90b0265a6fa6029250&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.4.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.4/&#34;&gt;Pigsty v2.4 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v240&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.3.1...v2.4.0&#34;&gt;Source comparison: &lt;code&gt;v2.3.1...v2.4.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.3.1</title>
        <link>https://pgsty.pro/blog/release/2.3.1/</link>
        <pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.3.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.3.1&lt;/strong&gt; · &lt;time datetime=&#34;2023-09-01&#34;&gt;2023-09-01&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.3.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.3.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.3.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pgvector&lt;/code&gt; updated to 0.5 with HNSW algorithm support&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 16 RC1 support (el8/el9)&lt;/li&gt;&#xA;&lt;li&gt;Added SealOS to default packages for quick Kubernetes cluster deployment&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed &lt;code&gt;infra&lt;/code&gt;.&lt;code&gt;repo&lt;/code&gt;.&lt;code&gt;repo_pkg&lt;/code&gt; task: downloads could be affected by existing &lt;code&gt;/www/pigsty&lt;/code&gt; content when &lt;code&gt;repo_packages&lt;/code&gt; contains &lt;code&gt;*&lt;/code&gt; wildcards&lt;/li&gt;&#xA;&lt;li&gt;Changed &lt;code&gt;vip_dns_suffix&lt;/code&gt; default from &lt;code&gt;.vip&lt;/code&gt; to empty string, so cluster name itself becomes the default Node cluster L2 VIP&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;modprobe watchdog&lt;/code&gt; and &lt;code&gt;chown watchdog&lt;/code&gt; if &lt;code&gt;patroni_watchdog_mode&lt;/code&gt; is &lt;code&gt;required&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;When &lt;code&gt;pg_dbsu_sudo&lt;/code&gt; = &lt;code&gt;limit&lt;/code&gt; and &lt;code&gt;patroni_watchdog_mode&lt;/code&gt; = &lt;code&gt;required&lt;/code&gt;, grant database dbsu sudo for:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;/usr/bin/sudo /sbin/modprobe softdog&lt;/code&gt;: Ensure softdog kernel module enabled when starting Patroni service&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/usr/bin/sudo /bin/chown {{ pg_dbsu }} /dev/watchdog&lt;/code&gt;: Ensure watchdog ownership correct when starting Patroni service&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;documentation-updates&#34;&gt;Documentation Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added updated content to English documentation&lt;/li&gt;&#xA;&lt;li&gt;Added simplified Chinese built-in docs, fixed Chinese docs on pigsty.cc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-updates&#34;&gt;Software Updates&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 16 RC1 for EL8/EL9&lt;/li&gt;&#xA;&lt;li&gt;PGVector 0.5.0 with HNSW index support&lt;/li&gt;&#xA;&lt;li&gt;TimescaleDB 2.11.2&lt;/li&gt;&#xA;&lt;li&gt;Grafana 10.1.0&lt;/li&gt;&#xA;&lt;li&gt;Loki &amp;amp; Promtail 2.8.4&lt;/li&gt;&#xA;&lt;li&gt;Redis Stack 7.2 on el7/8&lt;/li&gt;&#xA;&lt;li&gt;mcli-20230829225506 / minio-20230829230735&lt;/li&gt;&#xA;&lt;li&gt;FerretDB 1.9&lt;/li&gt;&#xA;&lt;li&gt;SealOS 4.3.3&lt;/li&gt;&#xA;&lt;li&gt;pgBadger 1.12.2&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-6e291380-fence-0&#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-6e291380-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;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.3.1.el7.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; ce69791eb622fa87c543096cdf11f970&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.3.1.el8.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 495aba9d6d18ce1ebed6271e6c96b63a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.3.1.el9.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 38b45582cbc337ff363144980d0d7b64&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.3.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.3/&#34;&gt;Pigsty v2.3 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v231&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.3.0...v2.3.1&#34;&gt;Source comparison: &lt;code&gt;v2.3.0...v2.3.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.3.0</title>
        <link>https://pgsty.pro/blog/release/2.3.0/</link>
        <pubDate>Sun, 20 Aug 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.3.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.3.0&lt;/strong&gt; · &lt;time datetime=&#34;2023-08-20&#34;&gt;2023-08-20&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.3.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.3.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.3.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;INFRA: Added NODE/PGSQL VIP monitoring support&lt;/li&gt;&#xA;&lt;li&gt;PGSQL: Fixed PostgreSQL &lt;a href=&#34;https://www.postgresql.org/about/news/postgresql-154-149-1312-1216-1121-and-postgresql-16-beta-3-released-2689/&#34;&gt;CVE-2023-39417&lt;/a&gt; via minor upgrades: 15.4, 14.9, 13.12, 12.16, and Patroni v3.1.0&lt;/li&gt;&#xA;&lt;li&gt;NODE: Allow users to bind L2 VIP to node clusters using &lt;code&gt;keepalived&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;REPO: Pigsty Yum repo optimized, site-wide HTTPS by default: &lt;a href=&#34;https://get.pigsty.cc&#34;&gt;&lt;code&gt;get.pigsty.cc&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://demo.pigsty.cc&#34;&gt;&lt;code&gt;demo.pigsty.cc&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;APP: Upgraded &lt;code&gt;app/bytebase&lt;/code&gt; to v2.6.0, &lt;code&gt;app/ferretdb&lt;/code&gt; to v1.8; added new app template: &lt;a href=&#34;https://nocodb.com/&#34;&gt;NocoDB&lt;/a&gt;, open-source Airtable&lt;/li&gt;&#xA;&lt;li&gt;REDIS: Upgraded to v7.2, redesigned Redis dashboards&lt;/li&gt;&#xA;&lt;li&gt;MONGO: Added basic support via &lt;a href=&#34;https://www.ferretdb.io/&#34;&gt;FerretDB&lt;/a&gt; 1.8&lt;/li&gt;&#xA;&lt;li&gt;MYSQL: Added Prometheus/Grafana/CA stubs for future integration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Added new parameter group &lt;code&gt;NODE&lt;/code&gt;.&lt;code&gt;NODE_VIP&lt;/code&gt; with 8 new parameters:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.2.0</title>
        <link>https://pgsty.pro/blog/release/2.2.0/</link>
        <pubDate>Fri, 04 Aug 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.2.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.2.0&lt;/strong&gt; · &lt;time datetime=&#34;2023-08-04&#34;&gt;2023-08-04&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.2.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.2.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.2.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitoring Dashboard Overhaul: &lt;a href=&#34;https://demo.pigsty.cc&#34;&gt;https://demo.pigsty.cc&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Vagrant Sandbox Redesign: libvirt support with new config templates&lt;/li&gt;&#xA;&lt;li&gt;Pigsty EL Yum Repos: Consolidated scattered RPMs, simplified installation/build process&lt;/li&gt;&#xA;&lt;li&gt;OS Compatibility: Added UOS-v20-1050e support&lt;/li&gt;&#xA;&lt;li&gt;New Config Template: 42-node production simulation configuration&lt;/li&gt;&#xA;&lt;li&gt;Unified official PGDG Citus packages (el7)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 16 beta2&lt;/li&gt;&#xA;&lt;li&gt;Citus 12 / PostGIS 3.3.3 / TimescaleDB 2.11.1 / PGVector 0.44&lt;/li&gt;&#xA;&lt;li&gt;Patroni 3.0.4 / pgBackRest 2.47 / pgBouncer 1.20&lt;/li&gt;&#xA;&lt;li&gt;Grafana 10.0.3 / Loki/Promtail/logcli 2.8.3&lt;/li&gt;&#xA;&lt;li&gt;etcd 3.5.9 / HAProxy v2.8.1 / Redis v7.0.12&lt;/li&gt;&#xA;&lt;li&gt;MinIO 20230711212934 / mcli 20230711233044&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed Docker group permission issue &lt;a href=&#34;https://github.com/pgsty/pigsty/commit/29434bdd39548d95d80a236de9099874ed564f9b&#34;&gt;29434bd&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Made &lt;code&gt;infra&lt;/code&gt; OS user group supplementary rather than primary&lt;/li&gt;&#xA;&lt;li&gt;Fixed Redis Sentinel systemd service auto-enable state &lt;a href=&#34;https://github.com/pgsty/pigsty/commit/5c96feb598ad6e44daa7a595e34c87e67952777b&#34;&gt;5c96feb&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Relaxed &lt;code&gt;bootstrap&lt;/code&gt; &amp;amp; &lt;code&gt;configure&lt;/code&gt; checks, especially when &lt;code&gt;/etc/redhat-release&lt;/code&gt; doesn&amp;rsquo;t exist&lt;/li&gt;&#xA;&lt;li&gt;Upgraded to Grafana 10, fixing Grafana 9.x &lt;a href=&#34;https://grafana.com/blog/2023/03/22/grafana-security-release-new-versions-with-security-fixes-for-cve-2023-1410/&#34;&gt;CVE-2023-1410&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added PG 14-16 command tags and error codes to CMDB &lt;code&gt;pglog&lt;/code&gt; schema&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;New variable:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.1.0</title>
        <link>https://pgsty.pro/blog/release/2.1.0/</link>
        <pubDate>Sat, 10 Jun 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.1.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.1.0&lt;/strong&gt; · &lt;time datetime=&#34;2023-06-10&#34;&gt;2023-06-10&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.1.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.1.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.1.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 16 beta support, plus support for versions 12-15&lt;/li&gt;&#xA;&lt;li&gt;Added PGVector extension support for PG 12-15 for storing AI embeddings&lt;/li&gt;&#xA;&lt;li&gt;Added 6 additional default extension panel/datasource plugins for Grafana&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;bin/profile&lt;/code&gt; script for remote profiling and flame graph generation&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;bin/validate&lt;/code&gt; for validating &lt;code&gt;pigsty.yml&lt;/code&gt; configuration file correctness&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;bin/repo-add&lt;/code&gt; for quickly adding Yum repo definitions to nodes&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL 16 observability: added &lt;code&gt;pg_stat_io&lt;/code&gt; support and related monitoring dashboards&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 15.3, 14.8, 13.11, 12.15, 11.20, and 16 beta1&lt;/li&gt;&#xA;&lt;li&gt;pgBackRest 2.46 / pgbouncer 1.19&lt;/li&gt;&#xA;&lt;li&gt;Redis 7.0.11&lt;/li&gt;&#xA;&lt;li&gt;Grafana v9.5.3&lt;/li&gt;&#xA;&lt;li&gt;Loki / Promtail / Logcli 2.8.2&lt;/li&gt;&#xA;&lt;li&gt;Prometheus 2.44&lt;/li&gt;&#xA;&lt;li&gt;TimescaleDB 2.11.0&lt;/li&gt;&#xA;&lt;li&gt;minio-20230518000536 / mcli-20230518165900&lt;/li&gt;&#xA;&lt;li&gt;Bytebase v2.2.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;improvements&#34;&gt;Improvements&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When adding local user public keys, all &lt;code&gt;id*.pub&lt;/code&gt; files are now added to remote machines (e.g., keys generated with elliptic curve algorithms)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.1.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.1/&#34;&gt;Pigsty v2.1 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v210&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.0.2...v2.1.0&#34;&gt;Source comparison: &lt;code&gt;v2.0.2...v2.1.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.0.2</title>
        <link>https://pgsty.pro/blog/release/2.0.2/</link>
        <pubDate>Fri, 31 Mar 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.0.2/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.0.2&lt;/strong&gt; · &lt;time datetime=&#34;2023-03-31&#34;&gt;2023-03-31&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.0.2&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.0.2.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.0.2.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Use out-of-the-box &lt;a href=&#34;https://github.com/pgvector/pgvector&#34;&gt;&lt;code&gt;pgvector&lt;/code&gt;&lt;/a&gt; to store AI Embeddings, index, and retrieve vectors.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New extension &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/267&#34;&gt;&lt;code&gt;pgvector&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/issues/265&#34;&gt;MinIO CVE-2023-28432&lt;/a&gt; fix&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;changes&#34;&gt;Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New extension &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/267&#34;&gt;&lt;code&gt;pgvector&lt;/code&gt;&lt;/a&gt; for storing AI embeddings and vector similarity search&lt;/li&gt;&#xA;&lt;li&gt;Fixed &lt;a href=&#34;https://github.com/pgsty/pigsty/issues/265&#34;&gt;MinIO CVE-2023-28432&lt;/a&gt;, using new policy API from 20230324&lt;/li&gt;&#xA;&lt;li&gt;Added dynamic reload command for DNSMASQ systemd service&lt;/li&gt;&#xA;&lt;li&gt;Updated PEV version to v1.8&lt;/li&gt;&#xA;&lt;li&gt;Updated Grafana version to v9.4.7&lt;/li&gt;&#xA;&lt;li&gt;Updated MinIO and MCLI versions to 20230324&lt;/li&gt;&#xA;&lt;li&gt;Updated Bytebase version to v1.15.0&lt;/li&gt;&#xA;&lt;li&gt;Updated monitoring dashboards and fixed dead links&lt;/li&gt;&#xA;&lt;li&gt;Updated Aliyun Terraform template, default to RockyLinux 9&lt;/li&gt;&#xA;&lt;li&gt;Using Grafana v9.4 Provisioning API&lt;/li&gt;&#xA;&lt;li&gt;Added asciinema videos for many admin tasks&lt;/li&gt;&#xA;&lt;li&gt;Fixed EL8 PostgreSQL broken dependencies: removed anonymizer_15 faker_15 pgloader&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f9130b02-fence-0&#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-f9130b02-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;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.0.2.el7.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; d46440a115d741386d29d6de646acfe2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.0.2.el8.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 5fa268b5545ac96b40c444210157e1e1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;MD5 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;pigsty-pkg-v2.0.2.el9.x86_64.tgz&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; c8b113d57c769ee86a22579fc98e8345&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.0.2&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.0/&#34;&gt;Pigsty v2.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v202&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.0.1...v2.0.2&#34;&gt;Source comparison: &lt;code&gt;v2.0.1...v2.0.2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.0.1</title>
        <link>https://pgsty.pro/blog/release/2.0.1/</link>
        <pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.0.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.0.1&lt;/strong&gt; · &lt;time datetime=&#34;2023-03-21&#34;&gt;2023-03-21&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.0.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.0.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.0.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Security improvements and bug fixes for v2.0.0.&lt;/p&gt;&#xA;&lt;h2 id=&#34;improvements&#34;&gt;Improvements&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New pig logo to comply with PostgreSQL trademark policy&lt;/li&gt;&#xA;&lt;li&gt;Grafana upgraded to v9.4 with better UI and bug fixes&lt;/li&gt;&#xA;&lt;li&gt;Patroni upgraded to v3.0.1 with bug fixes&lt;/li&gt;&#xA;&lt;li&gt;Grafana systemd service file reverted to rpm default&lt;/li&gt;&#xA;&lt;li&gt;Use slower &lt;code&gt;copy&lt;/code&gt; instead of &lt;code&gt;rsync&lt;/code&gt; for Grafana dashboard sync, more reliable&lt;/li&gt;&#xA;&lt;li&gt;Bootstrap now restores default repo files after execution&lt;/li&gt;&#xA;&lt;li&gt;Added asciinema videos for various admin tasks&lt;/li&gt;&#xA;&lt;li&gt;Security enhancement mode: restricted monitoring user permissions&lt;/li&gt;&#xA;&lt;li&gt;New config template: &lt;code&gt;dual.yml&lt;/code&gt; for two-node deployment&lt;/li&gt;&#xA;&lt;li&gt;Enable &lt;code&gt;log_connections&lt;/code&gt; and &lt;code&gt;log_disconnections&lt;/code&gt; in &lt;code&gt;crit.yml&lt;/code&gt; template&lt;/li&gt;&#xA;&lt;li&gt;Enable &lt;code&gt;$lib/passwordcheck&lt;/code&gt; in &lt;code&gt;pg_libs&lt;/code&gt; in &lt;code&gt;crit.yml&lt;/code&gt; template&lt;/li&gt;&#xA;&lt;li&gt;Explicitly grant &lt;code&gt;pg_monitor&lt;/code&gt; role monitoring view permissions&lt;/li&gt;&#xA;&lt;li&gt;Remove default &lt;code&gt;dbrole_readonly&lt;/code&gt; from &lt;code&gt;dbuser_monitor&lt;/code&gt; to restrict monitoring user permissions&lt;/li&gt;&#xA;&lt;li&gt;Patroni now listens on &lt;code&gt;{{ inventory_hostname }}&lt;/code&gt; instead of &lt;code&gt;0.0.0.0&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_listen&lt;/code&gt; now controls postgres/pgbouncer listen address&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;${ip}&lt;/code&gt;, &lt;code&gt;${lo}&lt;/code&gt;, &lt;code&gt;${vip}&lt;/code&gt; placeholders now available in &lt;code&gt;pg_listen&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Aliyun terraform image upgraded from centos 7.9 to Rocky Linux 9&lt;/li&gt;&#xA;&lt;li&gt;Bytebase upgraded to v1.14.0&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added missing advertise address for alertmanager&lt;/li&gt;&#xA;&lt;li&gt;Fixed missing &lt;code&gt;pg_mode&lt;/code&gt; variable when creating database users with &lt;code&gt;bin/pgsql-user&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;-a password&lt;/code&gt; option for Redis cluster join task in &lt;code&gt;redis.yml&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added missing default value in &lt;code&gt;infra-rm.yml&lt;/code&gt;.&lt;code&gt;remove infra data&lt;/code&gt; task&lt;/li&gt;&#xA;&lt;li&gt;Fixed prometheus monitoring target definition file owner to &lt;code&gt;prometheus&lt;/code&gt; user&lt;/li&gt;&#xA;&lt;li&gt;Use admin user instead of root to delete DCS metadata&lt;/li&gt;&#xA;&lt;li&gt;Fixed issue caused by Grafana 9.4 bug: missing Meta datasource&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.0.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v2.0/&#34;&gt;Pigsty v2.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v201&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v2.0.0...v2.0.1&#34;&gt;Source comparison: &lt;code&gt;v2.0.0...v2.0.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v2.0.0</title>
        <link>https://pgsty.pro/blog/release/2.0.0/</link>
        <pubDate>Tue, 28 Feb 2023 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/2.0.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v2.0.0&lt;/strong&gt; · &lt;time datetime=&#34;2023-02-28&#34;&gt;2023-02-28&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v2.0.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.0.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v2.0.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Perfect integration of PostgreSQL 15, PostGIS 3.3, Citus 11.2, TimescaleDB 2.10 — distributed geospatial time-series hyper-converged database&lt;/li&gt;&#xA;&lt;li&gt;Major OS compatibility improvements: supports EL7, 8, 9, plus RHEL, CentOS, Rocky, OracleLinux, AlmaLinux compatible distros&lt;/li&gt;&#xA;&lt;li&gt;Security improvements: self-signed CA, global SSL network encryption, scram-sha-256 password auth, AES-encrypted backups, redesigned HBA rule system&lt;/li&gt;&#xA;&lt;li&gt;Patroni upgraded to 3.0, providing native HA Citus distributed cluster support, FailSafe mode enabled by default — no fear of DCS failures causing global primary outages&lt;/li&gt;&#xA;&lt;li&gt;Out-of-the-box PITR support based on pgBackRest, default support for local filesystem and dedicated MinIO/S3 cluster backups&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;ETCD&lt;/code&gt; module: independently deployable, easy scaling, built-in monitoring and HA, completely replacing Consul as DCS for HA PG&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;MINIO&lt;/code&gt; module: independently deployable, multi-disk multi-node support, S3 local replacement, also for centralized PostgreSQL backup repository&lt;/li&gt;&#xA;&lt;li&gt;Significantly simplified configuration parameters, usable without defaults; templates auto-adjust host and PG parameters based on machine specs, HBA/service definitions more concise and universal&lt;/li&gt;&#xA;&lt;li&gt;License changed from Apache License 2.0 to AGPL 3.0 due to Grafana and MinIO dependencies&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;compatibility&#34;&gt;Compatibility&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supports EL7, EL8, EL9 major versions with corresponding offline packages, default dev/test environment upgraded from EL7 to EL9&lt;/li&gt;&#xA;&lt;li&gt;Supports more EL-compatible Linux distros: RHEL, CentOS, RockyLinux, AlmaLinux, OracleLinux, etc.&lt;/li&gt;&#xA;&lt;li&gt;Source and offline package naming conventions changed — version, OS version, and architecture now reflected in package names&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;PGSQL&lt;/code&gt;: PostgreSQL 15.2, PostGIS 3.3, Citus 11.2, TimescaleDB 2.10 now work together harmoniously&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;PGSQL&lt;/code&gt;: Patroni upgraded to 3.0 as PGSQL HA component&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ETCD now default DCS, replacing Consul, eliminating one Consul Agent failure point&lt;/li&gt;&#xA;&lt;li&gt;vip-manager upgraded to 2.1 using ETCDv3 API, completely deprecating ETCDv2 API; same for Patroni&lt;/li&gt;&#xA;&lt;li&gt;Native HA Citus distributed cluster support using fully open-source Citus 11.2&lt;/li&gt;&#xA;&lt;li&gt;FailSafe mode enabled by default — no fear of DCS failures causing global primary outages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;PGSQL&lt;/code&gt;: pgBackrest v2.44 introduced for out-of-the-box PostgreSQL PITR&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Default backup repo on primary&amp;rsquo;s backup directory, rolling two-day recovery window&lt;/li&gt;&#xA;&lt;li&gt;Default alternative repo is dedicated MinIO/S3 cluster, rolling two-week recovery window; local use requires enabling MinIO module&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ETCD&lt;/code&gt; now an independently deployed module with complete scale-out/in solution and monitoring&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;MINIO&lt;/code&gt; now an independently deployed module, multi-disk multi-node support, S3 local replacement, also for centralized backup repository&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;NODE&lt;/code&gt; module now includes &lt;code&gt;haproxy&lt;/code&gt;, &lt;code&gt;docker&lt;/code&gt;, &lt;code&gt;node_exporter&lt;/code&gt;, &lt;code&gt;promtail&lt;/code&gt; components&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;chronyd&lt;/code&gt; now replaces &lt;code&gt;ntpd&lt;/code&gt; as default NTP service on all nodes&lt;/li&gt;&#xA;&lt;li&gt;HAPROXY now part of &lt;code&gt;NODE&lt;/code&gt; rather than &lt;code&gt;PGSQL&lt;/code&gt;-exclusive, can expose services via NodePort&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;PGSQL&lt;/code&gt; module can now use dedicated centralized HAPROXY cluster for unified external service&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;INFRA&lt;/code&gt; module now includes &lt;code&gt;dnsmasq&lt;/code&gt;, &lt;code&gt;nginx&lt;/code&gt;, &lt;code&gt;prometheus&lt;/code&gt;, &lt;code&gt;grafana&lt;/code&gt;, &lt;code&gt;loki&lt;/code&gt; components&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DNSMASQ server in Infra module enabled by default, added as default DNS server for all nodes&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;blackbox_exporter&lt;/code&gt; for host PING probing, &lt;code&gt;pushgateway&lt;/code&gt; for batch job metrics&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;loki&lt;/code&gt; and &lt;code&gt;promtail&lt;/code&gt; now use Grafana&amp;rsquo;s default packages with official Grafana Echarts panel plugin&lt;/li&gt;&#xA;&lt;li&gt;Monitoring support for PostgreSQL 15&amp;rsquo;s new observability points, added Patroni monitoring&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Software version upgrades&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 15.2 / PostGIS 3.3 / TimescaleDB 2.10 / Citus 11.2&lt;/li&gt;&#xA;&lt;li&gt;Patroni 3.0 / Pgbouncer 1.18 / pgBackRest 2.44 / vip-manager 2.1&lt;/li&gt;&#xA;&lt;li&gt;HAProxy 2.7 / Etcd 3.5 / MinIO 20230131022419 / mcli 20230128202938&lt;/li&gt;&#xA;&lt;li&gt;Prometheus 2.42 / Grafana 9.3 / Loki &amp;amp; Promtail 2.7 / Node Exporter 1.5&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;security&#34;&gt;Security&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Complete local self-signed CA: &lt;code&gt;pigsty-ca&lt;/code&gt; for issuing internal component certificates&lt;/li&gt;&#xA;&lt;li&gt;User creation/password changes no longer leave traces in log files&lt;/li&gt;&#xA;&lt;li&gt;Nginx enables SSL support by default (for HTTPS, trust &lt;code&gt;pigsty-ca&lt;/code&gt; in your system or use Chrome &lt;code&gt;thisisunsafe&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;ETCD fully enables SSL encryption for client and peer communication&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL SSL support added and enabled by default, management connections use SSL&lt;/li&gt;&#xA;&lt;li&gt;Pgbouncer SSL support added, disabled by default for performance&lt;/li&gt;&#xA;&lt;li&gt;Patroni SSL support added, management API restricted to local and admin node access with password auth&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL default password auth changed from &lt;code&gt;md5&lt;/code&gt; to &lt;code&gt;scram-sha-256&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Pgbouncer auth query support added for dynamic connection pool user management&lt;/li&gt;&#xA;&lt;li&gt;pgBackRest uses &lt;code&gt;AES-256-CBC&lt;/code&gt; encryption by default for remote centralized backup storage&lt;/li&gt;&#xA;&lt;li&gt;High-security template provided: enforces global SSL and requires admin certificate login&lt;/li&gt;&#xA;&lt;li&gt;All default HBA rules now explicitly defined in config files&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;maintainability&#34;&gt;Maintainability&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Existing config templates auto-adjust optimizations based on machine specs (CPU/memory/storage)&lt;/li&gt;&#xA;&lt;li&gt;Postgres/Pgbouncer/Patroni/pgBackRest log directories now dynamically configurable: default &lt;code&gt;/pg/log/&amp;lt;type&amp;gt;/&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Original IP placeholder &lt;code&gt;10.10.10.10&lt;/code&gt; replaced with dedicated variable &lt;code&gt;${admin_ip}&lt;/code&gt;, referenceable in multiple places for switching backup admin nodes&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;region&lt;/code&gt; can be specified to use upstream mirrors from different regions for faster package downloads&lt;/li&gt;&#xA;&lt;li&gt;Finer-grained upstream source addresses now allowed based on EL version, architecture, and region&lt;/li&gt;&#xA;&lt;li&gt;Terraform templates for Alibaba Cloud and AWS China provided for one-click EC2 VM provisioning&lt;/li&gt;&#xA;&lt;li&gt;Multiple Vagrant sandbox templates provided: &lt;code&gt;meta&lt;/code&gt;, &lt;code&gt;full&lt;/code&gt;, &lt;code&gt;el7/8/9&lt;/code&gt;, &lt;code&gt;minio&lt;/code&gt;, &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;citus&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New dedicated playbook: &lt;code&gt;pgsql-monitor.yml&lt;/code&gt; for monitoring existing Postgres instances or RDS&lt;/li&gt;&#xA;&lt;li&gt;New dedicated playbook: &lt;code&gt;pgsql-migration.yml&lt;/code&gt; for seamless logical replication migration to Pigsty-managed clusters&lt;/li&gt;&#xA;&lt;li&gt;Series of dedicated shell utilities added, wrapping common ops operations&lt;/li&gt;&#xA;&lt;li&gt;All Ansible roles optimized for simplicity, readability, and maintainability — usable without default parameters&lt;/li&gt;&#xA;&lt;li&gt;Additional Pgbouncer parameters can be defined at business database/user level&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Pigsty v2.0 has extensive changes: 64 new parameters, 13 removed, 17 renamed.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.5.1</title>
        <link>https://pgsty.pro/blog/release/1.5.1/</link>
        <pubDate>Sat, 18 Jun 2022 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.5.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.5.1&lt;/strong&gt; · &lt;time datetime=&#34;2022-06-18&#34;&gt;2022-06-18&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.5.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.5.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.5.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: Fixed the issue where &lt;code&gt;CREATE INDEX|REINDEX CONCURRENTLY&lt;/code&gt; in PG14.0-14.3 could corrupt index data.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty v1.5.1 upgrades the default PostgreSQL version to 14.4. Strongly recommend updating ASAP.&lt;/p&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;postgres upgraded to 14.4&lt;/li&gt;&#xA;&lt;li&gt;haproxy upgraded to 2.6.0&lt;/li&gt;&#xA;&lt;li&gt;grafana upgraded to 9.0.0&lt;/li&gt;&#xA;&lt;li&gt;prometheus upgraded to 2.36.0&lt;/li&gt;&#xA;&lt;li&gt;patroni upgraded to 2.1.4&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed TYPO in &lt;code&gt;pgsql-migration.yml&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Removed PID config item from HAProxy configuration&lt;/li&gt;&#xA;&lt;li&gt;Removed i686 packages from default packages&lt;/li&gt;&#xA;&lt;li&gt;Enabled all Systemd Redis Services by default&lt;/li&gt;&#xA;&lt;li&gt;Enabled all Systemd Patroni Services by default&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;grafana_database&lt;/code&gt; and &lt;code&gt;grafana_pgurl&lt;/code&gt; marked as deprecated API, will be removed in future versions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;new-applications&#34;&gt;New Applications&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;wiki.js: Build local Wikipedia with Postgres&lt;/li&gt;&#xA;&lt;li&gt;FerretDB: Provide MongoDB API using Postgres&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.5.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.5/&#34;&gt;Pigsty v1.5 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v151&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.5.0...v1.5.1&#34;&gt;Source comparison: &lt;code&gt;v1.5.0...v1.5.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.5.0</title>
        <link>https://pgsty.pro/blog/release/1.5.0/</link>
        <pubDate>Sun, 22 May 2022 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.5.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.5.0&lt;/strong&gt; · &lt;time datetime=&#34;2022-05-22&#34;&gt;2022-05-22&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.5.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.5.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.5.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Complete Docker support: enabled by default on meta node with many out-of-the-box software templates: bytebase, pgadmin, pgweb, postgrest, minio, etc.&lt;/li&gt;&#xA;&lt;li&gt;Infrastructure self-monitoring: Nginx, ETCD, Consul, Prometheus, Grafana, Loki self-monitoring&lt;/li&gt;&#xA;&lt;li&gt;CMDB upgrade: compatibility improvements, supports Redis cluster/Greenplum cluster metadata, config file visualization&lt;/li&gt;&#xA;&lt;li&gt;Service discovery improvements: Consul can auto-discover all monitoring targets and integrate with Prometheus&lt;/li&gt;&#xA;&lt;li&gt;Better cold backup support: default scheduled backup tasks, &lt;code&gt;pg_probackup&lt;/code&gt; backup tool, one-click delayed replica creation&lt;/li&gt;&#xA;&lt;li&gt;ETCD can now be used as PostgreSQL/Patroni DCS service, as an alternative to Consul&lt;/li&gt;&#xA;&lt;li&gt;Redis playbook/role improvements: now allows init and remove operations for individual Redis instances, not just entire Redis nodes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;monitoring-system&#34;&gt;Monitoring System&#xA;&lt;/h3&gt;&#xA;&lt;h2 id=&#34;dashboards&#34;&gt;Dashboards&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CMDB Overview: visualize Pigsty CMDB Inventory&lt;/li&gt;&#xA;&lt;li&gt;DCS Overview: view Consul and ETCD cluster monitoring metrics&lt;/li&gt;&#xA;&lt;li&gt;Nginx Overview: view Pigsty Web access metrics and logs&lt;/li&gt;&#xA;&lt;li&gt;Grafana Overview: Grafana self-monitoring&lt;/li&gt;&#xA;&lt;li&gt;Prometheus Overview: Prometheus self-monitoring&lt;/li&gt;&#xA;&lt;li&gt;INFRA Dashboard redesigned to reflect overall infrastructure status&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;monitoring-architecture&#34;&gt;Monitoring Architecture&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Now allows Consul for service discovery (when all services are registered to Consul)&lt;/li&gt;&#xA;&lt;li&gt;All Infra components now enable self-monitoring and register to Prometheus and Consul via &lt;code&gt;infra_register&lt;/code&gt; role&lt;/li&gt;&#xA;&lt;li&gt;Metrics collector pg_exporter updated to v0.5.0, new features: &lt;code&gt;scale&lt;/code&gt; and &lt;code&gt;default&lt;/code&gt;, allowing metric multiplication factors and default values&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_bgwriter&lt;/code&gt;, &lt;code&gt;pg_wal&lt;/code&gt;, &lt;code&gt;pg_query&lt;/code&gt;, &lt;code&gt;pg_db&lt;/code&gt;, &lt;code&gt;pgbouncer_stat&lt;/code&gt; time-related metrics now uniformly scaled to seconds from milliseconds/microseconds&lt;/li&gt;&#xA;&lt;li&gt;Related counter metrics in &lt;code&gt;pg_table&lt;/code&gt; now have default value &lt;code&gt;0&lt;/code&gt; instead of &lt;code&gt;NaN&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_class&lt;/code&gt; metrics collector removed by default, related metrics added to &lt;code&gt;pg_table&lt;/code&gt; and &lt;code&gt;pg_index&lt;/code&gt; collectors&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_table_size&lt;/code&gt; metrics collector now enabled by default with 300-second cache time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;deployment&#34;&gt;Deployment&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New optional package &lt;code&gt;docker.tgz&lt;/code&gt; with common app images: Pgadmin, Pgweb, Postgrest, ByteBase, Kong, Minio, etc.&lt;/li&gt;&#xA;&lt;li&gt;New ETCD role: automatically deploys ETCD service on DCS Server nodes and integrates with monitoring&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_dcs_type&lt;/code&gt; specifies DCS service for PG high-availability: Consul (default), ETCD (alternative)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;node_crontab&lt;/code&gt; parameter for configuring node scheduled tasks like database backups, VACUUM, statistics collection&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;pg_checksum&lt;/code&gt; option: when enabled, database cluster enables data checksums (previously only &lt;code&gt;crit&lt;/code&gt; template enabled by default)&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;pg_delay&lt;/code&gt; option: when instance is Standby Cluster Leader, this parameter configures a &lt;strong&gt;delayed replica&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;pg_probackup&lt;/code&gt; package, default role &lt;code&gt;replicator&lt;/code&gt; now has backup-related function permissions&lt;/li&gt;&#xA;&lt;li&gt;Redis deployment split into two parts: Redis node and Redis instance, &lt;code&gt;redis_port&lt;/code&gt; parameter controls specific instances&lt;/li&gt;&#xA;&lt;li&gt;Loki and Promtail now installed via &lt;code&gt;fpm&lt;/code&gt;-built RPM packages&lt;/li&gt;&#xA;&lt;li&gt;DCS3 config template now uses a 3-node &lt;code&gt;pg-meta&lt;/code&gt; cluster with a single-node delayed replica&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL upgraded to 14.3&lt;/li&gt;&#xA;&lt;li&gt;Redis upgraded to 6.2.7&lt;/li&gt;&#xA;&lt;li&gt;PG Exporter upgraded to 0.5.0&lt;/li&gt;&#xA;&lt;li&gt;Consul upgraded to 1.12.0&lt;/li&gt;&#xA;&lt;li&gt;vip-manager upgraded to v1.0.2&lt;/li&gt;&#xA;&lt;li&gt;Grafana upgraded to v8.5.2&lt;/li&gt;&#xA;&lt;li&gt;Loki &amp;amp; Promtail upgraded to v2.5.0, using fpm packaging&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed Loki and Promtail default config filename issues&lt;/li&gt;&#xA;&lt;li&gt;Fixed Loki and Promtail environment variable expansion issues&lt;/li&gt;&#xA;&lt;li&gt;Complete English documentation translation and revision; documentation JS resources now served locally, no internet access required&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h3&gt;&#xA;&lt;h2 id=&#34;new-parameters&#34;&gt;New Parameters&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;node_data_dir&lt;/code&gt;: Main data mount path, created if doesn&amp;rsquo;t exist&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;node_crontab_overwrite&lt;/code&gt;: Overwrite &lt;code&gt;/etc/crontab&lt;/code&gt; instead of appending&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;node_crontab&lt;/code&gt;: Node crontab content to append or overwrite&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;nameserver_enabled&lt;/code&gt;: Enable nameserver on this infra node?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;prometheus_enabled&lt;/code&gt;: Enable prometheus on this infra node?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;grafana_enabled&lt;/code&gt;: Enable grafana on this infra node?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;loki_enabled&lt;/code&gt;: Enable loki on this infra node?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker_enable&lt;/code&gt;: Enable docker on this infra node?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;consul_enable&lt;/code&gt;: Enable consul server/agent?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;etcd_enable&lt;/code&gt;: Enable etcd server/client?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_checksum&lt;/code&gt;: Enable pg cluster data checksums?&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_delay&lt;/code&gt;: Application delay when backup cluster leader replays replication&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;parameter-redesign&#34;&gt;Parameter Redesign&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;*_clean&lt;/code&gt; is now a boolean parameter for cleaning existing instances during init.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.4.1</title>
        <link>https://pgsty.pro/blog/release/1.4.1/</link>
        <pubDate>Wed, 20 Apr 2022 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.4.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.4.1&lt;/strong&gt; · &lt;time datetime=&#34;2022-04-20&#34;&gt;2022-04-20&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.4.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.4.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.4.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Bug fixes / Docker support / English documentation&lt;/p&gt;&#xA;&lt;p&gt;Docker is now enabled by default on the meta node, allowing you to spin up various software.&lt;/p&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed Promtail &amp;amp; Loki configuration variable issues&lt;/li&gt;&#xA;&lt;li&gt;Fixed Grafana legacy alerts&lt;/li&gt;&#xA;&lt;li&gt;Disabled nameserver by default&lt;/li&gt;&#xA;&lt;li&gt;Renamed pg-alias.sh for Patroni shortcuts&lt;/li&gt;&#xA;&lt;li&gt;Disabled exemplars queries for all dashboards&lt;/li&gt;&#xA;&lt;li&gt;Fixed Loki data directory issue&lt;/li&gt;&#xA;&lt;li&gt;Changed &lt;code&gt;autovacuum_freeze_max_age&lt;/code&gt; from 100000000 to 1000000000&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.4.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.4/&#34;&gt;Pigsty v1.4 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v141&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.4.0...v1.4.1&#34;&gt;Source comparison: &lt;code&gt;v1.4.0...v1.4.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.4.0</title>
        <link>https://pgsty.pro/blog/release/1.4.0/</link>
        <pubDate>Thu, 31 Mar 2022 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.4.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.4.0&lt;/strong&gt; · &lt;time datetime=&#34;2022-03-31&#34;&gt;2022-03-31&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.4.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.4.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.4.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;architecture&#34;&gt;Architecture&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Decoupled system into 4 major categories: &lt;code&gt;INFRA&lt;/code&gt;, &lt;code&gt;NODES&lt;/code&gt;, &lt;code&gt;PGSQL&lt;/code&gt;, &lt;code&gt;REDIS&lt;/code&gt;, making Pigsty clearer and more extensible&lt;/li&gt;&#xA;&lt;li&gt;Single-node deployment = &lt;code&gt;INFRA&lt;/code&gt; + &lt;code&gt;NODES&lt;/code&gt; + &lt;code&gt;PGSQL&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;PGSQL cluster deployment = &lt;code&gt;NODES&lt;/code&gt; + &lt;code&gt;PGSQL&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Redis cluster deployment = &lt;code&gt;NODES&lt;/code&gt; + &lt;code&gt;REDIS&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Other database deployment = &lt;code&gt;NODES&lt;/code&gt; + xxx (e.g., &lt;code&gt;MONGO&lt;/code&gt;, &lt;code&gt;KAFKA&lt;/code&gt;&amp;hellip;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;accessibility&#34;&gt;Accessibility&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CDN for mainland China&lt;/li&gt;&#xA;&lt;li&gt;Use &lt;code&gt;bash -c &amp;quot;$(curl -fsSL http://get.pigsty.cc/latest)&amp;quot;&lt;/code&gt; to get latest source&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;download&lt;/code&gt; script to download and extract packages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;monitoring-enhancements&#34;&gt;Monitoring Enhancements&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Split monitoring into 5 categories: &lt;code&gt;INFRA&lt;/code&gt;, &lt;code&gt;NODES&lt;/code&gt;, &lt;code&gt;REDIS&lt;/code&gt;, &lt;code&gt;PGSQL&lt;/code&gt;, &lt;code&gt;APP&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Logging enabled by default&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;loki&lt;/code&gt; and &lt;code&gt;promtail&lt;/code&gt; now enabled by default, with prebuilt &lt;a href=&#34;https://github.com/Vonng/loki-rpm&#34;&gt;loki-rpm&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Model and labels&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added hidden &lt;code&gt;ds&lt;/code&gt; prometheus datasource variable to all dashboards&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;ip&lt;/code&gt; label to all metrics, used as join key between database and node metrics&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;INFRA Monitoring&#xA;&lt;ul&gt;&#xA;&lt;li&gt;INFRA main dashboard: INFRA Overview&lt;/li&gt;&#xA;&lt;li&gt;Added Log dashboard: Logs Instance&lt;/li&gt;&#xA;&lt;li&gt;PGLOG Analysis and PGLOG Session now treated as sample Pigsty APPs&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;NODES Monitoring Application&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pigsty can be used standalone as host monitoring software&lt;/li&gt;&#xA;&lt;li&gt;Includes 4 core dashboards: Nodes Overview &amp;amp; Nodes Cluster &amp;amp; Nodes Instance &amp;amp; Nodes Alert&lt;/li&gt;&#xA;&lt;li&gt;New identity variables for nodes: &lt;code&gt;node_cluster&lt;/code&gt; and &lt;code&gt;nodename&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;PGSQL Monitoring Enhancements&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New PGSQL Cluster, simplified and focused on what matters in a cluster&lt;/li&gt;&#xA;&lt;li&gt;New dashboard PGSQL Databases for cluster-level object monitoring&lt;/li&gt;&#xA;&lt;li&gt;PGSQL Alert dashboard now focuses solely on PGSQL alerts&lt;/li&gt;&#xA;&lt;li&gt;PGSQL Shard added to PGSQL&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Redis Monitoring Enhancements&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added node monitoring to all Redis dashboards&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;matrixdb-support&#34;&gt;MatrixDB Support&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MatrixDB (Greenplum 7) can be deployed via &lt;code&gt;pigsty-matrix.yml&lt;/code&gt; playbook&lt;/li&gt;&#xA;&lt;li&gt;MatrixDB monitoring dashboard: PGSQL MatrixDB&lt;/li&gt;&#xA;&lt;li&gt;Added sample configuration: &lt;code&gt;pigsty-mxdb.yml&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 14.2&lt;/li&gt;&#xA;&lt;li&gt;PostGIS 3.2&lt;/li&gt;&#xA;&lt;li&gt;TimescaleDB 2.6&lt;/li&gt;&#xA;&lt;li&gt;Patroni 2.1.3 (Prometheus metrics + failover slots)&lt;/li&gt;&#xA;&lt;li&gt;HAProxy 2.5.5 (fixed stats errors, more metrics)&lt;/li&gt;&#xA;&lt;li&gt;PG Exporter 0.4.1 (timeout parameters, etc.)&lt;/li&gt;&#xA;&lt;li&gt;Grafana 8.4.4&lt;/li&gt;&#xA;&lt;li&gt;Prometheus 2.33.4&lt;/li&gt;&#xA;&lt;li&gt;Greenplum 6.19.4 / MatrixDB 4.4.0&lt;/li&gt;&#xA;&lt;li&gt;Loki now provided as RPM package instead of ZIP archive&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Removed Patroni&amp;rsquo;s Consul dependency, making migration to new Consul clusters easier&lt;/li&gt;&#xA;&lt;li&gt;Fixed Prometheus bin/new script default data directory path&lt;/li&gt;&#xA;&lt;li&gt;Added restart seconds in vip-manager systemd service&lt;/li&gt;&#xA;&lt;li&gt;Fixed typos and tasks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h3&gt;&#xA;&lt;h2 id=&#34;new-variables&#34;&gt;New Variables&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;node_cluster&lt;/code&gt;: Identity variable for node cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;nodename_overwrite&lt;/code&gt;: If set, nodename will be set to node&amp;rsquo;s hostname&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;nodename_exchange&lt;/code&gt;: Exchange node hostnames between play hosts (in &lt;code&gt;/etc/hosts&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;node_dns_hosts_extra&lt;/code&gt;: Extra static DNS records easily overridable by single instance/cluster&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;patroni_enabled&lt;/code&gt;: If disabled, postgres &amp;amp; patroni bootstrap not executed during &lt;code&gt;postgres&lt;/code&gt; role&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pgbouncer_enabled&lt;/code&gt;: If disabled, pgbouncer not started during &lt;code&gt;postgres&lt;/code&gt; role&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_exporter_params&lt;/code&gt;: Extra URL parameters for pg_exporter when generating monitoring target URL&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;pg_provision&lt;/code&gt;: Boolean variable indicating whether to execute provisioning part of &lt;code&gt;postgres&lt;/code&gt; role&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;no_cmdb&lt;/code&gt;: Used for &lt;code&gt;infra.yml&lt;/code&gt; and &lt;code&gt;infra-demo.yml&lt;/code&gt; playbooks, won&amp;rsquo;t create CMDB on meta node&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.4.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.4/&#34;&gt;Pigsty v1.4 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v140&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.3.1...v1.4.0&#34;&gt;Source comparison: &lt;code&gt;v1.3.1...v1.4.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.3.1</title>
        <link>https://pgsty.pro/blog/release/1.3.1/</link>
        <pubDate>Fri, 10 Dec 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.3.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.3.1&lt;/strong&gt; · &lt;time datetime=&#34;2021-12-10&#34;&gt;2021-12-10&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.3.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.3.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.3.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;monitoring&#34;&gt;Monitoring&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PGSQL &amp;amp; PGCAT dashboard improvements&lt;/li&gt;&#xA;&lt;li&gt;Optimized PGCAT Instance &amp;amp; PGCAT Database layout&lt;/li&gt;&#xA;&lt;li&gt;Added key metric panels to PGSQL Instance dashboard (consistent with PGSQL Cluster)&lt;/li&gt;&#xA;&lt;li&gt;Added table/index bloat panels to PGCAT Database, removed PGCAT Bloat dashboard&lt;/li&gt;&#xA;&lt;li&gt;Added index information to PGCAT Database dashboard&lt;/li&gt;&#xA;&lt;li&gt;Fixed broken panels in Grafana 8.3&lt;/li&gt;&#xA;&lt;li&gt;Added Redis index to Nginx homepage&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;deployment&#34;&gt;Deployment&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New &lt;code&gt;infra-demo.yml&lt;/code&gt; playbook for one-click bootstrap&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;infra-jupyter.yml&lt;/code&gt; playbook for optional JupyterLab server&lt;/li&gt;&#xA;&lt;li&gt;New &lt;code&gt;infra-pgweb.yml&lt;/code&gt; playbook for optional PGWeb server&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;pg&lt;/code&gt; alias on meta node for starting PostgreSQL cluster from admin user&lt;/li&gt;&#xA;&lt;li&gt;Adjusted &lt;code&gt;max_locks_per_transactions&lt;/code&gt; in all Patroni config templates per &lt;code&gt;timescaledb-tune&lt;/code&gt; recommendations&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;citus.node_conninfo: &#39;sslmode=prefer&#39;&lt;/code&gt; to config templates for SSL-free Citus usage&lt;/li&gt;&#xA;&lt;li&gt;Added all extensions (except pgrouting) from PGDG14 to package list&lt;/li&gt;&#xA;&lt;li&gt;Upgraded node_exporter to v1.3.1&lt;/li&gt;&#xA;&lt;li&gt;Added PostgREST v9.0.0 for generating REST APIs from PostgreSQL schemas&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Grafana security vulnerability fix (upgraded to v8.3.1, &lt;a href=&#34;https://grafana.com/blog/2021/12/07/grafana-8.3.1-8.2.7-8.1.8-and-8.0.7-released-with-high-severity-security-fix/&#34;&gt;details&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Fixed &lt;code&gt;pg_instance&lt;/code&gt; &amp;amp; &lt;code&gt;pg_service&lt;/code&gt; issues in &lt;code&gt;register&lt;/code&gt; role when starting playbook mid-run&lt;/li&gt;&#xA;&lt;li&gt;Fixed Nginx homepage rendering on hosts without &lt;code&gt;pg_cluster&lt;/code&gt; variable&lt;/li&gt;&#xA;&lt;li&gt;Fixed style issues when upgrading to Grafana 8.3.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.3.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.3/&#34;&gt;Pigsty v1.3 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.3.0...v1.3.1&#34;&gt;Source comparison: &lt;code&gt;v1.3.0...v1.3.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.3.0</title>
        <link>https://pgsty.pro/blog/release/1.3.0/</link>
        <pubDate>Tue, 30 Nov 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.3.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.3.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-11-30&#34;&gt;2021-11-30&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.3.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.3.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.3.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;redis-support&#34;&gt;Redis Support&#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;&gt;Feature&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;Redis Deployment&lt;/td&gt;&#xA;      &lt;td&gt;Standalone, Sentinel, and Cluster modes&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Redis Monitoring&lt;/td&gt;&#xA;      &lt;td&gt;Overview, Cluster, and Instance dashboards&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;pgcat-overhaul&#34;&gt;PGCAT Overhaul&#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;&gt;Dashboard&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;PGCAT Instance&lt;/td&gt;&#xA;      &lt;td&gt;New instance-level catalog dashboard&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;PGCAT Database&lt;/td&gt;&#xA;      &lt;td&gt;New database-level catalog dashboard&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;PGCAT Table&lt;/td&gt;&#xA;      &lt;td&gt;Redesigned table-level dashboard&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;pgsql-enhancements&#34;&gt;PGSQL Enhancements&#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;&gt;Dashboard&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Improvements&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;PGSQL Cluster&lt;/td&gt;&#xA;      &lt;td&gt;Added 10 key metric panels&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;PGSQL Instance&lt;/td&gt;&#xA;      &lt;td&gt;Added 10 key metric panels&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;PGSQL Service&lt;/td&gt;&#xA;      &lt;td&gt;Simplified and redesigned&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Cross-references&lt;/td&gt;&#xA;      &lt;td&gt;Navigation links between PGCAT and PGSQL dashboards&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;monitor-deployment&#34;&gt;Monitor Deployment&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Grafana datasources auto-register during monitor-only deployment&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 13 added to default package list&lt;/li&gt;&#xA;&lt;li&gt;PostgreSQL upgraded to 14.1 as default&lt;/li&gt;&#xA;&lt;li&gt;Added Greenplum RPM packages and dependencies&lt;/li&gt;&#xA;&lt;li&gt;Added Redis RPM and source packages&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;perf&lt;/code&gt; as default package&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.3.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.3/&#34;&gt;Pigsty v1.3 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v130&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.2.0...v1.3.0&#34;&gt;Source comparison: &lt;code&gt;v1.2.0...v1.3.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.2.0</title>
        <link>https://pgsty.pro/blog/release/1.2.0/</link>
        <pubDate>Wed, 03 Nov 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.2.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.2.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-11-03&#34;&gt;2021-11-03&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.2.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.2.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.2.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;core-features&#34;&gt;Core Features&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Default to PostgreSQL 14&lt;/li&gt;&#xA;&lt;li&gt;Default to TimescaleDB 2.5 extension&lt;/li&gt;&#xA;&lt;li&gt;TimescaleDB and PostGIS enabled by default in CMDB&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;monitor-only-mode&#34;&gt;Monitor-Only Mode&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitor existing PostgreSQL instances via connection URL only&lt;/li&gt;&#xA;&lt;li&gt;pg_exporter deployed on local meta node&lt;/li&gt;&#xA;&lt;li&gt;New PGSQL Cluster Monly dashboard for remote clusters&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Grafana upgraded to 8.2.2&lt;/li&gt;&#xA;&lt;li&gt;pev2 upgraded to v0.11.9&lt;/li&gt;&#xA;&lt;li&gt;Promscale upgraded to 0.6.2&lt;/li&gt;&#xA;&lt;li&gt;PgWeb upgraded to 0.11.9&lt;/li&gt;&#xA;&lt;li&gt;New extensions: pglogical, pg_stat_monitor, orafce&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;improvements&#34;&gt;Improvements&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Auto-detect machine specs and use appropriate &lt;code&gt;node_tune&lt;/code&gt; and &lt;code&gt;pg_conf&lt;/code&gt; templates&lt;/li&gt;&#xA;&lt;li&gt;Reworked bloat-related views, exposing more information&lt;/li&gt;&#xA;&lt;li&gt;Removed TimescaleDB and Citus internal monitoring&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;pgsql-audit.yml&lt;/code&gt; playbook for creating audit reports&lt;/li&gt;&#xA;&lt;li&gt;All config templates simplified to two: auto and demo&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pgbouncer_exporter resource owner changed to &lt;code&gt;{{ pg_dbsu }}&lt;/code&gt; instead of postgres&lt;/li&gt;&#xA;&lt;li&gt;Fixed pg_exporter duplicate metrics on pg_table/pg_index during &lt;code&gt;REINDEX TABLE CONCURRENTLY&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.2.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.2/&#34;&gt;Pigsty v1.2 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v120&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.1.1...v1.2.0&#34;&gt;Source comparison: &lt;code&gt;v1.1.1...v1.2.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.1.1</title>
        <link>https://pgsty.pro/blog/release/1.1.1/</link>
        <pubDate>Wed, 20 Oct 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.1.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.1.1&lt;/strong&gt; · &lt;time datetime=&#34;2021-10-20&#34;&gt;2021-10-20&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.1.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.1.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.1.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Replaced TimescaleDB &lt;code&gt;apache&lt;/code&gt; version with &lt;code&gt;timescale&lt;/code&gt; version&lt;/li&gt;&#xA;&lt;li&gt;Upgraded Prometheus to 2.30&lt;/li&gt;&#xA;&lt;li&gt;Fixed pg_exporter config directory owner issue (changed to &lt;code&gt;{{ pg_dbsu }}&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrade-notes&#34;&gt;Upgrade Notes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The main change in this version is TimescaleDB — using the official TimescaleDB License (TSL) version to replace the Apache License v2 version from the PGDG repository.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-ae28b916-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;6&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-ae28b916-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;&#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;## Sources&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&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;o&#34;&gt;[&lt;/span&gt;GitHub release&lt;span class=&#34;o&#34;&gt;](&lt;/span&gt;https://github.com/pgsty/pigsty/releases/tag/v1.1.1&lt;span class=&#34;o&#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;o&#34;&gt;[&lt;/span&gt;Pigsty v1.1 release article&lt;span class=&#34;o&#34;&gt;](&lt;/span&gt;https://pigsty.io/blog/pigsty/v1.1/&lt;span class=&#34;o&#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;o&#34;&gt;[&lt;/span&gt;Source comparison: &lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;v1.1...v1.1.1&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;](&lt;/span&gt;https://github.com/pgsty/pigsty/compare/v1.1...v1.1.1&lt;span class=&#34;o&#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;</description>
      </item>
    <item>
        <title>Pigsty v1.1.0</title>
        <link>https://pgsty.pro/blog/release/1.1.0/</link>
        <pubDate>Tue, 12 Oct 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.1.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.1&lt;/strong&gt; · &lt;time datetime=&#34;2021-10-12&#34;&gt;2021-10-12&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;feature-enhancements&#34;&gt;Feature Enhancements&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added &lt;code&gt;pg_dummy_filesize&lt;/code&gt; to create filesystem space placeholder&lt;/li&gt;&#xA;&lt;li&gt;Major homepage redesign&lt;/li&gt;&#xA;&lt;li&gt;Added JupyterLab integration&lt;/li&gt;&#xA;&lt;li&gt;Added PGWeb console integration&lt;/li&gt;&#xA;&lt;li&gt;Added PgBadger support&lt;/li&gt;&#xA;&lt;li&gt;Added PEV2 support, execution plan visualization tool&lt;/li&gt;&#xA;&lt;li&gt;Added pglog tooling&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;software-upgrades&#34;&gt;Software Upgrades&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL upgraded to v13.4 (with official PG14 support)&lt;/li&gt;&#xA;&lt;li&gt;pgbouncer upgraded to v1.16 (metric definitions updated)&lt;/li&gt;&#xA;&lt;li&gt;Grafana upgraded to v8.1.4&lt;/li&gt;&#xA;&lt;li&gt;Prometheus upgraded to v2.29&lt;/li&gt;&#xA;&lt;li&gt;node_exporter upgraded to v1.2.2&lt;/li&gt;&#xA;&lt;li&gt;HAProxy upgraded to v2.1.1&lt;/li&gt;&#xA;&lt;li&gt;Consul upgraded to v1.10.2&lt;/li&gt;&#xA;&lt;li&gt;vip-manager upgraded to v1.0.1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;nginx_upstream&lt;/code&gt; now has different structure (incompatible)&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;app_list&lt;/code&gt;, navigation entries rendered to homepage&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;docs_enabled&lt;/code&gt;, setup local docs on default server&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;pev2_enabled&lt;/code&gt;, setup local PEV2 tool&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;pgbadger_enabled&lt;/code&gt;, create log summary/report directory&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;jupyter_enabled&lt;/code&gt;, enable JupyterLab server on meta node&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;jupyter_username&lt;/code&gt;, specify user to run JupyterLab&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;jupyter_password&lt;/code&gt;, specify default password for JupyterLab&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;pgweb_enabled&lt;/code&gt;, enable PGWeb server on meta node&lt;/li&gt;&#xA;&lt;li&gt;New config entry: &lt;code&gt;pgweb_username&lt;/code&gt;, specify user to run PGWeb&lt;/li&gt;&#xA;&lt;li&gt;Renamed internal flag &lt;code&gt;repo_exist&lt;/code&gt; to &lt;code&gt;repo_exists&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;repo_address&lt;/code&gt; default value changed to &lt;code&gt;pigsty&lt;/code&gt; instead of &lt;code&gt;yum.pigsty&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;HAProxy access point changed to &lt;code&gt;http://pigsty&lt;/code&gt; instead of &lt;code&gt;http://h.pigsty&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.1/&#34;&gt;Pigsty v1.1 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v110&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.0.1...v1.1&#34;&gt;Source comparison: &lt;code&gt;v1.0.1...v1.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.0.1</title>
        <link>https://pgsty.pro/blog/release/1.0.1/</link>
        <pubDate>Tue, 14 Sep 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.0.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.0.1&lt;/strong&gt; · &lt;time datetime=&#34;2021-09-14&#34;&gt;2021-09-14&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.0.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.0.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.0.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;2021-09-14&lt;/p&gt;&#xA;&lt;h2 id=&#34;documentation-update&#34;&gt;Documentation Update&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Chinese documentation now available&lt;/li&gt;&#xA;&lt;li&gt;Machine-translated English documentation now available&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;pgsql-remove&lt;/code&gt; no longer removes primary instances&lt;/li&gt;&#xA;&lt;li&gt;Replaced pg_instance with pg_cluster + pg_seq (Start-At-Task could fail when pg_instance undefined)&lt;/li&gt;&#xA;&lt;li&gt;Removed Citus from default shared preload libraries (Citus forces max_prepared_transaction to non-zero)&lt;/li&gt;&#xA;&lt;li&gt;Added ssh sudo check in &lt;code&gt;configure&lt;/code&gt; (now uses &lt;code&gt;ssh -t sudo -n ls&lt;/code&gt; for permission check)&lt;/li&gt;&#xA;&lt;li&gt;Fixed &lt;code&gt;pg-backup&lt;/code&gt; script typo&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;optimizations&#34;&gt;Optimizations&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Removed NTP sanity check alert (duplicate of ClockSkew)&lt;/li&gt;&#xA;&lt;li&gt;Removed collector.systemd to reduce overhead&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.0.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.0/&#34;&gt;Pigsty v1.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v1.0.0...v1.0.1&#34;&gt;Source comparison: &lt;code&gt;v1.0.0...v1.0.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v1.0.0</title>
        <link>https://pgsty.pro/blog/release/1.0.0/</link>
        <pubDate>Mon, 26 Jul 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/1.0.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v1.0.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-07-26&#34;&gt;2021-07-26&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.0.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.0.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v1.0.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;monitoring-system-overhaul&#34;&gt;Monitoring System Overhaul&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New dashboards on Grafana 8.0&lt;/li&gt;&#xA;&lt;li&gt;New metric definitions, added PG14 support&lt;/li&gt;&#xA;&lt;li&gt;Simplified labeling system: static label set (job, cls, ins)&lt;/li&gt;&#xA;&lt;li&gt;New alerting rules and derived metrics&lt;/li&gt;&#xA;&lt;li&gt;Monitor multiple databases simultaneously&lt;/li&gt;&#xA;&lt;li&gt;Real-time log search &amp;amp; csvlog analysis&lt;/li&gt;&#xA;&lt;li&gt;Richly-linked dashboards, click through for drill-down/roll-up&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;architecture-changes&#34;&gt;Architecture Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added Citus and TimescaleDB to default installation&lt;/li&gt;&#xA;&lt;li&gt;Added PostgreSQL 14beta2 support&lt;/li&gt;&#xA;&lt;li&gt;Simplified HAProxy admin page indexing&lt;/li&gt;&#xA;&lt;li&gt;Decoupled infrastructure and PGSQL by adding new role &lt;code&gt;register&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added new roles &lt;code&gt;loki&lt;/code&gt; and &lt;code&gt;promtail&lt;/code&gt; for logging&lt;/li&gt;&#xA;&lt;li&gt;Added new role &lt;code&gt;environ&lt;/code&gt; to setup environment for admin user on meta node&lt;/li&gt;&#xA;&lt;li&gt;Default to &lt;code&gt;static&lt;/code&gt; service discovery for Prometheus (instead of &lt;code&gt;consul&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Added new role &lt;code&gt;remove&lt;/code&gt; for graceful cluster and instance removal&lt;/li&gt;&#xA;&lt;li&gt;Upgraded Prometheus and Grafana provisioning logic&lt;/li&gt;&#xA;&lt;li&gt;Upgraded to vip-manager 1.0, node_exporter 1.2, pg_exporter 0.4, Grafana 8.0&lt;/li&gt;&#xA;&lt;li&gt;Every database on every instance auto-registers as a Grafana datasource&lt;/li&gt;&#xA;&lt;li&gt;Moved Consul registration to &lt;code&gt;register&lt;/code&gt; role, changed Consul service tags&lt;/li&gt;&#xA;&lt;li&gt;Added cmdb.sql as pg-meta baseline definition (CMDB &amp;amp; PGLOG)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;application-framework&#34;&gt;Application Framework&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Extensible framework for new features&lt;/li&gt;&#xA;&lt;li&gt;Core app: PostgreSQL monitoring system &lt;code&gt;pgsql&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Core app: PostgreSQL catalog explorer &lt;code&gt;pgcat&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Core app: PostgreSQL csvlog analyzer &lt;code&gt;pglog&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added sample app &lt;code&gt;covid&lt;/code&gt; for COVID-19 data visualization&lt;/li&gt;&#xA;&lt;li&gt;Added sample app &lt;code&gt;isd&lt;/code&gt; for ISD weather data visualization&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;other&#34;&gt;Other&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added JupyterLab for full Python data science environment&lt;/li&gt;&#xA;&lt;li&gt;Added &lt;code&gt;vonng-echarts-panel&lt;/code&gt; to restore ECharts support&lt;/li&gt;&#xA;&lt;li&gt;Added wrapper scripts &lt;code&gt;createpg&lt;/code&gt;, &lt;code&gt;createdb&lt;/code&gt;, &lt;code&gt;createuser&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Added CMDB dynamic inventory scripts: &lt;code&gt;load_conf.py&lt;/code&gt;, &lt;code&gt;inventory_cmdb&lt;/code&gt;, &lt;code&gt;inventory_conf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Removed obsolete playbooks: &lt;code&gt;pgsql-monitor&lt;/code&gt;, &lt;code&gt;pgsql-service&lt;/code&gt;, &lt;code&gt;node-remove&lt;/code&gt;, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;node_meta_pip_install&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;grafana_admin_username&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;grafana_database&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;grafana_pgurl&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;pg_shared_libraries&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;pg_exporter_auto_discovery&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;pg_exporter_exclude_database&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;New variable: &lt;code&gt;pg_exporter_include_database&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Variable renamed: &lt;code&gt;grafana_url&lt;/code&gt; → &lt;code&gt;grafana_endpoint&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed default timezone Asia/Shanghai (CST) issue&lt;/li&gt;&#xA;&lt;li&gt;Fixed nofile limits for pgbouncer &amp;amp; patroni&lt;/li&gt;&#xA;&lt;li&gt;pgbouncer user list and database list now generated when running tag &lt;code&gt;pgbouncer&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v1.0.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v1.0/&#34;&gt;Pigsty v1.0 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v100&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v0.9.1...v1.0.0&#34;&gt;Source comparison: &lt;code&gt;v0.9.1...v1.0.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.9.1</title>
        <link>https://pgsty.pro/blog/release/0.9.1/</link>
        <pubDate>Thu, 20 May 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.9.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.9.1&lt;/strong&gt; · &lt;time datetime=&#34;2021-05-20&#34;&gt;2021-05-20&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.9.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.9.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.9.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Update package version:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PostgreSQL 13.3&lt;/li&gt;&#xA;&lt;li&gt;Grafana 7.5.6&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Add configure support.&lt;/p&gt;&#xA;&lt;p&gt;Now install pigsty with 3 steps: download, configure and install:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-e64fcc94-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;&#34; data-td-line-count=&#34;3&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-e64fcc94-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl -fsSL https://github.com/pgsty/pigsty/releases/download/v0.9.1/pigsty.tgz | gzip -d | tar -xC ~; cd ~/pigsty&#xA;./configure&#xA;make install&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;WoW! just like old time!&lt;/p&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.9.1&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v0.9/&#34;&gt;Pigsty v0.9 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v0.9.0...v0.9.1&#34;&gt;Source comparison: &lt;code&gt;v0.9.0...v0.9.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.9.0</title>
        <link>https://pgsty.pro/blog/release/0.9.0/</link>
        <pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.9.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.9.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-05-01&#34;&gt;2021-05-01&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.9.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.9.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.9.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;new-stuff&#34;&gt;New Stuff&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;One-liner install&lt;/strong&gt;: &lt;code&gt;curl -fsSL https://pigsty.cc/install | bash&lt;/code&gt; bootstraps everything.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;pigsty-cli&lt;/code&gt;&lt;/strong&gt;: wraps the common Ansible playbooks so you stop copy-pasting command lines. Still beta but already handy.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Loki + Promtail&lt;/strong&gt;: Postgres, pgbouncer, and Patroni logs stream into Grafana with metrics extracted from log volume. &lt;code&gt;infra-loki.yml&lt;/code&gt; and &lt;code&gt;pgsql-promtail.yml&lt;/code&gt; wire things up.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Binary exporters&lt;/strong&gt;: grab monitoring binaries with &lt;code&gt;files/get_bin.sh&lt;/code&gt; if you don&amp;rsquo;t want to rely on repos.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Flight mode&lt;/strong&gt;: once the meta node is initialized you can run &lt;code&gt;bin/upgrade&lt;/code&gt; to switch into a dynamic inventory using data stored inside &lt;code&gt;pg-meta&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;fixes&#34;&gt;Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Cleaned up HAProxy health checks that were flooding PG and Patroni logs with &lt;code&gt;connection reset&lt;/code&gt; noise.&lt;/li&gt;&#xA;&lt;li&gt;Patroni logs now carry readable timestamps (no more millisecond fragments) and explicit time zones.&lt;/li&gt;&#xA;&lt;li&gt;Monitoring queries run by &lt;code&gt;dbuser_monitor&lt;/code&gt; log only when slower than 1s.&lt;/li&gt;&#xA;&lt;li&gt;Grafana role refactor keeps the API stable, but uses CDN-hosted plugin bundles for faster installs.&lt;/li&gt;&#xA;&lt;li&gt;Pgbouncer user creation now handles md5 passwords properly.&lt;/li&gt;&#xA;&lt;li&gt;Hardened SQL templates for DB/user creation, fixed DNS orchestration edge cases, and tidied Makefile typos.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;knob-changes&#34;&gt;Knob Changes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;node_disable_swap&lt;/code&gt; defaults to &lt;code&gt;false&lt;/code&gt;; Pigsty no longer nukes swap by default.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;node_sysctl_params&lt;/code&gt; stops writing kernel tunables unless you explicitly set them.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;grafana_plugin: install&lt;/code&gt; now means “download from CDN if cache is missing.”&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;repo_url_packages&lt;/code&gt; pulls extra RPMs from the Pigsty CDN so installs inside China work out of the box.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;proxy_env.no_proxy&lt;/code&gt; includes the CDN endpoints.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;grafana_customize&lt;/code&gt; defaults to &lt;code&gt;false&lt;/code&gt;; flip it on only if you have the Pigsty Pro UI bits.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;node_admin_pk_current&lt;/code&gt; adds your current &lt;code&gt;~/.ssh/id_rsa.pub&lt;/code&gt; to the admin account.&lt;/li&gt;&#xA;&lt;li&gt;Loki/Promtail knobs: &lt;code&gt;loki_clean&lt;/code&gt;, &lt;code&gt;loki_data_dir&lt;/code&gt;, &lt;code&gt;promtail_enabled&lt;/code&gt;, &lt;code&gt;promtail_clean&lt;/code&gt;, &lt;code&gt;promtail_port&lt;/code&gt;, &lt;code&gt;promtail_status_file&lt;/code&gt;, &lt;code&gt;promtail_send_url&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.9.0&#34;&gt;GitHub release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v0.9/&#34;&gt;Pigsty v0.9 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v090&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v0.8.0...v0.9.0&#34;&gt;Source comparison: &lt;code&gt;v0.8.0...v0.9.0&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.8.0</title>
        <link>https://pgsty.pro/blog/release/0.8.0/</link>
        <pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.8.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.8.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-03-28&#34;&gt;2021-03-28&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.8.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.8.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.8.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;v0.8 finalizes the provisioning API. Services are completely rebuilt: instead of a hard-coded primary/replica pair you can now declare any number of services, plug in HAProxy, swap in an external load balancer, or hand off to a custom VIP controller. Everything else in the supply chain stabilizes on top of this model.&lt;/p&gt;&#xA;&lt;h2 id=&#34;service-api&#34;&gt;Service API&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The old &lt;code&gt;vip&lt;/code&gt; and &lt;code&gt;haproxy&lt;/code&gt; knobs moved under the &lt;code&gt;service&lt;/code&gt; role. &lt;code&gt;pg_services&lt;/code&gt; (plus &lt;code&gt;pg_services_extra&lt;/code&gt;) define each exposed endpoint—name, ports, selectors, health checks, weights, and balancer hints. Selectors are JMESPath filters over cluster members, and optional &lt;code&gt;selector_backup&lt;/code&gt; pools handle fail-in when replicas are gone. Out of the box we ship &lt;code&gt;primary&lt;/code&gt;, &lt;code&gt;replica&lt;/code&gt;, &lt;code&gt;default&lt;/code&gt;, and &lt;code&gt;offline&lt;/code&gt; service definitions; swap &lt;code&gt;dst_port&lt;/code&gt; to point at &lt;code&gt;postgres&lt;/code&gt;, &lt;code&gt;pgbouncer&lt;/code&gt;, or any number.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.7.0</title>
        <link>https://pgsty.pro/blog/release/0.7.0/</link>
        <pubDate>Mon, 01 Mar 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.7.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.7.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-03-01&#34;&gt;2021-03-01&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.7.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.7.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.7.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Pigsty v0.7 focuses on plugging existing fleets into Pigsty&amp;rsquo;s observability stack. The new monitor-only flow lets you drop Pigsty dashboards onto databases that were provisioned elsewhere, and the declarative APIs for databases and users got a much needed redesign.&lt;/p&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitor-only deployment flow (&lt;code&gt;monly&lt;/code&gt;) with its own playbook.&lt;/li&gt;&#xA;&lt;li&gt;Split static Prometheus target files by cluster for easier hand-editing.&lt;/li&gt;&#xA;&lt;li&gt;New helper playbooks: &lt;code&gt;pgsql-createuser.yml&lt;/code&gt; and &lt;code&gt;pgsql-createdb.yml&lt;/code&gt; for live clusters.&lt;/li&gt;&#xA;&lt;li&gt;Database and user schema definitions now cover owner/template/locale knobs plus per-role capabilities.&lt;/li&gt;&#xA;&lt;li&gt;Bug fixes for extension schema typos and pgbouncer reload.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;New options:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.6.0</title>
        <link>https://pgsty.pro/blog/release/0.6.0/</link>
        <pubDate>Fri, 19 Feb 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.6.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.6.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-02-19&#34;&gt;2021-02-19&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.6.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.6.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.6.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Pigsty v0.6 responds to user feedback with a redesigned provisioning path plus a monitoring stack that can sit beside any managed PG fleet—even a MyBase cluster built elsewhere.&lt;/p&gt;&#xA;&lt;h2 id=&#34;bug-fixes&#34;&gt;Bug Fixes&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Patroni no longer resets PG HBA on restart.&lt;/li&gt;&#xA;&lt;li&gt;Fixed copy typos and the default primary for the &lt;code&gt;pg-test&lt;/code&gt; sandbox cluster.&lt;/li&gt;&#xA;&lt;li&gt;Patched the dashboard title typo on PG Overview.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;feature-work&#34;&gt;Feature Work&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Monitoring supply chain overhaul: Prometheus can now run fully static, exporters accept &lt;code&gt;service_registry&lt;/code&gt; toggles, and &lt;code&gt;exporter_binary_install&lt;/code&gt; lets you drop binaries without hitting repos. Each exporter has its own &lt;code&gt;*_enabled&lt;/code&gt; flag.&lt;/li&gt;&#xA;&lt;li&gt;Prometheus static discovery is rendered straight from inventory, so you can graft Pigsty dashboards onto any PG-as-a-service footprint.&lt;/li&gt;&#xA;&lt;li&gt;HAProxy provisioning adds a global console at &lt;code&gt;h.pigsty&lt;/code&gt;, optional auth, fallback routing to the primary when all replicas die, and per-service weight tuning.&lt;/li&gt;&#xA;&lt;li&gt;ACL defaults now include &lt;code&gt;dbrole_offline&lt;/code&gt; for slow-query/ETL workloads plus HBA rules that fence those workloads to marked nodes.&lt;/li&gt;&#xA;&lt;li&gt;Component refresh: PostgreSQL 13.2, Prometheus 2.25, pg_exporter 0.3.2, node_exporter 1.1, Consul 1.9.3, and a faster ZJU PG mirror.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;api-changes&#34;&gt;API Changes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;New knobs:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.5.2</title>
        <link>https://pgsty.pro/blog/release/0.5.2/</link>
        <pubDate>Wed, 20 Jan 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.5.2/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.5.2&lt;/strong&gt; · &lt;time datetime=&#34;2021-01-20&#34;&gt;2021-01-20&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.5.2&#34;&gt;View tag&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.5.2.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.5.2.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Made &lt;code&gt;pigsty.yml&lt;/code&gt; the default configuration and reorganized the standard &lt;code&gt;sandbox.yml&lt;/code&gt;, &lt;code&gt;infra.yml&lt;/code&gt;, and &lt;code&gt;pgsql.yml&lt;/code&gt; workflows.&lt;/li&gt;&#xA;&lt;li&gt;Split VIP management from HAProxy and added administrator authentication, traffic weights, and primary fallback controls.&lt;/li&gt;&#xA;&lt;li&gt;Added the nameserver step to the main playbook and refreshed the accompanying documentation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;v0.5.2&lt;/code&gt; is a tagged maintenance snapshot without a separately authored GitHub Release body.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.5.1</title>
        <link>https://pgsty.pro/blog/release/0.5.1/</link>
        <pubDate>Wed, 13 Jan 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.5.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.5.1&lt;/strong&gt; · &lt;time datetime=&#34;2021-01-13&#34;&gt;2021-01-13&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.5.1&#34;&gt;View tag&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.5.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.5.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fixed PostgreSQL cluster and instance dashboard issues found after &lt;code&gt;v0.5.0&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Switched the default PostgreSQL mirror to Zhejiang University for faster regional installs.&lt;/li&gt;&#xA;&lt;li&gt;Refreshed the README and consolidated the &lt;code&gt;v0.5&lt;/code&gt; documentation snapshot.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;v0.5.1&lt;/code&gt; is a tagged maintenance snapshot without a separately authored GitHub Release body.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.5.1&#34;&gt;Git tag and source tree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/blog/pigsty/v0.5/&#34;&gt;Pigsty v0.5 release article&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v0.5.0...v0.5.1&#34;&gt;Source comparison: &lt;code&gt;v0.5.0...v0.5.1&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.5.0</title>
        <link>https://pgsty.pro/blog/release/0.5.0/</link>
        <pubDate>Thu, 07 Jan 2021 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.5.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.5.0&lt;/strong&gt; · &lt;time datetime=&#34;2021-01-07&#34;&gt;2021-01-07&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.5.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.5.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.5.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;outline&#34;&gt;Outline&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The official docs site (&lt;a href=&#34;http://pigsty.cc/&#34;&gt;http://pigsty.cc/&lt;/a&gt;) is live.&lt;/li&gt;&#xA;&lt;li&gt;Database templating becomes fully declarative: define users, roles, databases, ACLs, extensions, and schemas in config.&lt;/li&gt;&#xA;&lt;li&gt;The default &lt;a href=&#34;https://pigsty.cc/docs/setup/security&#34;&gt;access model&lt;/a&gt; is refined and HBA management now comes straight from Pigsty instead of Patroni.&lt;/li&gt;&#xA;&lt;li&gt;Grafana provisioning switched from shoving a sqlite file to JSON provisioning via API.&lt;/li&gt;&#xA;&lt;li&gt;Added the &lt;code&gt;pg-cluster-replication&lt;/code&gt; dashboard to the open bundle.&lt;/li&gt;&#xA;&lt;li&gt;CentOS 7.8 offline bundle: &lt;code&gt;pkg.tgz&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;declarative-database-layouts&#34;&gt;Declarative Database Layouts&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Multi-tenant headaches go away once everything is described as code. The new templates let you declare users, passwords, role hierarchies, DB defaults, extensions, schemas, and default privileges in YAML so a single config file replaces piles of runbooks. A stripped example:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.4.0</title>
        <link>https://pgsty.pro/blog/release/0.4.0/</link>
        <pubDate>Mon, 14 Dec 2020 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.4.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.4.0&lt;/strong&gt; · &lt;time datetime=&#34;2020-12-14&#34;&gt;2020-12-14&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.4.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.4.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.4.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Pigsty v0.4 is our second public beta. The observability stack was rebuilt around Grafana 7.3, and ten curated dashboards became the default open-source payload. pg_exporter 0.3.1 drives metrics, and the alert wiring has been cleaned up for the new Grafana release.&lt;/p&gt;&#xA;&lt;h2 id=&#34;open-source-dashboards&#34;&gt;Open-Source Dashboards&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The OSS build now exposes ten high-signal Grafana panels: PG Overview, Cluster, Service, Instance, Database, Query, Table, Table Catalog, Table Detail, and Node. Even with a lean set it easily outclasses most “enterprise” PG monitoring suites.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.3.0</title>
        <link>https://pgsty.pro/blog/release/0.3.0/</link>
        <pubDate>Thu, 22 Oct 2020 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.3.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.3.0&lt;/strong&gt; · &lt;time datetime=&#34;2020-10-22&#34;&gt;2020-10-22&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/releases/tag/v0.3.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.3.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.3.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Pigsty v0.3.0 is the very first public preview. It packages a lean observability stack plus a reproducible offline bundle so you can spin up a real PostgreSQL lab without touching the public Internet.&lt;/p&gt;&#xA;&lt;h2 id=&#34;observability-stack&#34;&gt;Observability Stack&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The open build ships eight curated Grafana dashboards: PG Overview, Cluster, Service, Instance, Database, Table Overview, Table Catalog, and a bare-metal Node view. Even with a trimmed set the coverage still crushes most &amp;ldquo;enterprise&amp;rdquo; monitoring stories.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.0.5</title>
        <link>https://pgsty.pro/blog/release/0.0.5/</link>
        <pubDate>Wed, 19 Aug 2020 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.0.5/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.0.5&lt;/strong&gt; · &lt;time datetime=&#34;2020-08-19&#34;&gt;2020-08-19&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.0.5&#34;&gt;View tag&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.0.5.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.0.5.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Added an offline installation mode for environments without Internet access.&lt;/li&gt;&#xA;&lt;li&gt;Introduced a dedicated Consul role and refreshed repository bootstrap behavior.&lt;/li&gt;&#xA;&lt;li&gt;Added psql startup helpers, split PostgreSQL script tasks, and fixed HAProxy connection-reset noise.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This historical record is reconstructed from the &lt;code&gt;v0.0.5&lt;/code&gt; tag and its source comparison with &lt;code&gt;v0.0.4&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.0.5&#34;&gt;Git tag and source tree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v005&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v0.0.4...v0.0.5&#34;&gt;Source comparison: &lt;code&gt;v0.0.4...v0.0.5&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.0.4</title>
        <link>https://pgsty.pro/blog/release/0.0.4/</link>
        <pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.0.4/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.0.4&lt;/strong&gt; · &lt;time datetime=&#34;2020-07-27&#34;&gt;2020-07-27&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.0.4&#34;&gt;View tag&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.0.4.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.0.4.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Split the former monolithic automation into dedicated Meta, Grafana, DNS, Nginx, and Prometheus roles.&lt;/li&gt;&#xA;&lt;li&gt;Added static-network handling and revised the local repository upstream policy.&lt;/li&gt;&#xA;&lt;li&gt;Expanded role documentation while keeping service registration templates aligned with the new layout.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This historical record is reconstructed from the &lt;code&gt;v0.0.4&lt;/code&gt; tag and its source comparison with &lt;code&gt;v0.0.3&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.0.4&#34;&gt;Git tag and source tree&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pigsty.io/docs/about/release/#v004&#34;&gt;Historical About / Release Note&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/compare/v0.0.3...v0.0.4&#34;&gt;Source comparison: &lt;code&gt;v0.0.3...v0.0.4&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.0.3</title>
        <link>https://pgsty.pro/blog/release/0.0.3/</link>
        <pubDate>Wed, 22 Jul 2020 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.0.3/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.0.3&lt;/strong&gt; · &lt;time datetime=&#34;2020-07-22&#34;&gt;2020-07-22&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.0.3&#34;&gt;View tag&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.0.3.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.0.3.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Improved the early Pigsty configuration interface and added the monitoring schema.&lt;/li&gt;&#xA;&lt;li&gt;Added a Kubernetes playbook and refined the PostgreSQL initialization defaults.&lt;/li&gt;&#xA;&lt;li&gt;Simplified the Vagrant bootstrap path and fixed several HAProxy, Patroni, and exporter registration details.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This historical tag predates the public release series. Its record is reconstructed from the tagged source and the commit history leading to &lt;code&gt;v0.0.3&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.2.0</title>
        <link>https://pgsty.pro/blog/release/0.2.0/</link>
        <pubDate>Fri, 10 Jul 2020 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.2.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.2.0&lt;/strong&gt; · &lt;time datetime=&#34;2020-07-10&#34;&gt;2020-07-10&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.2.0&#34;&gt;View tag&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.2.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.2.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Refactored the infrastructure, node, repository, Patroni, PgBouncer, monitoring, and PostgreSQL initialization roles.&lt;/li&gt;&#xA;&lt;li&gt;Added etcd as a DCS option, production/test inventory layouts, and configurable database superuser support.&lt;/li&gt;&#xA;&lt;li&gt;Added Patroni pause handling, HAProxy 2.2 compatibility, and fixes for older CentOS 7 environments.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;v0.2.0&lt;/code&gt; predates curated GitHub Release notes. This record is reconstructed from the tagged source and the comparison with &lt;code&gt;v0.1.0&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Pigsty v0.1.0</title>
        <link>https://pgsty.pro/blog/release/0.1.0/</link>
        <pubDate>Sat, 20 Jun 2020 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/blog/release/0.1.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.1.0&lt;/strong&gt; · &lt;time datetime=&#34;2020-06-20&#34;&gt;2020-06-20&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/tree/v0.1.0&#34;&gt;View tag&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.1.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty/archive/refs/tags/v0.1.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/pigsty&#34;&gt;pgsty/pigsty&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;highlights&#34;&gt;Highlights&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Completed the first large-scale conversion from playbooks to reusable Ansible roles.&lt;/li&gt;&#xA;&lt;li&gt;Established the initial PostgreSQL primary/standby, PgBouncer, monitoring, HAProxy, Keepalived, and repository workflows.&lt;/li&gt;&#xA;&lt;li&gt;Validated the reorganized project in a production-like test environment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;v0.1.0&lt;/code&gt; is an early engineering milestone rather than a curated GitHub Release. The notes are reconstructed from the tag and its commit history.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
