Создание панелей мониторинга Azure программными средствамиProgrammatically create Azure Dashboards

В этой статье описывается процесс создания и публикации панелей мониторинга Azure программными средствами.This article walks you through the process of programmatically creating and publishing Azure dashboards. Ниже представлена панель мониторинга, которая используется в этой статье.The dashboard shown below is referenced throughout the document.

пример панели мониторинга

ОбзорOverview

Общие панели мониторинга в портал Azure являются ресурсами , такими как виртуальные машины и учетные записи хранения.Shared dashboards in the Azure portal are resources just like virtual machines and storage accounts. Управлять ресурсами можно программным путем с помощью Azure Resource Manager интерфейсов api Azure CLIи команд Azure PowerShell.You can manage resources programmatically by using the Azure Resource Manager REST APIs, the Azure CLI, and Azure PowerShell commands.

Многие функции создают на этих API, что упрощает управление ресурсами.Many features build on 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 or tool to use.

Независимо от используемого средства для создания панели мониторинга программным путем создается представление JSON объекта панели мониторинга.Whichever tools you use, to create a dashboard programmatically, you construct a JSON representation of your dashboard object. Этот объект содержит сведения о плитках на панели мониторинга.This object contains information about the tiles on the dashboard. Сюда входят размеры, позиции, ресурсы, к которым они привязаны, и любые пользовательские настройки.It includes sizes, positions, resources they're bound to, and any user customizations.

Самый практичный способ создать этот документ JSON — использовать портал Azure.The most practical way to build up this JSON document is to use the Azure portal. Вы можете в интерактивном режиме добавлять и позиционировать плитки.You can interactively add and position your tiles. Затем экспортируйте JSON и создайте шаблон из результата для последующего использования в скриптах, программах и средствах развертывания.Then export the JSON and create a template from the result for later use in scripts, programs, and deployment tools.

Создание панели мониторингаCreate a dashboard

Чтобы создать панель мониторинга, выберите в меню портал Azure пункт панель мониторинга , а затем выберите пункт создать панель мониторинга.To create a dashboard, select Dashboard from the Azure portal menu, then select New dashboard.

команда "Создать панель мониторинга"

Используйте коллекцию плиток для поиска и добавления плиток.Use the tile gallery to find and add tiles. Чтобы добавить плитки, вам нужно просто перетащить их.Tiles are added by dragging and dropping them. Некоторые плитки поддерживают изменение размера с помощью маркера перетаскивания.Some tiles support resizing by using a drag handle.

изменить размер маркера перетаскивания

Другие имеют фиксированные размеры, которые можно выбрать в контекстном меню.Others have fixed sizes to choose from in their context menu.

Размер контекстного меню для изменения размера

Общий доступ к панели мониторингаShare the dashboard

После настройки панели мониторинга следующим шагом является публикация панели мониторинга с помощью команды Share .After you configure the dashboard, the next step is to publish the dashboard using the Share command.

Совместное использование панели мониторинга

При выборе команды поделиться предлагается выбрать подписку и группу ресурсов для публикации.Selecting Share prompts you to choose which subscription and resource group to publish to. Необходимо иметь доступ на запись к выбранной подписке и группе ресурсов.You must have write access to the subscription and resource group that you choose. Дополнительные сведения см. в статье Добавление и удаление назначений ролей с помощью Azure RBAC и портал Azure.For more information, see Add or remove role assignments using Azure RBAC and the Azure portal.

внесение изменений в общий доступ и доступ

Получение представления JSON панели мониторингаFetch the JSON representation of the dashboard

Публикация занимает несколько секунд.Publishing only takes a few seconds. После этого следующий шаг — получение JSON с помощью команды скачать .When it's done, the next step is to fetch the JSON using the Download command.

Скачать представление JSON

Создание шаблона из документа JSONCreate a template from the JSON

Следующим шагом является создание шаблона из этого JSON.The next step is to create a template from this JSON. Используйте этот шаблон программно с соответствующими API-интерфейсами управления ресурсами, программами командной строки или на портале.Use that template programmatically with the appropriate resource management APIs, command-line tools, or within the portal.

Вам не нужно полностью понимать структуру JSON панели мониторинга, чтобы создать шаблон.You don't have to fully understand the dashboard JSON structure to create a template. В большинстве случаев необходимо сохранить структуру и конфигурацию каждой плитки.In most cases, you want to preserve the structure and configuration of each tile. Затем параметризовать набор ресурсов Azure, на которые указывает плитка.Then parameterize the set of Azure resources that the tiles point to. Просмотрите экспортированную панель мониторинга JSON и найдите все вхождения идентификаторов ресурсов Azure.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, который включается в конец документа, для "/субскриптионс" можно найти несколько вхождений этого идентификатора.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, parameterize every occurrence of this string within the JSON.

Существует два подхода к интерфейсам API, которые создают ресурсы в Azure:There are two approaches for APIs that create resources in Azure:

Развертывание на основе шаблона поддерживает параметризацию и создание шаблонов.Template-based deployment supports parameterization and templating. Мы используем этот подход в этой статье.We use this approach in this article.

Программное создание панели мониторинга из шаблона с помощью развертывания шаблона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 and the relationships between them. Для каждого ресурса используется единый формат JSON, как и при их последовательном создании.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. Этот расширенный синтаксис поддерживается только в контексте развертывания шаблона.This extended syntax is only supported in the context of a template deployment. Он не работает при использовании с императивными API, которые обсуждались ранее.It doesn't work if used with the imperative APIs discussed earlier. Дополнительные сведения см. в разделе сведения о структуре и синтаксисе шаблонов Azure Resource Manager.For more information, see Understand the structure and syntax of Azure Resource Manager templates.

Параметризация следует выполнять с помощью синтаксиса параметров шаблона.Parameterization should be done using the template's parameter syntax. Замените все экземпляры идентификатора ресурса, который мы нашли ранее, как показано ниже.You replace all instances of the resource ID we found earlier as shown here.

Пример свойства 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 следующим образом:Declare 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 ...

После настройки шаблона разверните его с помощью любого из следующих методов.Once you've configured your template, deploy it using any of the following methods:

Далее вы увидите две версии нашего примера панели мониторинга JSON.Next you'll see two versions of our example dashboard JSON. Первая — версия, экспортированная с портала, которая уже была привязана к ресурсу.The first is the version that we exported from the portal that was already bound to a resource. Вторая — это версия шаблона, которая может быть программно привязана к любой виртуальной машине и развернута с помощью Azure Resource Manager.The second is the template version that can be programmatically bound to any virtual machine and deployed using Azure Resource Manager.

Представление JSON нашего примера панели мониторинга перед созданием шаблоновJSON representation of our example dashboard before templating

В этом примере показано, что можно увидеть, если вы следовали этой статье.This example shows what you can expect to see if you followed along with this article. В инструкциях экспортировано представление JSON панели мониторинга, которая уже развернута.The instructions exported the JSON representation of a dashboard that is already deployed. Жестко запрограммированные идентификаторы ресурсов показывают, что эта панель мониторинга указывает на определенную виртуальную машину Azure.The hard-coded resource identifiers 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

В версии шаблона панели мониторинга определены три параметра с именами virtualMachineName , virtualMachineResourceGroup и dashboardName .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. Эту панель мониторинга можно настроить и развернуть программно, чтобы она указывала на любую виртуальную машину Azure.This dashboard can be programmatically configured and deployed to point to any Azure virtual machine. Чтобы протестировать эту функцию, скопируйте следующий шаблон и вставьте его на страницу развертывания шаблона портал Azure.To test this feature, copy the following template and paste it into the Azure portal template deployment page.

В этом примере панель мониторинга развертывается сама по себе, но язык шаблонов позволяет развертывать несколько ресурсов и в то же время объединять одну или несколько панелей мониторинга.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')]"
            }
        }
    ]
}

Теперь, когда вы увидели пример использования параметризованного шаблона для развертывания панели мониторинга, можно попытаться развернуть шаблон с помощью Azure Resource Manager интерфейсов API, Azure CLIили команд Azure PowerShell.Now that you've seen an example of using a parameterized template to deploy a dashboard, you can try deploying the template by using the Azure Resource Manager REST APIs, the Azure CLI, or Azure PowerShell commands.