Automated analysis tool for network performance test datasets containing DNS testing results and iperf3 performance measurements
npm install network-performance-analyzer

A comprehensive toolkit for analyzing network performance in Netskope Private Access (NPA) environments
_Specialized for testing NPA performance with CGNAT validation and multi-configuration analysis_
---
This toolkit is specifically designed for Netskope Private Access (NPA) performance testing. When NPA is properly configured and steered, it returns Carrier-Grade NAT (CGNAT) addresses from the 100.64.0.0/10 range as defined in RFC 6598. Our DNS validation ensures you're testing the correct NPA-steered traffic path.
| Feature | Description | Documentation |
| ---------------------------------- | --------------------------------------------------------- | ------------------------------------------------------ |
| š Automated Dataset Discovery | Finds and processes network performance test datasets | User Guide |
| š Comprehensive Analysis | Analyzes iperf3 and DNS performance across configurations | API Documentation |
| āļø Configuration Comparison | Compares MTU sizes, AWS logging, and other parameters | Configuration Guide |
| šØ Anomaly Detection | Identifies performance outliers and unusual patterns | Extending Guide |
| š Detailed Reporting | Generates comprehensive markdown reports with insights | User Guide |
| š Plugin Architecture | Extensible design for custom analysis capabilities | Custom Plugins Guide |
| ā” Performance Optimized | Parallel processing and streaming for large datasets | Performance Guide |
| š CGNAT Validation | Validates NPA traffic steering via CGNAT IP ranges | DNS Testing Guide |
| Requirement | Version | Installation |
| ---------------- | -------------- | ------------------------------------------------------------------------------- |
| š¦ Node.js | 14.x or higher | Download |
| š¦ npm | 6.x or higher | Included with Node.js |
| ļæ½ \*Python 3 | 3.7 or higher | Download or system package manager |
| ļæ½ \*pip | Latest | Included with Python 3 |
| š§ iperf3 | Latest | Installation Guide |
| š§ dig | Latest | Installation Guide |
#### Python Dependencies for Data Gatherer
The data collection tool requires these Python packages:
``bashInstall Python dependencies for data collection
pip install pandas>=1.0.0 matplotlib>=3.0.0 numpy>=1.18.0
$3
#### Option 1: Build from source (Recommended)
`bash
Clone the repository
git clone https://github.com/your-org/network-performance-analyzer.git
cd network-performance-analyzerInstall dependencies and build
npm install
npm run buildLink for global usage (makes 'network-performance-analyzer' command available)
npm link
`#### Option 2: Local development setup
`bash
Clone and setup for development
git clone https://github.com/your-org/network-performance-analyzer.git
cd network-performance-analyzerInstall dependencies
npm installRun tests
npm testStart development mode
npm run dev
`#### Option 3: Direct usage without global install
`bash
Clone the repository
git clone https://github.com/your-org/network-performance-analyzer.git
cd network-performance-analyzerInstall dependencies and build
npm install
npm run buildRun directly with npx
npx . ./datasetsOr run the built CLI directly
node dist/cli.js ./datasets
`$3
1. š Collect Data - Use our data gatherer tool:
`bash
# Navigate to data gatherer
cd data-gatherer # Install Python dependencies
pip install -r requirements.txt
# Run performance tests (requires iperf3 servers)
python3 network_performance_tester.py --servers 192.168.1.100
` š _See Data Gatherer Guide for detailed instructions_
2. š Analyze Results - Process your datasets:
`bash
# Analyze collected data
network-performance-analyzer ./datasets
`3. š Review Reports - Check generated analysis:
`bash
# View the generated report
cat network-analysis-report.md
`š» Usage
$3
`bash
Analyze datasets in current directory
network-performance-analyzer ./datasetsSpecify custom output location
network-performance-analyzer ./datasets -o ./reports/npa-analysis.md
`$3
| Option | Description | Example |
| --------------------------------- | ----------------------------- | --------------------------------- |
|
-o, --output | Output file path | -o ./reports/analysis.md |
| -v, --verbose | Enable detailed logging | -v |
| -c, --continue-on-error | Continue on dataset failures | -c |
| -t, --anomaly-thresholds | Custom anomaly detection | -t '{"bandwidthVariation":0.2}' |
| -p, --parallel | Max parallel tasks | -p 8 |
| -m, --monitor | Enable performance monitoring | -m |
| -e, --environment | Environment configuration | -e production |
| -C, --config | Configuration file path | -C ./config.json |
| -P, --plugins | Plugin directories | -P ./plugins,./custom |
| -T, --template | Report template | -T detailed |
| -S, --sections | Report sections | -S summary,recommendations |$3
`bash
š Comprehensive analysis with custom settings
network-performance-analyzer ./npa-datasets \
-o ./reports/npa-performance-$(date +%Y%m%d).md \
-v -m \
-t '{"bandwidthVariation":0.15,"dnsResponseTimeVariation":0.4}' \
-e productionš Using custom plugins for specialized analysis
network-performance-analyzer ./datasets \
-P ./custom-plugins \
-T npa-optimized \
-S executive-summary,npa-validation,performance-comparisonā” High-performance analysis for large datasets
network-performance-analyzer ./large-datasets \
-p 16 \
-C ./configs/high-performance.json \
--continue-on-error
`š For more usage examples, see Troubleshooting and Examples Guide
āļø Configuration
The analyzer provides flexible configuration for different testing environments and requirements.
$3
`bash
Generate default configuration
network-performance-analyzer --init-configUse environment-specific settings
network-performance-analyzer ./datasets -e production -C ./npa-config.json
`$3
| Category | Purpose | Documentation |
| --------------------------- | ------------------------------- | ---------------------------------------------------------- |
| š Analysis Settings | Control processing behavior | Configuration Reference |
| šØ Anomaly Thresholds | Customize detection sensitivity | Configuration Reference |
| š Reporting Options | Control report generation | User Guide |
| š Plugin Configuration | Manage custom extensions | Custom Plugins Guide |
| š Environment Profiles | Environment-specific settings | Configuration Reference |
š For complete configuration options, see Configuration Reference
š Dataset Format & Structure
$3
The analyzer expects datasets organized with specific naming patterns for NPA testing:
`
datasets/
āāā coredns-mtu1500-aws-logs_enabled/
ā āāā parameters-results_20250717_120000.json
ā āāā results_20250717_120000.json
āāā coredns-mtu1420-aws-logs_disabled/
ā āāā parameters-results_20250717_130000.json
ā āāā results_20250717_130000.json
āāā stock-mtu8920-aws-logs_disabled/
āāā parameters-results_20250717_140000.json
āāā results_20250717_140000.json
`$3
`
(coredns|stock)-mtu-aws-logs_(enabled|disabled)
`| Component | Description | Example |
| ------------------------------ | ------------------ | --------------------------------------- |
|
coredns\|stock | DNS resolver type | coredns, stock |
| mtu | MTU configuration | mtu1500, mtu1420, mtu8920 |
| aws-logs_(enabled\|disabled) | AWS logging status | aws-logs_enabled, aws-logs_disabled |$3
#### Parameters File (
parameters-results_*.json)`json
{
"backendServer": "192.168.1.100",
"mtu": 1500,
"queryLogging": "enabled",
"timestamp": "2025-07-17T12:00:00Z"
}
`#### Results File (
results_*.json)`json
{
"iperfTests": [
{
"server": "192.168.1.100",
"scenario": "TCP Bandwidth (Parallel 4)",
"success": true,
"bandwidthMbps": 945.2,
"retransmits": 12,
"duration": 15.1
}
],
"dnsResults": [
{
"domain": "example.npa.com",
"dnsServer": "8.8.8.8",
"success": true,
"responseTimeMs": 23.4,
"resolvedIps": ["100.64.1.10"]
}
]
}
`š For complete data format specifications, see Data Gatherer Guide
š Extending the Analyzer
The Network Performance Analyzer supports custom plugins for specialized NPA analysis requirements.
$3
`typescript
// Create custom NPA analysis plugin
import { AnalyzerPlugin } from "network-performance-analyzer";export class NPALatencyPlugin extends AnalyzerPlugin {
analyze(datasets: Dataset[]): AnalysisResult {
// Custom NPA-specific latency analysis
return this.analyzeNPALatencyPatterns(datasets);
}
}
`$3
| Resource | Description | Link |
| ------------------------- | ------------------------------ | ---------------------------------------------------- |
| šļø Plugin Development | Complete plugin creation guide | Custom Plugins Guide |
| š§ API Reference | Plugin API documentation | API Documentation |
| šÆ Extension Examples | Real-world plugin examples | Extending Guide |
š ļø Troubleshooting
$3
| Issue | Quick Solution | Documentation |
| ------------------------------ | ------------------------------ | ---------------------------------------------------------- |
| š No datasets found | Check directory naming pattern | Data Format Guide |
| š Parsing errors | Validate JSON format | Troubleshooting Guide |
| š¾ Memory issues | Enable streaming parser | Configuration Reference |
| š CGNAT validation fails | Verify NPA steering | DNS Testing Guide |
| š§ iperf3 connection fails | Check server setup | Data Gatherer Guide |
$3
`bash
Fix dataset discovery issues
ls -la datasets/ # Check directory structure
network-performance-analyzer datasets/ -v # Enable verbose loggingResolve memory issues
network-performance-analyzer datasets/ -p 2 -C low-memory-config.jsonDebug CGNAT validation
python3 -c "
import ipaddress
ip = '100.64.1.10' # Your resolved IP
cgn = ipaddress.ip_network('100.64.0.0/10')
print(f'IP {ip} in CGNAT range: {ipaddress.ip_address(ip) in cgn}')
"
`š For comprehensive troubleshooting, see Troubleshooting and Examples Guide
š Complete Documentation
$3
- š User Guide - Complete usage instructions and examples
- š§ API Documentation - Detailed API reference and integration guide
- āļø Configuration Reference - All configuration options and examples
$3
- š Data Gatherer Guide - Complete data collection toolkit
- š DNS Testing Guide - DNS performance and CGNAT validation
- š iperf3 Test Scenarios - All 18 test scenarios explained
$3
- š Custom Plugins Guide - Plugin development and examples
- š Extending the Analyzer - Advanced customization
- š ļø Troubleshooting Examples - Solutions and usage examples
š¤ Contributing
We welcome contributions to improve NPA performance testing capabilities!
$3
`bash
Fork and clone the repository
git clone https://github.com/your-username/network-performance-analyzer.git
cd network-performance-analyzerCreate feature branch
git checkout -b feature/npa-enhancementMake changes and test
npm test
npm run lintSubmit pull request
git push origin feature/npa-enhancement
``- š NPA-specific analysis algorithms
- š CGNAT validation improvements
- š New visualization types
- š Plugin examples and templates
- š Documentation improvements
MIT License - see LICENSE file for details.
---
Built for Netskope Private Access Performance Testing
_Ensuring optimal NPA performance through comprehensive network analysis_

