Kind reference

Monitor

Field reference and a complete example manifest for the Monitor Kind.

Monitor

An uptime check, matching the real MonitorCreate model field for field. metadata.name is the natural key, unique per organization.

Fields

Generated from up0 schema explain Monitor --version v1 --output json against a live deployment, then annotated below.

FieldTypeRequiredDefaultMeaning
typestringnohttpOne of http, tcp, ping, dns, heartbeat, browser. Determines what url must look like.
urlstringno(empty)The target to check. Required for every type except heartbeat, which has nothing to reach out to; upzero waits for pings instead.
intervalSecondsintegerno300How often to check, 10 to 3600 seconds. Your plan tier may enforce a higher minimum than the schema allows; a Free-tier org cannot go below 300.
serviceIdstringno(none)Soft-binds this monitor to an entry in the service catalog, for the uptime signal to show up against that service. Unlike the name-based references other Kinds use, this field takes the service's live id, not its name, so it is not yet practical to hand-author in a manifest an org has never applied before. Bind a monitor to a service from the console or up0 monitors bind instead, and leave this out of the manifest.
configobjectno{}Type-specific settings, keyed loosely by type. For http: method, expected_status (list of codes), follow_redirects, verify_ssl, timeout_ms. For dns: record_type. Unrecognized keys pass through unvalidated.

Example

Applied directly through the API for this page (not through a sync, since applying via GitOps needs a connected repository):

# up0/monitors/production-api.yaml
apiVersion: up0.io/v1
kind: Monitor
metadata:
  name: production-api
spec:
  type: http
  url: https://example.com/health
  intervalSeconds: 300
  config:
    method: GET
    expected_status: [200]
    follow_redirects: true
    verify_ssl: true
    timeout_ms: 30000

Tags and pause state are not spec fields today

The live MonitorCreate schema this manifest validates against has no tags field and no paused field, so neither belongs in a manifest yet even though earlier design notes describe both. Tag a monitor and pause or resume it from the console or the CLI instead; a sync leaves both alone on every subsequent apply.

On this page