Skip to content

Commit 7cc85e1

Browse files
author
callmedenchick
committed
fixes after review
1 parent dc5790a commit 7cc85e1

7 files changed

Lines changed: 43 additions & 13 deletions

File tree

internal/analytics/collector.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ func (c *Collector) Run(ctx context.Context) {
5757
for {
5858
select {
5959
case <-ctx.Done():
60+
logrus.WithField("prefix", "analytics").Debug("analytics collector stopping, performing final flush")
61+
events := c.collector.PopAll()
62+
if len(events) > 0 {
63+
logrus.WithField("prefix", "analytics").Debugf("final flush: sending %d events from collector", len(events))
64+
// Use background context for final flush since original context is done
65+
if err := c.sender.SendBatch(context.Background(), events); err != nil {
66+
logrus.WithError(err).Warnf("analytics: failed to send final batch of %d events", len(events))
67+
}
68+
}
6069
logrus.WithField("prefix", "analytics").Debug("analytics collector stopped")
6170
return
6271
case <-c.collector.Notify():

internal/analytics/event.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ func (a *AnalyticEventBuilder) NewBridgeMessageSentEvent(clientID, traceID strin
104104
}
105105
}
106106

107-
// NewBridgeMessageReceivedEvent builds a bridge message received event (wallet-connect-request-received).
107+
// NewBridgeMessageReceivedEvent builds a bridge message received event.
108108
func (a *AnalyticEventBuilder) NewBridgeMessageReceivedEvent(clientID, traceID, requestType string, messageID int64, messageHash string) tonmetrics.BridgeMessageReceivedEvent {
109109
timestamp := int(time.Now().Unix())
110-
eventName := tonmetrics.BridgeMessageReceivedEventEventNameWalletConnectRequestReceived
110+
eventName := tonmetrics.BridgeMessageReceivedEventEventNameBridgeMessageReceived
111111
environment := tonmetrics.BridgeMessageReceivedEventClientEnvironment(a.environment)
112112
subsystem := tonmetrics.BridgeMessageReceivedEventSubsystem(a.subsystem)
113113
messageIDStr := fmt.Sprintf("%d", messageID)

internal/v1/handler/handler.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,12 @@ func (h *handler) EventRegistrationHandler(c echo.Context) error {
207207

208208
// Parse the message, add BridgeConnectSource, keep it for later logging
209209
var bridgeMsg models.BridgeMessage
210+
fromID := "unknown"
211+
traceID := ""
210212
messageToSend := msg.Message
211213
if err := json.Unmarshal(msg.Message, &bridgeMsg); err == nil {
214+
fromID = bridgeMsg.From
215+
traceID = bridgeMsg.TraceId
212216
bridgeMsg.BridgeConnectSource = models.BridgeConnectSource{
213217
IP: connectIP,
214218
}
@@ -236,16 +240,16 @@ func (h *handler) EventRegistrationHandler(c echo.Context) error {
236240

237241
logrus.WithFields(logrus.Fields{
238242
"hash": messageHash,
239-
"from": bridgeMsg.From,
243+
"from": fromID,
240244
"to": msg.To,
241245
"event_id": msg.EventId,
242-
"trace_id": bridgeMsg.TraceId,
246+
"trace_id": traceID,
243247
}).Debug("message sent")
244248

245249
if h.eventCollector != nil {
246250
_ = h.eventCollector.TryAdd(h.eventBuilder.NewBridgeMessageSentEvent(
247251
msg.To,
248-
bridgeMsg.TraceId,
252+
traceID,
249253
msg.EventId,
250254
messageHash,
251255
))
@@ -448,7 +452,7 @@ func (h *handler) SendMessageHandler(c echo.Context) error {
448452
"from": fromId,
449453
"to": toId[0],
450454
"event_id": sseMessage.EventId,
451-
"trace_id": bridgeMsg.TraceId,
455+
"trace_id": traceId,
452456
}).Debug("message received")
453457

454458
if h.eventCollector != nil {

internal/v3/handler/handler.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,15 @@ loop:
210210

211211
fromId := "unknown"
212212
toId := msg.To
213+
traceID := ""
213214

214215
hash := sha256.Sum256(msg.Message)
215216
messageHash := hex.EncodeToString(hash[:])
216217

217218
var bridgeMsg models.BridgeMessage
218219
if err := json.Unmarshal(msg.Message, &bridgeMsg); err == nil {
219220
fromId = bridgeMsg.From
221+
traceID = bridgeMsg.TraceId
220222
contentHash := sha256.Sum256([]byte(bridgeMsg.Message))
221223
messageHash = hex.EncodeToString(contentHash[:])
222224
}
@@ -226,13 +228,13 @@ loop:
226228
"from": fromId,
227229
"to": toId,
228230
"event_id": msg.EventId,
229-
"trace_id": bridgeMsg.TraceId,
231+
"trace_id": traceID,
230232
}).Debug("message sent")
231233

232234
if h.eventCollector != nil {
233235
_ = h.eventCollector.TryAdd(h.eventBuilder.NewBridgeMessageSentEvent(
234236
msg.To,
235-
bridgeMsg.TraceId,
237+
traceID,
236238
msg.EventId,
237239
messageHash,
238240
))
@@ -389,7 +391,7 @@ func (h *handler) SendMessageHandler(c echo.Context) error {
389391
"from": fromId,
390392
"to": toId[0],
391393
"event_id": sseMessage.EventId,
392-
"trace_id": bridgeMsg.TraceId,
394+
"trace_id": traceId,
393395
}).Debug("message received")
394396

395397
if h.eventCollector != nil {

tonmetrics/bridge_events.gen.go

Lines changed: 5 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tonmetrics/swagger-tonconnect-bridge.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,12 @@
667667
"type": "integer",
668668
"example": 0
669669
},
670+
"encrypted_message_hash": {
671+
"description": "Bridge encrypted message hash.",
672+
"type": "string",
673+
"format": "base64",
674+
"example": "ZXhhbXBsZQ=="
675+
},
670676
"event_id": {
671677
"description": "Unique random event UUID generated by the sender. Used for deduplication on the backend side.",
672678
"type": "string",
@@ -676,7 +682,7 @@
676682
"type": "string",
677683
"enum": [
678684
"",
679-
"wallet-connect-request-received"
685+
"bridge-message-received"
680686
]
681687
},
682688
"message_id": {

tonmetrics/swagger-tonconnect.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1905,6 +1905,12 @@
19051905
"type": "integer",
19061906
"example": 0
19071907
},
1908+
"encrypted_message_hash": {
1909+
"description": "Bridge encrypted message hash.",
1910+
"type": "string",
1911+
"format": "base64",
1912+
"example": "ZXhhbXBsZQ=="
1913+
},
19081914
"event_id": {
19091915
"description": "Unique random event UUID generated by the sender. Used for deduplication on the backend side.",
19101916
"type": "string",
@@ -1914,7 +1920,7 @@
19141920
"type": "string",
19151921
"enum": [
19161922
"",
1917-
"wallet-connect-request-received"
1923+
"bridge-message-received"
19181924
]
19191925
},
19201926
"message_id": {

0 commit comments

Comments
 (0)