Monitoring

How to perform self-monitoring of infrastructure in Pigsty?

This document describes monitoring dashboards and alert rules for the INFRA module in Pigsty.


Dashboards

Pigsty provides the following monitoring dashboards for the Infra module:

DashboardDescription
Pigsty HomePigsty monitoring system homepage
INFRA OverviewPigsty infrastructure self-monitoring overview
Nginx InstanceNginx metrics and logs
Grafana InstanceGrafana metrics and logs
VictoriaMetrics InstanceVictoriaMetrics scraping/query status
VMAlert InstanceAlert rule execution status
Alertmanager InstanceAlert aggregation and notifications
VictoriaLogs InstanceLog ingestion, querying, and indexing
Logs InstanceView log information on a single node
VictoriaTraces InstanceTrace storage and querying
Inventory CMDBCMDB visualization
ETCD Overviewetcd cluster monitoring

Alert Rules

Pigsty provides the following two alert rules for the INFRA module:

Alert RuleDescription
InfraDownInfrastructure component is down
AgentDownMonitoring agent is down

You can modify or add new infrastructure alert rules in files/victoria/rules/infra.yml.

Alert Rule Configuration

################################################################
#                Infrastructure Alert Rules                    #
################################################################
- name: infra-alert
  rules:

    #==============================================================#
    #                       Infra Aliveness                        #
    #==============================================================#
    # infra components (victoria,grafana) down for 1m triggers a P1 alert
    - alert: InfraDown
      expr: infra_up < 1
      for: 1m
      labels: { level: 0, severity: CRIT, category: infra }
      annotations:
        summary: "CRIT InfraDown {{ $labels.type }}@{{ $labels.instance }}"
        description: |
          infra_up[type={{ $labels.type }}, instance={{ $labels.instance }}] = {{ $value  | printf "%.2f" }} < 1

    #==============================================================#
    #                       Agent Aliveness                        #
    #==============================================================#

    # agent aliveness are determined directly by exporter aliveness
    # including: node_exporter, pg_exporter, pgbouncer_exporter, haproxy_exporter
    - alert: AgentDown
      expr: agent_up < 1
      for: 1m
      labels: { level: 0, severity: CRIT, category: infra }
      annotations:
        summary: 'CRIT AgentDown {{ $labels.ins }}@{{ $labels.instance }}'
        description: |
          agent_up[ins={{ $labels.ins }}, instance={{ $labels.instance }}] = {{ $value  | printf "%.2f" }} < 1

Last Modified 2026-01-09: add supabase asciinema demo (693cfa8)