use of org.openkilda.messaging.info.stats.FlowRttStatsData in project open-kilda by telstra.
the class StatsCollector method sendStats.
void sendStats(LatencyPacketBucket latencyPacketBucket) throws InvalidProtocolBufferException {
long currentTimeMillis = System.currentTimeMillis();
for (FlowLatencyPacket packet : latencyPacketBucket.getFlowLatencyPacketList()) {
FlowRttStatsData data = new FlowRttStatsData(packet.getFlowId(), FlowDirection.fromBoolean(packet.getDirection()).name().toLowerCase(), packet.getT0(), packet.getT1());
InfoMessage message = new InfoMessage(data, currentTimeMillis, format("stats42-%s-%d", sessionId, packet.getPacketId()));
log.debug("InfoMessage {}", message);
template.send(flowStatToStormTopic, packet.getFlowId(), message);
}
for (IslLatencyPacket packet : latencyPacketBucket.getIslLatencyPacketList()) {
IslRttStatsData data = new IslRttStatsData(packet.getSwitchId(), packet.getPort(), packet.getT0(), packet.getT1(), "server42");
String key = format("%s-%d", packet.getSwitchId(), packet.getPort());
InfoMessage message = new InfoMessage(data, currentTimeMillis, format("stats42-%s-isl-%s", sessionId, key));
log.debug("InfoMessage {}", message);
template.send(islStatToStormTopic, key, message);
}
}
use of org.openkilda.messaging.info.stats.FlowRttStatsData in project open-kilda by telstra.
the class FlowRttMetricGenBolt method handleInput.
@Override
protected void handleInput(Tuple input) throws Exception {
if (active) {
InfoMessage message = (InfoMessage) input.getValueByField(KafkaRecordTranslator.FIELD_ID_PAYLOAD);
FlowRttStatsData data = (FlowRttStatsData) message.getData();
Map<String, String> tags = ImmutableMap.of("direction", data.getDirection(), "flowid", data.getFlowId(), "origin", "server42");
long t0 = noviflowTimestamp(data.getT0());
long t1 = noviflowTimestamp(data.getT1());
// We decided to use t1 time as a timestamp for Datapoint.
long timestamp = TimeUnit.NANOSECONDS.toMillis(t1);
emitMetric("flow.rtt", timestamp, t1 - t0, tags);
}
}
Aggregations