プログラムによる Azure ダッシュボードの作成Programmatically create Azure Dashboards

このドキュメントでは、Azure ダッシュボードをプログラムで作成し、公開する手順について説明します。This document walks through the process of programmatically creating and publishing Azure dashboards. ドキュメント全体で、次のダッシュボードを参照します。The dashboard shown below is referenced throughout the document.

サンプルのダッシュボード

概要Overview

Azure 内の共有ダッシュボードは、仮想マシンやストレージ アカウントと同様にリソースです。Shared dashboards in Azure are resources just like virtual machines and storage accounts. このため、共有ダッシュボードは、Azure Resource Manager REST API、または Azure CLIAzure PowerShell コマンド、およびこれらの API を使用して構築されたその他の多数の Azure ポータル機能を使用してプログラム的に管理でき、リソース管理を簡易化できます。Therefore, they can be managed programmatically via the Azure Resource Manager REST APIs, the Azure CLI, Azure PowerShell commands, and many Azure portal features build on top of these APIs to make resource management easier.

これらの API とツールを使用することにより、リソースの作成、一覧表示、取得、変更、および削除を実行できます。Each of these APIs and tools offers ways to create, list, retrieve, modify, and delete resources. ダッシュボードはリソースであるため、使用する API やツールを任意に選択できます。Since dashboards are resources, you can pick your favorite API / tool to use.

どのツールを使用するかにかかわらず、リソースの作成 API を呼び出す前に、ダッシュボード オブジェクトの JSON 表現を構築する必要があります。Regardless of which tool you use, you need to construct a JSON representation of your dashboard object before you can call any resource creation API. このオブジェクトには、ダッシュボード上のパーツ (別名 "タイル") に関する情報がThis object contains information about the parts (a.k.a. 含まれています。tiles) on the dashboard. これには、サイズ、位置、バインドされているリソースとユーザーによるカスタマイズ設定が含まれます。It includes sizes, positions, resources they are bound to, and any user customizations.

この JSON ドキュメントを構築するための最も実用的な方法は、ポータルでの対話によりタイルを追加して、配置することです。The most practical way to build up this JSON document is to use the portal to interactively add and position your tiles. 次に JSON をエクスポートします。You then export the JSON. 最後に、スクリプト、プログラム、および展開ツールで後で使用できるテンプレートを結果から作成します。Finally, you create a template from the result for later use in scripts, programs, and deployment tools.

ダッシュボードを作成するCreate a dashboard

新しいダッシュボードを作成するには、ポータルのメイン画面で [新しいダッシュボード] コマンドを使用します。To create a new dashboard, use the New dashboard command on the portal’s main screen.

[新しいダッシュボード] コマンド

次に、タイルのギャラリーを使用してタイルを検索し追加できます。You can then use the tile gallery to find and add tiles. タイルは、ドラッグ アンド ドロップにより追加できます。Tiles are added by dragging and dropping them. タイルの中には、ドラッグ ハンドルを使用してサイズ変更できるものもあり、コンテキスト メニューから固定サイズが設定できるものもあります。Some tiles support resizing via a drag handle, while others support fixes sizes that can be seen in their context menu.

ドラッグ ハンドルDrag handle

ドラッグ ハンドル

コンテキスト メニューから設定した固定サイズFixed sizes via context menu

サイズ コンテキスト メニュー

ダッシュボードの共有Share the dashboard

ダッシュボードを希望の設定に設定したら、ダッシュボードを公開 ([共有] コマンドを使用して) し、リソース エクスプローラーを使用して JSON をフェッチします。After you have configured the dashboard to your liking the next steps are to publish the dashboard (using the Share command) and then use the resource explorer to fetch the JSON.

[共有] コマンド

[共有] コマンドをクリックすると、発行するサブスクリプションとリソース グループを選択するダイアログが表示されます。Clicking the Share command shows a dialog that asks you to choose which subscription and resource group to publish to. 選択したサブスクリプションとリソース グループに書き込みアクセス権が必要であることに注意してください。Keep in mind that you must have write access to the subscription and resource group that you choose.

共有とアクセス

ダッシュボードの JSON 表現をフェッチします。Fetch the JSON representation of the dashboard

公開はわずか数秒で完了します。Publishing only takes a few seconds. 完了したら、リソース エクスプローラーから JSON をフェッチします。When it’s done, the next step is to go to the Resource Explorer to fetch the JSON.

リソース エクスプローラーからの参照

リソース エクスプローラーから、選択したサブスクリプションとリソース グループに移動します。From the resource explorer, navigate to the subscription and resource group that you chose. 次に、新たに公開されたダッシュボード リソースをクリックして JSON を表示します。Next, click on the newly published dashboard resource to reveal the JSON.

リソース エクスプローラーの JSON

JSON からテンプレートを作成するCreate a template from the JSON

次に、適切なリソース管理 API、コマンド ライン ツール、またはポータル内からプログラムを使用して再利用できるように、この JSON からテンプレートを作成します。The next step is to create a template from this JSON so that it can be reused programmatically with the appropriate resource management APIs, command-line tools, or within the portal.

テンプレートを作成するために、ダッシュボードの JSON 構造の詳細を理解する必要はありません。It is not necessary to fully understand the dashboard JSON structure to create a template. ほぼすべての場合、各タイルの構造と構成を維持し、それらが参照している Azure のリソースのセットをパラメーター化することをお勧めします。In most cases, you want to preserve the structure and configuration of each tile, and then parameterize the set of Azure resources they’re pointing to. エクスポートされた JSON ダッシュボードを参照し、使用されているすべての Azure リソース ID を確認します。Look at your exported JSON dashboard and find all occurrences of Azure resource Ids. この例のダッシュボードでは、複数のタイルが単一の Azure 仮想マシンを参照しています。Our example dashboard has multiple tiles that all point at a single Azure virtual machine. これは、このダッシュボードで単一のリソースのみを参照しているためです。That’s because our dashboard only looks at this single resource. サンプル JSON (巻末に添付) で "/subscriptions" を検索すると、この ID が数箇所見つかります。If you search the sample json (included at the end of the document) for “/subscriptions”, you find several occurrences of this Id.

/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1

このダッシュボードを任意の仮想マシン用に後で発行する際には、JSON 内のこの文字列すべてをパラメーター化する必要があります。To publish this dashboard for any virtual machine in the future you need to parameterize every occurrence of this string within the JSON.

Azure でリソースを作成する API には、次の 2 種類があります。There are two flavors of APIs that create resources in Azure. 一度に 1 つのリソースを作成する命令型 API と、単一の API 呼び出しで依存する複数のリソースの作成を調整するテンプレート ベースの展開 API があります。Imperative APIs that create one resource at a time, and a template-based deployment system that can orchestrate the creation of multiple, dependent resources with a single API call. 後者は、パラメーター化とテンプレートをネイティブでサポートするため、この例で使用します。The latter natively supports parameterization and templating so we use it for our example.

テンプレート デプロイを使用して、テンプレートからプログラムによってダッシュボードを作成します。Programmatically create a dashboard from your template using a template deployment

Azure では、複数のリソースの配置を調整するための機能が提供されています。Azure offers the ability to orchestrate the deployment of multiple resources. 展開するリソースを表し、その間の関係を表す展開テンプレートを作成します。You create a deployment template that expresses the set of resources to deploy as well as the relationships between them. 各リソースの JSON 形式は、1 つずつ作成した場合と同じです。The JSON format of each resource is the same as if you were creating them one by one. 違いは、テンプレート言語では、変数、パラメーター、基本的な機能などのいくつかの概念が追加されている点です。The difference is that the template language adds a few concepts like variables, parameters, basic functions, and more. この拡張構文は、テンプレートのデプロイの文脈でのみサポートされ、前述の命令型 API では機能しません。This extended syntax is only supported in the context of a template deployment and does not work if used with the imperative APIs discussed earlier.

この方法を使用する場合は、テンプレートのパラメーター構文を使用してパラメーター化する必要があります。If you’re going this route, then parameterization should be done using the template’s parameter syntax. 次のように、上記で特定したリソース ID のすべてのインスタンスを置換します。You replace all instances of the resource id we found earlier as shown here.

ハード コーディングされたリソース ID を使用した JSON プロパティの例Example JSON property with hard-coded resource Id

id: "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"

テンプレート パラメーターに基づいてパラメーター化されたバージョンに変換されたサンプルの JSON プロパティExample JSON property converted to a parameterized version based on template parameters

id: "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"

また、必要なテンプレート メタデータとパラメーターを、次のように、JSON テンプレートの上部で宣言する必要があります。You also need to declare some required template metadata and the parameters at the top of the json template like this:


{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "virtualMachineName": {
            "type": "string"
        },
        "virtualMachineResourceGroup": {
            "type": "string"
        },
        "dashboardName": {
            "type": "string"
        }
    },
    "variables": {},

    ... rest of template omitted ...

このドキュメントの末尾に、実際に機能する、詳細なテンプレートがあります。You can see the full, working template at the end of this document.

テンプレートを作成したら、REST APIPowerShellAzure CLI、またはポータルの [テンプレートのデプロイ] ページを使用してデプロイできます。Once you have crafted your template you can deploy it using the REST APIs, PowerShell, The Azure CLI, or the portal’s template deployment page.

ここでは、2 つのバージョンのサンプル ダッシュボード JSON があります。Here are two versions of our example dashboard JSON. 1 つ目は、既にリソースにバインドされている、ポータルからエクスポートされたバージョンです。The first is the version that we exported from the portal that was already bound to a resource. 2 つ目は、すべての VM にプログラムを使用してバインドすることができ、Azure Resource Manager を使用して展開できるテンプレート バージョンです。The second is the template version that can be programmatically bound to any VM and deployed using Azure Resource Manager.

サンプルのダッシュボードの JSON による表現 (テンプレート作成前)JSON representation of our example dashboard (before templating)

前述の手順に従って、既にデプロイされているダッシュボードの JSON 表現をフェッチすると、このように表示されます。This is what you can expect to see if you follow the earlier instructions to fetch the JSON representation of a dashboard that is already deployed. このダッシュボードが特定の Azure 仮想マシンを参照していることを示すハードコーディングされたリソース識別子に注目してください。Note the hard-coded resource identifiers that show that this dashboard is pointing at a specific Azure virtual machine.


{
    "properties": {
        "lenses": {
            "0": {
                "order": 0,
                "parts": {
                    "0": {
                        "position": {
                            "x": 0,
                            "y": 0,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [],
                            "type": "Extension[azure]/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.",
                                        "title": "",
                                        "subtitle": ""
                                    }
                                }
                            }
                        }
                    },
                    "1": {
                        "position": {
                            "x": 3,
                            "y": 0,
                            "rowSpan": 4,
                            "colSpan": 8
                        },
                        "metadata": {
                            "inputs": [],
                            "type": "Extension[azure]/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. [Getting started](https://www.contoso.com/tsgs)\r\n1. [Troubleshooting guide](https://www.contoso.com/tsgs)\r\n1. [Architecture docs](https://www.contoso.com/tsgs)",
                                        "title": "Test VM Dashboard",
                                        "subtitle": "Contoso"
                                    }
                                }
                            }
                        }
                    },
                    "2": {
                        "position": {
                            "x": 0,
                            "y": 2,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [],
                            "type": "Extension[azure]/HubsExtension/PartType/VideoPart",
                            "settings": {
                                "content": {
                                    "settings": {
                                        "title": "",
                                        "subtitle": "",
                                        "src": "https://www.youtube.com/watch?v=YcylDIiKaSU&list=PLLasX02E8BPCsnETz0XAMfpLR1LIBqpgs&index=4",
                                        "autoplay": false
                                    }
                                }
                            }
                        }
                    },
                    "3": {
                        "position": {
                            "x": 0,
                            "y": 4,
                            "rowSpan": 3,
                            "colSpan": 11
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Percentage CPU",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "4": {
                        "position": {
                            "x": 0,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Disk Read Operations/Sec",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            },
                                            {
                                                "name": "Disk Write Operations/Sec",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "5": {
                        "position": {
                            "x": 3,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Disk Read Bytes",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            },
                                            {
                                                "name": "Disk Write Bytes",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "6": {
                        "position": {
                            "x": 6,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Network In",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            },
                                            {
                                                "name": "Network Out",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "7": {
                        "position": {
                            "x": 9,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 2
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "id",
                                    "value": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
                            "asset": {
                                "idInputName": "id",
                                "type": "VirtualMachine"
                            },
                            "defaultMenuItemId": "overview"
                        }
                    }
                }
            }
        },
        "metadata": { }
    },
    "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/dashboards/providers/Microsoft.Portal/dashboards/aa9786ae-e159-483f-b05f-1f7f767741a9",
    "name": "aa9786ae-e159-483f-b05f-1f7f767741a9",
    "type": "Microsoft.Portal/dashboards",
    "location": "eastasia",
    "tags": {
        "hidden-title": "Created via API"
    }
}

サンプル ダッシュボードのテンプレートによる表現Template representation of our example dashboard

テンプレート バージョンのダッシュボードには、virtualMachineNamevirtualMachineResourceGroup、および dashboardName の 3 つのパラメーターが定義されています。The template version of the dashboard has defined three parameters called virtualMachineName, virtualMachineResourceGroup, and dashboardName. このパラメーターを使用すると、デプロイするたびに、ダッシュボードが異なる Azure 仮想マシンを参照するよう設定できます。The parameters let you point this dashboard at a different Azure virtual machine every time you deploy. パラメーター化された ID は、このダッシュボードがプログラムを使用して設定でき、任意の Azure 仮想マシンを参照するようデプロイできることを示すために強調表示されています。The parameterized ids are highlighted to show that this dashboard can be programmatically configured and deployed to point to any Azure virtual machine. この機能をテストする最も簡単な方法は、次のテンプレートをコピーして、Azure ポータルの [テンプレートのデプロイ] ページに貼り付けることです。The easiest way to test this feature is to copy the following template and paste it into the Azure portal’s template deployment page.

この例では、ダッシュボードが単独でデプロイされていますが、テンプレート言語を使用すれば、複数のリソースをデプロイし、1 つまたは複数のダッシュボードをバンドルできます。This example deploys a dashboard by itself, but the template language lets you deploy multiple resources, and bundle one or more dashboards along side them.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "virtualMachineName": {
            "type": "string"
        },
        "virtualMachineResourceGroup": {
            "type": "string"
        },
        "dashboardName": {
            "type": "string"
        }
    },
    "variables": {},
    "resources": [
        {
            "properties": {
                "lenses": {
                    "0": {
                        "order": 0,
                        "parts": {
                            "0": {
                                "position": {
                                    "x": 0,
                                    "y": 0,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [],
                                    "type": "Extension[azure]/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.",
                                                "title": "",
                                                "subtitle": ""
                                            }
                                        }
                                    }
                                }
                            },
                            "1": {
                                "position": {
                                    "x": 3,
                                    "y": 0,
                                    "rowSpan": 4,
                                    "colSpan": 8
                                },
                                "metadata": {
                                    "inputs": [],
                                    "type": "Extension[azure]/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. [Getting started](https://www.contoso.com/tsgs)\r\n1. [Troubleshooting guide](https://www.contoso.com/tsgs)\r\n1. [Architecture docs](https://www.contoso.com/tsgs)",
                                                "title": "Test VM Dashboard",
                                                "subtitle": "Contoso"
                                            }
                                        }
                                    }
                                }
                            },
                            "2": {
                                "position": {
                                    "x": 0,
                                    "y": 2,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [],
                                    "type": "Extension[azure]/HubsExtension/PartType/VideoPart",
                                    "settings": {
                                        "content": {
                                            "settings": {
                                                "title": "",
                                                "subtitle": "",
                                                "src": "https://www.youtube.com/watch?v=YcylDIiKaSU&list=PLLasX02E8BPCsnETz0XAMfpLR1LIBqpgs&index=4",
                                                "autoplay": false
                                            }
                                        }
                                    }
                                }
                            },
                            "3": {
                                "position": {
                                    "x": 0,
                                    "y": 4,
                                    "rowSpan": 3,
                                    "colSpan": 11
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Percentage CPU",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "4": {
                                "position": {
                                    "x": 0,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Disk Read Operations/Sec",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    },
                                                    {
                                                        "name": "Disk Write Operations/Sec",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "5": {
                                "position": {
                                    "x": 3,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Disk Read Bytes",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    },
                                                    {
                                                        "name": "Disk Write Bytes",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "6": {
                                "position": {
                                    "x": 6,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Network In",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    },
                                                    {
                                                        "name": "Network Out",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "7": {
                                "position": {
                                    "x": 9,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 2
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "id",
                                            "value": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
                                    "asset": {
                                        "idInputName": "id",
                                        "type": "VirtualMachine"
                                    },
                                    "defaultMenuItemId": "overview"
                                }
                            }
                        }
                    }
                }
            },
            "metadata": { },
            "apiVersion": "2015-08-01-preview",
            "type": "Microsoft.Portal/dashboards",
            "name": "[parameters('dashboardName')]",
            "location": "westus",
            "tags": {
                "hidden-title": "[parameters('dashboardName')]"
            }
        }
    ]
}