summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2026-04-10Fix known-hosts trust deadlock, host key stat, and optional nozstd buildPaul Buetow
- stdout logger: release mutex while waiting on pause resume so prompt callbacks can log (fixes hang after trusting new hosts; known_hosts was written but Resume never ran). - known hosts callback: stop borrowing the SSH dial throttle channel (could block or interact badly with parallel handshakes). - host key path: use errors.Is(..., fs.ErrNotExist) for RootedPath.Stat wrapped errors; stat errors now fail fast instead of mis-read. - public key path: same ErrNotExist check for authorized_keys miss. - Build: optional DTAIL_NO_ZSTD=yes / nozstd tag for CGO-free builds; split zstd readers into tagged files. - Docs/examples: firewalld note for port 2222, log prune timer+script, SSHBindAddress note, dserver unit disabled-by-default comment; firewalld helper script example. - Regression test for stdout pause/mutex behavior. Made-with: Cursor
2026-03-20Update .gitignore and Makefile: ignore .amp/.claude files, add -v to ↵Paul Buetow
integration test command
2026-03-13Fix mapreduce integration drain racePaul Buetow
2026-03-05Improve lint/vet reliability and refactor client runtime/bootstrapPaul Buetow
2026-01-23egrep is obsoletePaul Buetow
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-26fix: update Makefile clean target and fix dmap profiling behaviorPaul Buetow
- Updated 'make clean' to also remove all .tmp and .prof files in the repo - Fixed dmap profiling scripts to let dmap complete naturally instead of killing it after a timeout (dmap terminates when input is fully processed) - Removed the special run_profile_dmap function as it's no longer needed - Updated all profiling scripts to reflect that dmap has a natural exit point Thanks for the correction - dmap does indeed terminate after processing all data from the source file, so the timeout/kill approach was unnecessary. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26refactor: move profiling scripts from benchmarks/ to profiling/Paul Buetow
- Moved profile_benchmarks.sh, profile_dmap.sh, and profile_quick.sh to the profiling/ directory where they belong - Updated Makefile targets to reference new locations - Fixed profile_dmap.sh to remove outfile clauses since they're not needed for profiling and were preventing proper execution - Updated .gitignore to exclude generated files in profiling/ This better separates benchmarking (performance comparison) from profiling (performance analysis). 🤖 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>
2025-06-25Add comprehensive benchmarking framework for DTailPaul Buetow
- Create benchmark framework to measure performance of dcat, dgrep, and dmap - Generate test files of 10MB, 100MB, and 1GB with configurable patterns - Support benchmarking with gzip and zstd compressed files - Implement tool-specific benchmarks: * DCat: Simple reading, multiple files, compressed files * DGrep: Pattern matching, regex complexity, context lines, inverted grep * DMap: Aggregations, group by operations, complex queries, time intervals - Track performance metrics: throughput (MB/sec), lines/sec, memory usage - Save results in multiple formats: JSON, CSV, and Markdown reports - Add Makefile targets: benchmark, benchmark-quick, benchmark-full - Support environment variables for configuration (sizes, timeouts, etc.) - Automatically clean up temporary .tmp files after benchmarks The framework provides consistent performance testing across the DTail toolset and enables tracking performance regressions between commits. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-24Add fail-fast flag to Makefile test targetPaul Buetow
- Tests will now stop on first failure with -failfast flag - Speeds up test debugging when failures occur - Applies to all test runs via make test 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2023-09-07refactor go build tagsPaul Buetow
2023-06-21rename samples to examplesPaul Buetow
2021-12-03fix misuse of unbuffered channel for OS signal handlingPaul Buetow
2021-10-24Fix DCat color test.Paul Buetow
2021-10-19Set DTAIL_RUN_INTEGRATIONT_TEST to yes for integration testsPaul Buetow
2021-10-19Can configure DTail client not to mess with ~/.ssh/known_hosts via env var - ↵Paul Buetow
this is useful for running unit and integration tests in jenkins
2021-10-15Execute test directories individuallyPaul Buetow
2021-10-15refactorPaul Buetow
2021-10-10vetting and linting and some code restylingPaul Buetow
2021-10-10add dtail health check unit test.Paul Buetow
2021-10-06move health check to separate client binaryPaul Buetow
2021-10-02add dcat testPaul 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-02mapreduce tables are in colors now tooPaul Buetow
2021-09-07Produce MAPREDUCE lines, can aggregate these via default log formatPaul Buetow
2021-09-05finalize new default color schemaPaul Buetow
2021-08-21individual makefile targets for each commandPaul Buetow
2020-12-29Make Linux ACL support optional, as it requires CGo and makes the binary ↵Paul Buetow
less portable
2020-12-28mergePaul Buetow
2020-12-08proper go installv3.1.0Paul Buetow
2020-12-08merge developPaul Buetow
2020-11-22can run test container for local development purposesPaul Buetow
2020-11-22add dockerfile for building a dtail server dev/test containerPaul Buetow
2020-11-16remove drun command for simplicity. only focus on interactive commands ↵Paul Buetow
dealing with log streams
2020-08-13bump up version to 3.0.0. can run continuous background mapreduce queries, ↵v3.0.0Paul Buetow
useful for log file monitorig for example. breaking protocol change which allows to mapreduce aggreate messages containing the default field separator |. add of more unit tests. add logformat mapreduce query keyword. add set mapreduce clause support and support to evaluate built-in functions such as md5sum() and maskdigits().
2020-02-07Introduce drun command, refactor code to use context packagePaul Bütow
2020-01-22more on dexecPaul Bütow
2020-01-21Move commands to cmd/ and move internal dependencies to internal/Paul Bütow
2020-01-09Release of DTail v1.0.0v1.0.0Paul Bütow