다음을 통해 공유


Azure 대시보드의 구조

이 문서는 다음 대시보드 예제를 사용하여 Azure 대시보드 구조를 안내합니다.

Azure Portal에서 샘플 대시보드의 스크린샷.

공유 Azure 대시보드는 리소스이므로 이 대시보드를 JSON으로 표현할 수 있습니다. Azure Portal에서 내보내기를 선택한 다음 다운로드를 선택하여 대시보드의 JSON 표현을 다운로드할 수 있습니다.

대시보드 JSON 예

다음 JSON은 이전 섹션에 표시된 샘플 대시보드를 나타냅니다.

{
  "properties": {
    "lenses": [
      {
        "order": 0,
        "parts": [
          {
            "position": {
              "x": 0,
              "y": 0,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [],
              "type": "Extension/HubsExtension/PartType/MarkdownPart",
              "settings": {
                "content": {
                  "settings": {
                    "content": "## Azure Virtual Machines Overview\r\nNew team members should watch this video to get familiar with Azure Virtual Machines.",
                    "markdownUri": null
                  }
                }
              }
            }
          },
          {
            "position": {
              "x": 3,
              "y": 0,
              "colSpan": 8,
              "rowSpan": 4
            },
            "metadata": {
              "inputs": [],
              "type": "Extension/HubsExtension/PartType/MarkdownPart",
              "settings": {
                "content": {
                  "settings": {
                    "content": "This is the team dashboard for the test VM we use on our team. Here are some useful links:\r\n\r\n1. [Create a Linux virtual machine](https://docs.microsoft.com/azure/virtual-machines/linux/quick-create-portal)\r\n1. [Create a Windows virtual machine](https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal)\r\n1. [Create a virtual machine scale set](https://docs.microsoft.com/azure/virtual-machine-scale-sets/quick-create-portal)",
                    "title": "Test VM Dashboard",
                    "subtitle": "Contoso",
                    "markdownUri": null
                  }
                }
              }
            }
          },
          {
            "position": {
              "x": 0,
              "y": 2,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [],
              "type": "Extension/HubsExtension/PartType/VideoPart",
              "settings": {
                "content": {
                  "settings": {
                    "src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
                    "autoplay": false
                  }
                }
              }
            }
          },
          {
            "position": {
              "x": 0,
              "y": 4,
              "colSpan": 11,
              "rowSpan": 3
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Percentage CPU",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 0,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Operations/Sec",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      },
                      {
                        "name": "Disk Write Operations/Sec",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 3,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Bytes",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      },
                      {
                        "name": "Disk Write Bytes",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 6,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Network In Total",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      },
                      {
                        "name": "Network Out Total",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 9,
              "y": 7,
              "colSpan": 2,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "id",
                  "value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                }
              ],
              "type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
              "asset": {
                "idInputName": "id",
                "type": "VirtualMachine"
              }
            }
          }
        ]
      }
    ],
    "metadata": {
      "model": {}
    }
  },
  "name": "Simple VM Dashboard",
  "type": "Microsoft.Portal/dashboards",
  "location": "INSERT LOCATION",
  "tags": {
    "hidden-title": "Simple VM Dashboard"
  },
  "apiVersion": "2022-12-01-preview"
}

일반적인 리소스 속성

JSON의 관련 섹션을 분석해 보겠습니다. 공용 리소스 속성은 JSON 예의 끝부분에 나타납니다. 이러한 속성은 모든 Azure 리소스 종류에서 공유되며 대시보드의 콘텐츠와 특별히 관련이 없습니다.

ID

IDAzure 리소스의 명명 규칙에 따라 대시보드의 Azure 리소스 ID를 나타냅니다. 포털에서 대시보드를 만들 때 일반적으로 guid 형식의 ID를 선택하지만 프로그래밍 방식으로 대시보드를 만들 때 유효한 이름을 사용할 수 있습니다.

Azure Portal에서 대시보드를 내보낼 때 id 필드는 포함되지 않습니다. id 필드를 포함하는 JSON 파일을 가져와 새 대시보드를 만드는 경우 해당 값이 무시되고 새 ID 값이 각 새 대시보드에 할당됩니다.

이름

Azure Portal에서 대시보드에 사용하는 리소스 이름입니다.

Type

모든 대시보드는 Microsoft.Portal/dashboards 유형입니다.

위치

다른 리소스와 달리 대시보드는 런타임 구성 요소를 포함하지 않습니다. 대시보드의 경우 location은 대시보드의 JSON 표현을 저장하는 기본 지리적 위치를 나타냅니다. 값은 구독 리소스의 위치 API를 사용하여 가져올 수 있는 위치 코드 중 하나여야 합니다.

태그

태그는 임의 이름 값 쌍으로 리소스를 구성할 수 있는 Azure 리소스의 일반적인 기능입니다. 대시보드에는 hidden-title이라는 하나의 특수 태그가 있습니다. 대시보드에 이 속성이 채워져 있으면 해당 값이 포털에서 대시보드의 표시 이름으로 사용됩니다. 이 태그는 대시보드에 대한 이름 변경 가능한 표시 이름을 포함하는 방법을 제공합니다.

속성

properties 개체에는 lensesmetadata라는 두 가지 속성이 포함되어 있습니다. lenses 속성은 대시보드의 타일에 대한 정보를 포함합니다. metadata 속성은 향후 기능을 위해 예약되어 있습니다.

렌즈

lenses 속성에는 대시보드가 포함됩니다.

부분

lenses 속성에는 orderparts라는 두 개의 속성이 포함되어 있습니다. 현재 order는 항상 0으로 설정됩니다. parts 속성은 대시보드의 개별 부분(타일이라고도 함)을 정의하는 개체를 포함합니다.

parts 개체는 각 파트에 대한 속성을 포함합니다. 여기서 속성 이름은 숫자입니다. 숫자는 중요하지 않습니다.

각 개별 파트 개체에는 positionmetadata가 포함됩니다.

Position

position 속성에는 x, y, rowSpancolSpan으로 표현된 파트의 크기 및 위치 정보가 포함됩니다. 값이 그리드 단위를 기준으로 합니다. 이러한 그리드 단위는 여기에 표시된 것처럼 대시보드가 ​​편집 가능 모드일 때 표시됩니다.

Azure Portal에서 대시보드의 그리드 단위를 보여 주는 스크린샷.

예를 들어 타일의 너비는 그리드 단위 2개이고 높이는 그리드 단위 1개이며 위치가 대시보드 왼쪽 상단 모서리라면 위치 개체는 다음과 같습니다.

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

메타데이터

각 파트에는 메타데이터 속성이 있습니다. 메타데이터 내에 개체에는 type이라는 필수 속성이 하나만 있습니다. 이 문자열은 포털에 표시할 타일 유형을 알려 줍니다. 예제 대시보드는 다음과 같은 타일 유형을 사용합니다.

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart – 모니터링 메트릭을 표시하는 데 사용됨
  2. Extension[azure]/HubsExtension/PartType/MarkdownPart – 목록, 링크 등에 대한 기본 서식을 사용하여 텍스트 또는 이미지와 같은 사용자 지정된 마크다운 콘텐츠를 표시하는 데 사용됨
  3. Extension[azure]/HubsExtension/PartType/VideoPart - HTML 비디오 태그에서 작동하는 YouTube, Channel9 및 기타 비디오 유형의 비디오를 표시하는 데 사용됨

각 파트 유형에는 고유한 구성 옵션이 있습니다. 가능한 구성 속성을 inputs, settingsasset이라고 합니다.

입력

일반적으로 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"
}

다음 단계