Garmingo Docs

Create a Monitor

Create a new monitor and configure interval, retries, region, and alerting coverage.

This guide walks you through creating a monitor in Garmingo Status and explains each field, plan limits, and how the platform treats the values you provide.

Prerequisites

  • A Status Instance (workspace) already created.
  • Sufficient remaining monitor quota on your plan.
  • (Optional) At least one Status Page if you want to surface the monitor publicly.

Plan‑Based Limits

Your subscription plan enforces hard limits when creating a monitor:

  • Monitors: Maximum count depends on the plan (e.g. Free: 3, Starter: 10, Standard: 50, Business: 300).
  • Minimum Interval (TTL): The shortest allowed check interval (in seconds). Example: Free = 300s, Starter = 60s, Standard = 20s.
  • Max Retries: Currently fixed at 5 across most plans (some monitor types disable retries entirely).

If you exceed the monitor quota or provide a TTL below the allowed minimum, creation will be rejected.

Supported Monitor Types

TypePurposeTypical UseRetry Behavior
httpHTTP(S) endpoint health & performanceAPIs, websitesRetries enabled
icmpHost/network reachability (ping)Servers, gatewaysRetries enabled
tcpPort reachability (open socket)Databases, servicesRetries enabled
udpUDP port responsivenessGame / streaming endpointsRetries enabled
heartbeatExternal cron / job heartbeatCron jobs, workersRetries disabled (event driven)
manualManually controlled statusThird‑party service, legacyRetries disabled
sslSSL certificate validity / expiryDomains, endpointsRetries enabled
smtpSMTP server reachabilityMail infrastructureRetries enabled
dnsDNS record integrityDomains / zonesRetries enabled

See the dedicated “Monitor Types” section for deep dives and type‑specific settings.

Field Reference (Request Body)

If you use the API directly, you send a JSON body that follows this structure (simplified overview):

{
	"displayName": string (1..64 chars, required),
	"type": one of the supported type identifiers (required),
	"settings": object (type‑specific keys),
	"ttl": number (seconds) >= plan.minTTL and <= 86400, default 60*,
	"retries": number 0..10 (ignored / forced to 0 for heartbeat & manual),
	"region": deployment region identifier (defaults eu-central),
	"proxyType": null | one of supported proxies for the type, optional,
	"proxyHost": string | null,
	"proxyPort": number | null,
	"proxyUsername": string | null,
	"proxyPassword": string | null,
	"metadata": object (freeform; heartbeat token auto‑injected),
	"keywords": string[] (max 10, HTTP keyword / content assertions),
	"enabled": boolean (default true)
}

*NOTE: The default 60s is further raised to the plan minimum if your plan’s minTTL is larger.

Regions

Current region identifiers (may expand): eu-central, eu-central-2, eu-west, na-north, us-east, us-west, as-south, oc-east. Pick the region closest to the target for latency‑sensitive monitoring.

Proxies

Only certain monitor types permit proxies:

  • HTTP: http, https, socks5
  • TCP / UDP: socks5
  • Others: none

If you pass an empty string for proxyType, it is normalized to null.

Heartbeat Monitor Special Flow

  1. Create a monitor with type: "heartbeat" and (optionally) a schedule setting to document expected cadence.
  2. Retrieve the generated heartbeat token (UI or API if exposed) and call the heartbeat endpoint from your cron/job runner before the TTL expires.
  3. Missing a heartbeat beyond the allowed interval marks it unhealthy.

Manual Monitor Special Flow

Manual monitors do not actively probe. Their status is set through explicit user / API updates—use this for external dependencies or business processes.

Audit Logging

Every create/update generates a structured diff entry (original vs changed keys, excluding immutable identifiers). When no effective changes exist, no update log entry is stored.

Best Practices

  • Start with a higher TTL (e.g. 120–300s) then decrease based on reliability needs to conserve quota headroom.
  • Use keyword assertions sparingly—limit to one unambiguous phrase to reduce false negatives.
  • Group related monitors by consistent naming prefixes (e.g. api-auth, api-orders) to improve search relevance.
  • For geographically distributed services, create separate monitors per region rather than relying solely on a single origin check.

Next Steps