Programlamayla Azure panoları oluşturmaProgrammatically create Azure Dashboards

Bu belge, program aracılığıyla oluşturma ve Azure panoları yayımlama sürecinde yardımcı olur.This document walks through the process of programmatically creating and publishing Azure dashboards. Aşağıda gösterilen Pano, belge boyunca başvuruluyor.The dashboard shown below is referenced throughout the document.

Örnek Pano

Genel BakışOverview

Azure olan panoları paylaşılan kaynakları olduğu gibi sanal makineler ve depolama hesapları.Shared dashboards in Azure are resources just like virtual machines and storage accounts. Bu nedenle, program aracılığıyla aracılığıyla yönetilebilir Azure Resource Manager REST API'leri, Azure CLI, Azure PowerShell komutlarınıve birçok Azure portalında kaynak yönetimini kolaylaştırmak için bu API'leri temel özellikler oluşturun.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.

Bu API'leri ve araçları, listesi oluşturmak için yol almak, değiştirebilir ve kaynakları silmek sunar.Each of these APIs and tools offers ways to create, list, retrieve, modify, and delete resources. Panolar kaynaklar olduğundan, en sevdiğiniz API'nizi seçin / aracı.Since dashboards are resources, you can pick your favorite API / tool to use.

Hangi aracı kullanın, tüm kaynak oluşturma API'si çağrı yapmadan önce bir JSON temsilini Pano nesnenizin oluşturmak gerekir.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. Bu nesne (diğer adıyla) bölümleri hakkında bilgi içerirThis object contains information about the parts (a.k.a. Panoda kutucuğu).tiles) on the dashboard. Bu, boyutları ve konumları, için bağlı kaynaklar ve herhangi bir kullanıcı özelleştirmelerine içerir.It includes sizes, positions, resources they are bound to, and any user customizations.

Bu JSON belgeyi oluşturmak için en kullanışlı yolu portalı etkileşimli olarak ekleme ve kutucukları getirin.The most practical way to build up this JSON document is to use the portal to interactively add and position your tiles. Ardından JSON dışarı aktarın.You then export the JSON. Son olarak, sonuç betikleri, programlar ve dağıtım araçları daha sonra kullanmak için bir şablon oluşturun.Finally, you create a template from the result for later use in scripts, programs, and deployment tools.

Bir pano oluşturmaCreate a dashboard

Yeni bir Pano oluşturmak için portalın ana ekranında yeni pano komutunu kullanın.To create a new dashboard, use the New dashboard command on the portal’s main screen.

Yeni Pano komutu

Kutucuk Galerisi ardından bulmak ve kutucukları eklemek için de kullanabilirsiniz.You can then use the tile gallery to find and add tiles. Kutucuklar, sürükleyip bırakarak eklenir.Tiles are added by dragging and dropping them. Bazı kutucuklar, diğerleri kendi bağlam menüsünde görülebilir boyutları destek düzeltmeler bir sürükleme tutamacı aracılığıyla yeniden boyutlandırılmasını destekleyecek.Some tiles support resizing via a drag handle, while others support fixes sizes that can be seen in their context menu.

Sürükleme tutamacıDrag handle

Sürükleme tutamacı

Sabit boyutlar bağlam menüsü aracılığıylaFixed sizes via context menu

boyutları bağlam menüsü

Panoyu PaylaşShare the dashboard

Pano (Paylaş komutunu kullanarak) panoya yayımlayın ve ardından JSON getirmek için kaynak Gezgini'ni kullanma sonraki adımlarla istediğiniz gibi yapılandırdıktan sonra.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.

Paylaş komutu

Paylaşım komutuna tıklayarak yayımlamak için abonelik ve kaynak grubunu seçtikten isteyen bir iletişim kutusu gösterir.Clicking the Share command shows a dialog that asks you to choose which subscription and resource group to publish to. Aklınızda yazma erişiminiz olmalıdır seçtiğiniz abonelik ve kaynak grubu.Keep in mind that you must have write access to the subscription and resource group that you choose.

Paylaşım ve erişim

Pano JSON temsili getirilemediFetch the JSON representation of the dashboard

Yayımlama yalnızca birkaç saniye sürer.Publishing only takes a few seconds. İşlem tamamlandığında, sonraki adıma adresine gitmektir kaynak Gezgini JSON getirilemedi.When it’s done, the next step is to go to the Resource Explorer to fetch the JSON.

Kaynak Gezgini Gözat

Kaynak Gezgini'nde seçtiğiniz abonelik ve kaynak grubuna gidin.From the resource explorer, navigate to the subscription and resource group that you chose. Ardından, JSON açığa çıkarmak için yeni yayımlanan Pano kaynakta tıklayın.Next, click on the newly published dashboard resource to reveal the JSON.

Kaynak Gezgini json

JSON'dan bir şablon oluşturmaCreate a template from the JSON

Sonraki adım, programlama yoluyla uygun kaynak yönetimi API'leri, komut satırı araçları ile veya Portal'ın yeniden kullanılabilir, böylece bu JSON'dan şablon oluşturmaktır.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.

Pano JSON yapısı, bir şablon oluşturmak için tam olarak anlamak gerekli değildir.It is not necessary to fully understand the dashboard JSON structure to create a template. Çoğu durumda, yapısını ve yapılandırmasını her kutucuğun korumak ve ardından işaret Azure kaynaklarını kümesini parametreleştirmek istediğiniz.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. Dışarı aktarılan JSON panonuza arayın ve Azure kaynak kimliklerini tüm örneklerini bulun.Look at your exported JSON dashboard and find all occurrences of Azure resource Ids. Bizim örnek Pano sahip birden çok kutucuk tümü tek bir Azure sanal makinenin gelin.Our example dashboard has multiple tiles that all point at a single Azure virtual machine. Bizim Pano yalnızca bu tek bir kaynakta görünen olmasıdır.That’s because our dashboard only looks at this single resource. (Belgenin sonunda dahil) için örnek json araması yaparsanız "/ abonelikleri", bu kimliğin birkaç yinelemesi BulIf 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

Herhangi bir sanal makine için bu panoyu yayımlama gelecekte bu dize JSON içinde her örneğini parametre haline getirmek ihtiyacınız.To publish this dashboard for any virtual machine in the future you need to parameterize every occurrence of this string within the JSON.

Azure'da kaynak oluşturmak API'ları iki türü vardır.There are two flavors of APIs that create resources in Azure. Kesinlik temelli API'leri bir kerede tek bir kaynak oluşturmak ve bir şablona dayalı dağıtım oluşturma düzenleyebilirsiniz sistem tek bir API çağrısı ile birden çok bağımlı kaynakları.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. Bizim örneğimizde kullanacağız ikinci yerel olarak Parametreleştirme ve şablon oluşturma destekler.The latter natively supports parameterization and templating so we use it for our example.

Program aracılığıyla şablonunuzdan bir şablon dağıtımı'nı kullanarak bir pano oluşturmaProgrammatically create a dashboard from your template using a template deployment

Azure, birden fazla kaynak dağıtımını düzenleme olanağı sunar.Azure offers the ability to orchestrate the deployment of multiple resources. Onlar arasındaki ilişkileri yanı sıra dağıtmak için kaynak kümesini ifade bir dağıtım şablonu oluşturun.You create a deployment template that expresses the set of resources to deploy as well as the relationships between them. Tek tek oluşturmakta gibi her kaynak JSON biçimi aynıdır.The JSON format of each resource is the same as if you were creating them one by one. Fark şablonu dil değişkenleri, parametreleri, temel işlevleri ve daha fazla gibi birkaç kavram ekler.The difference is that the template language adds a few concepts like variables, parameters, basic functions, and more. Bu söz dizimi genişletilmiş yalnızca şablon dağıtımı bağlamında desteklenir ve daha önce açıklanan kesinlik temelli API'leri ile kullanıldığında geçerli değildir.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.

Bu rota gideceğinizi sonra Parametreleştirme yapılması şablonun parametresi söz dizimini kullanarak.If you’re going this route, then parameterization should be done using the template’s parameter syntax. Burada gösterildiği gibi daha önce bulduk kaynak kimliği tüm örneklerini değiştirin.You replace all instances of the resource id we found earlier as shown here.

Örnek JSON özelliği sabit kodlanmış kaynak kimliği ileExample JSON property with hard-coded resource Id

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

Şablon parametrelerine göre parametreli bir sürüm için örnek JSON özelliği dönüştürülür.Example JSON property converted to a parameterized version based on template parameters

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

Bazı gerekli şablon meta verileri ve parametreler için json şablonunu şöyle üst kısmındaki bildirmeniz gerekir: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 ...

Bu belgenin sonunda tam çalışma şablonu görebilirsiniz.You can see the full, working template at the end of this document.

Şablonunuzu hazırlanmış sonra bunu kullanarak dağıtabilirsiniz REST API'leri, PowerShell, Azure CLI, veya portalın şablon dağıtımı sayfası .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.

Bizim örnek Pano JSON'ın iki sürümü aşağıda verilmiştir.Here are two versions of our example dashboard JSON. İlk biz zaten bir kaynağa bağlı portalından dışarı sürümüdür.The first is the version that we exported from the portal that was already bound to a resource. İkinci herhangi bir VM için programlı bir şekilde bağlanabilir ve Azure Resource Manager kullanılarak dağıtılan şablon sürümüdür.The second is the template version that can be programmatically bound to any VM and deployed using Azure Resource Manager.

Bizim örnek Pano (şablon önce) JSON temsiliJSON representation of our example dashboard (before templating)

Zaten dağıtılmış bir Pano JSON temsili getirmek için önceki yönergeleri izlerseniz görmeyi bekleyebileceğiniz budur.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. Bu Pano belirli bir Azure sanal makine işaret ettiğini gösteren sabit kodlanmış kaynak tanımlayıcıları unutmayın.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"
    }
}

Bizim örnek Pano Şablonu temsiliTemplate representation of our example dashboard

Pano şablon sürümünü adlı üç parametrenin tanımladığı Sourceserver, virtualMachineResourceGroup, ve dashboardName.The template version of the dashboard has defined three parameters called virtualMachineName, virtualMachineResourceGroup, and dashboardName. Parametreleri dağıttığınız her seferinde farklı bir Azure sanal makine Bu panoyu noktası sağlar.The parameters let you point this dashboard at a different Azure virtual machine every time you deploy. Parametreli kimlikleri Bu panoyu programlı olarak yapılandırılabilir ve tüm Azure sanal makinesine işaret edecek şekilde dağıtılan olduğunu göstermek üzere vurgulanır.The parameterized ids are highlighted to show that this dashboard can be programmatically configured and deployed to point to any Azure virtual machine. Aşağıdaki şablonu kopyalayın ve yapıştırın bu özelliği test etmek için en kolay yolu olan Azure portal'ın şablon dağıtım sayfasına.The easiest way to test this feature is to copy the following template and paste it into the Azure portal’s template deployment page.

Bu örnek bir pano, kendisi tarafından dağıtır, ancak şablon dili birden çok kaynak dağıtıp yanı sıra bir veya daha fazla panolar paket sağlar bunları.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')]"
            }
        }
    ]
}