Observability dashboards
Monozu deploys two Azure Monitor dashboards with Grafana in rg-monozu-shared-{env}:
| Dashboard | Name | Focus |
|---|---|---|
| Application & database | dash-mz-app-{env} | HTTP, worker jobs, tenants, SQL, errors, logs |
| Infrastructure | dash-mz-infra-{env} | Container Apps, Azure SQL, jobs queue |
Legacy dash-monozu-obs-{env} remains until manually removed from Azure after you accept the new dashboards.
Telemetry path
Section titled “Telemetry path”See Telemetry architecture for the full pipeline: App → OTLP → central Collector → four Application Insights components → LAW → Grafana.
flowchart LR
ACA[Container Apps] --> Collector[OTel Collector]
Collector --> AI[Application Insights]
AI --> LAW[Log Analytics]
LAW --> App[dash-mz-app-env]
LAW --> Infra[dash-mz-infra-env]
ACA -->|Azure Monitor Metrics| Infra
Collector -->|Azure Monitor Metrics| Infra
Monitoring Reader on:
rg-monozu-shared-{env}rg-monozu-cloud-{env}rg-monozu-ingest-{env}rg-monozu-manage-{env}
This is Azure RBAC for portal dashboards — not tenant JWT permissions inside the product.
Service names
Section titled “Service names”| Container App | AppRoleName in LAW |
|---|---|
| Cloud API | monozu-cloud-backend |
| Worker | monozu-cloud-worker |
| Ingestor | monozu-ingestor |
| Management | monozu-management-backend |
| OTel Collector | (no App Insights role — routes only) |
Edit and deploy
Section titled “Edit and deploy”- JSON sources:
Infrastructure/observability/grafana/monozu-app.dashboard.jsonandmonozu-infra.dashboard.json - Validate:
python3 Infrastructure/observability/grafana/validate_dashboards.py <paths> - Deploy infrastructure Bicep — app dashboard from
shared.bicep, infra dashboard frommain.bicep(after apps)
Troubleshooting
Section titled “Troubleshooting”See Observability troubleshooting for empty panels, sampling, datasource UID, and queue metric freshness.