Azure 대시보드의 구조
이 문서는 다음 대시보드 예제를 사용하여 Azure 대시보드 구조를 안내합니다.
공유 Azure 대시보드는 리소스이므로 이 대시보드를 JSON으로 표현할 수 있습니다. Azure Portal에서 내보내기를 선택한 다음 다운로드를 선택하여 대시보드의 JSON 표현을 다운로드할 수 있습니다.
대시보드 JSON 예
다음 JSON은 이전 섹션에 표시된 샘플 대시보드를 나타냅니다.
{
"properties": {
"lenses": [
{
"order": 0,
"parts": [
{
"position": {
"x": 0,
"y": 0,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [],
"type": "Extension/HubsExtension/PartType/MarkdownPart",
"settings": {
"content": {
"settings": {
"content": "## Azure Virtual Machines Overview\r\nNew team members should watch this video to get familiar with Azure Virtual Machines.",
"markdownUri": null
}
}
}
}
},
{
"position": {
"x": 3,
"y": 0,
"colSpan": 8,
"rowSpan": 4
},
"metadata": {
"inputs": [],
"type": "Extension/HubsExtension/PartType/MarkdownPart",
"settings": {
"content": {
"settings": {
"content": "This is the team dashboard for the test VM we use on our team. Here are some useful links:\r\n\r\n1. [Create a Linux virtual machine](https://docs.microsoft.com/azure/virtual-machines/linux/quick-create-portal)\r\n1. [Create a Windows virtual machine](https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal)\r\n1. [Create a virtual machine scale set](https://docs.microsoft.com/azure/virtual-machine-scale-sets/quick-create-portal)",
"title": "Test VM Dashboard",
"subtitle": "Contoso",
"markdownUri": null
}
}
}
}
},
{
"position": {
"x": 0,
"y": 2,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [],
"type": "Extension/HubsExtension/PartType/VideoPart",
"settings": {
"content": {
"settings": {
"src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
"autoplay": false
}
}
}
}
},
{
"position": {
"x": 0,
"y": 4,
"colSpan": 11,
"rowSpan": 3
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Percentage CPU",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 0,
"y": 7,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Disk Read Operations/Sec",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Disk Write Operations/Sec",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 3,
"y": 7,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Disk Read Bytes",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Disk Write Bytes",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 6,
"y": 7,
"colSpan": 3,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Network In Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Network Out Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"position": {
"x": 9,
"y": 7,
"colSpan": 2,
"rowSpan": 2
},
"metadata": {
"inputs": [
{
"name": "id",
"value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
],
"type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
"asset": {
"idInputName": "id",
"type": "VirtualMachine"
}
}
}
]
}
],
"metadata": {
"model": {}
}
},
"name": "Simple VM Dashboard",
"type": "Microsoft.Portal/dashboards",
"location": "INSERT LOCATION",
"tags": {
"hidden-title": "Simple VM Dashboard"
},
"apiVersion": "2022-12-01-preview"
}
일반적인 리소스 속성
JSON의 관련 섹션을 분석해 보겠습니다. 공용 리소스 속성은 JSON 예의 끝부분에 나타납니다. 이러한 속성은 모든 Azure 리소스 종류에서 공유되며 대시보드의 콘텐츠와 특별히 관련이 없습니다.
ID
ID
는 Azure 리소스의 명명 규칙에 따라 대시보드의 Azure 리소스 ID를 나타냅니다. 포털에서 대시보드를 만들 때 일반적으로 guid 형식의 ID를 선택하지만 프로그래밍 방식으로 대시보드를 만들 때 유효한 이름을 사용할 수 있습니다.
Azure Portal에서 대시보드를 내보낼 때 id
필드는 포함되지 않습니다. id
필드를 포함하는 JSON 파일을 가져와 새 대시보드를 만드는 경우 해당 값이 무시되고 새 ID 값이 각 새 대시보드에 할당됩니다.
이름
Azure Portal에서 대시보드에 사용하는 리소스 이름입니다.
Type
모든 대시보드는 Microsoft.Portal/dashboards
유형입니다.
위치
다른 리소스와 달리 대시보드는 런타임 구성 요소를 포함하지 않습니다. 대시보드의 경우 location
은 대시보드의 JSON 표현을 저장하는 기본 지리적 위치를 나타냅니다. 값은 구독 리소스의 위치 API를 사용하여 가져올 수 있는 위치 코드 중 하나여야 합니다.
태그
태그는 임의 이름 값 쌍으로 리소스를 구성할 수 있는 Azure 리소스의 일반적인 기능입니다. 대시보드에는 hidden-title
이라는 하나의 특수 태그가 있습니다. 대시보드에 이 속성이 채워져 있으면 해당 값이 포털에서 대시보드의 표시 이름으로 사용됩니다. 이 태그는 대시보드에 대한 이름 변경 가능한 표시 이름을 포함하는 방법을 제공합니다.
속성
properties
개체에는 lenses
와 metadata
라는 두 가지 속성이 포함되어 있습니다. lenses
속성은 대시보드의 타일에 대한 정보를 포함합니다. metadata
속성은 향후 기능을 위해 예약되어 있습니다.
렌즈
lenses
속성에는 대시보드가 포함됩니다.
부분
lenses
속성에는 order
와 parts
라는 두 개의 속성이 포함되어 있습니다. 현재 order
는 항상 0으로 설정됩니다. parts
속성은 대시보드의 개별 부분(타일이라고도 함)을 정의하는 개체를 포함합니다.
parts
개체는 각 파트에 대한 속성을 포함합니다. 여기서 속성 이름은 숫자입니다. 숫자는 중요하지 않습니다.
각 개별 파트 개체에는 position
및 metadata
가 포함됩니다.
Position
position
속성에는 x
, y
, rowSpan
및 colSpan
으로 표현된 파트의 크기 및 위치 정보가 포함됩니다. 값이 그리드 단위를 기준으로 합니다. 이러한 그리드 단위는 여기에 표시된 것처럼 대시보드가 편집 가능 모드일 때 표시됩니다.
예를 들어 타일의 너비는 그리드 단위 2개이고 높이는 그리드 단위 1개이며 위치가 대시보드 왼쪽 상단 모서리라면 위치 개체는 다음과 같습니다.
position: { x: 0, y: 0, rowSpan: 2, colSpan: 1 }
메타데이터
각 파트에는 메타데이터 속성이 있습니다. 메타데이터 내에 개체에는 type
이라는 필수 속성이 하나만 있습니다. 이 문자열은 포털에 표시할 타일 유형을 알려 줍니다. 예제 대시보드는 다음과 같은 타일 유형을 사용합니다.
Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart
– 모니터링 메트릭을 표시하는 데 사용됨Extension[azure]/HubsExtension/PartType/MarkdownPart
– 목록, 링크 등에 대한 기본 서식을 사용하여 텍스트 또는 이미지와 같은 사용자 지정된 마크다운 콘텐츠를 표시하는 데 사용됨Extension[azure]/HubsExtension/PartType/VideoPart
- HTML 비디오 태그에서 작동하는 YouTube, Channel9 및 기타 비디오 유형의 비디오를 표시하는 데 사용됨
각 파트 유형에는 고유한 구성 옵션이 있습니다. 가능한 구성 속성을 inputs
, settings
및 asset
이라고 합니다.
입력
일반적으로 inputs 개체는 타일을 리소스 인스턴스로 바인딩하는 정보를 포함합니다.
이 예제의 각 MetricsChartPart
는 표시되는 데이터에 대한 정보와 함께 VM의 Azure 리소스 ID를 나타내는, 바인딩할 리소스를 표현하는 단일 입력이 있습니다. 예를 들어 다음은 전체 네트워크 입력 및 전체 네트워크 출력 메트릭을 보여 주는 타일의 inputs
개체입니다.
"inputs":
[
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"chartType": 0,
"metrics": [
{
"name": "Network In Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
},
{
"name": "Network Out Total",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
}
]
}
}
]
설정
settings 개체는 파트의 구성 가능한 요소를 포함합니다. 샘플 대시보드에서 MarkdownPart
는 구성 가능한 제목과 자막과 함께 사용자 지정 markdown 콘텐츠를 저장하기 위한 설정을 사용합니다.
"settings": {
"content": {
"settings": {
"content": "This is the team dashboard for the test VM we use on our team. Here are some useful links:\r\n\r\n1. [Create a Linux virtual machine](https://docs.microsoft.com/azure/virtual-machines/linux/quick-create-portal)\r\n1. [Create a Windows virtual machine](https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal)\r\n1. [Create a virtual machine scale set](https://docs.microsoft.com/azure/virtual-machine-scale-sets/quick-create-portal)",
"title": "Test VM Dashboard",
"subtitle": "Contoso",
"markdownUri": null
}
}
}
마찬가지로, VideoPart
는 재생할 동영상에 대한 포인터를 포함하는 고유한 설정과 자동 재생 설정 및 제목 정보(선택 사항)를 포함합니다.
"settings": {
"content": {
"settings": {
"src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
"autoplay": false
}
}
}
자산
최고 수준의 관리 가능한 포털 개체(자산이라고 함)에 바인딩되는 타일에는 asset
개체를 통해 표현되는 관계를 포함합니다. 예제 대시보드에서 가상 머신 타일은 이 자산 설명을 포함합니다. idInputName
속성은 ID 입력이 자산에 대한 고유한 식별자(이 경우 리소스 ID)를 포함함을 포털에 알립니다. 대부분의 Azure 리소스 종류에는 포털에 정의된 자산이 있습니다.
"asset": {
"idInputName": "id",
"type": "VirtualMachine"
}
다음 단계
- Azure Portal에서 또는 프로그래매틱 방식으로 대시보드를 만드는 방법을 알아봅니다.
- Azure 대시보드에서 Markdown 타일을 사용하여 사용자 지정 콘텐츠를 표시하는 방법을 알아봅니다.