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.
| Field | Type | Required | Default | Meaning |
|---|---|---|---|---|
type | string | no | http | One of http, tcp, ping, dns, heartbeat, browser. Determines what url must look like. |
url | string | no | (empty) | The target to check. Required for every type except heartbeat, which has nothing to reach out to; upzero waits for pings instead. |
intervalSeconds | integer | no | 300 | How 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. |
serviceId | string | no | (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. |
config | object | no | {} | 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: 30000Tags 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.