
Kestra Plugin ScheduleMonitor
CertifiedDetect unhealthy schedule triggers
Kestra Plugin ScheduleMonitor
Detect unhealthy schedule triggers
Finds SCHEDULE triggers that are overdue, missing next execution, or optionally disabled. Defaults: poll every 60s, allowedDelay 1 minute, disabled ignored unless includeDisabled is true.
type: io.kestra.plugin.kestra.triggers.ScheduleMonitorExamples
Detect stuck, unhealthy, or disabled schedule triggers
id: detect_schedule_triggers
namespace: company.team
tasks:
- id: hello
type: io.kestra.plugin.core.log.Log
message: "{{ trigger.data.size }} triggers detected"
triggers:
- id: stuck_schedules
type: io.kestra.plugin.kestra.triggers.ScheduleMonitor
includeDisabled: true
auth:
username: "{{ secret('KESTRA_USERNAME') }}" # Pass your Kestra username as a secret
password: "{{ secret('KESTRA_PASSWORD') }}" # Pass your Kestra password as secret
interval: PT2M
Properties
allowConcurrent Non-dynamicboolean
falseSpecifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
allowedDelay string
PT1MAllowed delay past next run
Defaults to PT1M. If now is after next execution plus this delay, trigger is flagged.
auth Non-dynamic
Select API authentication
Use either an API token or HTTP Basic (username/password); do not provide both.
io.kestra.plugin.kestra.AbstractKestraTrigger-Auth
API token for bearer auth
trueAutomatically retrieve credentials from Kestra's configuration if available
The default configuration can be configured globally inside the Kestra configuration file:
- Set
kestra.tasks.sdk.authentication.api-tokento use an API token - Set
kestra.tasks.sdk.authentication.usernameandkestra.tasks.sdk.authentication.passwordfor HTTP basic authentication - Set
kestra.tasks.sdk.authentication.urlto also default the Kestra API endpoint (seekestraUrlabove) The Enterprise edition also provides setting a default configuration at the Namespace or Tenant level by an administrator. Set to false to also opt out of the default URL, and to call a Kestra API that requires no authentication when no credentials are set either.
Password for HTTP Basic auth
Username for HTTP Basic auth
flowId string
Flow filter
includeDisabled booleanstring
falseInclude disabled schedules
Defaults to false.
interval Non-dynamicstring
PT1MdurationInterval between polling.
The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S. See ISO_8601 Durations for more information of available interval values.
kestraUrl string
Override Kestra API endpoint
URL used for calls to the Kestra API. When null, falls back to the url configured alongside the default SDK authentication (Namespace or Tenant level, Enterprise edition), then renders {{ kestra.url }} from configuration; if still empty, defaults to http://localhost: 8080. Trailing slashes are stripped before use.
maxExecutionInterval string
Max idle interval between runs
Flags schedules with no execution within this period.
namespace string
Namespace filter
Prefix match; null scans all namespaces.
stopAfter Non-dynamicarray
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDList of execution states after which a trigger should be stopped (a.k.a. disabled).
tenantId string
Override target tenant
Tenant identifier applied to API calls; defaults to the current execution tenant.
when string
trueA condition that determines whether the trigger should run.
A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.
Outputs
data array
List of unhealthy schedule triggers
Includes stuck or misconfigured schedule triggers.
Disabled triggers included only when includeDisabled = true.
io.kestra.plugin.kestra.triggers.ScheduleMonitor-TriggerInfo
date-timedate-time