ARM, Dashboardy i Resource Explorer

Na grupie polskich użytkowników Azure pojawił się jakiś czas temu apel o głosowanie na poprawkę mającą wprowadzić możliwość przywiązania dashboardu do resource group. Chodzi o to by usuwanie całej paczki zasobów poprzez usunięcie resource group usuwało także dashboard. Przydatne przy prowadzeniu prezentacji, szkoleń czy warsztatów, chociaż w “normalnym” użyciu też mogłoby się sprawdzić.

Temat niby niewielki, ale jakoś przy jego okazji postanowiłem nieco pobawić się dashboardami i zobaczyć jak one się zachowują. To że zasadniczo da się przypiąć do resource group wiadomo, bo robi to mechanizm Share. Jednak tam chodzi przede wszystkim o to, że dostęp do zdefiniowanego dashboardu dostaną od razu wszyscy mający dostęp do grupy. Usuwanie jest tylko efektem ubocznym – tak spreparowany dashboard zostanie usunięty wraz ze “swoją” resource group.

No to jak to w sumie z tym dashboardami jest? W sumie nie da się dashboardu stworzyć właśnie tak wprost do grupy, jak każdego innego zasobu. Prawdopodobnie dlatego, że dashboard nie jest usługą i przez to nie jest traktowany jak zwykły zasób. Chociaż czy aby na pewno? W końcu resource group zbiera zasoby, więc skoro da się jakoś przypiąć do niej dashboard… Z ciekawości zrobiłem małe dochodzenie jak zachowują się różne narzędzia i operacje w tej sprawie.

Założenie nowej resource groupy

Stworzenie nowego dashboardu i próba przypisania go do ww. grupy.

OK, udało się, spójrzmy zatem co mamy w grupie. Niczego nie ma, widocznie nie da się podglądać dashboardów udostępnionych w grupie w ten sposób.

No to usuńmy wszystko i pobawmy się inaczej.
A-ha! Więc jednak jest tam dashboard!

W portalu nic z tym się nie da zrobić (a przynajmniej mnie się nie udało), więc uciekamy się do jedynego słusznego rozwiązania – Resource Explorer! Żeby się nie naklikać skopiowałem sobie wcześniej name tajemniczego zasobu na potrzeby wyszukiwania.

Bingo! W naszej grupie siedzi sobie dashboard. Można sobie podejrzeć jak obiekt zapisywany jest od kuchni, a skoro już mamy JSONa…

{
  "properties": {
    "lenses": {
      "0": {
        "order": 0,
        "parts": {}
      }
    },
    "metadata": {
      "model": {
        "timeRange": {
          "value": {
            "relative": {
              "duration": 24,
              "timeUnit": 1
            }
          },
          "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
        }
      }
    }
  },
  "id": "/subscriptions/6582ac2c-9172-453a-a7bb-xxxxxxxxxxxx/resourceGroups/wojtekprodemo/providers/Microsoft.Portal/dashboards/59617aed-bc54-444e-b8f9-xxxxxxxxxxxx",
  "name": "59617aed-bc54-444e-b8f9-xxxxxxxxxxxx",
  "type": "Microsoft.Portal/dashboards",
  "location": "westeurope",
  "tags": {
    "hidden-title": "wojteprodemo dashboard"
  }
}

No to raz dwa trzy, kopiuj wklej, popraw parę bugów (np. dodanie klucza “apiVersion”: “2015-08-01-preview”  – wartość skopiowana z Resource Explorera, podmiana nazw) i cyk! Deploy dashboardu do resource group i voilla.

To się pobawiliśmy na początek, a teraz co tam można fajnego dalej zobaczyć – przypięte do dashboardu widgety.

“Lenses” od razu przykuwa uwagę, ale sprawa rozjaśnia się już całkiem, kiedy się zobaczy “zbudowany dashboard”. Wtedy w lenses wpadają wszystkie przypięte do niego widgety. Poniżej przykład informacji wyjmowanej akurat z Logic Apps:

"lenses": {
      "0": {
        "order": 0,
        "parts": {
          "0": {
            "position": {
              "x": 0,
              "y": 0,
              "rowSpan": 4,
              "colSpan": 6
            },
            "metadata": {
              "inputs": [
                {
                  "name": "id",
                  "value": "/subscriptions/6582ac2c-9172-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/prowess.cloud/providers/Microsoft.Logic/workflows/personalautomation"
                }
              ],
              "type": "Extension[azure]/Microsoft_Azure_EMA/PartType/WorkflowAllRunsCollectionPart",
              "asset": {
                "idInputName": "id",
                "type": "Workflow"
              }
            }
          }
        }
    }
}

Czyli możemy stworzyć sobie znacznie bardziej rozbudowany dashboard od razu zawierający odpowiednie widgety i zdeployować go po utworzeniu zasobów. Dobra rzecz, ja już wiem gdzie tego użyję, jak tylko zapanuję nad naming convention 😉

Konkluzja na koniec.

Przyznaję, że nie korzystam z Resource Explorera jakoś bardzo często. Wiem, że to świetne narzędzie, potrafi zrobić i pokazać znacznie więcej ciekawych rzeczy niż portal, po prostu jakoś nie było mi z nim dotychczas po drodze. Ci, którzy tam patrzą regularnie pewnie sami z siebie po prostu zauważyli zasoby odpowiadające za dashboardy, więc moje dochodzenie mogą potraktować z lekkim uśmieszkiem. Niemniej jednak fun w odkrywaniu jak to działa, gdzie siedzi i że można coś tam po swojemu dookoła wydłubać był przedni 🙂

One thought on “ARM, Dashboardy i Resource Explorer”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.