次の方法で共有


Azure ダッシュボードの構造

このドキュメントでは、次のダッシュボードを例として、Azure のダッシュボードの構造を説明します。

Azure portal のサンプル ダッシュボードのスクリーンショット。

共有 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 オブジェクトには、lensesmetadata という 2 つのプロパティが含まれます。 lenses プロパティには、ダッシュボード上のタイルに関する情報が含まれています。 metadata プロパティは、将来導入される可能性がある機能のために予約されています。

レンズ

lenses プロパティには、ダッシュボードが含まれています。

パーツ

lenses プロパティには、orderparts という 2 つのプロパティが含まれます。 現在、order は常に 0 に設定されます。 parts プロパティには、ダッシュボード上の個々のパーツ (タイルとも呼ばれます) を定義するオブジェクトが含まれています。

parts オブジェクトには、プロパティ名が数字である、各パーツのプロパティが含まれています。 数値は重要ではありません。

個々の各パーツ オブジェクトには、positionmetadata が含まれます。

配置

position プロパティには、xyrowSpancolSpan と表現されるパーツのサイズと位置の情報が含まれています。 値は、グリッド単位です。 これらのグリッド単位は、ダッシュボードが以下に示すような編集モードの時に表示されます。

Azure portal でのダッシュボードのグリッド単位を示すスクリーンショット。

たとえば、タイルの幅を 2 グリッド単位、高さを 1 グリッド単位、位置をダッシュボードの左上隅に設定したい場合、position オブジェクトは次のようになります。

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

Metadata

各パーツには metadata プロパティがあります。 メタデータ内において、オブジェクトの必須プロパティは type の 1 つだけです。 この文字列は、表示するタイルの種類をポータルに指定します。 このダッシュボードの例では、次の種類のタイルを使用します。

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart – 監視しているメトリックの表示に使用します
  2. Extension[azure]/HubsExtension/PartType/MarkdownPart – リストやリンクなどの基本的な書式設定を使って、テキストや画像などのカスタマイズされたマークダウン コンテンツを表示するために使われます
  3. Extension[azure]/HubsExtension/PartType/VideoPart – YouTube、Channel 9、および HTML の video タグで動作する他の種類のビデオから動画を表示するために使われます。

パーツの種類ごとに、構成のための独自のオプションがあります。 使用できる構成プロパティとして inputssettingsasset があります。

入力

入力オブジェクトには、一般に、リソース インスタンスにタイルをバインドする情報が含まれています。

この例の各 MetricsChartPart には、バインド先のリソースを表す 1 つの入力があり、VM の Azure リソース ID と、表示されるデータについての情報を表します。 たとえば、次に示すのは、Network In TotalNetwork 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"
}

次のステップ