Skip to content

Commit 0d54526

Browse files
committed
feat(alerting): unpause Cloudflare Access gate alerts (platform-infrastructure#1200)
The gate is armed (platform-infrastructure#1205, 2026-10-02 19:37Z) and the probe (platform-infrastructure#1261) reads probe_http_status_code 302 and probe_success 1, so CloudflareAccessGateOpen, CloudflareAccessGateProbeBroken and CloudflareAccessGateProbeAbsent can go live.
1 parent 7d97ac5 commit 0d54526

1 file changed

Lines changed: 11 additions & 14 deletions

File tree

‎terraform/alerting-cloudflare-access.tf‎

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@
2020
# 403 / 0 / 5xx / bad 302 -> CloudflareAccessGateProbeBroken warning
2121
# no series -> CloudflareAccessGateProbeAbsent warning
2222
#
23-
# ALL THREE SHIP PAUSED (is_paused = true). Until platform-infrastructure #1205 arms the
24-
# gate, 200 is the CORRECT reading and GateOpen would page continuously. Unpause in a
25-
# follow-up PR:
26-
# - ProbeBroken + ProbeAbsent once the probe (platform-infrastructure #1261) is running
27-
# and reads a clean status (200 before #1205, 302 after) -- i.e. the secret and the WAF
28-
# skip rule both exist and match.
29-
# - GateOpen only after #1205 is armed and probe_http_status_code has read 302 steadily.
23+
# All three are ACTIVE. They shipped paused (platform-grafana #53) because 200 was correct
24+
# until platform-infrastructure #1205 armed the gate (2026-10-02 19:37Z). They were unpaused
25+
# once the probe (platform-infrastructure #1261) read probe_http_status_code 302 and
26+
# probe_success 1 steadily. If the gate is ever deliberately removed (rollback per
27+
# docs/cloudflare-access.md), pause GateOpen first or it pages within ~5 minutes.
3028
#
3129
# Structure mirrors alerting-kargo.tf: A = PromQL, B = reduce, C = threshold. Each A wraps
3230
# its selector in count by (instance) so the value is 1 per offending host (probe_success == 0
@@ -49,11 +47,10 @@ resource "grafana_rule_group" "cloudflare_access_gate" {
4947
# probe is ProbeAbsent's job, at warning, so a dead exporter can never page through here.
5048
# for = 5m rides out a single odd scrape; a real fail-open persists.
5149
rule {
52-
name = "CloudflareAccessGateOpen"
53-
condition = "C"
54-
for = "5m"
55-
# Paused until #1205 arms the gate: today 200 is correct and this would page nonstop.
56-
is_paused = true
50+
name = "CloudflareAccessGateOpen"
51+
condition = "C"
52+
for = "5m"
53+
is_paused = false
5754
no_data_state = "OK"
5855
exec_err_state = "Error"
5956
labels = {
@@ -132,7 +129,7 @@ resource "grafana_rule_group" "cloudflare_access_gate" {
132129
name = "CloudflareAccessGateProbeBroken"
133130
condition = "C"
134131
for = "15m"
135-
is_paused = true
132+
is_paused = false
136133
no_data_state = "OK"
137134
exec_err_state = "Error"
138135
labels = {
@@ -209,7 +206,7 @@ resource "grafana_rule_group" "cloudflare_access_gate" {
209206
name = "CloudflareAccessGateProbeAbsent"
210207
condition = "C"
211208
for = "15m"
212-
is_paused = true
209+
is_paused = false
213210
no_data_state = "OK"
214211
exec_err_state = "Error"
215212
labels = {

0 commit comments

Comments
 (0)