<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Search Queries on Cosmin.us</title><link>https://cosmin.us/tags/search-queries/</link><description>Recent content in Search Queries on Cosmin.us</description><generator>Hugo</generator><language>en-US</language><dc:creator>Cosmin Trif</dc:creator><lastBuildDate>Mon, 27 Jul 2026 07:00:00 +0000</lastBuildDate><atom:link href="https://cosmin.us/tags/search-queries/index.xml" rel="self" type="application/rss+xml"/><item><title>VCF Operations for Networks 9.1 Search Queries: The vRNI Query Language Lives On</title><link>https://cosmin.us/vcf-operations-for-networks-9-1-search-queries/</link><pubDate>Mon, 27 Jul 2026 07:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/vcf-operations-for-networks-9-1-search-queries/</guid><description>&lt;p&gt;If you spent years typing &lt;code&gt;flows where firewall action = deny&lt;/code&gt; into vRealize Network Insight, then watched the product get renamed to Aria Operations for Networks and then absorbed into VCF Operations as &lt;strong&gt;VCF Operations for Networks&lt;/strong&gt;, you probably have one practical question: did the search language survive?&lt;/p&gt;
&lt;p&gt;It did — completely. I compared the VCF Operations for Networks 9.1 search documentation against the legacy Aria Operations for Networks 6.13 docs page by page, and the query grammar is identical: same entity types, same &lt;code&gt;where&lt;/code&gt; operators, same &lt;code&gt;group by&lt;/code&gt; / &lt;code&gt;order by&lt;/code&gt; / &lt;code&gt;limit&lt;/code&gt; clauses, same planning and path queries. Even the REST API still answers under the old &lt;code&gt;/api/ni/&lt;/code&gt; (Network Insight) namespace. Your saved searches and your muscle memory carry over as-is.&lt;/p&gt;</description><content:encoded>&lt;p&gt;If you spent years typing &lt;code&gt;flows where firewall action = deny&lt;/code&gt; into vRealize Network Insight, then watched the product get renamed to Aria Operations for Networks and then absorbed into VCF Operations as &lt;strong&gt;VCF Operations for Networks&lt;/strong&gt;, you probably have one practical question: did the search language survive?&lt;/p&gt;
&lt;p&gt;It did — completely. I compared the VCF Operations for Networks 9.1 search documentation against the legacy Aria Operations for Networks 6.13 docs page by page, and the query grammar is identical: same entity types, same &lt;code&gt;where&lt;/code&gt; operators, same &lt;code&gt;group by&lt;/code&gt; / &lt;code&gt;order by&lt;/code&gt; / &lt;code&gt;limit&lt;/code&gt; clauses, same planning and path queries. Even the REST API still answers under the old &lt;code&gt;/api/ni/&lt;/code&gt; (Network Insight) namespace. Your saved searches and your muscle memory carry over as-is.&lt;/p&gt;
&lt;p&gt;The short version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;VCF Operations 9.1 has &lt;strong&gt;one console but at least four separate query languages&lt;/strong&gt;: the networks entity search (vRNI heritage), the Enhanced Search metric queries (vROps heritage), log search under Operate &amp;gt; Logs, and the new-in-9.1 PromQL Custom Query for real-time metrics. Knowing which bar you are typing into matters more than any syntax detail.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;networks search DSL is unchanged&lt;/strong&gt; from vRNI/AON: &lt;code&gt;&amp;lt;projection&amp;gt; of &amp;lt;entity&amp;gt; where &amp;lt;condition&amp;gt; group by &amp;lt;property&amp;gt; order by &amp;lt;field&amp;gt; limit N&lt;/code&gt;, plus &lt;code&gt;top N&lt;/code&gt;, &lt;code&gt;in last N days&lt;/code&gt;, path queries (&lt;code&gt;VM 'a' to VM 'b'&lt;/code&gt;), and &lt;code&gt;plan&lt;/code&gt; queries for micro-segmentation.&lt;/li&gt;
&lt;li&gt;The 9.1 differences are cosmetic or peripheral: NSX Advanced Load Balancer is renamed &lt;strong&gt;Avi Load Balancer&lt;/strong&gt; in the docs, &amp;ldquo;VMware Cloud (VMC)&amp;rdquo; prose became &amp;ldquo;VMware Cloud on AWS&amp;rdquo;, the VMware SD-WAN (VeloCloud) search-queries page is gone from the 9.1 doc tree, and &lt;strong&gt;AWS/Azure data sources are deprecated&lt;/strong&gt; in 9.1.&lt;/li&gt;
&lt;li&gt;The classic community query lists — the ones we all bookmarked in the vRNI days — still apply. I have collected the best of them below, together with the official examples, into one cookbook.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything here is based on the 9.1 documentation set and verified against the legacy 6.13 docs; sources are linked at the end.&lt;/p&gt;
&lt;h2 id="one-console-four-query-languages"&gt;One Console, Four Query Languages&lt;/h2&gt;
&lt;p&gt;The single most confusing thing about search in VCF Operations 9.1 is that &amp;ldquo;search&amp;rdquo; is not one feature. The console consolidates products that each brought their own query engine, and none of them were merged:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Query surface&lt;/th&gt;
					&lt;th&gt;Where it lives in 9.1&lt;/th&gt;
					&lt;th&gt;Grammar&lt;/th&gt;
					&lt;th&gt;Lineage&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Networks entity search&lt;/td&gt;
					&lt;td&gt;Inside the VCF Operations for Networks section (Operate pillar)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;entity where ... group by ...&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;vRNI / Aria Operations for Networks&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Enhanced Search (metric queries)&lt;/td&gt;
					&lt;td&gt;The global search bar in the top menu, on every page&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Metric of Object Type where ... childOf ...&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;vROps / Aria Operations&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Log search&lt;/td&gt;
					&lt;td&gt;Operate &amp;gt; Logs&lt;/td&gt;
					&lt;td&gt;Log filtering, alert queries, field extraction&lt;/td&gt;
					&lt;td&gt;Aria Operations for Logs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Custom Query (new in 9.1)&lt;/td&gt;
					&lt;td&gt;Operate &amp;gt; Real-Time Metrics / Troubleshooting Workbench&lt;/td&gt;
					&lt;td&gt;PromQL&lt;/td&gt;
					&lt;td&gt;New real-time metrics pipeline&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This post is mainly about the first one, because that is where the network troubleshooting value is. The second gets its own section further down, since the two are easy to conflate — the same word &lt;code&gt;where&lt;/code&gt; appears in both grammars but the operator sets are different. The 9.1 release notes only call out one genuinely new query mechanism, and it is the fourth: &amp;ldquo;Use PromQL-based search queries to derive operational insights.&amp;rdquo; Neither the networks DSL nor the Enhanced Search grammar changed in 9.1.&lt;/p&gt;
&lt;p&gt;A note on architecture, since the rebrand hides it: VCF Operations for Networks is still a &lt;strong&gt;separate, pre-hardened appliance&lt;/strong&gt;, deployed as a Day-2 operation from VCF Operations and lifecycle-managed by Fleet Management — not code merged into the core VCF Operations binary. Only one instance can be integrated per fleet. Licensing is automatic starting with VCF 9: the component is licensed through the vCenter instance it is connected to, and there is nothing to license manually anymore.&lt;/p&gt;
&lt;h2 id="anatomy-of-a-networks-search-query"&gt;Anatomy of a Networks Search Query&lt;/h2&gt;
&lt;p&gt;The documentation splits queries into four categories: structured queries, entity queries, planning queries, and path queries. In practice you will spend most of your time on structured queries, which read like a relaxed SQL:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sum(bytes) of flows where Flow Type = &amp;#39;Routed&amp;#39; group by Source Subnet Network order by sum(bytes)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The pieces, in the order the parser expects them:&lt;/p&gt;
&lt;h3 id="entity-type-mandatory"&gt;Entity Type (Mandatory)&lt;/h3&gt;
&lt;p&gt;Every structured query is anchored on an entity type: &lt;code&gt;vms&lt;/code&gt;, &lt;code&gt;hosts&lt;/code&gt;, &lt;code&gt;flows&lt;/code&gt;, &lt;code&gt;firewall rules&lt;/code&gt;, &lt;code&gt;switch ports&lt;/code&gt;, &lt;code&gt;routes&lt;/code&gt;, &lt;code&gt;nsx managers&lt;/code&gt;, &lt;code&gt;kubernetes pods&lt;/code&gt;, and many more. Singular and plural both work, and synonyms are accepted (&lt;code&gt;virtual machine&lt;/code&gt; = &lt;code&gt;vm&lt;/code&gt;). Queries are not case-sensitive.&lt;/p&gt;
&lt;p&gt;Typing just the entity type is already a valid query — &lt;code&gt;vms&lt;/code&gt; lists every VM. The search bar validates as you type: a check mark means the query is valid, a cross means it is not. An old vRNI trick from the community lists that is still worth trying: type &lt;code&gt;help&lt;/code&gt; into the search field to bring up the search help.&lt;/p&gt;
&lt;h3 id="filters-where-plus-operators"&gt;Filters: &lt;code&gt;where&lt;/code&gt; Plus Operators&lt;/h3&gt;
&lt;p&gt;Conditions are &lt;code&gt;property, operator, value&lt;/code&gt;, combined with &lt;code&gt;and&lt;/code&gt; / &lt;code&gt;or&lt;/code&gt; and parentheses:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Operator&lt;/th&gt;
					&lt;th&gt;Example&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;=&lt;/code&gt; / &lt;code&gt;!=&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;flows where source ip address = '10.16.240.0/24'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;&amp;gt;&lt;/code&gt; &lt;code&gt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;gt;=&lt;/code&gt; &lt;code&gt;&amp;lt;=&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vms where memory &amp;gt;= 4096 mb&lt;/code&gt;, &lt;code&gt;vms where cpu usage rate &amp;lt; 70%&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;like&lt;/code&gt; / &lt;code&gt;not like&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vms where name like 'app'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;in&lt;/code&gt; / &lt;code&gt;not in&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;flows where port in (22, 23, 80, 443)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;is set&lt;/code&gt; / &lt;code&gt;is not set&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vms where firewall rule is set&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;matches&lt;/code&gt; / &lt;code&gt;not matches&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vm where name matches '[a-z]vm-delta[0-9]'&lt;/code&gt; (regex)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;grouping &lt;code&gt;()&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;flows where (src tier = 'App' and destination tier = 'DB') OR (destination tier = 'App' and source tier = 'DB')&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The underrated one is the &lt;strong&gt;nested &lt;code&gt;in&lt;/code&gt;&lt;/strong&gt; — a sub-query as the right-hand side:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vm where host in (host where Blade like &amp;#39;sys/chassis-1&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vm where vlan in (vlan of vm where os in (&amp;#39;Microsoft Windows Server 2003&amp;#39;, &amp;#39;Microsoft Windows Server 2008&amp;#39;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The second example is a trimmed version of the documented &amp;ldquo;total attack surface&amp;rdquo; query (the full one lists five vulnerable operating systems and ends with &lt;code&gt;group by Vlan&lt;/code&gt;): every VM that shares a VLAN with a VM running a vulnerable OS.&lt;/p&gt;
&lt;h3 id="projections-what-to-show"&gt;Projections: What to Show&lt;/h3&gt;
&lt;p&gt;By default a query returns the entity&amp;rsquo;s standard field set. A projection in front changes that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Property list&lt;/strong&gt;: &lt;code&gt;os of vms&lt;/code&gt;, &lt;code&gt;cpu cores of vms&lt;/code&gt;, or several at once — &lt;code&gt;CPU Usage Rate, Network Rate, mac address, ip, host of vm 'Quality control-VM26'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Count&lt;/strong&gt;: &lt;code&gt;count of vms&lt;/code&gt;, &lt;code&gt;count of vm where operating system like 'Microsoft Windows Server 2008'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;List()&lt;/strong&gt;: fetch one entity while filtering on another — &lt;code&gt;List(host) of vms where memory &amp;lt;= 2gb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aggregates&lt;/strong&gt; (&lt;code&gt;sum&lt;/code&gt;, &lt;code&gt;max&lt;/code&gt;, &lt;code&gt;min&lt;/code&gt;, &lt;code&gt;avg&lt;/code&gt;): &lt;code&gt;sum(memory) of hosts&lt;/code&gt;, &lt;code&gt;sum(bytes) of flows&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Series&lt;/strong&gt; for time-series graphs: &lt;code&gt;series(avg(cpu usage)) of vms where cpu cores = 4&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="grouping-ordering-limiting"&gt;Grouping, Ordering, Limiting&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vms group by host
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sum(bytes) of flows group by dest vm order by sum(bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vms order by memory limit 5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Three rules worth memorizing, because they are the usual cause of the red X:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;limit&lt;/code&gt; must be preceded by &lt;code&gt;order by&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;order by&lt;/code&gt; accepts exactly one field; descending is the default (&lt;code&gt;asc&lt;/code&gt; flips it).&lt;/li&gt;
&lt;li&gt;When a &lt;code&gt;group by&lt;/code&gt; query has a projection or an &lt;code&gt;order by&lt;/code&gt;, the projection &lt;strong&gt;must contain an aggregation function&lt;/strong&gt;. &lt;code&gt;sum(bytes) of flows group by dest vm&lt;/code&gt; is valid; &lt;code&gt;bytes of flows group by dest vm&lt;/code&gt; is explicitly called out in the docs as invalid.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="time-top-n-and-in-last-n-days"&gt;Time: &lt;code&gt;top N&lt;/code&gt; and &lt;code&gt;in last N days&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The examples in the official advanced-queries page lean heavily on two inline constructs:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;top 7 vm group by name, Vlan order by sum(Total Network Traffic) in last 7 days
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Kubernetes alerts where alert code = &amp;#39;ImagePullBackOff&amp;#39; in last 24 hours
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;New firewall rules in last 24 hours
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There is also a UI time control next to the search bar with presets (&amp;ldquo;last 24 hours&amp;rdquo;, &amp;ldquo;last 3 days&amp;rdquo;), an &lt;strong&gt;At&lt;/strong&gt; option for a point in time, and a &lt;strong&gt;Between&lt;/strong&gt; option for a range — useful for re-running the same query against last Tuesday&amp;rsquo;s state, which remains one of this product&amp;rsquo;s superpowers.&lt;/p&gt;
&lt;h3 id="path-and-planning-queries"&gt;Path and Planning Queries&lt;/h3&gt;
&lt;p&gt;Path queries draw the hop-by-hop topology between two endpoints, including the underlay:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;VMware VM &amp;#39;VM01&amp;#39; to VMware VM &amp;#39;VM02&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vm &amp;#39;app1-web&amp;#39; to Internet
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Planning queries feed the micro-segmentation donut — the flow analysis view you use before writing distributed-firewall rules. The documented forms take a bare argument:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;plan security in last 7 days
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;plan securitygroup1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;plan host1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The community lists extend these with filters — &lt;code&gt;plan vm where folder = 'Production'&lt;/code&gt; and &lt;code&gt;plan flows where vm = 'app1-web' and traffic type = 'INTERNET_TRAFFIC'&lt;/code&gt; both come from &lt;a href="https://gist.github.com/mtellin/d48e7cfec03173f6c994e7132a6ebb02"&gt;mtellin&amp;rsquo;s gist&lt;/a&gt; rather than the official grammar reference, but they follow the same &lt;code&gt;where&lt;/code&gt; rules as everything else.&lt;/p&gt;
&lt;h3 id="entity-and-free-text-searches"&gt;Entity and Free-Text Searches&lt;/h3&gt;
&lt;p&gt;Plain strings work too: &lt;code&gt;'prod-68-1'&lt;/code&gt; (exact name, quoted), &lt;code&gt;prod&lt;/code&gt; (partial name), &lt;code&gt;vm app1&lt;/code&gt; (entity type plus partial name). And a community favorite from the gist: paste a bare MAC address like &lt;code&gt;00:50:56:a6:c9:6a&lt;/code&gt; into the search bar to find the machine that owns it — a great party trick when someone shows up with nothing but a switch log.&lt;/p&gt;
&lt;h3 id="vcenter-tags"&gt;vCenter Tags&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vm where tag = &amp;#39;Environment:Production&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The syntax is &lt;code&gt;'{category}:{tagname}'&lt;/code&gt;. Tags are also available as a Group-by criterion in flow analysis (up to three at once).&lt;/p&gt;
&lt;h3 id="saved-searches-and-the-widget-trick"&gt;Saved Searches and the Widget Trick&lt;/h3&gt;
&lt;p&gt;The bookmark icon next to the search bar saves any valid query; saved searches are per-user, and six defaults ship with the product (All Flows, Applications, Azure, Kubernetes Dashboard, Top Trends, NSX). Two features worth more attention than they get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Help &amp;gt; Useful Searches&lt;/strong&gt; is a curated, tagged library of pre-built queries — parameterized ones open pre-filled with sample values you swap out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;View Search Query&lt;/strong&gt; on dashboard widgets (VM Details, Host Details, NSX Manager, Flow Insights, and a few others) reveals the query powering the widget, which you can copy into the search bar and modify. This is the fastest way I know to learn the DSL: find a widget that almost shows what you want, steal its query, adjust.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And almost any search can become an alert: run the query, then create a notification from the results page. Threshold queries (&lt;code&gt;flows where firewall action = deny&lt;/code&gt;, packet-drop queries) make surprisingly good custom alerts.&lt;/p&gt;
&lt;h2 id="the-query-cookbook"&gt;The Query Cookbook&lt;/h2&gt;
&lt;p&gt;The queries below are collected from the official 9.1 search-queries reference and the two classic community lists — &lt;a href="https://letstalkvirtual.com/vrealize-network-insight-search-queries/"&gt;Pat&amp;rsquo;s vRNI search queries post&lt;/a&gt; and &lt;a href="https://gist.github.com/mtellin/d48e7cfec03173f6c994e7132a6ebb02"&gt;mtellin&amp;rsquo;s gist&lt;/a&gt; — deduplicated and grouped by what I actually use them for. Since the grammar is unchanged from vRNI, the community-era queries remain valid in 9.1 unless they depend on a data source that is gone (more on that below).&lt;/p&gt;
&lt;h3 id="flows-and-traffic-patterns"&gt;Flows and Traffic Patterns&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;What it answers&lt;/th&gt;
					&lt;th&gt;Query&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Denied flows, environment-wide&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;flows where firewall action = deny&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Internet traffic by source VM&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sum(bytes) of flows where Flow Type = 'Internet' group by src vm&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Top talkers, limit 10&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sum(bytes) of flows group by src vm order by sum(bytes) limit 10&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Top ports by volume&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sum(bytes) of flow group by port order by sum(bytes)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Sum and average per port&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sum(bytes), avg(bytes) of flows group by port&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Top routed subnet pairs (last 7 days)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;top 7 flow where Flow Type = 'Routed' group by Source Subnet Network, Destination Subnet Network order by sum(Bytes) in last 7 days&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Traffic that never leaves its subnet — micro-segmentation candidates&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;top 7 flow where Flow Type = 'Switched' group by Subnet Network order by sum(Bytes) in last 7 days&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMs talking outside the country&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;top 7 flow where Destination Country != 'United States' group by Source VM, Destination Country order by sum(Bytes) in last 7 days&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Traffic between two application tiers, either direction&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Flows where (src tier = 'App' and destination Tier = 'DB') OR (destination tier = 'App' and source tier = 'DB')&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Data center interconnect traffic between two sites&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sum(bytes) of flows where (Dst Manager = 'site2' AND src manager = 'site1') OR (Dst Manager = 'site1' AND src manager = 'site2')&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="nsx-firewall-and-security"&gt;NSX Firewall and Security&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;What it answers&lt;/th&gt;
					&lt;th&gt;Query&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Effective rules between two VMs&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;firewall rules from 'Prod-Midtier-1' to 'Prod-Db-1'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Any/any allow rules — segmentation debt&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;firewall rule where action = allow and service any = true&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Masked (shadowed) rules&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Firewall Rule Masked Alert&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Rules created recently&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;New firewall rules in last 24 hours&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Rules no flow has ever hit&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Firewall rule where flow is not set&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Flow count per rule&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Flow group by firewall rule&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Flows hitting specific rule IDs&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Flow where rule id in (1011, 1012, 1013)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMs excluded from the DFW&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vm where firewall status = 'Excluded'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMs covered by a given rule&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vm where Firewall Rule = 'Prod MidTier to Prod DB - DBService'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Security groups referenced by no rule at all&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Security group where Indirect Incoming Rules is not set and Indirect Outgoing Rules is not set and Direct Incoming Rules is not set and Direct Outgoing Rules is not set&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Rule and group membership churn&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;firewall rule membership change&lt;/code&gt;, &lt;code&gt;security group membership change&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="vm-and-host-inventory"&gt;VM and Host Inventory&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;What it answers&lt;/th&gt;
					&lt;th&gt;Query&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;VM count per OS&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vms group by operating system&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Segments with the most VMs&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vm group by l2 network&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Datastores with the most VMs&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vm group by datastore&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Hosts per vSphere version / build&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;host group by version&lt;/code&gt;, &lt;code&gt;host group by OS&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Network identity card for every VM&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;l2 network, vlan, ip address, default gateway of vms&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMs still running vulnerable operating systems&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;count of vm where Operating System like 'Microsoft Windows Server 2003' or Operating System like 'Microsoft Windows Server 2008'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Everything about one VM in a single line&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;CPU Usage Rate, Network Rate, Memory Usage Rate, mac address, ip, vxlan, host of vm 'Quality control-VM26'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="physical-network-and-routing"&gt;Physical Network and Routing&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;What it answers&lt;/th&gt;
					&lt;th&gt;Query&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;All switches from one vendor&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;switches where vendor = Cisco&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Switch ports dropping packets, worst first&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;switchport where vendor = 'Cisco' order by total packet drops&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Routes in a VRF&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;routes where vrf = 'Provider Edge 3'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Routes via a given next hop&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;routes where NextHop Router = 'California-Edge'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;BGP sessions that are not up&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;BGP Connection where BGP Status != 'ACTIVE'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;BGP neighbors of a router&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;list(BGP Neighbor) of NSX-T Router 'Router Name'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ECMP-enabled routers on a manager&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;NSX-T Router where ECMP = 'Enabled' and manager = 'NSX-T Manager Name'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="kubernetes-vks--antrea"&gt;Kubernetes (VKS / Antrea)&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;What it answers&lt;/th&gt;
					&lt;th&gt;Query&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Pod distribution per node&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;kubernetes Pods group by Kubernetes Node&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Nodes not in Ready state&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;kubernetes nodes where Ready != 'True'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Pods created in the last hour&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;new kubernetes pod in last 1 hour&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Dropped flows per service&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;flows where firewall action = 'DROP' group by Kubernetes Service&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Cross-namespace compliance check&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;flows from Kubernetes Namespace 'PCI' to Kubernetes Namespace 'Non-PCI'&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This category got more relevant in 9.1: container IPFIX flows from VKS clusters running Antrea now export to the VCF Operations for Networks collector, with pod-to-pod and pod-to-external traffic dashboards.&lt;/p&gt;
&lt;h3 id="dashboard-shortcuts"&gt;Dashboard Shortcuts&lt;/h3&gt;
&lt;p&gt;Not structured queries, but single keywords from the gist that jump straight to built-in views: &lt;code&gt;problem&lt;/code&gt;, &lt;code&gt;change&lt;/code&gt; (recent changes in the environment), &lt;code&gt;topn&lt;/code&gt;, &lt;code&gt;storage&lt;/code&gt;, and &lt;code&gt;pci compliance of VC Manager '192.168.10.10'&lt;/code&gt; (the PCI dashboard — which, per the gist, required an Enterprise license back in the vRNI days).&lt;/p&gt;
&lt;h3 id="a-caveat-on-community-shorthand"&gt;A Caveat on Community Shorthand&lt;/h3&gt;
&lt;p&gt;The community lists include a few compact forms you will not find in the official grammar reference — &lt;code&gt;vm by VLAN&lt;/code&gt;, &lt;code&gt;show VLAN&lt;/code&gt;, &lt;code&gt;vm by network rate&lt;/code&gt;, &lt;code&gt;top 10 vms by max packet drops&lt;/code&gt;, &lt;code&gt;flows where flow type = 'VM-Physical' by bytes&lt;/code&gt;. They come from vRNI-era posts that predate the current documented grammar, which only uses &lt;code&gt;group by&lt;/code&gt; / &lt;code&gt;order by&lt;/code&gt; for these jobs. I have kept them out of the tables above for that reason. If you rely on one of them, the in-product validation check mark will tell you immediately whether your build still accepts it.&lt;/p&gt;
&lt;h2 id="the-other-search-bar-enhanced-search-metric-queries"&gt;The Other Search Bar: Enhanced Search Metric Queries&lt;/h2&gt;
&lt;p&gt;The global search bar at the top of the VCF Operations console — the one that is on every page — is a different animal with its own documented query language, under the section Broadcom titles &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/infrastructure-operations/enhanced-search-capability.html"&gt;&amp;ldquo;Enhanced Search Capability&amp;rdquo;&lt;/a&gt;. It searches the vROps-side world: objects, metrics, properties, dashboards, reports, views, alert definitions, symptom definitions, recommendations, notifications, IP addresses, super metrics, and (since recent releases) features — type &lt;code&gt;li&lt;/code&gt; and select Feature to jump straight to Licenses, navigation path included.&lt;/p&gt;
&lt;p&gt;Its metric query grammar looks like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CPU|Usage % of Virtual Machine
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CPU|Usage % of Virtual Machine where CPU|Usage % &amp;gt; 15 and Memory|Usage % &amp;gt; 15
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CPU|Demand MHz of Virtual Machine where Configuration|Name contains &amp;#39;Centos&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CPU|Usage % of Virtual Machine where CPU|Usage % &amp;gt; 15 or Memory|Usage % &amp;gt; 15 childOf vSphere World
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The differences from the networks DSL are exactly where you would trip:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The pattern is &lt;code&gt;Metric of Object Type&lt;/code&gt;, with the pipe character separating metric group and metric name (&lt;code&gt;CPU|Usage %&lt;/code&gt;). If you start with a metric name, naming the object type is mandatory.&lt;/li&gt;
&lt;li&gt;String operators are camelCase keywords: &lt;code&gt;equals&lt;/code&gt;, &lt;code&gt;notEquals&lt;/code&gt;, &lt;code&gt;contains&lt;/code&gt;, &lt;code&gt;notContains&lt;/code&gt;, &lt;code&gt;startsWith&lt;/code&gt;, &lt;code&gt;notStartsWith&lt;/code&gt; — there is no &lt;code&gt;like&lt;/code&gt;, no &lt;code&gt;in&lt;/code&gt;, no &lt;code&gt;matches&lt;/code&gt; here. Numeric operators (&lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;gt;=&lt;/code&gt;, &lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;lt;=&lt;/code&gt;, &lt;code&gt;=&lt;/code&gt;, &lt;code&gt;!=&lt;/code&gt;) plus arithmetic (&lt;code&gt;+ - * /&lt;/code&gt; with parentheses) and &lt;code&gt;and&lt;/code&gt;/&lt;code&gt;or&lt;/code&gt; round out the set. String values are case-insensitive.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;childOf&lt;/code&gt; at the end of the query scopes results to descendants of an ancestor object — the closest thing this grammar has to the networks DSL&amp;rsquo;s nested &lt;code&gt;in&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Hard limits: 300 characters per query, at most five different metric names. Break either and a red banner explains the issue; for syntax errors specifically it reads &amp;ldquo;The query contains syntax error(s). Please modify it to get suggestions.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;There is no &lt;code&gt;group by&lt;/code&gt; or &lt;code&gt;order by&lt;/code&gt; in the query itself; slicing happens on the Metric Search Results page instead, via Transformation (Min/Max/Average/Sum/First/Last/Current), Roll Up (hour through year), Parents, value-distribution buckets, and time settings. The Transformation filter only activates when the query has a &lt;code&gt;where&lt;/code&gt; condition and the object type has at most 200 objects over at most one month. From any result row, the vertical-ellipsis menu jumps into the Troubleshooting Workbench.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One honest note: none of this is new in 9.1. I compared the 9.0 and 9.1 pages — the content is identical — and the same grammar exists in Aria Operations 8.x. What is new in 9.1 on the metrics side is the PromQL-based Custom Query in Real-Time Metrics, which is a separate topic (and a separate language) altogether.&lt;/p&gt;
&lt;h2 id="what-actually-changed-in-91-for-operations-for-networks"&gt;What Actually Changed in 9.1 for Operations for Networks&lt;/h2&gt;
&lt;p&gt;Since search itself did not move, here is what did — the 9.1 items relevant to a networks operator, from the release notes and product support notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Network Assessment and Value report&lt;/strong&gt; — evaluates your current VDS-based networking and produces a CAPEX/OPEX analysis for VCF networking capabilities. It replaces the vCenter Assessment report, which was removed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VPC Planning&lt;/strong&gt; — guided vSphere-to-VPC transition planning, with subnet tables and a CSV export of the generated VPC design.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expanded IPFIX for VKS clusters&lt;/strong&gt; — Antrea container flows land in the collector; pod-to-pod and pod-to-external dashboards.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expanded migration planning&lt;/strong&gt; — automatic migration wave generation, clustering workloads by flow, latency, and bandwidth data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network health dashboards&lt;/strong&gt; — NSX Edge appliance and ESX host networking capacity monitoring surfaced through VCF Operations Health and Diagnostics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deprecations&lt;/strong&gt;: AWS and Azure data sources are deprecated in 9.1, and the networks API had 22 operations marked deprecated — the largest deprecation set in the Operations component. The VMware SD-WAN (VeloCloud) search-queries reference page is also absent from the 9.1 documentation tree.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That deprecation list is worth acting on if you have search-based alerting or scripts built on AWS/Azure entity queries (&lt;code&gt;AWS EC2 where Security Group = ...&lt;/code&gt;, &lt;code&gt;Azure NSG Rule where Action = 'ALLOW'&lt;/code&gt;) — the syntax still exists in the 9.1 reference today, but the data sources feeding those entities are on the way out.&lt;/p&gt;
&lt;h2 id="getting-there-from-standalone-6x"&gt;Getting There from Standalone 6.x&lt;/h2&gt;
&lt;p&gt;If you are still on a standalone appliance — I have covered &lt;a href="https://cosmin.us/upgrading-aria-operations-for-networks-to-6-14-via-upgrade-bundle/"&gt;upgrading Aria Operations for Networks to 6.14 via the upgrade bundle&lt;/a&gt; and &lt;a href="https://cosmin.us/upgrading-aria-operations-for-networks-to-6-14-via-aria-suite-lifecycle/"&gt;via Aria Suite Lifecycle&lt;/a&gt; before — the path into 9.x is: get to &lt;strong&gt;6.14.0 Patch 6 or 6.14.1+&lt;/strong&gt;, import the instance into VCF Operations Fleet Management, upgrade it in place to VCF Operations for Networks 9.0.x, and from there directly to 9.1. Only one instance can be imported per fleet. Every search query in this post works the same on both sides of that migration, which is precisely the point.&lt;/p&gt;
&lt;h2 id="the-api-corner"&gt;The API Corner&lt;/h2&gt;
&lt;p&gt;For automation, the search subsystem is exposed over REST, still under the Network Insight namespace:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /api/ni/search/ql&lt;/code&gt; — takes the same query-language strings you type in the search bar&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/ni/search&lt;/code&gt; — entity search&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/ni/search/aggregation&lt;/code&gt; — aggregations&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /api/ni/search/groupby&lt;/code&gt; — group-by queries&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The schemas are on the &lt;a href="https://developer.broadcom.com/xapis/vcf-operations-for-networks-api/latest/"&gt;VCF Operations for Networks API reference&lt;/a&gt;. The &lt;code&gt;ql&lt;/code&gt; endpoint is the interesting one: anything you prototype in the search bar can be lifted verbatim into a script.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/infrastructure-operations/network-operationss/search/search-queries.html"&gt;Broadcom TechDocs — Working with Search Queries (VCF Operations for Networks 9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/infrastructure-operations/enhanced-search-capability.html"&gt;Broadcom TechDocs — Enhanced Search Capability (VCF Operations 9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/infrastructure-operations/enhanced-search-capability/searching-for-metrics-properties-or-object-types-using-queries.html"&gt;Broadcom TechDocs — Searching for Metrics, Properties, or Object Types Using Queries (VCF Operations 9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/aria/aria-operations-for-networks/6-13/vrealize-network-insight-ug-4-1-and-later-6-13/search/search-queries.html"&gt;Broadcom TechDocs — Search Queries (Aria Operations for Networks 6.13, the legacy twin of the 9.1 pages)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/what-s-new/whats-new-vcf-ops.html"&gt;Broadcom TechDocs — What&amp;rsquo;s New in VCF Operations (VCF 9.1 Release Notes)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/vcf-91-product-support-notes.html"&gt;Broadcom TechDocs — VCF 9.1 Product Support Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://letstalkvirtual.com/vrealize-network-insight-search-queries/"&gt;letstalkvirtual.com — vRealize Network Insight Search Queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/mtellin/d48e7cfec03173f6c994e7132a6ebb02"&gt;GitHub gist (mtellin) — vRealize Network Insight Search Queries&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item></channel></rss>