Messages ======== init ---- All fields except "version" are optional. The values in this message are treated as defaults which will be used if the corresponding value is missing in subsequent update messages. { "version": 1, "hostname": "myhostname", "streamer-id": { "content-id": "av-orig", "format": "flash", "quality": "medium" }, "tags": [ "elevate", "2014", "discourse" ] } data-update ----------- All values which have been defined by the init message are optional. In any case the values from data updates override values from init. Stateless interfaces will not use init messages and therefore all values must be defined here. If an interface (i.e. REST) has other means to detect protocol versions the version field may be omitted entirely. "SourceHubUuid", "SourceHubDataUpdateId", "user-agent", "bytes-received", "tags" and "clients" might be omitted and are treated as an empty string, 0 or empty array respectively. The start-time will be processesd and stored with millisecond precision. { "version": 1, "hostname": "myhostname", "streamer-id": { "content-id": "av-orig", "format": "flash", "quality": "medium" }, "tags": [ "elevate", "2014", "discourse" ] "start-time": "2014-08-03T12:34:56.123Z", "duration-ms": 5000, "data": { "clients": [ { "ip": "127.0.0.1", "port": 1234, "bytes-sent": 12094, "user-agent": "Mozilla Version 28", .... }, ..... ], "client-count": 12, "bytes-received": 12345, "bytes-sent": 921734098, .... } }