{"id":4568,"date":"2025-08-18T10:29:41","date_gmt":"2025-08-18T17:29:41","guid":{"rendered":"https:\/\/nl1g1e2381-staging.onrocket.site\/?p=4568"},"modified":"2025-08-18T11:29:17","modified_gmt":"2025-08-18T18:29:17","slug":"unlock-deeper-network-insights-with-custom-commands","status":"publish","type":"post","link":"https:\/\/www.forwardnetworks.com\/blog\/2025\/08\/18\/unlock-deeper-network-insights-with-custom-commands\/","title":{"rendered":"Unlock Deeper Network Insights with Custom Commands"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\" id=\"matters\">Why Custom Commands Matter<\/h3>\n\n\n\n<p>Standard query patterns often miss specialized device data like QoS stats, feature-specific configurations, or vendor-specific health metrics. Custom commands allow you to fill those gaps\u2014delivering targeted insights without sifting through raw CLI logs or spreadsheets.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"value\">Business Value<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Operational Precision:<\/strong> Get the exact metrics you need, from QoS queues to session tables<br><\/li>\n\n\n\n<li><strong>Automation Enabler:<\/strong> Feed specialized data directly into workflows or ticketing systems<br><\/li>\n\n\n\n<li><strong>Faster Troubleshooting:<\/strong> Pinpoint configuration anomalies or performance issues with tailored commands<br><\/li>\n\n\n\n<li><strong>Smart Reporting:<\/strong> Centralize unique metrics for auditor-ready dashboards or custom alert thresholds<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"extraction\">How It Works: Custom Command Extraction<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Define your custom CLI command<\/strong> (e.g., show qos interface)<br><\/li>\n\n\n\n<li><strong>Configure NQE to run it<\/strong> via device profile or script<br><\/li>\n\n\n\n<li><strong>Parse the output<\/strong> using regex or structured annotations<br><\/li>\n\n\n\n<li><strong>Map it into NQE\u2019s query result<\/strong> with field names and data types<br><\/li>\n\n\n\n<li><strong>Export the structured results<\/strong> through API, UI, or scheduler<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"example\">Technical Example<\/h3>\n\n\n\n<pre class=\"wp-block-code codeBlock has-background\" style=\"background-color:#f2f2f2\"><code>ap_config =```\n{name:string} {group:string} {type:string} {ip:ipv4Address} {status: (\"Up\" string | \"Down\")} {flag:string} {ipSwitch:ipv4Address} {ipStandby:ipv4Address}\n```;\n\nstatus(stat) = \nif isPresent(stat) then \"Up\" else \"Down\"\n;\n\nforeach device in network.devices\nforeach command in device.outputs.commands\nwhere command.commandText == \"show ap database\"\nlet parsed_response = parseConfigBlocks(OS.ARUBA_WIFI, command.response)\nlet my_data = blockMatches(parsed_response, ap_config)\n\nforeach ap in my_data\nselect { \n  name: ap.data.name,\n  group: ap.data.group,\n  type: ap.data.type,\n  ip: ap.data.ip,\n  status: status(ap.data.status.left),\n  uptime: ap.data.status.left,\n  flags: ap.data.flag,\n  switch_ip: ap.data.ipSwitch,\n  standby_ip: ap.data.ipStandby,\n  controller: device.name\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"getting_started\">Getting Started<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Pick a custom data point<\/strong> (e.g., QoS class defaults, ARP statistics)<br><\/li>\n\n\n\n<li><strong>Test your command<\/strong> in CLI for consistent output<br><\/li>\n\n\n\n<li><strong>Define your pattern<\/strong> in NQE with named groups or regex<br><\/li>\n\n\n\n<li><strong>Run and evaluate results<\/strong> through UI or API<br><\/li>\n\n\n\n<li><strong>Embed in automation flows<\/strong> like ServiceNow alerts or dashboards<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"explore\"><strong>Explore the Community Guide<\/strong><\/h3>\n\n\n\n<p>For a complete walkthrough with device-specific examples, parsing tips, and CI\/CD integration ideas, check out the original post:<br><a href=\"https:\/\/community.forwardnetworks.com\/custom-commands-77\/a-basic-guide-to-extracting-data-from-custom-commands-311\" target=\"_blank\" rel=\"noopener\" title=\"\">A Basic Guide to Extracting Data from Custom Commands<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Use custom CLI commands in Forward NQE to extract tailored network insights\u2014perfect for automation, troubleshooting, and reporting<\/p>\n","protected":false},"author":24,"featured_media":4511,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[17],"tags":[],"ppma_author":[681],"class_list":["post-4568","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"aioseo_notices":[],"authors":[{"term_id":681,"user_id":24,"is_guest":0,"slug":"aricabeckstead","display_name":"Arica Beckstead","avatar_url":{"url":"https:\/\/www.forwardnetworks.com\/wp-content\/uploads\/2025\/08\/AricaBeckstead.png","url2x":"https:\/\/www.forwardnetworks.com\/wp-content\/uploads\/2025\/08\/AricaBeckstead.png"},"author_category":"1","user_url":"","last_name":"Beckstead","first_name":"Arica","job_title":"Customer Success Engineer","description":"Customer Success Engineer"}],"_links":{"self":[{"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/posts\/4568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/comments?post=4568"}],"version-history":[{"count":12,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/posts\/4568\/revisions"}],"predecessor-version":[{"id":4587,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/posts\/4568\/revisions\/4587"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/media\/4511"}],"wp:attachment":[{"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/media?parent=4568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/categories?post=4568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/tags?post=4568"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.forwardnetworks.com\/wp-json\/wp\/v2\/ppma_author?post=4568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}