{"id":2221,"date":"2025-10-08T12:20:02","date_gmt":"2025-10-08T11:20:02","guid":{"rendered":"https:\/\/thomas-kopton.de\/vblog\/?p=2221"},"modified":"2025-10-08T12:20:05","modified_gmt":"2025-10-08T11:20:05","slug":"reducing-alert-noise-for-vm-groups-in-vcf-operations","status":"publish","type":"post","link":"https:\/\/thomas-kopton.de\/vblog\/?p=2221","title":{"rendered":"Reducing Alert Noise for VM Groups in VCF Operations"},"content":{"rendered":"\n<p>In my previous post (<a href=\"https:\/\/thomas-kopton.de\/vblog\/?p=2198\">https:\/\/thomas-kopton.de\/vblog\/?p=2198<\/a>), I detailed how to track HA-induced Virtual Machine restarts in <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>VCF Operations<\/strong><\/mark>, including the required symptoms, alert definitions, and REST Webhook notifications. However, in larger setups, with potentially over 20 VMs per ESX host, <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">receiving 20 individual notifications is impractical<\/mark>. This simply creates alert fatigue and undermines the entire alerting process.<\/p>\n\n\n\n<p>A better approach is clearly essential.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Scenario<\/h5>\n\n\n\n<p>The scenario we know from the previous post is still quite simple, and some of the requirements are already fulfilled :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The owners should be notified via a REST Webhook &#8211; we already know how to do this for every single VM.<\/li>\n\n\n\n<li>Each host can run VMs from different owners.<\/li>\n\n\n\n<li>Each VM has the owner recorded in its metadata, in this case as a vSphere Tag<\/li>\n\n\n\n<li>The owners want to be informed when their VMs are restarted by an HA event on a different ESX host <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">and receive only one notification in case of HA event affecting multiple Virtual Machines<\/mark>.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">Solution<\/h5>\n\n\n\n<p>Since we can easily differentiate VMs by their metadata, and VCF Operations provides us with the tool of <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Custom Groups<\/mark><\/strong>, the solution path is already clear. Instead of sending an individual notification for every single VM, we will now send just one for the entire group whenever one or more VMs within that group have been affected by an HA event. This, admittedly, is a compromise between receiving 20 or more individual notifications and getting a single notification for the whole group, even if only one Virtual Machine was impacted. We will now explore how to effectively deal with this.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Custom Groups Configuration<\/h6>\n\n\n\n<p>First, we need the appropriate metadata on our VMs. In my case, these are <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">vSphere Tags<\/mark>, as shown in the following image. To keep it simple, I&#8217;ve used two tags that represent the owner of a VM. With these, we can very easily create corresponding Custom Groups.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"517\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-5-1024x517.png\" alt=\"\" class=\"wp-image-2228\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-5-1024x517.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-5-300x152.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-5-768x388.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-5.png 1172w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 01: vSphere Tags.<\/em><\/figcaption><\/figure>\n\n\n\n<p>The next image shows the configuration of one of the two <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Custom Groups<\/mark>. The key here is the correct selection of the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Membership Criteria<\/mark> to automatically and dynamically include all VMs that are tagged with the appropriate vSphere Tag during their lifecycle. It&#8217;s also important to note that the Custom Group members are updated every 20 minutes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"411\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-7-1024x411.png\" alt=\"\" class=\"wp-image-2232\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-7-1024x411.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-7-300x120.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-7-768x308.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-7-1536x616.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-7.png 1590w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em><em>Figure 02: Custom Group definition.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p>Below, you can see my two Custom Groups, one for each distinct owner, and their associated VMs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"222\" height=\"300\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-6-222x300.png\" alt=\"\" class=\"wp-image-2230\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-6-222x300.png 222w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-6.png 724w\" sizes=\"auto, (max-width: 222px) 100vw, 222px\" \/><\/a><figcaption class=\"wp-element-caption\"><em><em>Figure 03: Custom Groups overview.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Payload Template<\/h6>\n\n\n\n<p>Building on the previous post, we now need to modify three key components: the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Notification<\/mark>, the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Payload<\/mark> <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Template<\/mark> and we need a new <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Alert Definition<\/mark>. Previously, notifications were directly triggered by alarms on individual VMs. Now, this logic needs to apply to an entire group of VMs. Since a Custom Group is now the target object type, the Payload will also need a slight reconfiguration.<\/p>\n\n\n\n<p>Let&#8217;s start with the new <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Webhook Payload Template<\/mark>.<\/p>\n\n\n\n<p>In the next screenshot, we see that this time, the Custom Group is the primary object type, taking center stage. To include the data of the VMs within the group in the payload, the Virtual Machine object type is configured as a descendant. This allows us to add any other desired metrics and properties to the JSON body.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"899\" height=\"1024\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-8-899x1024.png\" alt=\"\" class=\"wp-image-2238\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-8-899x1024.png 899w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-8-263x300.png 263w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-8-768x875.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-8.png 1218w\" sizes=\"auto, (max-width: 899px) 100vw, 899px\" \/><\/a><figcaption class=\"wp-element-caption\"><em><em>Figure 04: Group alarm Payload Template.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p>I specifically included the <code>OS Uptime<\/code> metric. This could be key to identifying which specific VM(s) in the group were likely restarted by an HA event. We could also add and evaluate the various <code>Alert Count<\/code> metrics available for each object (including VMs). This would allow us to later focus only on VMs with, for instance, an <code>Alert Count Critical<\/code> metric greater than 0.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Alert Definition<\/h6>\n\n\n\n<p>To alarm at the Custom Group level, we need a new <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Alert Definition<\/mark>, though it&#8217;s quite similar to the one from our previous post. The image below displays this definition, with the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Base Object<\/mark><code> <\/code>set to the type of my Custom Groups. An alternative approach would have been to create an entirely new <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Group Type<\/mark>&nbsp;<em>before<\/em>&nbsp;building the Custom Groups themselves. And because we need to use an event-based symptom from the Virtual Machine Object Type, we select <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Child Object Virtual Machine<\/mark> for the symptom&#8217;s actual definition, as you&#8217;ll see in the second image below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1009\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-9-1024x1009.png\" alt=\"\" class=\"wp-image-2247\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-9-1024x1009.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-9-300x296.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-9-768x756.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-9.png 1334w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em><em>Figure 05: Group Alert Definition &#8211; Based Object Type.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"438\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-11-1024x438.png\" alt=\"\" class=\"wp-image-2249\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-11-1024x438.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-11-300x128.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-11-768x329.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-11-1536x658.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-11-2048x877.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em><em>Figure 06: Group Alert Definition &#8211; Message Event Symptom.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Notification Definition<\/h6>\n\n\n\n<p>We can now consolidate these building blocks into a <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Notification Definition<\/mark>. This Notification will send a REST payload to our endpoint whenever any VM in a predefined Custom Group is affected by an HA event. The JSON body will contain relevant VM information for the group, and can be extended as desired.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"511\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-12-1024x511.png\" alt=\"\" class=\"wp-image-2251\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-12-1024x511.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-12-300x150.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-12-768x384.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-12-1536x767.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-12.png 1978w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em><em>Figure 07: Notification Definition.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Payload Received<\/h6>\n\n\n\n<p>The next screenshot shows the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">JSON body<\/mark> containing the transmitted data. From the uptime, you can quickly identify which VMs in the group were potentially affected by an HA event. While we could add other metrics, like the VM&#8217;s alarm count, this information is already sufficient to specifically focus our investigation on those VMs in VCF Operations.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"250\" src=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13-1024x250.png\" alt=\"\" class=\"wp-image-2254\" srcset=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13-1024x250.png 1024w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13-300x73.png 300w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13-768x188.png 768w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13-1536x375.png 1536w, https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png 1990w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em><em>Figure 08: Received JSON Body example.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p>All configurations and definitions from this post can be found in my Git repo: <a href=\"https:\/\/github.com\/tkopton\/aria-operations-content\/tree\/main\/VM-HA-Event-Group-Notification\">https:\/\/github.com\/tkopton\/aria-operations-content\/tree\/main\/VM-HA-Event-Group-Notification<\/a><\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Stay<\/mark><\/strong> <strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f5d800\" class=\"has-inline-color\">safe<\/mark><\/strong>.<\/p>\n\n\n\n<p>Thomas \u2013&nbsp;<a href=\"https:\/\/twitter.com\/ThomasKopton\">https:\/\/twitter.com\/ThomasKopton<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my previous post (https:\/\/thomas-kopton.de\/vblog\/?p=2198), I detailed how to track HA-induced Virtual Machine restarts in VCF Operations, including the required symptoms, alert definitions, and REST Webhook notifications. However, in larger setups, with potentially over 20 VMs per ESX host, receiving 20 individual notifications is impractical. This simply creates alert fatigue and undermines the entire alerting &#8230;<\/p>\n","protected":false},"author":1,"featured_media":2254,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[79,57,93,34,2],"tags":[58,94,36],"class_list":["post-2221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alerting","category-aria-operations","category-vcf-operations","category-vrealize-operations","category-vrops","tag-aria-operations","tag-vcf-operations","tag-vrealize-operations"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Reducing Alert Noise for VM Groups in VCF Operations - 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=2221\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reducing Alert Noise for VM Groups in VCF Operations - TOMsOps\" \/>\n<meta property=\"og:description\" content=\"In my previous post (https:\/\/thomas-kopton.de\/vblog\/?p=2198), I detailed how to track HA-induced Virtual Machine restarts in VCF Operations, including the required symptoms, alert definitions, and REST Webhook notifications. However, in larger setups, with potentially over 20 VMs per ESX host, receiving 20 individual notifications is impractical. This simply creates alert fatigue and undermines the entire alerting ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thomas-kopton.de\/vblog\/?p=2221\" \/>\n<meta property=\"og:site_name\" content=\"TOMsOps\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-08T11:20:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-08T11:20:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1990\" \/>\n\t<meta property=\"og:image:height\" content=\"486\" \/>\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=\"6 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=2221#article\",\"isPartOf\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221\"},\"author\":{\"name\":\"Thomas Kopton\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"headline\":\"Reducing Alert Noise for VM Groups in VCF Operations\",\"datePublished\":\"2025-10-08T11:20:02+00:00\",\"dateModified\":\"2025-10-08T11:20:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221\"},\"wordCount\":874,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage\"},\"thumbnailUrl\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png\",\"keywords\":[\"Aria Operations\",\"VCF Operations\",\"vRealize Operations\"],\"articleSection\":[\"Alerting\",\"Aria Operations\",\"VCF Operations\",\"vRealize Operations\",\"vROps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/thomas-kopton.de\/vblog\/?p=2221#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221\",\"url\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221\",\"name\":\"Reducing Alert Noise for VM Groups in VCF Operations - TOMsOps\",\"isPartOf\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage\"},\"image\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage\"},\"thumbnailUrl\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png\",\"datePublished\":\"2025-10-08T11:20:02+00:00\",\"dateModified\":\"2025-10-08T11:20:05+00:00\",\"author\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82\"},\"breadcrumb\":{\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/thomas-kopton.de\/vblog\/?p=2221\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage\",\"url\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png\",\"contentUrl\":\"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png\",\"width\":1990,\"height\":486},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/thomas-kopton.de\/vblog\/?p=2221#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/thomas-kopton.de\/vblog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reducing Alert Noise for VM Groups in VCF Operations\"}]},{\"@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:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/image\/\",\"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":"Reducing Alert Noise for VM Groups in VCF Operations - 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=2221","og_locale":"en_US","og_type":"article","og_title":"Reducing Alert Noise for VM Groups in VCF Operations - TOMsOps","og_description":"In my previous post (https:\/\/thomas-kopton.de\/vblog\/?p=2198), I detailed how to track HA-induced Virtual Machine restarts in VCF Operations, including the required symptoms, alert definitions, and REST Webhook notifications. However, in larger setups, with potentially over 20 VMs per ESX host, receiving 20 individual notifications is impractical. This simply creates alert fatigue and undermines the entire alerting ...","og_url":"https:\/\/thomas-kopton.de\/vblog\/?p=2221","og_site_name":"TOMsOps","article_published_time":"2025-10-08T11:20:02+00:00","article_modified_time":"2025-10-08T11:20:05+00:00","og_image":[{"width":1990,"height":486,"url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png","type":"image\/png"}],"author":"Thomas Kopton","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Thomas Kopton","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221#article","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221"},"author":{"name":"Thomas Kopton","@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"headline":"Reducing Alert Noise for VM Groups in VCF Operations","datePublished":"2025-10-08T11:20:02+00:00","dateModified":"2025-10-08T11:20:05+00:00","mainEntityOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221"},"wordCount":874,"commentCount":0,"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png","keywords":["Aria Operations","VCF Operations","vRealize Operations"],"articleSection":["Alerting","Aria Operations","VCF Operations","vRealize Operations","vROps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thomas-kopton.de\/vblog\/?p=2221#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221","url":"https:\/\/thomas-kopton.de\/vblog\/?p=2221","name":"Reducing Alert Noise for VM Groups in VCF Operations - TOMsOps","isPartOf":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage"},"image":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage"},"thumbnailUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png","datePublished":"2025-10-08T11:20:02+00:00","dateModified":"2025-10-08T11:20:05+00:00","author":{"@id":"https:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/892d6b96c66b1dd4b75c6e32fdbfea82"},"breadcrumb":{"@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thomas-kopton.de\/vblog\/?p=2221"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221#primaryimage","url":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png","contentUrl":"https:\/\/thomas-kopton.de\/vblog\/wp-content\/uploads\/2025\/10\/image-13.png","width":1990,"height":486},{"@type":"BreadcrumbList","@id":"https:\/\/thomas-kopton.de\/vblog\/?p=2221#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thomas-kopton.de\/vblog"},{"@type":"ListItem","position":2,"name":"Reducing Alert Noise for VM Groups in VCF Operations"}]},{"@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:\/\/thomas-kopton.de\/vblog\/#\/schema\/person\/image\/","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\/2221","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=2221"}],"version-history":[{"count":28,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/2221\/revisions"}],"predecessor-version":[{"id":2260,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/posts\/2221\/revisions\/2260"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=\/wp\/v2\/media\/2254"}],"wp:attachment":[{"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thomas-kopton.de\/vblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}