Skip to content

Infrastructure dashboard

Dashboard name: dash-mz-infra-{env} (dev / prd)
UID: monozu-infrastructure
Region: swedencentral (dashboard resource; apps may be in polandcentral)
Source: Infrastructure/observability/grafana/monozu-infra.dashboard.json

Deployed from main.bicep after the apps module so Container App and SQL resource metadata is available.

Same path as the application dashboard — rg-monozu-shared-{env}dash-mz-infra-{env}.

RBAC: Monitoring Reader on shared, cloud, ingest, and manage resource groups (Azure RBAC — distinct from tenant JWT permissions).

VariableSelectionValues (labels)
appMulti-select, Include Allcloud, worker, ingestor, management, otel-collector
databaseMulti-select, Include Allcloud, management

Each option’s value is the Container App name or SQL server/database resource name (substituted at deploy). ACA and SQL metric panels list structured resource objects (subscription, resourceGroup, resourceName, metricNamespace, region) so Portal Grafana populates the Resource picker.

Unlike the application dashboard, infra variables do not use allValue: "all" — Azure Monitor Metrics expands “All” to every option value.

Default time range: 24 hours. Refresh: 5 minutes.

Row IDSection
100Overview — CPU, memory, replicas, restarts, DTU, storage, deadlocks, queue depth
200Container Apps — per-app Azure Monitor metrics
300Azure SQL — DTU, storage, workers, deadlocks, connections
400Jobs queue — worker custom metric + job throughput

Namespace Microsoft.App/containerapps. Panels include CpuPercentage, MemoryPercentage, Replicas, RestartCount, Requests (by status category), plus fallback UsageNanoCores and WorkingSetBytes when preview percentage metrics are unavailable.

Namespace Microsoft.Sql/servers/databases: dtu_consumption_percent, storage_percent, workers_percent, deadlock, connection_successful, connection_failed, etc. One series per database.

Uses the worker custom metric monozu.jobs.queue.depth from AppMetrics in LAW — not native hourly QueueMessageCount.

Visual thresholds (informational only — no alert rules)

Section titled “Visual thresholds (informational only — no alert rules)”
SignalWarningCritical
CPU / memory / DTU %70%85%
Queue depth50200

Bicep replaces placeholders (__SUBSCRIPTION_ID__, __RG_*__, __ACA_*_NAME__, __SQL_*__, __LAW_RESOURCE_ID__, __METRICS_REGION__) at compile time. Validate JSON before deploy; rollback by redeploying prior git revision.