GuardianFlow AI

Azure Monitor Dashboard

Application Insights + Log Analytics Workspace

Azure Monitor Workbook

Set NEXT_PUBLIC_MONITOR_WORKBOOK_URL untuk embed workbook

Fraud Rate Chart

Real-time fraud event trends

Scoring Latency p50/95/99

Model inference performance

Top Blocked IPs

Malicious IP leaderboard

Cluster Detections

Graph fraud syndicate alerts

Alert Rules (Azure Monitor)

critical

Fraud Spike Alert

fraud_blocked > 50 dalam 5 menit

medium

Latency P95 Alert

scoring_latency_ms p95 > 500ms

high

Exception Rate

exception_rate > 5%

high

Graph Cluster

graph_cluster_found = true

KQL Query Samples — Log Analytics

Fraud Events (24h)
customEvents
| where timestamp > ago(24h)
| where customDimensions["fraud.event"] in (
    "fraud_blocked", "fraud_stepup", "fraud_approved")
| summarize count() by
    bin(timestamp, 1h),
    tostring(customDimensions["fraud.event"])
| render timechart
Scoring Latency p95
customMetrics
| where name == "model.latency_ms"
| where timestamp > ago(1h)
| summarize
    p50 = percentile(value, 50),
    p95 = percentile(value, 95),
    p99 = percentile(value, 99)
  by bin(timestamp, 5m)
| render timechart
Graph Cluster Detections
customEvents
| where timestamp > ago(7d)
| where customDimensions["fraud.event"] == "graph_cluster_found"
| summarize
    clusters = count(),
    avg_size = avg(toint(customDimensions["graph.cluster_size"]))
  by bin(timestamp, 1d)
| render barchart
Exception Rate
exceptions
| where timestamp > ago(1h)
| summarize error_count = count() by bin(timestamp, 5m)
| join kind=leftouter (
    requests | summarize total = count() by bin(timestamp, 5m)
) on timestamp
| extend error_rate = todouble(error_count) / total * 100
| render timechart