summaryrefslogtreecommitdiff
path: root/internal
AgeCommit message (Collapse)Author
2025-06-29fix: resolve dcat test failures with channel-less implementationPaul Buetow
- Fix serverless mode extra blank lines by removing DTail 3 backward compatibility fallthrough for '\n' character - Fix empty line handling in client message processing - Update integration test framework to inherit environment variables, allowing turbo boost testing - Clean up debug logging code Note: dcat1d.txt test fails because DTail adds newline to files without trailing newlines - this is a protocol limitation where newlines are stripped during transmission and re-added by the client. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28refactor: consolidate optimization flags into DTAIL_TURBOBOOST_ENABLEPaul Buetow
- Replace DTAIL_CHANNELLESS_GREP and DTAIL_OPTIMIZED_READER with single flag - Rename documentation to TURBOBOOST_OPTIMIZATION.md - Fix channel-less adapter to use blocking sends (prevent data loss) - Update logging messages to reference "turbo boost" mode The DTAIL_TURBOBOOST_ENABLE variable now controls all performance optimizations and can be extended to other commands in the future. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28feat: implement channel-less grep for 62% performance improvementPaul Buetow
- Add LineProcessor interface for direct line processing without channels - Implement channel-less file reading in readfile_processor.go - Add optimized reader with 256KB buffering for efficient I/O - Create GrepLineProcessor for direct writing without intermediate channels - Fix serverless mode hanging due to stdin pipe detection - Fix base64 decoding bug (was counting characters instead of arguments) - Fix message output formatting by adding proper newline handling Performance improvements: - Channel-based: 9.00s → Channel-less: 3.42s (62% faster on 100MB files) - Removed channel synchronization overhead and context switching - Reduced memory allocations with buffer pooling Environment variables: - DTAIL_CHANNELLESS_GREP=yes - Enable channel-less implementation - DTAIL_OPTIMIZED_READER=yes - Use optimized buffered reader Known limitation: Inverted grep with context (--invert with --before/--after) not fully implemented in channel-less mode. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27Add comprehensive profiling documentation and clean up unused dependenciesPaul Buetow
- Added detailed README.md for internal/profiling package documenting: - Architecture and core components - Usage instructions for command-line and programmatic access - Profile output formats and analysis techniques - Best practices and troubleshooting guides - Integration with CI/CD pipelines - Removed dprofile binary (obsolete, replaced by built-in profiling) - Cleaned up go.mod to remove unused pprof dependency The profiling package is now fully documented to help developers understand and utilize DTail's performance analysis capabilities. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26Fix dmap CSV query syntax in profiling toolPaul Buetow
The WHERE clause in dmap queries uses 'eq' operator for string equality, not '=' or '=='. This was causing the CSV profiling query to fail with a parsing error. Fixed query: - Changed from: where $status = "success" - Changed to: where $status eq "success" 🤖 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: resolve package conflicts and update documentationPaul Buetow
- Move main package files to benchmarks/cmd/ to fix test failures - Update CLAUDE.md with comprehensive benchmarking and profiling instructions - Fix unused imports in serverless.go - Remove experimental buffered pipe/copy implementations - Remove outdated documentation files All integration tests now pass successfully. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26fix: resolve serverless mode deadlock for profilingPaul Buetow
Implement channel-based bidirectional copying in serverless connector to prevent deadlocks that occur with io.Copy when processing large files. Changes: - Replace direct io.Copy with channel-based approach in serverless.go - Add bufferedpipe and bufferedcopy utilities (for future use) - Add tests to verify deadlock prevention - Fix dmap profiling example to use absolute paths The fix successfully handles files up to ~10KB in serverless mode. Larger files still experience issues and will be addressed in a follow-up fix. Fixes profiling hang issue when using -cfg none without servers. 🤖 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-24Fix fmt.Errorf non-constant format string errors in multiple packagesPaul Buetow
- Fixed fmt.Errorf calls in integrationtests/fileutils.go - Fixed fmt.Errorf calls in integrationtests-old/fileutils.go - Fixed fmt.Errorf calls in internal/color/color.go - Fixed t.Errorf call in internal/mapr/logformat/default_test.go All tests now pass with Go 1.24's stricter format string requirements. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-24Fix dcat tests for server mode and --plain flag handlingPaul Buetow
- Update dcat tests to use comma-separated file lists in server mode - Fix basehandler.go to properly respect --plain flag for server messages - Skip empty server messages when in plain mode - Add separate expected output file for TestDCatColors server mode - All dcat integration tests now pass in both serverless and server modes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2024-03-29only rename .csv.tmp to .csv when the final result was writtenPaul Buetow
2024-03-29lint warningsPaul Buetow
2023-09-07update dependenciesPaul Buetow
2023-09-07refactor go build tagsPaul Buetow
2023-09-07add mapr aggregration on CSV integr testPaul Buetow
2023-09-07Can quote fields in select conditions, e.g. select `count($foo)`, ..Paul Buetow
2023-09-07add CSV to parserPaul Buetow
2023-09-07Add CSV unit testPaul Buetow
2023-09-07Add `custom1` and `custom2` log formats.Paul Buetow
2023-09-07Add mimecast parser stub. Open source version of DTail won't be with it.Paul Buetow
2023-09-07Refactor logformats so that they don't use reflection anymore.Paul Buetow
2023-09-07DTail: Restrict SSH MAC algorithms allowed - Update of few dependenciesPaul Buetow
2023-09-07Update dependenciesdependabot[bot]
2023-09-07Refactor - reduce code complexityPaul Buetow
2023-09-07This is not a snapshot release anymorePaul Buetow
2023-09-07document Outfile - tidy modsPaul Buetow
2023-09-07Fix typos.Paul Buetow
2023-09-07gofmt permission file headersPaul Buetow
2023-06-05can configure SSH algorithmsPaul Buetow
2022-07-15Fix typos.Paul Buetow
2022-03-15bump to be a snapshot releasePaul Buetow
2022-03-14a 0666 to OpenFile will respect the user's default umaskPaul Buetow
2022-03-14add integration test for "outfile append.."Paul Buetow
2022-03-14"append" now actually will append to an outfile now. previously we only ↵Paul Buetow
added the syntax to the mapr query
2022-03-14Add "append" modifier for "outfile" keyword to the mapreduce languagePaul Buetow
2022-02-15add missing newlines to server messages when running mapreduce queries tooPaul Buetow
2022-02-15minor fix, add missing newlines to server messagesPaul Buetow
2022-02-14hotfixing dtail health checkPaul Buetow
2022-02-04merge kv sensitivityPaul Buetow
2022-02-04merge 4.0.0-RCPaul Buetow
2022-02-04update dependenciesPaul Buetow
2022-01-27bump up RC versionPaul Buetow
2022-01-27Dont auto lowercase all mapreduce keysPaul Buetow
2021-12-23refactorPaul Buetow
2021-12-23refactor query parserPaul Buetow
2021-12-23Refactor code to reduce function sizePaul Buetow
2021-12-21bump RCPaul Buetow
2021-12-21remove year from datestampPaul Buetow
2021-12-16documenting how to implement a custom log formatPaul Buetow