Structure des tableaux de bord Azure
Ce document décrit la structure d’un tableau de bord Azure, en utilisant le tableau de bord suivant comme exemple :
Étant donné que les tableaux de bord Azure sont des ressources, ce tableau de bord peut être représenté au format JSON. Vous pouvez télécharger la représentation JSON d'un tableau de bord en sélectionnant Exporter, puis Télécharger dans le Portail Azure.
Exemple de tableau de bord JSON
L’exemple de tableau de bord JSON suivant est celui illustré dans la section précédente.
{
"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"
}
Propriétés des ressources communes
Analysons les sections appropriées du document JSON. Les propriétés de ressource courantes s’affichent à la fin de l’exemple JSON. Ces propriétés sont partagées sur tous les types de ressource Azure et ne concernent pas spécifiquement le contenu du tableau de bord.
id
Le ID
représente l'identifiant de la ressource Azure du tableau de bord, conformément aux conventions de dénomination des ressources Azure. Quand le portail crée un tableau de bord, il choisit généralement un ID sous la forme d'un GUID, mais vous pouvez utiliser tout nom valide quand vous créez un tableau de bord par programmation.
Lorsque vous exportez un tableau de bord à partir du Portail Azure, le champ id
n'est pas inclus. Si vous créez un nouveau tableau de bord en important un fichier JSON qui inclut le champ id
, la valeur est ignorée et une nouvelle valeur d'ID est affectée à chaque nouveau tableau de bord.
Nom
Nom de la ressource que Portail Azure utilise pour le tableau de bord.
Type
Tous les tableaux de bord sont de type Microsoft.Portal/dashboards
.
Emplacement
Contrairement à d’autres ressources, les tableaux de bord n’ont pas de composant d’exécution. Pour les tableaux de bord, location
indique l’emplacement géographique principal qui stocke la représentation JSON du tableau de bord. La valeur doit correspondre à l’un des codes d’emplacement que vous pouvez extraire à l’aide de l’API des emplacements sur la ressource des abonnements.
Étiquettes
Les étiquettes (tags) sont une fonctionnalité commune des ressources Azure qui vous permettent d’organiser vos ressources dans des paires nom/valeur arbitraires. Les tableaux de bord comprennent une étiquette spéciale appelée hidden-title
. Si cette propriété est renseignée pour votre tableau de bord, cette valeur lui sert aussi de nom d’affichage dans le portail. Cette étiquette permet de disposer d'un nom d'affichage modifiable pour votre tableau de bord.
Propriétés
L'objet properties
contient deux propriétés : lenses
et metadata
. La propriété lenses
contient des informations sur les vignettes du tableau de bord. La propriété metadata
est réservée pour d'éventuelles futures fonctionnalités.
Filtres (lenses)
La propriété lenses
contient le tableau de bord.
Pièces
La propriété lenses
contient deux propriétés : order
et parts
. Actuellement, order
est toujours défini sur 0. La propriété parts
contient un objet qui définit les parties individuelles (également appelées vignettes) du tableau de bord.
L’objet parts
contient une propriété pour chaque partie, où le nom de la propriété est un nombre. Le nombre n’est pas significatif.
Chaque objet de partie individuel contient position
et metadata
.
Position
La propriété position
contient les informations de taille et d’emplacement de la partie, exprimées sous la forme x
, y
, rowSpan
et colSpan
. Les valeurs sont indiquées en termes d’unités de grille. Ces unités de grille sont visibles quand le tableau de bord est en mode d’édition, comme illustré ici.
Par exemple, si vous voulez qu'une vignette ait une largeur de deux unités de grille, une hauteur d'une unité de grille et un emplacement dans le coin supérieur gauche du tableau de bord, alors l'objet position ressemble à ceci :
position: { x: 0, y: 0, rowSpan: 2, colSpan: 1 }
Métadonnées
Chaque partie a une propriété de métadonnées. Un objet n'a qu’une seule propriété requise dans les métadonnées : type
. Cette chaîne indique au portail quel type de vignette afficher. Notre exemple de tableau de bord utilise ces types de parties de contrôle :
Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart
– Utilisé pour afficher des mesures de surveillance.Extension[azure]/HubsExtension/PartType/MarkdownPart
– Permet d'afficher un contenu Markdown personnalisé, notamment du texte ou des images, avec un formatage de base pour les listes, les liens, etc.Extension[azure]/HubsExtension/PartType/VideoPart
– Utilisé pour afficher des vidéos de YouTube, de Channel 9 et tout autre type de vidéo qui fonctionne dans une étiquette vidéo HTML.
Chaque type de partie possède ses propres options de configuration. Les propriétés de configuration possibles sont appelées inputs
, settings
et asset
.
Entrées
L’objet inputs contient généralement des informations qui lient une partie de contrôle à une instance de ressource.
Chaque MetricsChartPart
dans notre exemple a une seule entrée qui exprime la ressource à lier, représentant l'ID de ressource Azure de la machine virtuelle, ainsi que des informations sur les données affichées. Par exemple, voici l'objet inputs
de la vignette qui affiche les métriques Network In Total et Network Out Total.
"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"
}
]
}
}
]
Paramètres
L’objet settings contient les éléments configurables d’une partie. Dans notre exemple de tableau de bord, le MarkdownPart
utilise des paramètres pour stocker le contenu Markdown personnalisé, ainsi qu’un titre et un sous-titre configurables.
"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
}
}
}
De même, le VideoPart
possède ses propres paramètres qui contiennent un pointeur vers la vidéo à lire, un paramètre de lecture automatique et des informations de titre facultatives.
"settings": {
"content": {
"settings": {
"src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
"autoplay": false
}
}
}
Asset
Les parties de contrôle qui sont liées à des objets de portail gérables de première classe (appelés actifs) ont cette relation exprimée par le biais de l'objet asset
. Dans notre exemple de tableau de bord, la partie de contrôle de la machine virtuelle contient la description de cet actif. La propriété idInputName
indique au portail que l’entrée d’ID contient l’identificateur unique de la ressource ; dans cet exemple, il s’agit de l’ID de ressource. La plupart des types de ressources Azure ont des actifs définis dans le portail.
"asset": {
"idInputName": "id",
"type": "VirtualMachine"
}
Étapes suivantes
- Découvrez comment créer un tableau de bord dans le portail Azure ou par programmation.
- Découvrez comment utiliser des vignettes Markdown dans les tableaux de bord Azure pour afficher du contenu personnalisé.