Towards17 (#438)
Interim commit
Remove flattened POMs
Fix
TestRegexExtractorInterceptor*While #431 migrated
RegexExtractorInterceptorMillisSerializercorrectly from Joda to Java time, it introduced a small bug in the tests, which assume that all dates are inUTC.The original extractor interpreted them instead in the local timezone.
- Fix
TestRegexExtractorInterceptor*While #431 migrated
RegexExtractorInterceptorMillisSerializercorrectly from Joda to Java time, it introduced a small bug in the tests, which assume that all dates are inUTC.The original extractor interpreted them instead in the local timezone.
- Fix: allow arbitrary precision in RFC 5424 timestamps
Modifies the regex in SyslogUtils to allow up to 9 digits of precision in timestamps.
This level of precision does not exist on Java 8, but since Java 9 nanosecond precision is available at least on Linux.
- Fix: replace Mockito mock with
DummySessionWith the old Mockito
TestMultiportSyslogTCPSourceworked, because Mockito was unable to mock final methods and the real methods were called.Now Mockito inline is able to mock final methods and operations essential for the test fail.
Fix: allow 199 Spotbugs violations in
flume-ng-coreFix: allow more Spotbugs failures
Fix: remove unused
EnvironmentVariablesFix order-dependent resolution of cross-referencing properties
When properties are defined in terms of each other, e.g.
a = ${b}withb = OK,MapResolver#resolvePropertiesfilled the result map while using that same map as the lookup source, so a reference only resolved when the referenced property had already been evaluated. As the iteration order ofProperties#stringPropertyNamesis unspecified, properties likeawere sometimes left unresolved.Pre-seed the map with the raw values so that every key is visible to the lookup regardless of evaluation order.
TestMapResolvercovers both reference orderings, and documents that self-referencing and cyclic definitions are left to Commons Text’s recursion guard, which either returns the literal or throwsIllegalStateException.
fix: more Spotbugs errors for
flume-nodeGet File Channel, Avro and Thrift to build
Build completes
Flume RPC moved to its own repo
apply change to branch
Update workflow to Java 17
Move embedded agent to Flume RPC
Co-authored-by: Piotr P. Karwasz pkarwasz-github@apache.org
Project status
Welcome to Apache Flume!
Apache Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. The system is centrally managed and allows for intelligent dynamic management. It uses a simple extensible data model that allows for online analytic application.
The Apache Flume 1.x (NG) code line is a refactoring of the first generation Flume to solve certain known issues and limitations of the original design.
Apache Flume is open-sourced under the Apache Software Foundation License v2.0.
Documentation
Documentation is included in the binary distribution under the docs directory. In source form, it can be found in the flume-ng-doc directory.
The Flume 1.x guide and FAQ are available here:
Contact us!
Bug and Issue tracker.
Compiling Flume
Compiling Flume requires the following tools:
Note: The Apache Flume build requires more memory than the default configuration. We recommend you set the following Maven options:
export MAVEN_OPTS="-Xms512m -Xmx1024m"To compile Flume and build a distribution tarball, run
mvn installfrom the top level directory. The artifacts will be placed underflume-ng-dist/target/.