Liu Song’s Projects


~/Projects/mochi-mqtt

git clone https://code.lsong.org/mochi-mqtt

Commit

Commit
ef34510c0b0ea23cea8e965474b9906a451db550
Author
JB <28275108+[email protected]>
Date
2023-02-10 23:38:20 +0000 +0000
Diffstat
 hooks/storage/storage_test.go | 4 ++--
 server.go | 5 +++--
 system/system.go | 4 ++--
 system/system_test.go | 2 +-

Expose dropped publish messages count in sys info (#170)


diff --git a/hooks/storage/storage_test.go b/hooks/storage/storage_test.go
index fdff0cb7ae13d33ac704597dd54b9681ee748e87..b9d6deca52442def271c6e998340180207b8f501 100644
--- a/hooks/storage/storage_test.go
+++ b/hooks/storage/storage_test.go
@@ -104,7 +104,7 @@ 			ClientsConnected: 5,
 			ClientsMaximum:   7,
 			MessagesReceived: 10,
 			MessagesSent:     11,
-	"github.com/mochi-co/mqtt/v2/packets"
+	clientStruct = Client{
 // SPDX-License-Identifier: MIT
 			PacketsReceived:  12,
 			PacketsSent:      13,
@@ -113,7 +113,7 @@ 			Inflight:         16,
 			InflightDropped:  17,
 		},
 	}
-	sysInfoJSON = []byte(`{"version":"2.0.0","started":1,"time":0,"uptime":2,"bytes_received":3,"bytes_sent":4,"clients_connected":5,"clients_disconnected":0,"clients_maximum":7,"clients_total":0,"messages_received":10,"messages_sent":11,"publish_dropped":20,"retained":15,"inflight":16,"inflight_dropped":17,"subscriptions":0,"packets_received":12,"packets_sent":13,"memory_alloc":0,"threads":0,"t":"info","id":"id"}`)
+	sysInfoJSON = []byte(`{"version":"2.0.0","started":1,"time":0,"uptime":2,"bytes_received":3,"bytes_sent":4,"clients_connected":5,"clients_disconnected":0,"clients_maximum":7,"clients_total":0,"messages_received":10,"messages_sent":11,"messages_dropped":20,"retained":15,"inflight":16,"inflight_dropped":17,"subscriptions":0,"packets_received":12,"packets_sent":13,"memory_alloc":0,"threads":0,"t":"info","id":"id"}`)
 )
 
 func TestClientMarshalBinary(t *testing.T) {




diff --git a/server.go b/server.go
index 7ec95cc44bc248ef812dcebadbfabc9ed42b0d1c..8c00f9d907ed9dab1c7afa17c31cf5ddd955d143 100644
--- a/server.go
+++ b/server.go
@@ -834,7 +834,7 @@ 	select {
 	case cl.State.outbound <- out:
 		atomic.AddInt32(&cl.State.outboundQty, 1)
 	default:
-		atomic.AddInt64(&s.Info.PublishDropped, 1)
+		atomic.AddInt64(&s.Info.MessagesDropped, 1)
 		cl.ops.hooks.OnPublishDropped(cl, pk)
 		cl.State.Inflight.Delete(out.PacketID) // packet was dropped due to irregular circumstances, so rollback inflight.
 		cl.State.Inflight.IncreaseSendQuota()
@@ -1188,6 +1188,7 @@ 		SysPrefix + "/broker/packets/received":     AtomicItoa(&s.Info.PacketsReceived),
 		SysPrefix + "/broker/packets/sent":         AtomicItoa(&s.Info.PacketsSent),
 		SysPrefix + "/broker/messages/received":    AtomicItoa(&s.Info.MessagesReceived),
 		SysPrefix + "/broker/messages/sent":        AtomicItoa(&s.Info.MessagesSent),
+		SysPrefix + "/broker/messages/dropped":     AtomicItoa(&s.Info.MessagesDropped),
 		SysPrefix + "/broker/messages/inflight":    AtomicItoa(&s.Info.Inflight),
 		SysPrefix + "/broker/retained":             AtomicItoa(&s.Info.Retained),
 		SysPrefix + "/broker/subscriptions":        AtomicItoa(&s.Info.Subscriptions),
@@ -1328,7 +1329,7 @@ 		atomic.StoreInt64(&s.Info.ClientsTotal, v.ClientsTotal)
 		atomic.StoreInt64(&s.Info.ClientsDisconnected, v.ClientsDisconnected)
 		atomic.StoreInt64(&s.Info.MessagesReceived, v.MessagesReceived)
 		atomic.StoreInt64(&s.Info.MessagesSent, v.MessagesSent)
-		atomic.StoreInt64(&s.Info.PublishDropped, v.PublishDropped)
+		atomic.StoreInt64(&s.Info.MessagesDropped, v.MessagesDropped)
 		atomic.StoreInt64(&s.Info.PacketsReceived, v.PacketsReceived)
 		atomic.StoreInt64(&s.Info.PacketsSent, v.PacketsSent)
 		atomic.StoreInt64(&s.Info.InflightDropped, v.InflightDropped)




diff --git a/system/system.go b/system/system.go
index fccc250e6f901b00483d3156a9b4afb3b3a5af1c..647ae00d870cf0bf52af28c8daedcba735675329 100644
--- a/system/system.go
+++ b/system/system.go
@@ -22,7 +22,7 @@ 	ClientsMaximum      int64  `json:"clients_maximum"`      // maximum number of active clients that have been connected
 	ClientsTotal        int64  `json:"clients_total"`        // total number of connected and disconnected clients with a persistent session currently connected and registered
 	MessagesReceived    int64  `json:"messages_received"`    // total number of publish messages received
 	MessagesSent        int64  `json:"messages_sent"`        // total number of publish messages sent
-	PublishDropped      int64  `json:"publish_dropped"`     // total number of messages dropped to slow subscriber
+	MessagesDropped     int64  `json:"messages_dropped"`     // total number of publish messages dropped to slow subscriber
 	Retained            int64  `json:"retained"`             // total number of retained messages active on the broker
 	Inflight            int64  `json:"inflight"`             // the number of messages currently in-flight
 	InflightDropped     int64  `json:"inflight_dropped"`     // the number of inflight messages which were dropped
@@ -48,7 +48,7 @@ 		ClientsTotal:        atomic.LoadInt64(&i.ClientsTotal),
 		ClientsDisconnected: atomic.LoadInt64(&i.ClientsDisconnected),
 		MessagesReceived:    atomic.LoadInt64(&i.MessagesReceived),
 		MessagesSent:        atomic.LoadInt64(&i.MessagesSent),
-		PublishDropped:      atomic.LoadInt64(&i.PublishDropped),
+		MessagesDropped:     atomic.LoadInt64(&i.MessagesDropped),
 		Retained:            atomic.LoadInt64(&i.Retained),
 		Inflight:            atomic.LoadInt64(&i.Inflight),
 		InflightDropped:     atomic.LoadInt64(&i.InflightDropped),




diff --git a/system/system_test.go b/system/system_test.go
index 557aae1b593ef28175c60e15b0a559897f5fb4b4..b76df2102c8df7250be9c430c4c208cb8acaece1 100644
--- a/system/system_test.go
+++ b/system/system_test.go
@@ -20,7 +20,7 @@ 		ClientsTotal:        8,
 		ClientsDisconnected: 9,
 		MessagesReceived:    10,
 		MessagesSent:        11,
-		PublishDropped:      20,
+		MessagesDropped:     20,
 		Retained:            12,
 		Inflight:            13,
 		InflightDropped:     14,