Struttura dei dashboard di Azure

Questo documento descrive dettagliatamente la struttura di un dashboard di Azure usando il dashboard seguente come esempio:

Screenshot di un dashboard di esempio nel portale di Azure.

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.

Il formato JSON seguente rappresenta il dashboard illustrato in precedenza.

{
{
  "properties": {
    "lenses": {
      "0": {
        "order": 0,
        "parts": {
          "0": {
            "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
                  }
                }
              }
            }
          },
          "1": {
            "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
                  }
                }
              }
            }
          },
          "2": {
            "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
                  }
                }
              }
            }
          },
          "3": {
            "position": {
              "x": 0,
              "y": 4,
              "colSpan": 11,
              "rowSpan": 3
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Percentage CPU",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "4": {
            "position": {
              "x": 0,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Operations/Sec",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Disk Write Operations/Sec",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "5": {
            "position": {
              "x": 3,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Bytes",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Disk Write Bytes",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "6": {
            "position": {
              "x": 6,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Network In Total",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Network Out Total",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "7": {
            "position": {
              "x": 9,
              "y": 7,
              "colSpan": 2,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "id",
                  "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                }
              ],
              "type": "Extension/HubsExtension/PartType/ResourcePart",
              "asset": {
                "idInputName": "id",
                "type": "VirtualMachine"
              }
            }
          }
        }
      }
    },
    "metadata": {
      "model": {
        "timeRange": {
          "value": {
            "relative": {
              "duration": 24,
              "timeUnit": 1
            }
          },
          "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
        }
      }
    }
  },
  "name": "Simple VM Dashboard",
  "type": "Microsoft.Portal/dashboards",
  "location": "INSERT LOCATION",
  "tags": {
    "hidden-title": "Simple VM Dashboard"
  },
  "apiVersion": "2015-08-01-preview"
}

Proprietà delle risorse comuni

Scomponendo le sezioni rilevanti del codice JSON, Le proprietà comuni della risorsa vengono visualizzate vicino all'entità finale dell'esempio precedente. Queste proprietà vengono condivise in tutti i tipi di risorse di Azure. Non sono correlate in modo specifico al contenuto 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, "posizione" 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 proprietà 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. Notare che l'oggetto sezione in questo esempio contiene un'unica proprietà chiamata "0". Le sezioni sono un concetto di raggruppamento che non è attualmente implementato. Al momento, tutti i dashboard includono la proprietà unica "0" nell'oggetto delle sezioni.

Parti

L'oggetto sotto "0" 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à di personalizzazione mostrata qui.

Screenshot che mostra le unità griglia per un dashboard nel portale di Azure.

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: type. Questa stringa indica al portale quale tipo di riquadro visualizzare. Il dashboard di esempio usa questi tipi di riquadri:

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart: usato per visualizzare le metriche di monitoraggio
  2. Extension[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.
  3. 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/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
      "chartType": 0,
      "metrics": [
        {
          "name": "Network In Total",
          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
        },
        {
          "name": "Network Out Total",
          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
        }
      ]
    }
  }
]

Impostazione

L'oggetto settings contiene gli elementi configurabili di una parte. Nel dashboard di esempio la parte Markdown usa l'oggetto settings 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"
    }
  }
}

Analogamente, il riquadro del video 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