The aggregation server receives and processes events generated by spindump instances. It also exposes an API for retrieving aggregated and formatted data based on the received spindump events.
The server is currently intended for demo purposes only, and is under development. Expect both API and implementation to change frequently.
The server is implemented in GO, so first of all you need to make sure you have GO installed and properly configured.
To install the server run the command:
# go get github.com/EricssonResearch/spindump/go/aggregator
This will pull the source code from github and install an executable named aggregator located in $GOPATH/bin/
Running the server without any arguments starts a server listening to a single spindump instance:
# ./aggregator
The server accepts the following command-line flags.
To bind to a different address/port pair than the default 0.0.0.0:5040
:
# ./aggrregator --bind address:port
To specify the number of reporting spindump instances (default 1):
# ./aggrregator --reporters n
To enable/disable smoothing of RTT samples (default true):
# ./aggrregator --rtt-smoothing true/false
The reporting spindump instances send data to the aggregation server and are identified by the id URL parameter. The spindump instances should use id:s from 0 to n-1 where n is the amount of reporters specified when starting the server. It is further assumed that the spindump instances have a specific order across a path, where instance 0 is the "leftmost" instance and so on.
-
URL
data/:id
-
Method:
POST
-
URL Params
Required:
id=[integer]
Datastructures formatted for visualization by the C3 javascript library can be fetched. Both single sessions and aggregate spindump sessions are represented.
Returns a list of all sessions and their corresponding types (QUIC/TCP etc).
-
URL
demo/
-
Method:
GET
-
Success Response:
- Code: 200
Content:[{ Id : "xyz:123", Type : "QUIC" }]
- Code: 200
Returns a list of all sessions and their corresponding types (QUIC/TCP etc).
-
URL
demo/:id
-
Method:
GET
-
URL Params
Required:
id=[string]
-
Success Response:
- Code: 200
Content: JSON object fromatted for displaying a C3 graph (line, stacked etc.).
- Code: 200