Azure ダッシュボードの構造
このドキュメントでは、次のダッシュボードを例として、Azure のダッシュボードの構造を説明します。
共有 Azure ダッシュボードは、リソースであるため、このダッシュボードを JSON として表すことができます。 Azure portal で [エクスポート] を選んでから [ダウンロード] を選ぶことで、ダッシュボードの JSON 表現をダウンロードできます。
サンプル ダッシュ ボードの JSON
以下の JSON は、前のセクションで示したサンプル ダッシュボードを表したものです。
{
"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"
}
一般的なリソースのプロパティ
JSON の関連するセクションを分割してみましょう。 共通のリソース プロパティは、サンプル JSON の終わり近くに配置されています。 これらのプロパティは、すべての種類の Azure リソースで共有され、ダッシュボードのコンテンツには特に関連しません。
ID
ID
はダッシュボードの Azure リソース ID を表し、Azure リソースの名前付け規則に従います。 ポータルでダッシュボードを作成するときは、通常、GUID 形式の ID が選択されますが、プログラムでダッシュボードを作成するときは、任意の有効な名前を使用できます。
Azure portal からダッシュボードをエクスポートする場合、id
フィールドは含まれません。 id
フィールドを含む JSON ファイルをインポートして新しいダッシュボードを作成した場合、その値は無視され、新しい ID 値が新しいダッシュボードごとに割り当てられます。
Name
Azure portal がダッシュボードに使用するリソース名。
Type
すべてのダッシュボードの種類は Microsoft.Portal/dashboards
です。
場所
他のリソースとは異なり、ダッシュボードにはランタイム コンポーネントがありません。 ダッシュボードの場合、location
はダッシュボードの JSON 表現が格納されるプライマリの地理的場所を示します。 値は、サブスクリプション リソースの場所 API を使用してフェッチできる場所コードの 1 つです。
タグ
タグは、任意の名前値のペア別にリソースを整理するための Azure リソース共通の機能です。 ダッシュボードには、hidden-title
という 1 つの特別なタグが含まれています。 ダッシュボードにこのプロパティが設定されている場合は、その値がポータルのダッシュボードの表示名として使われます。 このタグを使うと、ダッシュボードに変更可能な表示名を指定できます
プロパティ
properties
オブジェクトには、lenses
と metadata
という 2 つのプロパティが含まれます。 lenses
プロパティには、ダッシュボード上のタイルに関する情報が含まれています。 metadata
プロパティは、将来導入される可能性がある機能のために予約されています。
レンズ
lenses
プロパティには、ダッシュボードが含まれています。
パーツ
lenses
プロパティには、order
と parts
という 2 つのプロパティが含まれます。 現在、order
は常に 0 に設定されます。 parts
プロパティには、ダッシュボード上の個々のパーツ (タイルとも呼ばれます) を定義するオブジェクトが含まれています。
parts
オブジェクトには、プロパティ名が数字である、各パーツのプロパティが含まれています。 数値は重要ではありません。
個々の各パーツ オブジェクトには、position
と metadata
が含まれます。
配置
position
プロパティには、x
、y
、rowSpan
、colSpan
と表現されるパーツのサイズと位置の情報が含まれています。 値は、グリッド単位です。 これらのグリッド単位は、ダッシュボードが以下に示すような編集モードの時に表示されます。
たとえば、タイルの幅を 2 グリッド単位、高さを 1 グリッド単位、位置をダッシュボードの左上隅に設定したい場合、position オブジェクトは次のようになります。
position: { x: 0, y: 0, rowSpan: 2, colSpan: 1 }
Metadata
各パーツには metadata プロパティがあります。 メタデータ内において、オブジェクトの必須プロパティは type
の 1 つだけです。 この文字列は、表示するタイルの種類をポータルに指定します。 このダッシュボードの例では、次の種類のタイルを使用します。
Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart
– 監視しているメトリックの表示に使用しますExtension[azure]/HubsExtension/PartType/MarkdownPart
– リストやリンクなどの基本的な書式設定を使って、テキストや画像などのカスタマイズされたマークダウン コンテンツを表示するために使われますExtension[azure]/HubsExtension/PartType/VideoPart
– YouTube、Channel 9、および HTML の video タグで動作する他の種類のビデオから動画を表示するために使われます。
パーツの種類ごとに、構成のための独自のオプションがあります。 使用できる構成プロパティとして inputs
、settings
、asset
があります。
入力
入力オブジェクトには、一般に、リソース インスタンスにタイルをバインドする情報が含まれています。
この例の各 MetricsChartPart
には、バインド先のリソースを表す 1 つの入力があり、VM の Azure リソース ID と、表示されるデータについての情報を表します。 たとえば、次に示すのは、Network In Total と Network Out Total メトリックを表示するタイルの inputs
オブジェクトです。
"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"
}
]
}
}
]
設定
設定オブジェクトには、パーツの構成可能な要素が含まれています。 このサンプル ダッシュボードの 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
}
}
}
同様に、VideoPart
には、再生する動画へのポインター、自動再生設定、オプションのタイトル情報を含む独自の設定が含まれます。
"settings": {
"content": {
"settings": {
"src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
"autoplay": false
}
}
}
Asset
ファースト クラスの管理可能なポータル オブジェクト (アセットと呼ばれます) にバインドされるタイルでは、asset
オブジェクトによってこの関係が表されます。 このサンプル ダッシュボードでは、仮想マシン タイルに、この資産の説明が含まれています。 idInputName
プロパティは、ID 入力に資産の一意識別子 (この場合は、リソース ID) が含まれていることをポータルに通知します。 ほとんどの種類の Azure リソースでは、資産がポータルで定義されています。
"asset": {
"idInputName": "id",
"type": "VirtualMachine"
}
次のステップ
- Azure portal またはプログラムでダッシュボードを作成する方法を理解します。
- Azure ダッシュボードのマークダウン タイルを使用してカスタム コンテンツを表示する方法を理解します。