Skip to main content

SQL Queries

Use sql to run queries against external databases (PostgreSQL, MySQL, or SQL Server) and feed the results into a view. SQL queries share the same templating and mapping capabilities as other data sources.

Configuration

FieldDescription
connectionName or URL of a stored SQL connection (recommended)
typeConnection type when not using connection (postgres, mysql, sqlserver)
urlDatabase DSN/URL (supports env var references)
usernameDatabase username (supports env var references)
passwordDatabase password (supports env var references)
querySQL statement to execute

Mission Control hydrates the connection details before executing the query, so secrets can stay in stored connections or environment variables.

Example

failing-health-checks.yaml
apiVersion: mission-control.flanksource.com/v1
kind: View
metadata:
name: failing-health-checks
namespace: mc
spec:
display:
title: Failing Health Checks
icon: health
sidebar: true
cache:
maxAge: 5m
minAge: 10s
columns:
- name: id
type: string
primaryKey: true
hidden: true
- name: name
type: string
- name: namespace
type: string
- name: type
type: string
- name: status
type: status
- name: severity
type: string
- name: last_transition_time
type: datetime
- name: description
type: string
queries:
failing_checks:
columns:
id: string
name: string
namespace: string
type: string
status: string
severity: string
last_transition_time: datetime
description: string
sql:
connection: connection://mc/mission-control
query: |
SELECT
id,
name,
namespace,
type,
status,
severity,
last_transition_time,
description
FROM checks
WHERE deleted_at IS NULL
AND status <> 'healthy'
ORDER BY COALESCE(last_transition_time, created_at) DESC

Tips

  • Prefer connection to reuse managed credentials instead of embedding URLs and passwords.
  • Declare query columns and mapping to control types when the upstream query could return empty results.
  • Use templating to parameterize queries ($(var.cluster)) just like other view data sources.
  • Keep SQL focused on selection/aggregation; use merge to combine SQL results with other data sources.