Dashboards & Executive Reporting
Visibility for All Stakeholders
Introduction
Different stakeholders need different views into your integration systems. Operations teams need real-time status and troubleshooting views; engineering leads need performance trends; executives need business impact and ROI metrics. A well-designed dashboard strategy provides the right information to the right people at the right time.
This comprehensive guide covers:
- Dashboard types — Understanding different views
- Azure dashboards — Azure Portal and Workbooks
- Power BI — Advanced analytics and reporting
- Executive reporting — Business-focused metrics
- Automation — Scheduled reports
Dashboard Types
Stakeholder Views
┌─────────────────────────────────────────────────────────────────────┐
│ DASHBOARD TYPES BY STAKEHOLDER │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ OPERATIONS (Real-time) │
│ ──────────────────── │
│ • Service health status │
│ • Active incidents │
│ • Queue depth and throughput │
│ • Recent errors │
│ • Use: Azure Portal, Grafana │
│ │
│ ENGINEERING (Tactical) │
│ ───────────────────────── │
│ • Performance trends │
│ • Error rate analysis │
│ • Capacity utilization │
│ • Deployment frequency │
│ • Use: Azure Workbooks, Power BI │
│ │
│ EXECUTIVE (Strategic) │
│ ───────────────────── │
│ • Business metrics (transactions processed) │
│ • Cost trends │
│ • SLA compliance │
│ • ROI and value delivered │
│ • Use: Power BI, scheduled emails │
│ │
│ SECURITY (Compliance) │
│ ───────────────────── │
│ • Access patterns │
│ • Security events │
│ • Compliance status │
│ • Audit findings │
│ │
└─────────────────────────────────────────────────────────────────────┘
Azure Workbooks
Operations Dashboard
{
"workbook": {
"name": "Integration Operations Dashboard",
"description": "Real-time operational view",
"priority": 1,
"sections": [
{
"name": "Service Health",
"visualization": "Tiles",
"items": [
{
"metric": "Functions",
"query": "resources | where type == 'microsoft.web/sites' | summarize Healthy = countif(health == 'Healthy') by name"
},
{
"metric": "Service Bus",
"query": "ServiceBusNamespaceMetrics | summarize by namespace"
}
]
},
{
"name": "Queue Status",
"visualization": "Chart",
"type": "Line",
"query": "ServiceBusMetrics | where TimeGenerated > ago(1h) | render timechart"
},
{
"name": "Recent Errors",
"visualization": "List",
"query": "AppTraces | where SeverityLevel == 'Error' | order by TimeGenerated desc | take 10"
}
]
}
}
Creating Workbooks
# Export workbook template
az monitor workbook template list \
--resource-group rg-monitoring \
--category "Azure"
# Create custom workbook
az monitor workbook create \
--name "integration-ops" \
--resource-group rg-monitoring \
--location eastus \
--display-name "Integration Operations" \
--template-data @workbook-template.json
Power BI Integration
Power BI Dashboard Design
{
"powerBIDashboard": {
"name": "Integration Executive Summary",
"refreshSchedule": "Daily 6 AM",
"dataSources": [
{
"type": "Log Analytics",
"workspace": "la-integration-prod",
"queries": [
"Daily transaction volume by service",
"Monthly cost by resource group",
"SLA compliance trends"
]
},
{
"type": "Azure Cost Management",
"scope": "Production Subscription"
}
],
"pages": [
"Executive Summary",
"Service Performance",
"Cost Analysis",
"SLA Compliance",
"Capacity Planning"
]
}
}
Example Queries for Power BI
// Daily transaction volume
requests
| where timestamp > ago(30d)
| summarize Transactions = count() by bin(timestamp, 1d), Service = appName
| order by timestamp
// SLA compliance by service
requests
| where timestamp > ago(30d)
| summarize
Total = count(),
Failed = countif(success == false),
P95Latency = percentile(duration, 95)
by Service = appName
| extend SLA = 100.0 * (Total - Failed) / Total
// Cost by service
AzureResources
| where TimeGenerated > ago(30d)
| summarize Cost = sum(Cost) by Service = tostring(tags["service"])
| order by Cost desc
Executive Reporting
Key Metrics for Executives
┌─────────────────────────────────────────────────────────────────────┐
│ EXECUTIVE METRICS │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ BUSINESS IMPACT: │
│ ✓ Transactions processed (daily/weekly/monthly) │
│ ✓ Integration uptime (% of SLA) │
│ ✓ Message processing success rate │
│ ✓ Average end-to-end latency │
│ │
│ FINANCIAL: │
│ ✓ Monthly spend vs budget │
│ ✓ Cost per transaction │
│ ✓ Reserved instance coverage │
│ ✓ Month-over-month trend │
│ │
│ OPERATIONAL: │
│ ✓ Incidents resolved (count, MTTR) │
│ ✓ Deployment frequency │
│ ✓ Technical debt metrics │
│ ✓ Feature velocity │
│ │
│ GROWTH: │
│ ✓ Transaction growth trend │
│ ✓ New integrations deployed │
│ ✓ Partner API additions │
│ │
└─────────────────────────────────────────────────────────────────────┘
Monthly Report Template
{
"monthlyReport": {
"period": "January 2024",
"sections": [
{
"title": "Executive Summary",
"content": "One paragraph overview"
},
{
"title": "Service Performance",
"metrics": ["Uptime: 99.95%", "Transactions: 2.3M", "Errors: 0.02%"]
},
{
"title": "Cost Summary",
"metrics": ["Spend: $45,230", "vs Budget: -5%", "per Transaction: $0.019"]
},
{
"title": "Incidents",
"metrics": ["Total: 3", "Sev1: 0", "Sev2: 1", "MTTR: 45 min"]
},
{
"title": "Looking Forward",
"items": ["Capacity expansion in February", "New integration launch"]
}
]
}
}
Best Practices
Implementation Checklist
| Practice | Description |
|---|---|
| Match audience | Different views for different roles |
| Set refresh appropriately | Real-time for ops, daily for exec |
| Limit to key metrics | Too many = confusion |
| Include context | Trends vs point-in-time |
| Enable drill-down | Summary to detail |
| Schedule reports | Automated distribution |
Dashboard Design Principles
┌─────────────────────────────────────────────────────────────────────┐
│ DASHBOARD DESIGN PRINCIPLES │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ✓ Lead with key metrics │
│ ✓ Show trends, not just current state │
│ ✓ Include comparison (vs target, vs period) │
│ ✓ Provide context (what does green/yellow/red mean) │
│ ✓ Enable action (click to drill down) │
│ ✓ Update appropriately (real-time vs daily) │
│ │
└─────────────────────────────────────────────────────────────────────┘
Related Topics
- Log Analytics — Data source
- Azure Monitor Alerting — Alerting
- SLI/SLO/SLA — Service levels
Azure Integration Hub - Architect Level Observability & Operations at Scale