Skip to content

Commit 403a404

Browse files
committed
Minor fixes
1 parent 9e52271 commit 403a404

File tree

4 files changed

+54
-55
lines changed

4 files changed

+54
-55
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ Please see https://github.com/elelabdev/net-commander/releases for the latest re
33
All notable changes to the "net-commander" extension will be documented in this file.
44

55
<br><br>
6+
## 2025-06-20 - [0.0.3]
7+
### Added
8+
- Minor fixes for Root Cause Analysis for Microsoft Azure
69

710
## 2025-05-16 - [0.0.2]
811
### Added

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Network Engineering Toolkit for Visual Studio Code
66
**Manage and diagnose networks end-to-end without ever leaving your code editor. Conduct real Root Cause Analysis data-driven with no more guessing**
77

8-
[![published](https://static.production.devnetcloud.com/codeexchange/assets/images/devnet-published.svg)](https://developer.cisco.com/codeexchange/github/repo/elelabdev/net-commander)
8+
[![published](https://img.shields.io/badge/Cisco%20DevNet-published-blue)](https://developer.cisco.com/codeexchange/github/repo/elelabdev/net-commander)
99
![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/elelabdev.net-commander)
1010
![Open VSX Version](https://img.shields.io/open-vsx/v/elelabdev/net-commander)
1111
[![Uses VSCode Elements](https://img.shields.io/badge/uses-vscode--elements-blue)](https://github.com/vscode-elements/elements/network/dependents)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "net-commander",
33
"displayName": "Net Commander ",
44
"description": "Net Commander is the extension for Visual Studio Code dedicated to Network Engineers, DevOps Engineers and Solution Architects streamlining everyday workflows and accelerating data-driven root-cause analysis.",
5-
"version": "0.0.2",
5+
"version": "0.0.3",
66
"extensionKind": [
77
"workspace",
88
"ui"

src/modules/rootcauseAnalysis.ts

Lines changed: 49 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ export const specialisedAzure: Record<AzureScenario, Section[]> = {
246246
{
247247
id: 'az_route_table_diff',
248248
label:'Compare UDR vs system routes (effective route table)',
249-
cmd: 'az network watcher route-table list-effective --vm <vm> --resource-group <rg> --output table'
249+
cmd: 'az network watcher route-table list-effective --vm <vm> --resource-group RGName --output table'
250250
},
251251
{
252252
id: 'az_service_tags',
@@ -261,7 +261,7 @@ export const specialisedAzure: Record<AzureScenario, Section[]> = {
261261
{
262262
id: 'az_vhub_routes',
263263
label:'Dump vWAN Hub effective routes',
264-
cmd: 'az network vhub get-effective-routes --name <hub> --resource-group <rg> --output table'
264+
cmd: 'az network vhub get-effective-routes --name <hub> --resource-group RGName --output table'
265265
}
266266
]
267267
},
@@ -286,7 +286,7 @@ export const specialisedAzure: Record<AzureScenario, Section[]> = {
286286
{
287287
id: 'az_ddos_status',
288288
label:'Query DDoS Rapid Response status',
289-
cmd: 'az network ddos-protection show --name <plan> --resource-group <rg>'
289+
cmd: 'az network ddos-protection show --name <plan> --resource-group RGName'
290290
}
291291
]
292292
}
@@ -973,100 +973,96 @@ export const checklist: Record<Platform, Section[]> = {
973973
// END Ciena SAOS - advanced checklist
974974

975975
// BEGIN Microsoft Azure – advanced (network‑centric)
976-
azure: [
976+
azure: [
977977
{
978978
title: 'Subscription & Service Health',
979979
items: [
980-
{ id: 'az_health', label: 'Current Azure-wide service issues', cmd: 'az service-health show --query issues --output table' },
981-
{ id: 'az_res_health', label: 'Resource Health – VNets / NICs / LBs', cmd: 'az resource-health list-by-resource --resource-type Microsoft.Network' },
982-
{ id: 'az_activity', label: 'Activity-log failures (last 200)', cmd: 'az monitor activity-log list --status Failed --max-events 200' },
983-
{ id: 'az_change', label: 'Change-analysis diff – network resources', cmd: 'az resource-graph query --query "Resources | where type =~ \'Microsoft.Network\'"' }
980+
{ id: 'az_health_sub', label: 'Verify your current subscription', cmd: 'az account show --output table' },
981+
{ id: 'az_health_list_sub', label: 'List Tenant wide subscriptions', cmd: 'az account list --output table' },
982+
{ id: 'az_health_set_sub', label: 'Set the desired subscription', cmd: 'az account set --subscription SubID-OR-Name' },
983+
{ id: 'az_health_list_rg', label: 'List Resource Groups', cmd: 'az group list --output table' },
984+
{ id: 'az_health_list_res', label: 'List all Resources in RG', cmd: 'az resource list -g RGName --output table' },
985+
{ id: 'az_health_list_vms', label: 'List all VM in RG', cmd: 'az vm list -g RGName --show-details --output table' },
986+
{ id: 'az_health_list_pri', label: 'List all VM in RG including Private IPs', cmd: 'az vm list -g RGName --show-details --query "[].{Name:name, PrivateIP:privateIps, PublicIP:publicIps, PowerState:powerState}" --output table' },
987+
{ id: 'az_health_pcap', label: 'Execute packet capture', cmd: 'az network watcher packet-capture create --name myCapture --resource-group RGName --vm VMName --storage-account StorageAccountName --file-path captures/myCapture.pcap' },
988+
{ id: 'az_health', label: 'Current Azure-wide service issues', cmd: 'az graph query -q "ServiceHealthResources | project id, properties" --output table' },
989+
{ id: 'az_activity', label: 'Lists the 200 most recent failed operations from Azure Activity Logs.', cmd: 'az monitor activity-log list --status Failed --max-events 200 --output table' }
984990
]
985991
},
986992
{
987993
title: 'Connectivity Diagnostics (Network Watcher)',
988994
items: [
989-
{ id: 'az_conn_tr', label: 'Single-hop connectivity test', cmd: 'az network watcher test-connectivity --source-resource <vm> --dest-address <ip> --dest-port 443' },
990-
{ id: 'az_conn_check', label: 'Multi-hop connectivity path', cmd: 'az network watcher test-connectivity --source-resource <vmA> --dest-resource <vmB>' },
991-
{ id: 'az_topology', label: 'Topology map (JSON)', cmd: 'az network watcher show-topology --location <region>' }
995+
{ id: 'az_conn_tr', label: 'Single-hop connectivity test', cmd: 'az network watcher test-connectivity --source-resource VMName --resource-group RGName --dest-address 1.1.1.1 --dest-port 443' },
996+
{ id: 'az_conn_check', label: 'Multi-hop connectivity path', cmd: 'az network watcher test-connectivity --source-resource VMName --dest-resource VMName' },
997+
{ id: 'az_health_gen_rg', label: 'Generate Resource Groups topology', cmd: 'az network watcher show-topology -g RGName --output json > RGName-topology.json' }
992998
]
993999
},
9941000
{
9951001
title: 'Effective Policy Evaluation',
9961002
items: [
997-
{ id: 'az_effective_nsg', label: 'Effective NSG – NIC & subnet', cmd: 'az network nic show-effective-nsg --ids <nicId>' },
998-
{ id: 'az_effective_route', label: 'Effective route table', cmd: 'az network nic show-effective-route-table --ids <nicId>' }
1003+
{ id: 'az_effective_nsg', label: 'List all VM NICs', cmd: 'az vm nic list --resource-group RGName --vm-name VMName --query "[].id" -o tsv' },
1004+
{ id: 'az_effective_nsg', label: 'Shows the effective Network Security Groups (NSGs) applied to a network interface specified by its resource ID.', cmd: 'az network nic list-effective-nsg --ids VM-NIC-ID --query "effectiveNetworkSecurityGroups[].name" --output json > VM-NIC-ID_VMName.json' },
1005+
{ id: 'az_effective_route', label: 'Shows effective route table of the VM NIC', cmd: 'az network nic show-effective-route-table --ids VM-NIC-ID --output table' }
9991006
]
10001007
},
10011008
{
10021009
title: 'Packet & Flow Inspection',
10031010
items: [
1004-
{ id: 'az_pcap_start', label: 'Start packet capture (5 min)', cmd: 'az network watcher packet-capture create --vm <vmId> --file-path /capt/cap1 --time-limit 300' },
1005-
{ id: 'az_pcap_dl', label: 'Download packet capture file', cmd: 'az network watcher packet-capture show --resource-group <rg> --vm <vmId> --name cap1 --query storageLocation.filePath' },
1006-
{ id: 'az_flow', label: 'Enable NSG flow-logs + analytics', cmd: 'az network watcher flow-log configure --nsg <nsgId> --enabled true --traffic-analytics' }
1011+
{ id: 'az_pcap_start', label: 'Start packet capture (5 min)', cmd: 'az network watcher packet-capture create --vm VM-ID --file-path /capt/cap1 --time-limit 300' },
1012+
{ id: 'az_pcap_dl', label: 'Download packet capture file', cmd: 'az network watcher packet-capture show --resource-group RGName --vm VM-ID --name cap1 --query storageLocation.filePath' },
1013+
{ id: 'az_flow', label: 'Enable NSG flow-logs + analytics', cmd: 'az network watcher flow-log configure --nsg nsgId --enabled true --traffic-analytics' },
1014+
{ id: 'az_ipflow', label: 'IP Flow Verify', cmd: 'az network watcher test-ip-flow --local srcIP --remote dstIP --port 443 --protocol TCP' },
1015+
{ id: 'az_next_hop', label: 'Next-hop lookup', cmd: 'az network watcher show-next-hop --source-ip srcIP --dest-ip dstIP' },
1016+
{ id: 'az_nsg_watch', label: 'Real-time NSG hit counters', cmd: 'watch -n1 az network watcher nsg-flow-log show --location region --nsg-name nsg' },
1017+
{ id: 'az_conn_monitor', label: 'Connection Monitor list', cmd: 'az network watcher connection-monitor list --location region' },
1018+
{ id: 'az_vm_netstat', label: 'In-guest netstat via Run Command', cmd: 'az vm run-command invoke --command-id RunShellScript --scripts "ss -ant" --ids VM-ID' }
10071019
]
10081020
},
10091021
{
10101022
title: 'NIC-level Telemetry',
10111023
items: [
1012-
{ id: 'az_nic_metrics', label: 'NIC packet counters (Monitor)', cmd: 'az monitor metrics list --resource <nicId> --metric "NetworkPacketsIn,NetworkPacketsOut"' },
1013-
{ id: 'az_accel_net', label: 'SR-IOV / accelerated-networking stats', cmd: 'az vm nic-show-detail --ids <nicId> --query "srIovStats"' }
1024+
{ id: 'az_nic_metrics', label: 'NIC packet counters (Monitor)', cmd: 'az monitor metrics list --resource VM-NIC-ID --metric "PacketsReceivedRate,PacketsSentRate" --output table' },
1025+
{ id: 'az_accel_net_check', label: 'Check if the VM size supports SR-IOV', cmd: 'az network nic show --ids VM-NIC-ID --query "enableAcceleratedNetworking"' },
1026+
{ id: 'az_accel_net', label: 'SR-IOV / accelerated-networking stats', cmd: 'az network nic show --ids VM-NIC-ID --query "srIovStats"' }
10141027
]
10151028
},
10161029
{
1017-
title: 'Load Balancer',
1030+
title: 'Load Balancers',
10181031
items: [
1019-
{ id: 'az_lb_backend', label: 'LB backend health', cmd: 'az network lb show-backend-health --lb-name <lb> --resource-group <rg>' },
1020-
{ id: 'az_lb_probe', label: 'LB probe status', cmd: 'az network lb probe show --lb-name <lb> --name <probe> --resource-group <rg>' },
1021-
{ id: 'az_lb_snat', label: 'SNAT port utilisation', cmd: 'az monitor metrics list --resource <lbId> --metric SnatConnectionCount' }
1032+
{ id: 'az_lb_backend_list', label: 'List Load Balancers', cmd: 'az network lb list --resource-group RGName --output table' },
1033+
{ id: 'az_lb_probe', label: 'Check Load Balancer Health Probes', cmd: 'az network lb probe list --resource-group RGName --lb-name LB-Name --output table' },
1034+
{ id: 'az_lb_bck_pool', label: 'Check and list the backend address pools', cmd: 'az network lb address-pool list --resource-group RGName --lb-name LB-Name --output table' }
10221035
]
10231036
},
10241037
{
10251038
title: 'App Gateway / WAF',
10261039
items: [
1027-
{ id: 'az_appgw_health', label: 'App Gateway backend health', cmd: 'az network application-gateway show-backend-health --name <agw> --resource-group <rg>' },
1028-
{ id: 'az_appgw_waf', label: 'WAF log query (KQL)', cmd: '"AzureDiagnostics | where ResourceType==\'APPLICATIONGATEWAYFIREWALL\'"' }
1029-
]
1030-
},
1031-
{
1032-
title: 'Azure Firewall',
1033-
items: [
1034-
{ id: 'az_afw_logs', label: 'Firewall rule hits (KQL)', cmd: '"AzureDiagnostics | where Category==\'AzureFirewallNetworkRule\'"' }
1040+
{ id: 'az_appgw_list', label: 'List Application Gateways', cmd: 'az network application-gateway list --resource-group RGName --output table' },
1041+
{ id: 'az_appgw_health', label: 'Check App Gateway backend health', cmd: 'az network application-gateway show-backend-health --name AGW-name --resource-group RGName --output table' },
1042+
{ id: 'az_appgw_httpsliste', label: 'List HTTP(S) Listeners', cmd: 'az network application-gateway show-backend-health --name AGW-name --resource-group RGName --output table' },
1043+
{ id: 'az_appgw_use', label: 'Which VMs use the Application Gateway', cmd: 'az network application-gateway show --name appgw-name --resource-group RGName --query "backendAddressPools" --output table' },
1044+
{ id: 'az_appgw_httpsbkliste', label: 'List Backend HTTP Settings', cmd: 'az network application-gateway http-settings list --gateway-name appgw-name --resource-group RGName --output table' },
1045+
{ id: 'az_appgw_routerules', label: 'List Request Routing Rules', cmd: 'az network application-gateway rule list --gateway-name appgw-name --resource-group RGName --output table' },
10351046
]
10361047
},
10371048
{
10381049
title: 'Routing & Hybrid connectivity',
10391050
items: [
1040-
{ id: 'az_ars_bgp', label: 'Route Server BGP peer status', cmd: 'az network route-server peering list --resource-group <rg> --name <rs>' },
1041-
{ id: 'az_er_vpn', label: 'VPN / ExpressRoute IPSec stats', cmd: 'az network vpn-connection list-ipsec-ike-stats --name <conn> --resource-group <rg>' },
1042-
{ id: 'az_vwan', label: 'Virtual WAN connection health', cmd: 'az network vwan list-connections --vwan-name <vw> --resource-group <rg>' },
1043-
{ id: 'az_vnet_peering', label: 'VNet-peering flags & state', cmd: 'az network vnet peering show --vnet-name <vnet> --name <peer> --resource-group <rg>' }
1051+
{ id: 'az_list_vpn', label: 'List VPN Connections in a Resource Group', cmd: 'az network vpn-connection list --resource-group RGName --output table' },
1052+
{ id: 'az_er_vpn', label: 'VPN / ExpressRoute IPSec stats', cmd: 'az network vpn-connection list-ipsec-ike-stats --name conn --resource-group RGName' },
1053+
{ id: 'az_vwan_list', label: 'List Virtual WAN', cmd: 'az network vwan list --output table' },
1054+
{ id: 'az_vwan', label: 'Virtual WAN connection health', cmd: 'az network vwan list-connections --vwan-name vw --resource-group RGName' },
1055+
{ id: 'az_vnet_peering', label: 'VNet-peering flags & state', cmd: 'az network vnet peering show --vnet-name vnet --name peer --resource-group RGName' }
10441056
]
10451057
},
10461058
{
10471059
title: 'Private Link / DNS',
10481060
items: [
1049-
{ id: 'az_priv_dns', label: 'Private DNS zone-to-VNet links', cmd: 'az network private-dns link vnet list --zone-name <zone> --resource-group <rg>' },
1050-
{ id: 'az_dns', label: 'Internal DNS resolve test (168.63.129.16)', cmd: 'dig @168.63.129.16 <fqdn>' }
1051-
]
1052-
},
1053-
{
1054-
title: 'Security & Protection',
1055-
items: [
1056-
{ id: 'az_ddos', label: 'DDoS plan Under-Attack metric', cmd: 'az monitor metrics list --resource <planId> --metric UnderDDoSAttack' },
1057-
{ id: 'az_monitor_alerts', label: 'NSG counter alert query (KQL)', cmd: '"AzureNetworkAnalytics_CL | summarize count()"' }
1061+
{ id: 'list_az_priv_dns', label: 'List all Private DNS zones in a resource group', cmd: 'az network private-dns zone list --resource-group RGName --output table' },
1062+
{ id: 'az_priv_dns', label: 'List Private DNS zone-to-VNet links', cmd: 'az network private-dns link vnet list --zone-name zone --resource-group RGName --output table' },
1063+
{ id: 'az_dns', label: 'Internal DNS resolve test (168.63.129.16)', cmd: 'dig @168.63.129.16 <fqdn>' }
10581064
]
10591065
},
1060-
{
1061-
title: 'Cloud Shell / advanced helpers',
1062-
items: [
1063-
{ id: 'az_ipflow', label: 'IP Flow Verify', cmd: 'az network watcher test-ip-flow --local <srcIP> --remote <dstIP> --port 443 --protocol TCP' },
1064-
{ id: 'az_next_hop', label: 'Next-hop lookup', cmd: 'az network watcher show-next-hop --source-ip <srcIP> --dest-ip <dstIP>' },
1065-
{ id: 'az_nsg_watch', label: 'Real-time NSG hit counters', cmd: 'watch -n1 az network watcher nsg-flow-log show --location <region> --nsg-name <nsg>' },
1066-
{ id: 'az_conn_monitor', label: 'Connection Monitor list', cmd: 'az network watcher connection-monitor list --location <region>' },
1067-
{ id: 'az_vm_netstat', label: 'In-guest netstat via Run Command', cmd: 'az vm run-command invoke --command-id RunShellScript --scripts "ss -ant" --ids <vmId>' }
1068-
]
1069-
}
10701066
],
10711067
// END Microsoft Azure – advanced (network‑centric)
10721068

0 commit comments

Comments
 (0)