88
99``` bash
1010pip install dns-benchmark-tool
11- dns-benchmark benchmark --use-defaults
11+ dns-benchmark benchmark --use-defaults --formats csv,excel
1212```
1313
1414---
@@ -40,7 +40,7 @@ dns-benchmark top
4040dns-benchmark compare Cloudflare Google Quad9 --show-details
4141
4242# Run monitoring for 1 hour with alerts
43- dns-benchmark monitoring --use-defaults --interval 30 --duration 3600 \
43+ dns-benchmark monitoring --use-defaults --formats csv,excel -- interval 30 --duration 3600 \
4444 --alert-latency 150 --alert-failure-rate 5 --output monitor.log
4545```
4646
@@ -141,6 +141,14 @@ dns-benchmark monitoring --use-defaults --interval 30 --duration 3600 \
141141 - [ CSV outputs] ( #csv-outputs )
142142 - [ Excel report] ( #excel-report )
143143 - [ PDF report] ( #pdf-report )
144+ - [ 📄 Optional PDF Export] ( #-optional-pdf-export )
145+ - [ Install with PDF support] ( #install-with-pdf-support )
146+ - [ Usage] ( #usage )
147+ - [ ⚠️ WeasyPrint Setup (for PDF export)] ( #️-weasyprint-setup-for-pdf-export )
148+ - [ 🛠 Linux (Debian/Ubuntu)] ( #-linux-debianubuntu )
149+ - [ 🛠 macOS (Homebrew)] ( #-macos-homebrew )
150+ - [ 🛠 Windows] ( #-windows )
151+ - [ ✅ Verify Installation] ( #-verify-installation )
144152 - [ JSON export] ( #json-export )
145153 - [ Generate Sample Config] ( #generate-sample-config )
146154 - [ Performance optimization] ( #performance-optimization )
@@ -225,7 +233,7 @@ pip install dns-benchmark-tool
225233
226234``` bash
227235# Test default resolvers against popular domains
228- dns-benchmark benchmark --use-defaults
236+ dns-benchmark benchmark --use-defaults --formats csv,excel
229237```
230238
231239### View Results
@@ -388,6 +396,7 @@ dns-benchmark benchmark \
388396# Detailed analysis
389397dns-benchmark benchmark \
390398 --use-defaults \
399+ --formats csv,excel \
391400 --domain-stats \
392401 --record-type-stats \
393402 --error-breakdown \
@@ -450,7 +459,7 @@ dns-benchmark benchmark \
450459 --use-defaults \
451460 --dnssec-validate \ # coming soon
452461 --output migration-report/ \
453- --formats pdf ,excel
462+ --formats csv ,excel
454463```
455464
456465** Result:** Verify performance and security before migration
@@ -478,7 +487,7 @@ dns-benchmark compare \
4784870 0 1 * * dns-benchmark benchmark \
479488 --use-defaults \
480489 --output /var/reports/dns/ \
481- --formats pdf ,csv \
490+ --formats excel ,csv \
482491 --domain-stats \
483492 --error-breakdown
484493```
@@ -534,7 +543,7 @@ dns-benchmark --help
534543
535544``` bash
536545# Test with defaults (recommended for first time)
537- dns-benchmark benchmark --use-defaults
546+ dns-benchmark benchmark --use-defaults --formats csv,excel
538547```
539548
540549---
@@ -545,10 +554,10 @@ dns-benchmark benchmark --use-defaults
545554
546555``` bash
547556# Basic test with progress bars
548- dns-benchmark benchmark --use-defaults
557+ dns-benchmark benchmark --use-defaults --formats csv,excel
549558
550559# Basic test without progress bars
551- dns-benchmark benchmark --use-defaults --quiet
560+ dns-benchmark benchmark --use-defaults --formats csv,excel -- quiet
552561
553562# Test with custom resolvers and domains
554563dns-benchmark benchmark --resolvers data/resolvers.json --domains data/domains.txt
@@ -564,23 +573,25 @@ dns-benchmark benchmark --use-defaults --formats csv
564573dns-benchmark benchmark --use-defaults --json --output ./results
565574
566575# Test specific record types
567- dns-benchmark benchmark --use-defaults --record-types A,AAAA,MX
576+ dns-benchmark benchmark --use-defaults --formats csv,excel -- record-types A,AAAA,MX
568577
569578# Custom output location and formats
570579dns-benchmark benchmark \
571580 --use-defaults \
572581 --output ./my-results \
573- --formats csv,excel,pdf,json
582+ --formats csv,excel
574583
575584# Include detailed statistics
576585dns-benchmark benchmark \
577586 --use-defaults \
587+ --formats csv,excel \
578588 --record-type-stats \
579589 --error-breakdown
580590
581591# High concurrency with retries
582592dns-benchmark benchmark \
583593 --use-defaults \
594+ --formats csv,excel \
584595 --max-concurrent 200 \
585596 --timeout 3.0 \
586597 --retries 3
@@ -720,7 +731,7 @@ dns-benchmark compare Cloudflare Google --show-details
720731
721732# New monitoring commands
722733# Start monitoring with default resolvers and sample domains
723- dns-benchmark monitoring --use-defaults
734+ dns-benchmark monitoring --use-defaults
724735# ^ Runs indefinitely, checking every 60s, using built-in resolvers and 5 sample domains
725736
726737# Monitor with a custom resolver list from JSON
@@ -1276,6 +1287,85 @@ aws.amazon.com
12761287- Resolver rankings: ordered by average latency
12771288- Detailed analysis: technical deep‑dive with percentiles
12781289
1290+ ### 📄 Optional PDF Export
1291+
1292+ By default, the tool supports ** CSV** and ** Excel** exports.
1293+ PDF export requires the extra dependency ** weasyprint** , which is not installed automatically to avoid runtime issues on some platforms.
1294+
1295+ #### Install with PDF support
1296+
1297+ ``` bash
1298+ pip install dns-benchmark-tool[pdf]
1299+ ```
1300+
1301+ #### Usage
1302+
1303+ Once installed, you can request PDF output via the CLI:
1304+
1305+ ``` bash
1306+ dns-benchmark --use-defaults --formats pdf --output ./results
1307+ ```
1308+
1309+ If ` weasyprint ` is not installed and you request PDF output, the CLI will show:
1310+
1311+ ``` bash
1312+ [-] Error during benchmark: PDF export requires ' weasyprint' . Install with: pip install dns-benchmark-tool[pdf]
1313+ ```
1314+
1315+ ---
1316+
1317+ ### ⚠️ WeasyPrint Setup (for PDF export)
1318+
1319+ The DNS Benchmark Tool uses ** WeasyPrint** to generate PDF reports.
1320+ If you want PDF export, you need extra system libraries in addition to the Python package.
1321+
1322+ #### 🛠 Linux (Debian/Ubuntu)
1323+
1324+ ``` bash
1325+ sudo apt install python3-pip libpango-1.0-0 libpangoft2-1.0-0 \
1326+ libharfbuzz-subset0 libjpeg-dev libopenjp2-7-dev libffi-dev
1327+ ```
1328+
1329+ ---
1330+
1331+ #### 🛠 macOS (Homebrew)
1332+
1333+ ``` bash
1334+ brew install pango cairo libffi gdk-pixbuf jpeg openjpeg harfbuzz
1335+ ```
1336+
1337+ ---
1338+
1339+ #### 🛠 Windows
1340+
1341+ Install GTK+ libraries using one of these methods:
1342+
1343+ - ** MSYS2** : [ Download MSYS2] ( https://www.msys2.org/ ) , then run:
1344+
1345+ ``` bash
1346+ pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libffi
1347+ ```
1348+
1349+ - ** GTK+ 64‑bit Installer** : [ Download GTK+ Runtime] ( https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases ) and run the installer.
1350+
1351+ Restart your terminal after installation.
1352+
1353+ ---
1354+
1355+ #### ✅ Verify Installation
1356+
1357+ After installing the system libraries, install the Python extra:
1358+
1359+ ``` bash
1360+ pip install dns-benchmark-tool[pdf]
1361+ ```
1362+
1363+ Then run:
1364+
1365+ ``` bash
1366+ dns-benchmark --use-defaults --formats pdf --output ./results
1367+ ```
1368+
12791369### JSON export
12801370
12811371- Machine‑readable bundle including:
0 commit comments