New to Kestra?
Use blueprints to kickstart your first workflows.
Probe a critical Metaplane monitor hourly with Kestra. FAIL or ERROR pages Slack and fails the execution so dashboards go red; healthy probes log quietly.
Some tables matter more than the rest, the one feeding the billing job, the executive dashboard, the ML feature store. This blueprint gives one such monitor its own heartbeat. Every hour, io.kestra.plugin.metaplane.Get reads the monitor's latest result without triggering a new run, and the flow converts that status into an execution state: FAIL or ERROR pages Slack and then deliberately fails the execution, so anything watching execution states, SLA dashboards, dependent flows, alert rules, sees red. PASS and the in-training states leave a one-line log, turning the execution history into an hourly health record.
probe (io.kestra.plugin.metaplane.Get) fetches the monitor's most recent result and exposes status, monitorId, and checkedAt as scalar outputs, plus a series array with per-series values, bounds, and open related incidents.route_health (io.kestra.plugin.core.flow.If) treats only FAIL and ERROR as incidents. IN_TRAINING, NOT_ENOUGH_DATA, and other inconclusive statuses pass quietly, so a freshly created monitor never pages anyone.page_slack posts the status and check timestamp first, then fail_execution (io.kestra.plugin.core.execution.Fail) fails the execution with a message naming the monitor and status.log_healthy writes the status and timestamp to the execution log.errors block posts to Slack on any failed execution, which covers both the deliberate failure and a probe that could not reach the API; in both cases the critical table needs attention.Get never triggers monitor runs, so hourly probes cost nothing on the Metaplane side.Metaplane holds the verdict; Kestra makes it operational. By mapping monitor status onto execution state, every tool already integrated with Kestra, dependency conditions, alerting on failed executions, SLA reporting, inherits data quality awareness without new integrations. The If task keeps the incident policy declarative and reviewable, and changing what counts as an incident is a one-line edit.
METAPLANE_API_TOKEN: Metaplane API token.SLACK_WEBHOOK_URL: Slack incoming webhook URL.monitorId with the UUID of your critical monitor.hourly_probe trigger.UNKNOWN to the incident condition when a monitor that cannot report is as alarming as one that fails.io.kestra.plugin.core.flow.ForEach over a list of monitor IDs.