Skip to content

Commit

Permalink
Support newer gRPC libraries
Browse files Browse the repository at this point in the history
Google's gRPC libraries have removed the Data field from the payload
structs in the stats package. This change updates the larking library to
support the newer gRPC libraries.
  • Loading branch information
krousey committed Nov 25, 2024
1 parent 91250e0 commit ffe8a9a
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 40 deletions.
19 changes: 10 additions & 9 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
module larking.io

go 1.20
go 1.22.7

toolchain go1.22.9

require (
github.com/gobwas/ws v1.2.0
github.com/google/go-cmp v0.5.9
golang.org/x/net v0.9.0
golang.org/x/sync v0.1.0
github.com/google/go-cmp v0.6.0
golang.org/x/net v0.29.0
golang.org/x/sync v0.8.0
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1
google.golang.org/grpc v1.54.0
google.golang.org/protobuf v1.30.1-0.20230501154320-cf06b0c33cda
google.golang.org/grpc v1.68.0
google.golang.org/protobuf v1.34.2
)

require (
github.com/gobwas/httphead v0.1.0 // indirect
github.com/gobwas/pool v0.2.1 // indirect
github.com/golang/protobuf v1.5.3 // indirect
golang.org/x/sys v0.7.0 // indirect
golang.org/x/text v0.9.0 // indirect
golang.org/x/sys v0.25.0 // indirect
golang.org/x/text v0.18.0 // indirect
)
37 changes: 16 additions & 21 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,22 @@ github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og=
github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
github.com/gobwas/ws v1.2.0 h1:u0p9s3xLYpZCA1z5JgCkMeB34CKCMMQbM+G8Ii7YD0I=
github.com/gobwas/ws v1.2.0/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag=
google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.30.1-0.20230501154320-cf06b0c33cda h1:CGKs/jtLmFiQ0tmmt8ykIoaKqn+yi8T/reVFvwOR5aY=
google.golang.org/protobuf v1.30.1-0.20230501154320-cf06b0c33cda/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0=
google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA=
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
4 changes: 2 additions & 2 deletions larking/grpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ func (s *streamGRPC) SendMsg(m interface{}) error {
if stats := s.opts.statsHandler; stats != nil {
// TODO: raw payload stats.
b := b[headerLen:] // shadow
stats.HandleRPC(s.ctx, outPayload(false, m, b, b, time.Now()))
stats.HandleRPC(s.ctx, outPayload(false, m, b, time.Now()))
}
return nil
}
Expand Down Expand Up @@ -425,7 +425,7 @@ func (s *streamGRPC) RecvMsg(m interface{}) error {
if stats := s.opts.statsHandler; stats != nil {
// TODO: raw payload stats.
b := b[headerLen:] // shadow
stats.HandleRPC(s.ctx, inPayload(false, m, b, b, time.Now()))
stats.HandleRPC(s.ctx, inPayload(false, m, b, time.Now()))
}
return nil
}
Expand Down
4 changes: 2 additions & 2 deletions larking/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ func (s *streamHTTP) SendMsg(m interface{}) error {
}
if stats := s.opts.statsHandler; stats != nil {
// TODO: raw payload stats.
stats.HandleRPC(s.ctx, outPayload(false, m, b, b, time.Now()))
stats.HandleRPC(s.ctx, outPayload(false, m, b, time.Now()))
}
return nil
}
Expand Down Expand Up @@ -243,7 +243,7 @@ func (s *streamHTTP) decodeRequestArgs(args proto.Message) (int, error) {
}
if stats := s.opts.statsHandler; stats != nil {
// TODO: raw payload stats.
stats.HandleRPC(s.ctx, inPayload(false, msg, b, b, time.Now()))
stats.HandleRPC(s.ctx, inPayload(false, msg, b, time.Now()))
}
return count, nil
}
Expand Down
10 changes: 4 additions & 6 deletions larking/stats.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,22 @@ const (
headerLen = payloadLen + sizeLen
)

func outPayload(client bool, msg interface{}, data, payload []byte, t time.Time) *stats.OutPayload {
func outPayload(client bool, msg interface{}, payload []byte, t time.Time) *stats.OutPayload {
return &stats.OutPayload{
Client: client,
Payload: msg,
Data: data,
Length: len(data),
Length: len(payload),
WireLength: len(payload) + headerLen,
SentTime: t,
}
}

func inPayload(client bool, msg interface{}, data, payload []byte, t time.Time) *stats.InPayload {
func inPayload(client bool, msg interface{}, payload []byte, t time.Time) *stats.InPayload {
return &stats.InPayload{
Client: true,
RecvTime: t,
Payload: msg,
Data: data,
Length: len(data),
Length: len(payload),
WireLength: len(payload) + headerLen,
}
}
Expand Down

0 comments on commit ffe8a9a

Please sign in to comment.