Skip to content

Commit

Permalink
make latency available on client
Browse files Browse the repository at this point in the history
  • Loading branch information
Kelwing committed May 17, 2023
1 parent 4b682cf commit 17f4a05
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
6 changes: 5 additions & 1 deletion gateway/shard/heartbeat.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package shard

import (
"math"
"sync"
"time"

Expand All @@ -17,6 +18,7 @@ type Heartbeat struct {
lastHeartbeat time.Time
logger zerolog.Logger
wg sync.WaitGroup
latency *atomic.Duration
}

func NewHeartbeat(interval int64, shard *Shard, logger zerolog.Logger) *Heartbeat {
Expand All @@ -25,6 +27,7 @@ func NewHeartbeat(interval int64, shard *Shard, logger zerolog.Logger) *Heartbea
acked: atomic.NewBool(true),
gw: shard,
logger: logger,
latency: atomic.NewDuration(time.Duration(math.Inf(1))),
}
}

Expand Down Expand Up @@ -76,5 +79,6 @@ func (h *Heartbeat) Stop() {

func (h *Heartbeat) ACK() {
h.acked.Store(true)
h.logger.Debug().Dur("latency", time.Since(h.lastHeartbeat)).Msg("Received heartbeat ACK")
h.latency.Store(time.Since(h.lastHeartbeat))
h.logger.Debug().Dur("latency", h.latency.Load()).Msg("Received heartbeat ACK")
}
4 changes: 4 additions & 0 deletions gateway/shard/shard.go
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,10 @@ func (s *Shard) process(p objects.Payload) error {
return nil
}

func (s *Shard) Latency() time.Duration {
return s.heartbeat.latency.Load()
}

func (s *Shard) Run() error {
var err error
for {
Expand Down

0 comments on commit 17f4a05

Please sign in to comment.