amannocci / streamy Goto Github PK
View Code? Open in Web Editor NEWTransport and process your logs, events, or other data
License: MIT License
Transport and process your logs, events, or other data
License: MIT License
Upgrade to Akka 2.5.7
Provide only Flow, Source and Sink implementations when possible.
This modification will allow better composition support.
Support AMQP protocol
We can support both serialize and deserialize method in Json transformer.
Implement a Metric plugin to support jvm metric reporting instead of current implementation in Streamy.
Add support for OpenJDK 11.
https://github.com/akka/akka/issues/25640
https://github.com/akka/akka/issues/25739
https://github.com/akka/akka/pull/25792
Use Ryu algorithm for float and double printing
Implement a File plugin that support file reading and writing.
We can also allow directory change detection.
Implementation can be done mostly by using Alpakka File Connector
Simply upgrade to sbt 1.0.4
For some use case the current implementation of Syslog parsing is too strict.
In particular when we read a syslog record comming from Docker.
Support a better error reporting for syslog plugin
Support structured data in syslog RFC5424
Support parsing of Gelf format
Implement a way to read packet compatible with Graphite protocol.
Simply upgrade to sbt 1.0.3
We can make Streamy container aware and consume only CPU and Memory available.
Streamy isn't container aware and attempt to consume all CPU and Memory available on host.
Basic support of pureconfig for Json stuff.
Add an Elasticsearch plugin that can read json document using scroll api and write json document using bulk api
Implementation can be based on Akka Http and Sttp
It must support Elasticsearch 2.x up to Elasticsearch 6.x and above
Migrate from play-json library to circe library.
Circe provide better performance and some support for raw parsing based on ByteBuffer.
We will be able to parse directly from ByteString in for example syslog plugin.
We can unify testing style for better comprehension
Upgrade to Akka 2.5.19
Circe Json AST is now used as a base in term of data structure in Streamy.
This implementation is great but two complex for our needs.
We need a custom Json AST that allow some improvement in some case.
To summarize we need fast operation on AST, serialization and deserialization.
Serialization and deserialization can be support by Jackson.
Access and modification operation can be based on work done in Diffson. We just need a way to evaluate and another to patch Json AST.
For the Json AST we can use the great work done in play-json and just simplify some case for lower memory footprint.
In addition we can provide a way to create efficiently a json object and json array without unnecessary allocation.
AST Target :
Add documentation using vue-press
Build a json parser on top of Streamy parser to provide a better parser.
This feature allow to create directly Json AST and permit to remove completely dependencies with Jackson.
Support autostart for debian.
We can externalize metrics reporter by converting it in an Akka Stream Source.
We can continue to support console reporting by default and provide a convenient way to process metrics reporting to others Sink.
Move json stuff in another package and add a package object to provide easy import.
Provide also better support for json evaluation and patch.
Clarify native packaging support by adding right properties.
Upgrade to Akka 2.5.10
We can easily support riemann protocol by using the protobuf plugin
We can use https://doc.akka.io/docs/akka/current/actors.html#coordinated-shutdown during shutdown phase instead of registering our own hook
Implement a way to retrieve current plugin state.
When we use json remove operation with mustExist
flag to false
we excepted that the operation successed in all cases.
On json object or json array when we evaluate the json path, the operation is considered as failed if evaluation is failed.
When we package streamy or a plugin we expect a minimal number of libraries to work.
Actually JMH is included in every package.
If envtpl is detected and executed we must ensure that templating has successed.
Streamy is started even if envtpl failed.
Upgrade to Akka 2.5.9 and Dropwizard 4.0.2
Capture should be considered optional in some case when parsing fail.
Capture is considered as mandatory in every case and fail when parsing fail.
Add a streamy test project to provide an easy way to import common test libraries.
We can upgrade some sbt plugins :
We can provide a better plugin management.
Actually, we only load plugins from plugins folder and load plugins configuration from streamy configuration.
We need a separate folder that contains plugins configurations and another one that can contains plugin data if needed.
Streamy can provide an embedded ByteString parser and an embedded Json printer allowing efficient parsing and printing.
Currently we use akka framing and then we parse syslog.
This leads to a compact operation when a frame is founded.
We can avoid this compaction if we parse directly the frame.
We can easily support xymon protocol
Upgrade to Akka 2.5.8 to avoid memory leaks.
Provide a json pointer parser that can be used to parse directly json pointer from configuration.
The field day in the timestamp part can be represent using a single number.
The parser should support this representation.
The parser isn't able to parse the following example:
<34>Apr 4 13:51:20 mymachine.example.com su[77042]: 'su root' failed for lonvick on /dev/pts/8
Efficient computation based on underlying structure or primitive.
Actually we use an intermediate string representation to compute the length.
Add a CSV parser and printer
Support TLS over TCP for client and server implementation.
It's mandatory to use where possible Lightbend SSL configuration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.