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.

Das folgende JSON stellt das oben gezeigte Dashboard dar.

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

Allgemeine Ressourceneigenschaften

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

id

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 weisen den Typ Microsoft.Portal/dashboards auf.

Ort

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 Eigenschaftenobjekt enthält zwei Eigenschaften, lenses und metadata. Die lenses-Eigenschaft enthält Informationen zu den Kacheln im Dashboard. Die metadata-Eigenschaft ist für mögliche künftige Funktionen reserviert.

Fokusbereiche

Die lenses-Eigenschaft enthält das Dashboard. Das Fokusobjekt in diesem Beispiel enthält eine einzige Eigenschaft mit dem Namen „0“. Fokusbereiche sind ein Gruppierungskonzept, das derzeit nicht implementiert ist. Derzeit enthalten alle Ihre Dashboards diese einzelne „0“-Eigenschaft für das Fokusobjekt.

Bestandteile

Das Objekt unterhalb von „0“ 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) im 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 die Informationen zu Größe und Position des Teils und wird mit x, y, rowSpan und colSpan angegeben. Die Werte beziehen sich auf Rastereinheiten. Diese Rastereinheiten sind sichtbar, wenn sich das Dashboard wie hier gezeigt im Anpassungsmodus 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: 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. Mögliche 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/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"
        }
      ]
    }
  }
]

Einstellungen

Das „settings“-Objekt enthält die konfigurierbaren Elemente eines Teils. In unserem Beispieldashboard verwendet der Markdownteil Einstellungen zum Speichern des benutzerdefinierten Markdowninhalts sowie ein konfigurierbarer Titel und Untertitel.

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

In ähnlicher Weise verfügt die Videokachel ü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