HelmDriftWatch - Helm release drift detector
Alerts on Slack when a Helm release's live workloads drift from the chart's desired state.
Run synthetic GraphQL health canary probes every 5 minutes, validate root typename responses, and dispatch urgent Slack alerts on silent resolver errors.
Catch silent GraphQL API failures and broken resolver dependencies before users do. Unlike REST endpoints that return explicit 5xx HTTP status codes on server faults, GraphQL gateways frequently return HTTP 200 OK while embedding resolver exceptions, database timeouts, and schema validation failures inside the JSON errors array. Standard HTTP uptime pings mistake these responses for healthy traffic. This blueprint runs a high-frequency synthetic canary probe every 5 minutes using io.kestra.plugin.graphql.Request, asserts that the root __typename resolves cleanly, checks for null error arrays, and trips an automated Slack incident alert and pipeline failure when degradation is detected.
Schedule trigger initiates a synthetic health probe every 5 minutes (shipped disabled by default).execute_canary_probe issues a minimal typed query (query SyntheticCanary { __typename }) to the GraphQL endpoint (graphql_endpoint_url) with failOnGraphQLErrors: false and allowFailed: true so error payloads can be inspected.evaluate_canary_health (io.kestra.plugin.core.flow.If) evaluates three criteria: HTTP 200 status code, verified __typename matching expected_typename ('Query'), and absence of any GraphQL error payload:log_canary_healthy logs clean operational status.alert_canary_failure dispatches an urgent Slack alert containing the HTTP status, returned typename, and error message. If inputs.fail_on_unhealthy is enabled, task fail_canary_execution terminates the flow with an error.log_probe_metrics records audit metrics.errors handler alerts SRE teams if DNS resolution fails or the gateway drops connections entirely.Standard synthetic monitoring SaaS tools often lack native understanding of GraphQL response payloads or charge high recurring per-check fees. Kestra provides native GraphQL execution via io.kestra.plugin.graphql.Request, secure secret management for API bearer tokens, declarative flow-control logic, and automated multi-channel incident dispatch in plain YAML.
GRAPHQL_API_TOKEN: Bearer token passed in the Authorization header (can be a dummy string if public).SLACK_WEBHOOK_URL: Slack Incoming Webhook URL used to transmit outage notifications.GRAPHQL_API_TOKEN and SLACK_WEBHOOK_URL).graphql_endpoint_url with your target GraphQL server URL.{ __typename } query executes cleanly.periodic_canary_schedule trigger to establish 5-minute automated canary sweeps.custom_canary_query to query a critical business entity (e.g. viewer { id email } or healthCheck { status }) for deeper synthetic verification.