Skip to content

Commit e7cc535

Browse files
authored
feat(telem)_: track total waku message bandwidth (#6157)
1 parent d07e61f commit e7cc535

File tree

19 files changed

+342
-54
lines changed

19 files changed

+342
-54
lines changed

go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ require (
8888
github.com/gorilla/sessions v1.2.1
8989
github.com/gorilla/websocket v1.5.3
9090
github.com/ipfs/go-log/v2 v2.5.1
91-
github.com/jellydator/ttlcache/v3 v3.2.0
91+
github.com/jellydator/ttlcache/v3 v3.3.0
9292
github.com/jmoiron/sqlx v1.3.5
9393
github.com/klauspost/reedsolomon v1.12.1
9494
github.com/ladydascalie/currency v1.6.0
@@ -97,7 +97,7 @@ require (
9797
github.com/schollz/peerdiscovery v1.7.0
9898
github.com/siphiuel/lc-proxy-wrapper v0.0.0-20230516150924-246507cee8c7
9999
github.com/urfave/cli/v2 v2.27.2
100-
github.com/waku-org/go-waku v0.8.1-0.20241128183857-1608cf2b0b90
100+
github.com/waku-org/go-waku v0.8.1-0.20241203032230-6550ff35bc71
101101
github.com/wk8/go-ordered-map/v2 v2.1.7
102102
github.com/yeqown/go-qrcode/v2 v2.2.1
103103
github.com/yeqown/go-qrcode/writer/standard v1.2.1

go.sum

+4-4
Original file line numberDiff line numberDiff line change
@@ -1238,8 +1238,8 @@ github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABo
12381238
github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk=
12391239
github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU=
12401240
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
1241-
github.com/jellydator/ttlcache/v3 v3.2.0 h1:6lqVJ8X3ZaUwvzENqPAobDsXNExfUJd61u++uW8a3LE=
1242-
github.com/jellydator/ttlcache/v3 v3.2.0/go.mod h1:hi7MGFdMAwZna5n2tuvh63DvFLzVKySzCVW6+0gA2n4=
1241+
github.com/jellydator/ttlcache/v3 v3.3.0 h1:BdoC9cE81qXfrxeb9eoJi9dWrdhSuwXMAnHTbnBm4Wc=
1242+
github.com/jellydator/ttlcache/v3 v3.3.0/go.mod h1:bj2/e0l4jRnQdrnSTaGTsh4GSXvMjQcy41i7th0GVGw=
12431243
github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
12441244
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
12451245
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
@@ -2152,8 +2152,8 @@ github.com/waku-org/go-libp2p-pubsub v0.12.0-gowaku.0.20240823143342-b0f2429ca27
21522152
github.com/waku-org/go-libp2p-pubsub v0.12.0-gowaku.0.20240823143342-b0f2429ca27f/go.mod h1:Oi0zw9aw8/Y5GC99zt+Ef2gYAl+0nZlwdJonDyOz/sE=
21532153
github.com/waku-org/go-libp2p-rendezvous v0.0.0-20240110193335-a67d1cc760a0 h1:R4YYx2QamhBRl/moIxkDCNW+OP7AHbyWLBygDc/xIMo=
21542154
github.com/waku-org/go-libp2p-rendezvous v0.0.0-20240110193335-a67d1cc760a0/go.mod h1:EhZP9fee0DYjKH/IOQvoNSy1tSHp2iZadsHGphcAJgY=
2155-
github.com/waku-org/go-waku v0.8.1-0.20241128183857-1608cf2b0b90 h1:p7tehUW7f+D6pvMJYop2yJV03SJU2fFUusmSnKL3uow=
2156-
github.com/waku-org/go-waku v0.8.1-0.20241128183857-1608cf2b0b90/go.mod h1:1BRnyg2mQ2aBNLTBaPq6vEvobzywGykPOhGQFbHGf74=
2155+
github.com/waku-org/go-waku v0.8.1-0.20241203032230-6550ff35bc71 h1:P9sQncEeeBqBRQEtiLdgQe5oWcTlAV5IVA5VGMqGslc=
2156+
github.com/waku-org/go-waku v0.8.1-0.20241203032230-6550ff35bc71/go.mod h1:zYhLgqwBE3sGP2vP+aNiM5moOKlf/uSoIv36puAj9WI=
21572157
github.com/waku-org/go-zerokit-rln v0.1.14-0.20240102145250-fa738c0bdf59 h1:jisj+OCI6QydLtFq3Pyhu49wl9ytPN7oAHjMfepHDrA=
21582158
github.com/waku-org/go-zerokit-rln v0.1.14-0.20240102145250-fa738c0bdf59/go.mod h1:1PdBdPzyTaKt3VnpAHk3zj+r9dXPFOr3IHZP9nFle6E=
21592159
github.com/waku-org/go-zerokit-rln-apple v0.0.0-20230916172309-ee0ee61dde2b h1:KgZVhsLkxsj5gb/FfndSCQu6VYwALrCOgYI3poR95yE=

telemetry/client.go

+22
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ const (
5858
MissedRelevantMessageMetric TelemetryType = "MissedRelevantMessages"
5959
// MVDS ack received for a sent message
6060
MessageDeliveryConfirmedMetric TelemetryType = "MessageDeliveryConfirmed"
61+
// Total number and size of Waku messages sent by this node
62+
SentMessageTotalMetric TelemetryType = "SentMessageTotal"
6163
)
6264

6365
const MaxRetryCache = 5000
@@ -145,6 +147,10 @@ func (c *Client) PushMessageDeliveryConfirmed(ctx context.Context, messageHash s
145147
c.processAndPushTelemetry(ctx, MessageDeliveryConfirmed{MessageHash: messageHash})
146148
}
147149

150+
func (c *Client) PushSentMessageTotal(ctx context.Context, messageSize uint32) {
151+
c.processAndPushTelemetry(ctx, SentMessageTotal{Size: messageSize})
152+
}
153+
148154
type ReceivedMessages struct {
149155
Filter transport.Filter
150156
SSHMessage *types.Message
@@ -196,6 +202,10 @@ type MessageDeliveryConfirmed struct {
196202
MessageHash string
197203
}
198204

205+
type SentMessageTotal struct {
206+
Size uint32
207+
}
208+
199209
type Client struct {
200210
serverURL string
201211
httpClient *http.Client
@@ -392,6 +402,12 @@ func (c *Client) processAndPushTelemetry(ctx context.Context, data interface{})
392402
TelemetryType: MessageDeliveryConfirmedMetric,
393403
TelemetryData: c.ProcessMessageDeliveryConfirmed(v),
394404
}
405+
case SentMessageTotal:
406+
telemetryRequest = TelemetryRequest{
407+
Id: c.nextId,
408+
TelemetryType: SentMessageTotalMetric,
409+
TelemetryData: c.ProcessSentMessageTotal(v),
410+
}
395411
default:
396412
c.logger.Error("Unknown telemetry data type")
397413
return
@@ -567,6 +583,12 @@ func (c *Client) ProcessMessageDeliveryConfirmed(messageDeliveryConfirmed Messag
567583
return c.marshalPostBody(postBody)
568584
}
569585

586+
func (c *Client) ProcessSentMessageTotal(sentMessageTotal SentMessageTotal) *json.RawMessage {
587+
postBody := c.commonPostBody()
588+
postBody["size"] = sentMessageTotal.Size
589+
return c.marshalPostBody(postBody)
590+
}
591+
570592
// Helper function to marshal post body and handle errors
571593
func (c *Client) marshalPostBody(postBody map[string]interface{}) *json.RawMessage {
572594
body, err := json.Marshal(postBody)

telemetry/client_test.go

+14
Original file line numberDiff line numberDiff line change
@@ -597,3 +597,17 @@ func TestProcessDialFailure(t *testing.T) {
597597
}
598598
runTestCase(t, tc)
599599
}
600+
601+
func TestProcessSentMessageTotal(t *testing.T) {
602+
tc := testCase{
603+
name: "SentMessageTotal",
604+
input: SentMessageTotal{
605+
Size: uint32(1234),
606+
},
607+
expectedType: SentMessageTotalMetric,
608+
expectedFields: map[string]interface{}{
609+
"size": float64(1234),
610+
},
611+
}
612+
runTestCase(t, tc)
613+
}

vendor/github.com/jellydator/ttlcache/v3/README.md

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/jellydator/ttlcache/v3/cache.go

+87-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/waku-org/go-waku/waku/v2/api/publish/message_sender.go

+27
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)