Include message and bytes metrics in the status of the active MQTT connections.

This commit is contained in:
Luis Barrios
2017-01-12 17:25:46 +01:00
parent d7d97a74d8
commit e7f26e402b
6 changed files with 96 additions and 15 deletions
@@ -0,0 +1,38 @@
package io.moquette.connections;
/**
* A class that represents the metrics of a given MQTT connection.
*
* @author lbarrios
*
*/
public class MqttConnectionMetrics {
private long readKb;
private long writtenKb;
private long readMessages;
private long writtenMessages;
public MqttConnectionMetrics(long readBytes, long writtenBytes, long readMessages, long writtenMessages) {
this.readKb = readBytes / 1024;
this.writtenKb = writtenBytes / 1024;
this.readMessages = readMessages;
this.writtenMessages = writtenMessages;
}
public long getReadKb() {
return readKb;
}
public long getWrittenKb() {
return writtenKb;
}
public long getReadMessages() {
return readMessages;
}
public long getWrittenMessages() {
return writtenMessages;
}
}
@@ -18,6 +18,7 @@ public class MqttSession {
private int pendingPublishMessagesNo;
private int secondPhaseAckPendingMessages;
private Collection<MqttSubscription> activeSubscriptions;
private MqttConnectionMetrics connectionMetrics;
public boolean isConnectionEstablished() {
return connectionEstablished;
@@ -51,20 +52,28 @@ public class MqttSession {
this.inflightMessages = inflightMessages;
}
public int getSecondPhaseAckPendingMessages() {
return secondPhaseAckPendingMessages;
}
public int getSecondPhaseAckPendingMessages() {
return secondPhaseAckPendingMessages;
}
public void setSecondPhaseAckPendingMessages(int secondPhaseAckPendingMessages) {
this.secondPhaseAckPendingMessages = secondPhaseAckPendingMessages;
}
public void setSecondPhaseAckPendingMessages(int secondPhaseAckPendingMessages) {
this.secondPhaseAckPendingMessages = secondPhaseAckPendingMessages;
}
public Collection<MqttSubscription> getActiveSubscriptions() {
return activeSubscriptions;
}
public Collection<MqttSubscription> getActiveSubscriptions() {
return activeSubscriptions;
}
public void setActiveSubscriptions(Collection<MqttSubscription> activeSubscriptions) {
this.activeSubscriptions = activeSubscriptions;
}
public void setActiveSubscriptions(Collection<MqttSubscription> activeSubscriptions) {
this.activeSubscriptions = activeSubscriptions;
}
public MqttConnectionMetrics getConnectionMetrics() {
return connectionMetrics;
}
public void setConnectionMetrics(MqttConnectionMetrics connectionMetrics) {
this.connectionMetrics = connectionMetrics;
}
}