Compartilhar via


A estrutura de Painéis do Azure

Este documento explica a estrutura de um painel do Azure, usando o painel a seguir como exemplo:

Captura de tela de um painel de exemplo no portal do Azure.

Como os painéis compartilhados do Azure são recursos, este painel pode ser representado como JSON. Você pode baixar a representação JSON de um painel selecionando Exportar e Baixar no portal do Azure.

O JSON a seguir representa o painel mostrado acima.

{
{
  "properties": {
    "lenses": {
      "0": {
        "order": 0,
        "parts": {
          "0": {
            "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
                  }
                }
              }
            }
          },
          "1": {
            "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
                  }
                }
              }
            }
          },
          "2": {
            "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
                  }
                }
              }
            }
          },
          "3": {
            "position": {
              "x": 0,
              "y": 4,
              "colSpan": 11,
              "rowSpan": 3
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Percentage CPU",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "4": {
            "position": {
              "x": 0,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Operations/Sec",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Disk Write Operations/Sec",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "5": {
            "position": {
              "x": 3,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Bytes",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Disk Write Bytes",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "6": {
            "position": {
              "x": 6,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Network In Total",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Network Out Total",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "7": {
            "position": {
              "x": 9,
              "y": 7,
              "colSpan": 2,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "id",
                  "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                }
              ],
              "type": "Extension/HubsExtension/PartType/ResourcePart",
              "asset": {
                "idInputName": "id",
                "type": "VirtualMachine"
              }
            }
          }
        }
      }
    },
    "metadata": {
      "model": {
        "timeRange": {
          "value": {
            "relative": {
              "duration": 24,
              "timeUnit": 1
            }
          },
          "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
        }
      }
    }
  },
  "name": "Simple VM Dashboard",
  "type": "Microsoft.Portal/dashboards",
  "location": "INSERT LOCATION",
  "tags": {
    "hidden-title": "Simple VM Dashboard"
  },
  "apiVersion": "2015-08-01-preview"
}

Propriedades comuns do recurso

Vamos dividir as seções relevantes do JSON. As propriedades de recurso comuns aparecem perto do final do exemplo acima. Essas propriedades são compartilhadas entre todos os tipos de recursos do Azure. Elas não se relacionam especificamente com o conteúdo do painel.

ID

O ID representa a ID de recurso do Azure do painel, sujeito às convenções de nomenclatura dos recursos do Azure. Quando o portal cria um painel, geralmente escolhe uma ID no formato de um GUID, mas você pode usar qualquer nome válido ao criar um painel programaticamente.

Quando você exporta um painel do portal do Azure, o campo id não está incluído. Se você criar um novo painel importando um arquivo JSON que inclua o campo id, o valor será ignorado e um novo valor de ID será atribuído a cada novo painel.

Nome

O nome do recurso que o portal do Azure usa para o painel.

Tipo

Todos os painéis são do tipo Microsoft.Portal/dashboards.

Localização

Ao contrário de outros recursos, os painéis não têm um componente de runtime. Para painéis, location`` indica a localização geográfica principal que armazena a representação JSON do painel. O valor deve ser um dos códigos de local que podem ser buscados usando a API de locais no recurso de assinaturas.

Marcações

Marcas são um recurso comum de recursos do Azure que lhe permitem organizar seus recursos por pares de valor de nome arbitrário. Para os painéis, há uma marca especial chamada hidden-title. Se o seu painel tiver essa propriedade populada, esse valor será usado como o nome de exibição do seu painel no Portal. Esta tag oferece uma maneira de ter um nome de exibição renomeável para seu painel

Propriedades

O objeto de propriedades contém duas propriedades lenses e metadata. A propriedade lenses contém informações sobre os blocos no painel. A propriedade metadata está reservada para potenciais recursos futuros.

Lentes

A propriedade lenses contém o painel. O objeto lente neste exemplo contém uma única propriedade chamada "0". As lentes são um conceito de agrupamento que não está implementado atualmente. Por enquanto, todos os seus painéis têm essa única propriedade "0" no objeto lente.

Partes

O objeto sob "0" contém duas propriedades order e parts. Atualmente, order é sempre definido como 0. A propriedade parts contém um objeto que define as partes individuais (também chamadas de blocos) no painel.

O objeto parts contém uma propriedade para cada parte, no qual o nome da propriedade é um número. O número não é significativo.

Cada objeto de parte individual contém position e metadata.

Posição

A propriedade position contém as informações de tamanho e local para a parte expressa como x, y, rowSpan e colSpan. Os valores estão em termos de unidades de grade. Essas unidades de grade são visíveis quando o painel está no modo de personalizar conforme mostrado aqui.

Captura de tela mostrando as unidades de grade para um painel no portal do Azure.

Por exemplo, se você deseja que um bloco tenha uma largura de duas unidades de grade, uma altura de uma unidade de grade e um local no canto superior esquerdo do painel, o objeto de posição terá a seguinte aparência:

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

Metadados

Cada parte tem uma propriedade de metadados. Um objeto tem apenas uma propriedade necessária: type. Esta cadeia de caracteres informa ao portal qual tipo de bloco mostrar. Nosso painel de exemplo usa esses tipos de blocos:

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart – usado para mostrar as métricas de monitoramento
  2. Extension[azure]/HubsExtension/PartType/MarkdownPart – Usado para mostrar conteúdo de markdown personalizado, como texto ou imagens, com formatação básica para listas, links, etc.
  3. Extension[azure]/HubsExtension/PartType/VideoPart – Usado para mostrar vídeos do YouTube, Canal 9 e qualquer outro tipo de vídeo que funcione em uma tag de vídeo HTML.

Cada tipo de parte tem suas próprias opções de configuração. As propriedades de configuração possíveis são chamadas de inputs, settings e asset.

Entradas

O objeto inputs geralmente contém informações que associam um bloco a uma instância do recurso.

Cada MetricsChartPart em nosso exemplo tem uma única entrada que expressa o recurso ao qual se associar, representando a ID do recurso do Azure da VM, juntamente com informações sobre os dados que estão sendo exibidos. Por exemplo, aqui está o objeto inputs para o bloco que mostra as métricas de Rede Total de Entrada e Rede Total de Saída.

"inputs":
[
  {
    "name": "queryInputs",
    "value": {
      "timespan": {
        "duration": "PT1H"
      },
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
      "chartType": 0,
      "metrics": [
        {
          "name": "Network In Total",
          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
        },
        {
          "name": "Network Out Total",
          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
        }
      ]
    }
  }
]

Configurações

O objeto settings contém os elementos configuráveis de uma parte. Em nosso painel de exemplo, a parte Markdown usa configurações para armazenar o conteúdo de markdown personalizado, junto com um título e subtítulo configuráveis.

"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"
    }
  }
}

Da mesma forma, o bloco de vídeo tem suas próprias configurações que contêm um ponteiro para que o vídeo seja reproduzido, uma configuração de reprodução automática e informações de título opcional.


"settings": {
  "content": {
    "settings": {
      "src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
      "autoplay": false
    }
  }
}

Ativo

Os blocos associados aos objetos de portal gerenciáveis de primeira classe (chamados ativos) têm essa relação expressa por meio do objeto asset. Em nosso painel de exemplo, o bloco de máquina virtual contém a descrição do ativo. A propriedade idInputName informa ao portal que a entrada da ID contém o identificador exclusivo para o ativo, neste caso, a ID de recurso. A maioria dos tipos de recursos do Azure tem ativos definidos no portal.

"asset": { "idInputName": "id", "type": "VirtualMachine" }

Próximas etapas