summaryrefslogtreecommitdiff
path: root/cmd
AgeCommit message (Collapse)Author
2026-03-13task 399: add client session spec scaffoldingPaul Buetow
2026-03-10Introduce client runtime boundariesPaul Buetow
2026-03-08task: pass explicit base context into client runtime (task 381)Paul Buetow
2026-03-08task: replace panic-based CLI/runtime exits (task 380)Paul Buetow
2026-03-05Improve lint/vet reliability and refactor client runtime/bootstrapPaul Buetow
2026-03-03Add dtailhealth no-auth-key flag and adjust turbo EOF handlingPaul Buetow
2026-03-03feat(config): add auth-key CLI and server cache settingsPaul Buetow
2026-03-02Refactor server path to use injected runtime config (task 329)Paul Buetow
2026-02-03Add SSH agent key selection and fix MapReduce outfile handlingPaul Buetow
This commit adds two major features and fixes: 1. SSH Agent Key Selection: - Add --agentKeyIndex flag to select specific SSH agent key (0-based) - Solves "too many authentication failures" with multiple SSH keys - Default -1 uses all keys (backwards compatible) - Available in dtail, dcat, dgrep, dmap commands 2. MapReduce Outfile Fixes: - CSV files now written at every interval, not just on exit - Proper signal handling (SIGTERM/SIGINT) with graceful shutdown - 5-second grace period for cleanup before force exit - Fixes issue where outfile remained as .tmp during execution Usage: dtail --servers host --agentKeyIndex 0 --query '...' outfile results.csv This is particularly useful with YubiKey/hardware tokens where many keys are loaded in the SSH agent, and for monitoring MapReduce results in real-time as they're computed. Co-authored-by: Cursor <cursoragent@cursor.com>
2025-07-04fix: add profiling support to dtail and improve PGO workflowPaul Buetow
- Add profiling support to dtail command (was missing) - Import profiling package - Add profile flags and profiler initialization - Add metrics logging for startup/shutdown - Fix PGO profile generation for dtail - Create growing log file simulation for realistic profiling - Add regex filtering to generate more CPU work - Handle empty profiles gracefully - Improve PGO test data generation - Add growing_log file type for dtail testing - Generate varied log levels (INFO/WARN/ERROR/DEBUG) - Increase log generation rate for better profiling Note: dtail and dserver may generate minimal CPU profiles as they are primarily I/O-bound operations. PGO is most effective for CPU-intensive operations like dgrep pattern matching and dmap data processing. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-04feat: add Profile-Guided Optimization (PGO) supportPaul Buetow
- Add comprehensive PGO module in internal/tools/pgo/ - Integrate PGO into dtail-tools command with full CLI support - Add Makefile targets for PGO workflow: - make pgo: Full PGO workflow - make pgo-quick: Quick PGO with smaller datasets - make pgo-generate: Generate profiles only - make build-pgo: Build with existing profiles - make install-pgo: Install optimized binaries - Add convenience functions to data generator for PGO - Document PGO workflow in CLAUDE.md Performance improvements observed: - DCat: 3.8-7.0% additional improvement over turbo mode - DGrep: Up to 19% improvement for low hit rates - DMap: Variable impact, up to 64% for min_max on large files Benchmarks show total performance gains (pre-turbo → turbo+PGO): - DCat: 14-21x faster - DGrep: 9-15x faster - DMap: 9-29% faster 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26Refactor profiling and benchmarking tools from bash to GoPaul Buetow
This major refactoring replaces all bash-based profiling and benchmarking scripts with a unified Go tool (dtail-tools) that provides: - Better cross-platform compatibility - Improved error handling and reliability - Structured data generation for test files - Consistent command-line interface - Easier maintenance and extensibility Key changes: - Created dtail-tools command with profile and benchmark subcommands - Implemented common utilities for data generation and file operations - Updated Makefile to use the new Go-based tools - Maintained backward compatibility with existing make targets - Fixed ParseSize to handle single-letter suffixes (10M, 1G, etc.) The new tool supports all previous functionality: - profile-quick, profile-all, profile-dmap - benchmark creation, comparison, and management - Test data generation with multiple formats - Profile analysis and listing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26feat: add profiling framework with command echoingPaul Buetow
Created a comprehensive profiling framework for dtail commands (dcat, dgrep, dmap) to analyze CPU usage and memory allocations. The framework now prints all executed commands to stdout for full transparency. Key features: - Integrated Go profiling (CPU, memory, allocations) into all three commands - Created profile.sh bash script for analyzing pprof profiles - Added multiple Makefile targets for different profiling scenarios - Automated profiling scripts with command echoing - Support for different data sizes (quick, normal, full) - Special handling for dmap MapReduce format All profiling commands are now echoed to stdout before execution, making it easy to understand what the framework is doing and reproduce commands manually. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2024-03-29lint warningsPaul Buetow
2021-12-03fix misuse of unbuffered channel for OS signal handlingPaul Buetow
2021-12-03update TODO commentsPaul Buetow
2021-11-07can set ssh private key path file via env varPaul Buetow
2021-11-06Remove insecure and dangerous relaxed auth modePaul Buetow
2021-10-31rename spartan mode to plain modePaul Buetow
2021-10-29rename relaxed auth flagPaul Buetow
2021-10-27integration tests use separate ssh private key filePaul Buetow
2021-10-20make pprof bind address configurablePaul Buetow
2021-10-15Execute test directories individuallyPaul Buetow
2021-10-15add dcat color output testPaul Buetow
2021-10-15refactorPaul Buetow
2021-10-14add dgrep context integration testsPaul Buetow
2021-10-14Merging grep context from masterPaul Buetow
2021-10-11refactorPaul Buetow
2021-10-10add another dmap test - reading 100 source files at oncePaul Buetow
fix a data race when reading multiple files on one server from the same session at once
2021-10-10vetting and linting and some code restylingPaul Buetow
2021-10-10add dtail health check unit test.Paul Buetow
2021-10-09refactorPaul Buetow
2021-10-06move health check to separate client binaryPaul Buetow
2021-10-06enable faster shutdown - useful for dgrep/dmap and dcat commandsPaul Buetow
2021-10-05more on thisPaul Buetow
2021-10-05more on thisPaul Buetow
2021-10-03add DTail color table testPaul Buetow
2021-10-03add dmap testsPaul Buetow
2021-10-02add dcat testPaul Buetow
2021-10-02Client default log dir is ~/logPaul Buetow
2021-10-02can have daily and normal file log rotationPaul Buetow
2021-10-02refactor config reader - also looks in additional search paths for config ↵Paul Buetow
file unless NONE is specified
2021-10-02move args to config packagePaul Buetow
logger package rewrite as dlog
2021-10-02add spartan modePaul Buetow
2021-10-02additional flags can be interpreted as file listPaul Buetow
2021-09-05-colorTable in combination with -debug prints whole sample paragraphs inPaul Buetow
all color combinations.
2021-08-22introduces the protocol packagePaul Buetow
2021-08-21assume daily log strategy when logDir specified via command line argPaul Buetow
2021-08-21can specify logDir of dserver via command linePaul Buetow
2021-08-12add missing brush and also add color client configs plus jsonschemaPaul Buetow