Die Struktur von Azure-Dashboards

In diesem Dokument wird die Struktur eines Azure-Dashboards beschrieben. Dabei wird das folgende Dashboard als Beispiel verwendet:

Screenshot: Beispieldashboard im Azure-Portal.

Da freigegebene Azure-Dashboards Ressourcen sind, kann dieses Dashboard als JSON-Code dargestellt werden. Sie können die JSON-Darstellung eines Dashboard herunterladen, indem Sie im Azure-Portal Exportieren und dann Herunterladen auswählen.

JSON für Beispieldashboard

Der folgende JSON-Code stellt das Beispieldashboard aus dem vorherigen Abschnitt dar.

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

Allgemeine Ressourceneigenschaften

Wir unterteilen die relevanten Abschnitte der JSON-Darstellung. Die allgemeinen Ressourceneigenschaften werden am Ende des JSON-Beispielcodes angezeigt. Diese Eigenschaften werden für alle Azure-Ressourcentypen freigegeben und beziehen sich nicht speziell auf den Inhalt des Dashboards.

Kennung

Die ID stellt die Azure-Ressourcen-ID des Dashboards dar und unterliegt den Namenskonventionen für Azure-Ressourcen. Wenn im Portal ein Dashboard erstellt wird, wird in der Regel eine ID in Form einer GUID erstellt, Sie können aber jeden gültigen Namen verwenden, wenn Sie ein Dashboard programmgesteuert erstellen.

Wenn Sie ein Dashboard aus dem Azure-Portal exportieren, ist das id-Feld nicht enthalten. Wenn Sie ein neues Dashboard erstellen, indem Sie eine JSON-Datei importieren, die das id-Feld enthält, wird der Wert ignoriert, und jedem neuen Dashboard wird ein neuer ID-Wert zugewiesen.

Name

Der Ressourcenname, den das Azure-Portal für das Dashboard verwendet.

type

Alle Dashboards sind vom Typ Microsoft.Portal/dashboards.

Location

Im Gegensatz zu anderen Ressourcen verfügen Dashboards über keine Laufzeitkomponente. Für Dashboards gibt location den primären geografischen Standort an, an dem die JSON-Darstellung des Dashboards gespeichert wird. Der Wert muss einer der Standortcodes sein, die mit der Standort-API für die Abonnementressource abgerufen werden können.

`Tags`

Tags sind eine gebräuchliche Funktion von Azure-Ressourcen, mit denen Sie die Ressource nach beliebigen Name-Wert-Paaren organisieren können. Dashboards verfügen über ein spezielles Tag namens hidden-title. Wenn diese Eigenschaft bei Ihrem Dashboard ausgefüllt ist, wird der entsprechende Wert als Anzeigename des Dashboards im Portal verwendet. Dieses Tag ermöglicht einen Anzeigenamen für Ihr Dashboard, der umbenannt werden kann

Eigenschaften

Das Objekt properties enthält zwei Eigenschaften, lenses und metadata. Die lenses-Eigenschaft enthält Informationen zu den Kacheln auf dem Dashboard. Die metadata-Eigenschaft ist für mögliche künftige Funktionen reserviert.

Fokusbereiche

Die lenses-Eigenschaft enthält das Dashboard.

Bestandteile

Die Eigenschaft lenses enthält zwei Eigenschaften, order und parts. Derzeit ist order immer auf 0 festgelegt. Die parts-Eigenschaft enthält ein Objekt, das die einzelnen Elemente (auch als Kacheln bezeichnet) auf dem Dashboard definiert.

Das parts-Objekt enthält eine Eigenschaft für jeden Teil. Der Name der Eigenschaft ist dabei eine Zahl. Diese Zahl ist nicht wichtig.

Jedes einzelne Teilobjekt enthält position und metadata.

Position

Die position-Eigenschaft enthält Informationen zur Größe und Position für den Teil ausgedrückt als x, y, rowSpan und colSpan. Die Werte beziehen sich auf Rastereinheiten. Diese Rastereinheiten sind sichtbar, wenn sich das Dashboard wie hier gezeigt im Bearbeitungsmodus befindet.

Screenshot: Rastereinheiten für ein Dashboard im Azure-Portal

Wenn eine Kachel beispielsweise eine Breite von zwei Rastereinheiten und eine Höhe von einer Rastereinheit haben und sich in der oberen linken Ecke im Dashboard befinden soll, sieht das Positionsobjekt wie folgt aus:

position: { x: 0, y: 0, rowSpan: 2, colSpan: 1 }

Metadaten

Jedes Teil verfügt über eine Metadateneigenschaft. Ein Objekt verfügt nur über eine erforderliche Eigenschaft in den Metadaten: type. Mit dieser Zeichenfolge wird im Portal festgelegt, welcher Kacheltyp angezeigt werden soll. Im Beispieldashboard werden folgende Typen von Kacheln verwendet:

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart: Wird zum Anzeigen von Überwachungsmetriken verwendet
  2. Extension[azure]/HubsExtension/PartType/MarkdownPart – Wird zum Anzeigen von benutzerdefiniertem Markdowninhalt wie Text oder Bilder mit einfachen Formatierungen für Listen, Links usw. verwendet.
  3. Extension[azure]/HubsExtension/PartType/VideoPart – Wird zum Anzeigen von Videos von YouTube, Channel 9 und anderen Arten von Videos verwendet, die in einem HTML-Videotag ausgeführt werden können.

Jeder Teiletyp verfügt über seine eigenen Optionen für die Konfiguration. Die möglichen Konfigurationseigenschaften sind inputs, settings und asset.

Eingaben

Das „inputs“-Objekt enthält im Allgemeinen Informationen, anhand derer eine Kachel an eine Ressourceninstanz gebunden wird.

Jedes MetricsChartPart in unserem Beispiel verfügt über eine einzelne Eingabe, welche die Ressource zum Binden ausdrückt und die Azure-Ressourcen-ID der VM sowie Informationen zu den angezeigten Daten darstellt. Hier sehen Sie beispielsweise das inputs-Objekt für die Kachel, welche die Metriken Netzwerk eingehend insgesamt und Netzwerk ausgehend insgesamt anzeigt.

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

Einstellungen

Das „settings“-Objekt enthält die konfigurierbaren Elemente eines Teils. Auf dem Beispieldashboard werden in MarkdownPart Einstellungen zum Speichern des benutzerdefinierten Markdown-Inhalts sowie ein konfigurierbarer Titel und Untertitel verwendet.

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

In ähnlicher Weise verfügt VideoPart über spezifische Einstellungen, die einen Zeiger auf das wiederzugebende Video, eine Einstellung für die automatische Wiedergabe und optionale Informationen zum Titel enthalten.


"settings": {
  "content": {
    "settings": {
      "src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
      "autoplay": false
    }
  }
}

Asset

Für Kacheln, die an verwaltbare Portalobjekte erster Klasse (sogenannte Ressourcen) gebunden sind, wird diese Beziehung über das asset-Objekt angegeben. Im Beispieldashboard enthält die Kachel für den virtuellen Computer die folgende Beschreibung für „asset“. Die idInputName-Eigenschaft gibt im Portal an, dass die ID-Eingabe den eindeutigen Bezeichner für das Objekt enthält, in diesem Fall die Ressourcen-ID. Für die meisten Azure-Ressourcentypen sind im Portal Assets definiert.

"asset": {
    "idInputName": "id",
    "type": "VirtualMachine"
}

Nächste Schritte