# Bridge Alert Configuration # For use with Prometheus Alertmanager groups: - name: bridge_critical interval: 30s rules: - alert: ContractPaused expr: bridge_contract_paused == 1 for: 0m labels: severity: critical annotations: summary: "Bridge contract has been paused" description: "Contract {{ $labels.contract }} is paused. Immediate action required." - alert: AdminChanged expr: bridge_admin_changed == 1 for: 0m labels: severity: critical annotations: summary: "Admin address changed on bridge contract" description: "Admin address changed on {{ $labels.contract }}. Verify this is authorized." - alert: LargeValueTransfer expr: bridge_transfer_amount > 10000000000000000000 # 10 ETH for: 0m labels: severity: warning annotations: summary: "Large value transfer detected" description: "Transfer of {{ $value }} wei detected on {{ $labels.contract }}" - alert: FailedChallenge expr: increase(bridge_challenge_failed[5m]) > 0 for: 5m labels: severity: warning annotations: summary: "Failed challenge detected" description: "{{ $value }} failed challenges in the last 5 minutes" - alert: LiquidityPoolLow expr: (bridge_liquidity_available / bridge_liquidity_pending_claims) < 1.1 for: 5m labels: severity: critical annotations: summary: "Liquidity pool below minimum ratio" description: "Liquidity pool ratio is {{ $value }}, below minimum of 1.1" - alert: NoChallenges24h expr: increase(bridge_challenges_total[24h]) == 0 for: 24h labels: severity: warning annotations: summary: "No challenges in 24 hours" description: "No challenges detected in the last 24 hours. This may indicate a monitoring gap." - alert: BondSlashing expr: increase(bridge_bonds_slashed[1h]) > 0 for: 0m labels: severity: warning annotations: summary: "Bond slashing detected" description: "{{ $value }} bonds slashed in the last hour" - alert: ChallengeWindowExpiring expr: (bridge_challenge_window_end - time()) < 300 # 5 minutes for: 0m labels: severity: info annotations: summary: "Challenge window expiring soon" description: "Challenge window for deposit {{ $labels.deposit_id }} expires in {{ $value }} seconds" - name: bridge_operational interval: 1m rules: - alert: RPCUnavailable expr: up{job="bridge_rpc"} == 0 for: 2m labels: severity: critical annotations: summary: "RPC endpoint unavailable" description: "RPC endpoint {{ $labels.instance }} is down" - alert: HighGasPrices expr: eth_gas_price > 100000000000 # 100 gwei for: 10m labels: severity: warning annotations: summary: "High gas prices detected" description: "Gas price is {{ $value }} wei, consider delaying non-critical operations" - alert: LowContractBalance expr: eth_balance{contract="bridge"} < 1000000000000000000 # 1 ETH for: 5m labels: severity: warning annotations: summary: "Low contract balance" description: "Contract {{ $labels.contract }} balance is {{ $value }} wei" - alert: SlowFinalization expr: (time() - bridge_claim_timestamp) > 3600 # 1 hour for: 1h labels: severity: warning annotations: summary: "Slow claim finalization" description: "Claim {{ $labels.deposit_id }} has been pending for {{ $value }} seconds"