PostgreSQL
Health CheckScraper
Mission Control integrates with PostgreSQL to monitor your database infrastructure.
Health Check
Use cases:
- Verify database connectivity and authentication
- Execute SQL queries and validate results against expected values
- Monitor replication lag, connection counts, and database health
- Alert when queries return unexpected results or databases become unavailable
Connection Check
Test database connectivity and run validation queries.
postgres-connection-check.yamlapiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: postgres-connection
spec:
interval: 30
postgres:
- name: production-db
url: postgres://user:password@postgres:5432/mydb?sslmode=require
query: SELECT 1
Query Validation
postgres-query-check.yamlapiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: postgres-replication
spec:
interval: 60
postgres:
- name: replication-lag
connection: connection://postgres/production
query: |
SELECT EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp()))::INT
AS replication_lag_seconds
test:
expr: results[0].replication_lag_seconds < 30
Using Connection References
postgres-connection-ref.yamlapiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: postgres-check
spec:
interval: 30
postgres:
- name: user-count
connection: connection://postgres/analytics
query: SELECT COUNT(*) as count FROM users WHERE active = true
test:
expr: results[0].count > 0
Scraper
Use cases:
- Scrape database metadata and configurations into the catalog
- Track database settings and schema changes
- Monitor database users and permissions
postgres-scraper.yamlapiVersion: configs.flanksource.com/v1
kind: ScrapeConfig
metadata:
name: postgres-config
spec:
schedule: "@every 1h"
sql:
- connection: connection://postgres/production
driver: postgres
query: |
SELECT datname as name,
pg_database_size(datname) as size_bytes,
datconnlimit as connection_limit
FROM pg_database
WHERE datistemplate = false
items:
- type: Postgres::Database
id: .name
name: .name