Suro is a data pipeline service for collecting, aggregating, and dispatching large volume of application events including log data. It has the following features:
- It is distributed and can be horizontally scaled.
- It supports streaming data flow, large number of connections, and high throughput.
- It allows dynamically dispatching events to different locations with flexible dispatching rules.
- It has a simple and flexible architecture to allow users to add additional data destinations.
- It fits well into NetflixOSS ecosystem
- It is a best-effort data pipeline with support of flexible retries and store-and-forward to minimize message loss
Learn more about Suro on the Suro W 854A iki and the Netflix TechBlog post where Suro was introduced.
NetflixGraph is built via Gradle (www.gradle.org). To build from the command line:
./gradlew build
See the build.gradle
file for other gradle targets, like distTar
, distZip
, installApp
, and runServer
.
You can run the server locally by just running ./gradlew runServer
.
More more advanced usage you may wish to run ./gradlew installApp
and then:
cd suro-server
java -cp "build/install/suro-server/lib/*" com.netflix.suro.SuroServer -m conf/routingmap.json -s conf/sink.json -i conf/input.json
To enable basic logging you can downloaded slf4j-simple-1.7.7.jar
and copy it into suro-server
then run:
cd suro-server
java -cp "build/install/suro-server/lib/*:slf4j-simple-1.7.7.jar" com.netflix.suro.SuroServer -m conf/routingmap.json -s conf/sink.json -i conf/input.json
We will use the Google Group, Suro Users, to discuss issues: https://groups.google.com/forum/#!forum/suro-users