Skip to content

Files

Latest commit

02cf952 · May 6, 2019

History

History

aggregator

Spindump Aggregation Server

API Server for demo purposes

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.

Installation

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

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

Reporting API

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]

Visualization API

Datastructures formatted for visualization by the C3 javascript library can be fetched. Both single sessions and aggregate spindump sessions are represented.

List Sessions


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" }]

Fetch Session RTT Set


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.).