Struttura dei dashboard di Azure
Questo documento descrive dettagliatamente la struttura di un dashboard di Azure usando il dashboard seguente come esempio:
Poiché i dashboard di Azure condivisi sono risorse, questo dashboard può essere rappresentato come JSON. È possibile scaricare la rappresentazione JSON di un dashboard selezionando Esporta e quindi Scarica nel portale di Azure.
JSON dashboard di esempio
Il JSON seguente rappresenta il dashboard di esempio mostrato nella sezione precedente.
{
"properties": {
"lenses": [
{
"order": 0,
"parts": [
{
"position": {
"x": 0,
"y": 0,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [],
"type": "Extension/HubsExtension/PartType/MarkdownPart",
"settings": {
"content": {
"settings": {
"content": "## Azure Virtual Machines Overview\r\nNew team members should watch this video to get familiar with Azure Virtual Machines.",
"markdownUri": null
}
}
}
}
},
{
"position": {
"x": 3,
"y": 0,
"colSpan": 8,
"rowSpan": 4
},
"metadata": {
"inputs": [],
"type": "Extension/HubsExtension/PartType/MarkdownPart",
"settings": {
"content": {
"settings": {
"content": "This is the team dashboard for the test VM we use on our team. Here are some useful links:\r\n\r\n1. [Create a Linux virtual machine](https://docs.microsoft.com/azure/virtual-machines/linux/quick-create-portal)\r\n1. [Create a Windows virtual machine](https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal)\r\n1. [Create a virtual machine scale set](https://docs.microsoft.com/azure/virtual-machine-scale-sets/quick-create-portal)",
"title": "Test VM Dashboard",
"subtitle": "Contoso",
"markdownUri": null
}
}
}
}
},
{
"position": {
"x": 0,
"y": 2,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [],
"type": "Extension/HubsExtension/PartType/VideoPart",
"settings": {
"content": {
"settings": {
"src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
"autoplay": false
}
}
}
}
},
{
"position": {
"x": 0,
"y": 4,
"colSpan": 11,
"rowSpan": 3
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Percentage CPU",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 0,
"y": 7,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Disk Read Operations/Sec",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Disk Write Operations/Sec",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 3,
"y": 7,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Disk Read Bytes",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Disk Write Bytes",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 6,
"y": 7,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Network In Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Network Out Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 9,
"y": 7,
"colSpan": 2,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "id",
"value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
],
"type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
"asset": {
"idInputName": "id",
"type": "VirtualMachine"
}
}
}
]
}
],
"metadata": {
"model": {}
}
},
"name": "Simple VM Dashboard",
"type": "Microsoft.Portal/dashboards",
"location": "INSERT LOCATION",
"tags": {
"hidden-title": "Simple VM Dashboard"
},
"apiVersion": "2022-12-01-preview"
}
Proprietà delle risorse comuni
Scomponendo le sezioni rilevanti del codice JSON, Le proprietà comuni della risorsa vengono visualizzate vicino all'entità finale del JSON di esempio. Queste proprietà vengono condivise in tutti i tipi di risorse di Azure e non sono correlate nello specifico ai contenuti del dashboard.
ID
ID
Rappresenta l'ID risorsa di Azure del dashboard, soggetto alle convenzioni di denominazione delle risorse di Azure. Quando il portale crea un dashboard, in genere sceglie un ID sotto forma di GUID, ma è possibile usare qualsiasi nome valido quando si crea un dashboard a livello di programmazione.
Quando si esporta un dashboard dal portale di Azure, il campo id
non è incluso. Se si crea un nuovo dashboard importando un file JSON che include il campo id
, il valore verrà ignorato e a ogni nuovo dashboard verrà assegnato un nuovo valore ID.
Nome
Nome della risorsa usato dal portale di Azure per il dashboard.
Type
Tutti i dashboard sono di tipo Microsoft.Portal/dashboards
.
Ufficio
Diversamente da altre risorse, i dashboard non devono essere un componente di runtime. Per i dashboard, location
indica l'area geografica principale in cui è archiviata la rappresentazione JSON del dashboard. Il valore deve essere uno dei codici località che può essere recuperato con l'API apposita nella risorsa delle sottoscrizioni.
Tag
I tag sono una caratteristica comune delle risorse di Azure e permettono di organizzare la risorsa in base a coppie arbitrarie di nome-valore. I dashboard includono un tag speciale denominato hidden-title
. Se la proprietà è popolata nel dashboard, tale valore viene usato come nome visualizzato per il dashboard nel portale. Questo tag permette di includere un nome visualizzato modificabile per il dashboard
Proprietà
L'oggetto properties
contiene due proprietà, lenses
e metadata
. La proprietà lenses
contiene informazioni sui riquadri nel dashboard. La proprietà metadata
è riservata alle potenziali funzionalità future.
Sezioni
La proprietà lenses
contiene il dashboard.
Parti
La proprietà lenses
contiene due proprietà: order
e parts
. Attualmente, order
è sempre impostata su 0. La proprietà parts
contiene un oggetto che definisce le singole parti (dette anche riquadri) nel dashboard.
L'oggetto parts
contiene una proprietà per ogni parte, in cui il nome della proprietà è un numero. Il numero non è significativo.
Ogni singolo oggetto parte contiene position
e metadata
.
Posizione
La proprietà position
contiene le informazioni sulle dimensioni e sulla posizione per la parte espressa come x
, y
, rowSpan
e colSpan
. I valori sono espressi in termini di unità griglia. Queste unità griglia sono visibili quando il dashboard è nella modalità modificabile, come mostrato qui.
Ad esempio, se un riquadro deve avere una larghezza di due unità griglia, un'altezza di un'unità griglia e una posizione nell'angolo in alto a sinistra del dashboard, l'oggetto position avrà questo aspetto:
position: { x: 0, y: 0, rowSpan: 2, colSpan: 1 }
Metadati UFX
Ogni parte ha una proprietà dei metadati. Un oggetto ha una sola proprietà obbligatoria nei metadati: type
. Questa stringa indica al portale quale tipo di riquadro visualizzare. Il dashboard di esempio usa questi tipi di riquadri:
Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart
: usato per visualizzare le metriche di monitoraggioExtension[azure]/HubsExtension/PartType/MarkdownPart
: usato per mostrare contenuto markdown personalizzato, ad esempio testo o immagini, con formattazione di base per elenchi, collegamenti e così via.Extension[azure]/HubsExtension/PartType/VideoPart
: usato per visualizzare video da YouTube, Channel 9 e qualsiasi altro tipo di video che supporta un tag video HTML.
Ogni tipo di parte ha opzioni proprie per la configurazione. Le possibili proprietà di configurazione sono denominate inputs
, settings
e asset
.
Input
L'oggetto inputs contiene in genere informazioni che associano un riquadro a un'istanza della risorsa.
In ogni MetricsChartPart
nell'esempio è presente un singolo input che esprime la risorsa a cui eseguire l'associazione, che rappresenta l'ID risorsa di Azure della VM, insieme alle informazioni sui dati visualizzati. Ad esempio, ecco l'oggetto inputs
per il riquadro che mostra le metriche Totale rete in ingresso e Totale rete in uscita.
"inputs":
[
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Network In Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Network Out Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
]
Impostazione
L'oggetto settings contiene gli elementi configurabili di una parte. Nel dashboard di esempio, MarkdownPart
usa le impostazioni per archiviare il contenuto del markdown personalizzato insieme a un titolo e a un sottotitolo configurabili.
"settings": {
"content": {
"settings": {
"content": "This is the team dashboard for the test VM we use on our team. Here are some useful links:\r\n\r\n1. [Create a Linux virtual machine](https://docs.microsoft.com/azure/virtual-machines/linux/quick-create-portal)\r\n1. [Create a Windows virtual machine](https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal)\r\n1. [Create a virtual machine scale set](https://docs.microsoft.com/azure/virtual-machine-scale-sets/quick-create-portal)",
"title": "Test VM Dashboard",
"subtitle": "Contoso",
"markdownUri": null
}
}
}
Analogamente, VideoPart
ha impostazioni proprie che contengono un puntatore al video da riprodurre, un'impostazione di riproduzione automatica e informazioni sul titolo facoltative.
"settings": {
"content": {
"settings": {
"src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
"autoplay": false
}
}
}
Risorsa
Per i riquadri associati a oggetti del portale gestibili di prima classe, chiamati asset, la relazione è espressa tramite l'oggetto asset
. Nel dashboard di esempio il riquadro della macchina virtuale contiene la descrizione di questo asset. La proprietà idInputName
indica al portale che l'input ID contiene l'identificatore univoco per l'asset, in questo caso l'ID risorsa. Il portale include asset definiti per la maggior parte dei tipi di risorsa di Azure.
"asset": {
"idInputName": "id",
"type": "VirtualMachine"
}
Passaggi successivi
- Informazioni su come creare un dashboard nel portale di Azure o a livello di programmazione.
- Informazioni su come usare i riquadri markdown nei dashboard di Azure per visualizzare il contenuto personalizzato.