Skip to main content
Every monitor has a frequency that determines how often the hub schedules it for execution.

Setting a frequency

Frequency is a required field in both builders:

Available intervals

Both singular and plural forms work: .minute() and .minutes() are equivalent.

How scheduling works

The hub’s scheduler runs on a tick interval (default: 30 seconds). On each tick, it checks which monitors are due based on their frequency and last execution time, then enqueues jobs for execution.
  • A monitor with Frequency.every(1).minute() will be scheduled approximately every 60 seconds
  • The scheduler ensures no duplicate jobs are created for the same monitor within its frequency window
  • If an executor is unavailable, jobs queue up and execute when an executor becomes available

Choosing a frequency

Higher frequencies mean more executions, which affects resource usage on self-hosted deployments and costs on Griffin Cloud.

Browser monitor frequency

Browser monitors require a minimum frequency of 1 minute. API-only monitors have no minimum. This constraint is enforced at build time — calling .build() will throw an error if a browser monitor’s frequency is less than 1 minute.
Browser monitors are more resource-intensive than API monitors because they launch a real browser. Choose a frequency that balances monitoring coverage with execution cost.

Locations

Optionally specify where your monitor should execute. In distributed mode, jobs are routed to executors running in the specified locations:
When locations are specified, the scheduler creates separate jobs for each location on each run. If no locations are specified, the monitor runs on any available executor.