Skip to main content

Resource Selectors

Resource Selectors are used throughout Mission Control for:

  • Creating relationships between configs and configs/components
  • Filtering resources in playbook triggers and actions
  • Selecting targets for health checks
  • Building dynamic views and dashboards
FieldDescriptionSchemeRequired
idSelect resource by ID. Supports comma-separated values and wildcards (id=abc*,def*)string
nameSelect resource by name. Supports comma-separated values and wildcards (name=*-prod,*-staging)string
namespaceSelect resources in this namespace only. If empty, selects from all namespacesstring
typesSelect resources matching any of the specified types (e.g., Kubernetes::Pod, AWS::EC2::Instance)[]string
statusesSelect resources matching any of the specified statuses[]string
healthSelect resources matching the specified health status. Supports multiple values separated by comma (healthy,warning) and negation (!unhealthy)string
scopeLimit selection to resources belonging to a specific parent. For configs this is the scraper id, for checks it's the canary, and for components it's the topology. Can be a UUID or namespace/namestring
labelSelectorKubernetes-style label selector. Supports =, ==, != operators and set-based selectors (key in (v1,v2), key notin (v1,v2), key, !key)LabelSelector
fieldSelectorSelect resources by property fields using Kubernetes field selector syntax. Supports fields like owner, topology_id, parent_id for componentsFieldSelector
tagSelectorSelect resources by tags using the same syntax as labelSelector. Tags are key-value pairs assigned during scrapingstring
agentSelect resources created on a specific agent. Accepts agent UUID, agent name, or special values: local (resources without an agent), self (alias for local), all (resources from any agent). Defaults to localstring
cacheCache settings for selector results. Useful for expensive or frequently-used selectors. Values: no-cache (bypass but allow caching), no-store (bypass and don't cache), max-age=<duration> (cache for duration)string
limitMaximum number of resources to returnint
includeDeletedInclude soft-deleted resources in results. Defaults to falsebool
searchFull-text search across resource name, tags, and labels using parsing expression grammar. See Searchstring

Wildcards and Negation

The name, id, types, statuses, and health fields support:

  • Prefix matching: name=prod-* matches names starting with prod-
  • Suffix matching: name=*-backend matches names ending with -backend
  • Negation: health=!unhealthy excludes unhealthy resources
  • Multiple values: types=Kubernetes::Pod,Kubernetes::Deployment matches either type

The search field provides a powerful query language for filtering resources.

Syntax

field1=value1 field2>value2 field3=value3* field4=*value4

Multiple conditions are combined with AND logic.

Operators

OperatorExampleDescriptionTypes
=status=healthyEquals (exact match or wildcard)string int json
!=health!=unhealthyNot equalsstring int json
=*name=*-prod or name=api-*Prefix or suffix matchstring int
>created_at>now-24hGreater thandatetime int
<updated_at<2025-01-01Less thandatetime int

Date Queries

  • Absolute dates: 2025-01-15, 2025-01-15T10:30:00Z
  • Relative dates: now-24h, now-7d, now+1w
  • Supported units: s (seconds), m (minutes), h (hours), d (days), w (weeks), y (years)

JSON Field Access

Access nested fields in labels, tags, and config using dot notation:

labels.app=nginx
tags.env=production
config.spec.replicas>3

Searchable Fields

Catalog Items (Configs)

FieldTypeDescription
namestringResource name
namespacestringKubernetes namespace or equivalent
typestringResource type (e.g., Kubernetes::Pod)
statusstringCurrent status
healthstringHealth status
sourcestringSource identifier
agentstringAgent that scraped this resource
labelsjsonKubernetes-style labels
tagsjsonScraper-assigned tags
configjsonFull configuration data
created_atdatetimeCreation timestamp
updated_atdatetimeLast update timestamp
deleted_atdatetimeSoft deletion timestamp

Config Changes

FieldTypeDescription
idstringChange ID
config_idstringParent config ID
namestringChange name
typestringConfig type
change_typestringType of change (e.g., diff, event)
severitystringChange severity
summarystringChange summary
countintOccurrence count
agent_idstringAgent ID
tagsjsonChange tags
detailsjsonAdditional details
created_atdatetimeChange timestamp
first_observeddatetimeFirst observation time
Health Checks
FieldDescriptionScheme
agent

Agent ID

string

canary_id

Parent canary ID

string

created_at

Creation timestamp

datetime

deleted_at

Deletion timestamp

datetime

health

Health status

string

labels

Check labels

json

name

Check name

string

namespace

Check namespace

string

status

Current status

string

type

Check type (e.g., http, tcp)

string

updated_at

Last update timestamp

datetime

Examples

Basic Selection

# Select by exact name
name: my-deployment

# Select by ID
id: 3b1a2c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d

# Select all pods in a namespace
types:
- Kubernetes::Pod
namespace: production

Using Wildcards

# Select all resources with names starting with "prod-"
name: prod-*

# Select all AWS resources
types:
- AWS::*

# Select resources ending with "-backend"
name: "*-backend"

Label and Tag Selectors

# Select by labels (Kubernetes-style)
labelSelector: app=nginx,env in (prod,staging)

# Select by tags
tagSelector: team=platform,cost-center!=shared

# Combine both
labelSelector: app=api
tagSelector: environment=production

Health and Status Filtering

# Select only healthy resources
health: healthy

# Exclude unhealthy resources
health: "!unhealthy"

# Select resources with specific statuses
statuses:
- Running
- Pending

Search Queries

# Find all Kubernetes namespaces starting with "kube"
search: type=Kubernetes::Namespace name=kube*

# Find unhealthy AWS EC2 instances
search: type=AWS::EC2::Instance health=unhealthy

# Find configs created in the last 24 hours
search: created_at>now-24h

# Find nginx pods with specific tags
search: type=Kubernetes::Pod labels.app=nginx tags.cluster=prod

# Complex query with date range
search: updated_at>2025-01-01 updated_at<2025-01-31 type=Kubernetes::Deployment

Multi-Agent Selection

# Select from a specific agent
agent: production-cluster

# Select from all agents
agent: all

# Select only local (agentless) resources
agent: local

Scoped Selection

# Select configs from a specific scraper
scope: namespace/my-scraper

# Select checks from a specific canary
scope: canary-uuid-here