Skip to content

feat(io): Add streaming_file input for real-time file tailing#625

Closed
aronchick wants to merge 1 commit intowarpstreamlabs:mainfrom
aronchick:streaming-file-clean
Closed

feat(io): Add streaming_file input for real-time file tailing#625
aronchick wants to merge 1 commit intowarpstreamlabs:mainfrom
aronchick:streaming-file-clean

Conversation

@aronchick
Copy link
Copy Markdown
Contributor

Summary

  • Adds streaming_file input component for real-time file monitoring (like tail -f)
  • Supports inode-based file identity tracking for log rotation handling
  • Optional fsnotify integration for efficient file watching
  • Configurable polling intervals, batch sizes, and checkpoint management

Files Changed

  • internal/impl/io/input_streaming_file.go - Main component implementation
  • internal/impl/io/input_streaming_file_test.go - Unit tests
  • internal/impl/io/inode_unix.go / inode_other.go - Cross-platform inode support
  • config/examples/streaming_file_tail.yaml - Example configuration
  • scripts/stress_test_streaming_file.py - Stress testing script
  • website/docs/components/inputs/streaming_file.md - Documentation

Test plan

  • Unit tests pass
  • Manual testing with log rotation scenarios
  • Stress test with high-throughput files

Adds a new input component that monitors files for new content in real-time,
similar to 'tail -f'. Features include:

- Inode-based file identity tracking for rotation handling
- Optional fsnotify integration for efficient file watching
- Configurable polling intervals and batch sizes
- Automatic checkpoint management for resumption
- Cross-platform support (Unix inodes, Windows fallback)

Includes unit tests, example config, stress test script, and documentation.
@aronchick
Copy link
Copy Markdown
Contributor Author

Duplicate - using #514 instead

@aronchick aronchick closed this Dec 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant