{"id":300,"date":"2020-02-15T21:08:46","date_gmt":"2020-02-15T20:08:46","guid":{"rendered":"http:\/\/thomas-kopton.de\/vblog\/?p=300"},"modified":"2020-03-05T16:28:05","modified_gmt":"2020-03-05T15:28:05","slug":"how-to-merge-vrops-dashboards-anatomy-of-the-content","status":"publish","type":"post","link":"https:\/\/thomas-kopton.de\/vblog\/?p=300","title":{"rendered":"How to Merge vROps Dashboards &#8211; Anatomy of the Content"},"content":{"rendered":"\n<p>Recently I was asked if it is possible to <strong>merge<\/strong> two, or generally speaking n different <strong>vRealize Operations Dashboards<\/strong> into one Dashboard.<\/p>\n\n\n\n<p>To answer that question and provide a procedure how to do it we need to inspect the internal structure of a vROps Dashboard.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Anatomy of a vRealize Operations Dashboard<\/h4>\n\n\n\n<p>As everyone knows vROps content, in this case dashboards, can be exported and imported. Exported dashboard(s) are saved as zip files and after decompressing the zip file the actual dashboard is just a <strong>JSON<\/strong> file.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"499\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01-1024x499.png\" alt=\"\" class=\"wp-image-303\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01-1024x499.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01-300x146.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01-768x375.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01-1536x749.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01.png 1546w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 1: Exporting and decompressing vROps Dashboards<\/em><\/figcaption><\/figure>\n\n\n\n<p>Let&#8217;s see how the structure of an empty dashboard looks like. The most important part is the line 26 as displayed in the following picture. Dashboards contain widgets and we see in the line 26 an <strong>array of widgets<\/strong>, still empty here as this dashboard does not contain any widget.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"899\" height=\"1024\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-02-899x1024.png\" alt=\"\" class=\"wp-image-306\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-02-899x1024.png 899w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-02-264x300.png 264w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-02-768x874.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-02-1349x1536.png 1349w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-02.png 1416w\" sizes=\"auto, (max-width: 899px) 100vw, 899px\" \/><figcaption><em>Figure 2: Empty dashboard JSON <\/em><\/figcaption><\/figure>\n\n\n\n<p>Now let&#8217;s add some simple and unconfigured widgets without any interactions. This simple dashboard contains two widgets placed into two rows and one column.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"883\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-003-1024x883.png\" alt=\"\" class=\"wp-image-310\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-003-1024x883.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-003-300x259.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-003-768x662.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-003-1536x1324.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-003.png 1740w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 3: Simple dashboard with 2&#215;1 widgets<\/em><\/figcaption><\/figure>\n\n\n\n<p>And this is the corresponding JSON file. I have collapsed some &#8220;unimportant&#8221; sections for better visibility.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"703\" height=\"1024\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-04-703x1024.png\" alt=\"\" class=\"wp-image-313\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-04-703x1024.png 703w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-04-206x300.png 206w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-04-768x1118.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-04-1055x1536.png 1055w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-04.png 1302w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><figcaption><em>Figure 4: Dashboard JSON including two widgets<\/em><\/figcaption><\/figure>\n\n\n\n<p>Since I did not configure the widgets, the &#8220;config&#8221; sections are empty. Interesting at this point is the &#8220;<strong>gridsterCoords<\/strong>&#8221; section. This section describes the size and the position of a widget on the dashboard. Here another example with some more widgets.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"4522\" height=\"1528\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-002.png\" alt=\"\" class=\"wp-image-316\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-002.png 4522w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-002-300x101.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-002-1024x346.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-002-768x260.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-002-1536x519.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/Screenshot-002-2048x692.png 2048w\" sizes=\"auto, (max-width: 4522px) 100vw, 4522px\" \/><figcaption><em>Figure 5: Dashboard with 2&#215;3 widgets<\/em><\/figcaption><\/figure>\n\n\n\n<p>This widgets are described by the following JSON (snippet):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"535\" height=\"1024\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-06-535x1024.png\" alt=\"\" class=\"wp-image-318\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-06-535x1024.png 535w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-06-157x300.png 157w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-06-768x1471.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-06-802x1536.png 802w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-06-1069x2048.png 1069w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-06.png 1088w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><figcaption><em>Figure 6: Dashboard JSON including six widgets<\/em><\/figcaption><\/figure>\n\n\n\n<p>With this information we can describe the coordinates of widgets and place them on a dashboard. A bit unusual is the usage of the &#8220;h&#8221; and &#8220;w&#8221; attributes for widgets having their default sizes, maybe someone designed the widgets using a flipped monitor;-)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"439\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-07-1-1024x439.png\" alt=\"\" class=\"wp-image-323\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-07-1-1024x439.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-07-1-300x129.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-07-1-768x329.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-07-1-1536x659.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-07-1.png 1814w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 7: Widgets size and coordinates<\/em><\/figcaption><\/figure>\n\n\n\n<p>This unusual usage of width and height seems to be &#8220;fixed&#8221; and appears as expected if a given widget has been resized during the dashboard creation. But that does not prevent us from merging dashboards.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Merging vRealize Operations Dashboards<\/h4>\n\n\n\n<p>Merging dashboards is as easy as copy&amp;paste the appropriate widget sections into the widget array in the target JSON file and adjusting the x and y coordinates accordingly.<\/p>\n\n\n\n<p>In my example we are merging the previous 1&#215;2 dashboard into the 2&#215;3 dashboard and place the 1&#215;2 widgets below the 2&#215;3 widgets. In this example the old widget &#8220;names&#8221; are still the same, 1-1 and 1-2 to easily identify them on the dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"615\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-08-1024x615.png\" alt=\"\" class=\"wp-image-326\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-08-1024x615.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-08-300x180.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-08-768x461.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-08-1536x923.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-08-2048x1231.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 8: Merged dashboard<\/em><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Widget Interaction<\/h4>\n\n\n\n<p>Out of curiosity, let&#8217;s inspect an interaction.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-09-1024x574.png\" alt=\"\" class=\"wp-image-329\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-09-1024x574.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-09-300x168.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-09-768x430.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-09-1536x860.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-09-2048x1147.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 9: Widgets<\/em> interaction<\/figcaption><\/figure>\n\n\n\n<p>The JSON representation of an interaction, multiple interactions are stored in an array, is pretty simple.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"967\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-10-1024x967.png\" alt=\"\" class=\"wp-image-331\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-10-1024x967.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-10-300x283.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-10-768x726.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-10.png 1268w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em>Figure 10: JSON representation of widgets<\/em> interaction<\/figcaption><\/figure>\n\n\n\n<p>With this information and a little bit editing of JSON files it should be possible to merge vRealize Operations Dashboards.<\/p>\n\n\n\n<p>Thomas &#8211; <a href=\"https:\/\/twitter.com\/ThomasKopton\">https:\/\/twitter.com\/ThomasKopton<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I was asked if it is possible to merge two, or generally speaking n different vRealize Operations Dashboards into one Dashboard. To answer that question and provide a procedure how to do it we need to inspect the internal structure of a vROps Dashboard. Anatomy of a vRealize Operations Dashboard As everyone knows vROps &#8230;<\/p>\n","protected":false},"author":1,"featured_media":303,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,34,2],"tags":[3],"class_list":["post-300","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dashboard","category-vrealize-operations","category-vrops","tag-vrops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Merge vROps Dashboards - Anatomy of the Content - TOMsOps<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thomas-kopton.de\/vblog\/?p=300\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Merge vROps Dashboards - Anatomy of the Content - TOMsOps\" \/>\n<meta property=\"og:description\" content=\"Recently I was asked if it is possible to merge two, or generally speaking n different vRealize Operations Dashboards into one Dashboard. To answer that question and provide a procedure how to do it we need to inspect the internal structure of a vROps Dashboard. Anatomy of a vRealize Operations Dashboard As everyone knows vROps ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thomas-kopton.de\/vblog\/?p=300\" \/>\n<meta property=\"og:site_name\" content=\"TOMsOps\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-15T20:08:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-05T15:28:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1546\" \/>\n\t<meta property=\"og:image:height\" content=\"754\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Thomas Kopton\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thomas Kopton\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300\"},\"author\":{\"name\":\"Thomas Kopton\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#\\\/schema\\\/person\\\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"headline\":\"How to Merge vROps Dashboards &#8211; Anatomy of the Content\",\"datePublished\":\"2020-02-15T20:08:46+00:00\",\"dateModified\":\"2020-03-05T15:28:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300\"},\"wordCount\":496,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/figure-01.png\",\"keywords\":[\"vROps\"],\"articleSection\":[\"Dashboard\",\"vRealize Operations\",\"vROps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300\",\"url\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300\",\"name\":\"How to Merge vROps Dashboards - Anatomy of the Content - TOMsOps\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/figure-01.png\",\"datePublished\":\"2020-02-15T20:08:46+00:00\",\"dateModified\":\"2020-03-05T15:28:05+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#\\\/schema\\\/person\\\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#primaryimage\",\"url\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/figure-01.png\",\"contentUrl\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/figure-01.png\",\"width\":1546,\"height\":754},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?p=300#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Merge vROps Dashboards &#8211; Anatomy of the Content\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#website\",\"url\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/\",\"name\":\"TOMsOps\",\"description\":\"Just another VMware Cloud Management Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/#\\\/schema\\\/person\\\/892d6b96c66b1dd4b75c6e32fdbfea82\",\"name\":\"Thomas Kopton\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g\",\"caption\":\"Thomas Kopton\"},\"url\":\"https:\\\/\\\/thomas-kopton.de\\\/vblog\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Merge vROps Dashboards - Anatomy of the Content - TOMsOps","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thomas-kopton.de\/vblog\/?p=300","og_locale":"en_US","og_type":"article","og_title":"How to Merge vROps Dashboards - Anatomy of the Content - TOMsOps","og_description":"Recently I was asked if it is possible to merge two, or generally speaking n different vRealize Operations Dashboards into one Dashboard. To answer that question and provide a procedure how to do it we need to inspect the internal structure of a vROps Dashboard. Anatomy of a vRealize Operations Dashboard As everyone knows vROps ...","og_url":"https:\/\/thomas-kopton.de\/vblog\/?p=300","og_site_name":"TOMsOps","article_published_time":"2020-02-15T20:08:46+00:00","article_modified_time":"2020-03-05T15:28:05+00:00","og_image":[{"width":1546,"height":754,"url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01.png","type":"image\/png"}],"author":"Thomas Kopton","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Thomas Kopton","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300#article","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300"},"author":{"name":"Thomas Kopton","@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"headline":"How to Merge vROps Dashboards &#8211; Anatomy of the Content","datePublished":"2020-02-15T20:08:46+00:00","dateModified":"2020-03-05T15:28:05+00:00","mainEntityOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300"},"wordCount":496,"commentCount":0,"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01.png","keywords":["vROps"],"articleSection":["Dashboard","vRealize Operations","vROps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thomas-kopton.de\/vblog\/?p=300#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300","url":"https:\/\/thomas-kopton.de\/vblog\/?p=300","name":"How to Merge vROps Dashboards - Anatomy of the Content - TOMsOps","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300#primaryimage"},"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01.png","datePublished":"2020-02-15T20:08:46+00:00","dateModified":"2020-03-05T15:28:05+00:00","author":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"breadcrumb":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thomas-kopton.de\/vblog\/?p=300"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300#primaryimage","url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01.png","contentUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2020\/02\/figure-01.png","width":1546,"height":754},{"@type":"BreadcrumbList","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=300#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thomas-kopton.de\/vblog"},{"@type":"ListItem","position":2,"name":"How to Merge vROps Dashboards &#8211; Anatomy of the Content"}]},{"@type":"WebSite","@id":"https:\/\/thomas-kopton.de\/vblog\/#website","url":"https:\/\/thomas-kopton.de\/vblog\/","name":"TOMsOps","description":"Just another VMware Cloud Management Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thomas-kopton.de\/vblog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82","name":"Thomas Kopton","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e746aafbd3733172ceb4d600ba1feda61bc87cd3b70f5a9dfb581907cc7973b1?s=96&d=mm&r=g","caption":"Thomas Kopton"},"url":"https:\/\/thomas-kopton.de\/vblog\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=300"}],"version-history":[{"count":25,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/300\/revisions"}],"predecessor-version":[{"id":336,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/300\/revisions\/336"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/media\/303"}],"wp:attachment":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}