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 :

Capture d’écran d’un exemple de tableau de bord dans le portail Azure.

É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.

Le document JSON suivant représente le tableau de bord ci-dessus.

{
{
  "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"
}

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 ci-dessus. Ces propriétés sont partagées entre tous les types de ressources Azure. Elles ne sont pas liées spécifiquement au 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.

Name

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.

Location

Contrairement à d’autres ressources, les tableaux de bord n’ont pas de composant d’exécution. Pour les tableaux de bord, la propriété « emplacement » 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 propriétés contient deux propriétés, lenses et metadata. La propriété lenses contient des informations sur les vignettes dans le 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. L'objet de filtre dans cet exemple contient une propriété unique nommée « 0. » Les filtres sont un concept de regroupement qui n’est actuellement pas implémenté. Pour l'instant, tous vos tableaux de bord ont cette propriété « 0 » unique sur l'objet filtre.

Éléments

L'objet situé sous « 0 » 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) sur le tableau de bord.

L’objet parts 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 de personnalisation, comme illustré ici.

Capture d’écran montrant les unités de grille pour un tableau de bord dans le portail Azure.

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 : 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 :

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart – Utilisé pour afficher des mesures de surveillance.
  2. 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.
  3. 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/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"
        }
      ]
    }
  }
]

Paramètres

L’objet settings contient les éléments configurables d’une partie. Dans notre exemple de tableau de bord, la partie Markdown 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"
    }
  }
}

De même, la partie de contrôle vidéo 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 (idInput) contient l’identificateur unique de l’actif, dans cet exemple, 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