Skip to content
This repository was archived by the owner on Dec 5, 2023. It is now read-only.

Commit c8496f7

Browse files
author
embs
committed
Enrich Zipkin db tracing
Add info regarding - database type and address - approximation for queries results size
1 parent a7ea691 commit c8496f7

File tree

5 files changed

+241
-111
lines changed

5 files changed

+241
-111
lines changed

api/endpoints.go

+10-18
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func MakeLoginEndpoint(s Service) endpoint.Endpoint {
5353
span.SetTag("service", "user")
5454
defer span.Finish()
5555
req := request.(loginRequest)
56-
u, err := s.Login(req.Username, req.Password)
56+
u, err := s.Login(ctx, req.Username, req.Password)
5757
return userResponse{User: u}, err
5858
}
5959
}
@@ -66,7 +66,7 @@ func MakeRegisterEndpoint(s Service) endpoint.Endpoint {
6666
span.SetTag("service", "user")
6767
defer span.Finish()
6868
req := request.(registerRequest)
69-
id, err := s.Register(req.Username, req.Password, req.Email, req.FirstName, req.LastName)
69+
id, err := s.Register(ctx, req.Username, req.Password, req.Email, req.FirstName, req.LastName)
7070
return postResponse{ID: id}, err
7171
}
7272
}
@@ -81,9 +81,7 @@ func MakeUserGetEndpoint(s Service) endpoint.Endpoint {
8181

8282
req := request.(GetRequest)
8383

84-
userspan := stdopentracing.StartSpan("users from db", stdopentracing.ChildOf(span.Context()))
85-
usrs, err := s.GetUsers(req.ID)
86-
userspan.Finish()
84+
usrs, err := s.GetUsers(ctx, req.ID)
8785
if req.ID == "" {
8886
return EmbedStruct{usersResponse{Users: usrs}}, err
8987
}
@@ -97,9 +95,7 @@ func MakeUserGetEndpoint(s Service) endpoint.Endpoint {
9795
return users.User{}, err
9896
}
9997
user := usrs[0]
100-
attrspan := stdopentracing.StartSpan("attributes from db", stdopentracing.ChildOf(span.Context()))
101-
db.GetUserAttributes(&user)
102-
attrspan.Finish()
98+
db.GetUserAttributes(ctx, &user)
10399
if req.Attr == "addresses" {
104100
return EmbedStruct{addressesResponse{Addresses: user.Addresses}}, err
105101
}
@@ -118,7 +114,7 @@ func MakeUserPostEndpoint(s Service) endpoint.Endpoint {
118114
span.SetTag("service", "user")
119115
defer span.Finish()
120116
req := request.(users.User)
121-
id, err := s.PostUser(req)
117+
id, err := s.PostUser(ctx, req)
122118
return postResponse{ID: id}, err
123119
}
124120
}
@@ -131,9 +127,7 @@ func MakeAddressGetEndpoint(s Service) endpoint.Endpoint {
131127
span.SetTag("service", "user")
132128
defer span.Finish()
133129
req := request.(GetRequest)
134-
addrspan := stdopentracing.StartSpan("addresses from db", stdopentracing.ChildOf(span.Context()))
135-
adds, err := s.GetAddresses(req.ID)
136-
addrspan.Finish()
130+
adds, err := s.GetAddresses(ctx, req.ID)
137131
if req.ID == "" {
138132
return EmbedStruct{addressesResponse{Addresses: adds}}, err
139133
}
@@ -152,7 +146,7 @@ func MakeAddressPostEndpoint(s Service) endpoint.Endpoint {
152146
span.SetTag("service", "user")
153147
defer span.Finish()
154148
req := request.(addressPostRequest)
155-
id, err := s.PostAddress(req.Address, req.UserID)
149+
id, err := s.PostAddress(ctx, req.Address, req.UserID)
156150
return postResponse{ID: id}, err
157151
}
158152
}
@@ -165,9 +159,7 @@ func MakeCardGetEndpoint(s Service) endpoint.Endpoint {
165159
span.SetTag("service", "user")
166160
defer span.Finish()
167161
req := request.(GetRequest)
168-
cardspan := stdopentracing.StartSpan("addresses from db", stdopentracing.ChildOf(span.Context()))
169-
cards, err := s.GetCards(req.ID)
170-
cardspan.Finish()
162+
cards, err := s.GetCards(ctx, req.ID)
171163
if req.ID == "" {
172164
return EmbedStruct{cardsResponse{Cards: cards}}, err
173165
}
@@ -186,7 +178,7 @@ func MakeCardPostEndpoint(s Service) endpoint.Endpoint {
186178
span.SetTag("service", "user")
187179
defer span.Finish()
188180
req := request.(cardPostRequest)
189-
id, err := s.PostCard(req.Card, req.UserID)
181+
id, err := s.PostCard(ctx, req.Card, req.UserID)
190182
return postResponse{ID: id}, err
191183
}
192184
}
@@ -199,7 +191,7 @@ func MakeDeleteEndpoint(s Service) endpoint.Endpoint {
199191
span.SetTag("service", "user")
200192
defer span.Finish()
201193
req := request.(deleteRequest)
202-
err = s.Delete(req.Entity, req.ID)
194+
err = s.Delete(ctx, req.Entity, req.ID)
203195
if err == nil {
204196
return statusResponse{Status: true}, err
205197
}

api/middlewares.go

+37-36
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package api
22

33
import (
4+
"context"
45
"time"
56

67
"github.com/go-kit/kit/log"
@@ -26,17 +27,17 @@ type loggingMiddleware struct {
2627
logger log.Logger
2728
}
2829

29-
func (mw loggingMiddleware) Login(username, password string) (user users.User, err error) {
30+
func (mw loggingMiddleware) Login(ctx context.Context, username, password string) (user users.User, err error) {
3031
defer func(begin time.Time) {
3132
mw.logger.Log(
3233
"method", "Login",
3334
"took", time.Since(begin),
3435
)
3536
}(time.Now())
36-
return mw.next.Login(username, password)
37+
return mw.next.Login(ctx, username, password)
3738
}
3839

39-
func (mw loggingMiddleware) Register(username, password, email, first, last string) (string, error) {
40+
func (mw loggingMiddleware) Register(ctx context.Context, username, password, email, first, last string) (string, error) {
4041
defer func(begin time.Time) {
4142
mw.logger.Log(
4243
"method", "Register",
@@ -45,10 +46,10 @@ func (mw loggingMiddleware) Register(username, password, email, first, last stri
4546
"took", time.Since(begin),
4647
)
4748
}(time.Now())
48-
return mw.next.Register(username, password, email, first, last)
49+
return mw.next.Register(ctx, username, password, email, first, last)
4950
}
5051

51-
func (mw loggingMiddleware) PostUser(user users.User) (id string, err error) {
52+
func (mw loggingMiddleware) PostUser(ctx context.Context, user users.User) (id string, err error) {
5253
defer func(begin time.Time) {
5354
mw.logger.Log(
5455
"method", "PostUser",
@@ -58,10 +59,10 @@ func (mw loggingMiddleware) PostUser(user users.User) (id string, err error) {
5859
"took", time.Since(begin),
5960
)
6061
}(time.Now())
61-
return mw.next.PostUser(user)
62+
return mw.next.PostUser(ctx, user)
6263
}
6364

64-
func (mw loggingMiddleware) GetUsers(id string) (u []users.User, err error) {
65+
func (mw loggingMiddleware) GetUsers(ctx context.Context, id string) (u []users.User, err error) {
6566
defer func(begin time.Time) {
6667
who := id
6768
if who == "" {
@@ -74,10 +75,10 @@ func (mw loggingMiddleware) GetUsers(id string) (u []users.User, err error) {
7475
"took", time.Since(begin),
7576
)
7677
}(time.Now())
77-
return mw.next.GetUsers(id)
78+
return mw.next.GetUsers(ctx, id)
7879
}
7980

80-
func (mw loggingMiddleware) PostAddress(add users.Address, id string) (string, error) {
81+
func (mw loggingMiddleware) PostAddress(ctx context.Context, add users.Address, id string) (string, error) {
8182
defer func(begin time.Time) {
8283
mw.logger.Log(
8384
"method", "PostAddress",
@@ -87,10 +88,10 @@ func (mw loggingMiddleware) PostAddress(add users.Address, id string) (string, e
8788
"took", time.Since(begin),
8889
)
8990
}(time.Now())
90-
return mw.next.PostAddress(add, id)
91+
return mw.next.PostAddress(ctx, add, id)
9192
}
9293

93-
func (mw loggingMiddleware) GetAddresses(id string) (a []users.Address, err error) {
94+
func (mw loggingMiddleware) GetAddresses(ctx context.Context, id string) (a []users.Address, err error) {
9495
defer func(begin time.Time) {
9596
who := id
9697
if who == "" {
@@ -103,10 +104,10 @@ func (mw loggingMiddleware) GetAddresses(id string) (a []users.Address, err erro
103104
"took", time.Since(begin),
104105
)
105106
}(time.Now())
106-
return mw.next.GetAddresses(id)
107+
return mw.next.GetAddresses(ctx, id)
107108
}
108109

109-
func (mw loggingMiddleware) PostCard(card users.Card, id string) (string, error) {
110+
func (mw loggingMiddleware) PostCard(ctx context.Context, card users.Card, id string) (string, error) {
110111
defer func(begin time.Time) {
111112
cc := card
112113
cc.MaskCC()
@@ -117,10 +118,10 @@ func (mw loggingMiddleware) PostCard(card users.Card, id string) (string, error)
117118
"took", time.Since(begin),
118119
)
119120
}(time.Now())
120-
return mw.next.PostCard(card, id)
121+
return mw.next.PostCard(ctx, card, id)
121122
}
122123

123-
func (mw loggingMiddleware) GetCards(id string) (a []users.Card, err error) {
124+
func (mw loggingMiddleware) GetCards(ctx context.Context, id string) (a []users.Card, err error) {
124125
defer func(begin time.Time) {
125126
who := id
126127
if who == "" {
@@ -133,10 +134,10 @@ func (mw loggingMiddleware) GetCards(id string) (a []users.Card, err error) {
133134
"took", time.Since(begin),
134135
)
135136
}(time.Now())
136-
return mw.next.GetCards(id)
137+
return mw.next.GetCards(ctx, id)
137138
}
138139

139-
func (mw loggingMiddleware) Delete(entity, id string) (err error) {
140+
func (mw loggingMiddleware) Delete(ctx context.Context, entity, id string) (err error) {
140141
defer func(begin time.Time) {
141142
mw.logger.Log(
142143
"method", "Delete",
@@ -145,7 +146,7 @@ func (mw loggingMiddleware) Delete(entity, id string) (err error) {
145146
"took", time.Since(begin),
146147
)
147148
}(time.Now())
148-
return mw.next.Delete(entity, id)
149+
return mw.next.Delete(ctx, entity, id)
149150
}
150151

151152
func (mw loggingMiddleware) Health() (health []Health) {
@@ -174,85 +175,85 @@ func NewInstrumentingService(requestCount metrics.Counter, requestLatency metric
174175
}
175176
}
176177

177-
func (s *instrumentingService) Login(username, password string) (users.User, error) {
178+
func (s *instrumentingService) Login(ctx context.Context, username, password string) (users.User, error) {
178179
defer func(begin time.Time) {
179180
s.requestCount.With("method", "login").Add(1)
180181
s.requestLatency.With("method", "login").Observe(time.Since(begin).Seconds())
181182
}(time.Now())
182183

183-
return s.Service.Login(username, password)
184+
return s.Service.Login(ctx, username, password)
184185
}
185186

186-
func (s *instrumentingService) Register(username, password, email, first, last string) (string, error) {
187+
func (s *instrumentingService) Register(ctx context.Context, username, password, email, first, last string) (string, error) {
187188
defer func(begin time.Time) {
188189
s.requestCount.With("method", "register").Add(1)
189190
s.requestLatency.With("method", "register").Observe(time.Since(begin).Seconds())
190191
}(time.Now())
191192

192-
return s.Service.Register(username, password, email, first, last)
193+
return s.Service.Register(ctx, username, password, email, first, last)
193194
}
194195

195-
func (s *instrumentingService) PostUser(user users.User) (string, error) {
196+
func (s *instrumentingService) PostUser(ctx context.Context, user users.User) (string, error) {
196197
defer func(begin time.Time) {
197198
s.requestCount.With("method", "postUser").Add(1)
198199
s.requestLatency.With("method", "postUser").Observe(time.Since(begin).Seconds())
199200
}(time.Now())
200201

201-
return s.Service.PostUser(user)
202+
return s.Service.PostUser(ctx, user)
202203
}
203204

204-
func (s *instrumentingService) GetUsers(id string) (u []users.User, err error) {
205+
func (s *instrumentingService) GetUsers(ctx context.Context, id string) (u []users.User, err error) {
205206
defer func(begin time.Time) {
206207
s.requestCount.With("method", "getUsers").Add(1)
207208
s.requestLatency.With("method", "getUsers").Observe(time.Since(begin).Seconds())
208209
}(time.Now())
209210

210-
return s.Service.GetUsers(id)
211+
return s.Service.GetUsers(ctx, id)
211212
}
212213

213-
func (s *instrumentingService) PostAddress(add users.Address, id string) (string, error) {
214+
func (s *instrumentingService) PostAddress(ctx context.Context, add users.Address, id string) (string, error) {
214215
defer func(begin time.Time) {
215216
s.requestCount.With("method", "postAddress").Add(1)
216217
s.requestLatency.With("method", "postAddress").Observe(time.Since(begin).Seconds())
217218
}(time.Now())
218219

219-
return s.Service.PostAddress(add, id)
220+
return s.Service.PostAddress(ctx, add, id)
220221
}
221222

222-
func (s *instrumentingService) GetAddresses(id string) ([]users.Address, error) {
223+
func (s *instrumentingService) GetAddresses(ctx context.Context, id string) ([]users.Address, error) {
223224
defer func(begin time.Time) {
224225
s.requestCount.With("method", "getAddresses").Add(1)
225226
s.requestLatency.With("method", "getAddresses").Observe(time.Since(begin).Seconds())
226227
}(time.Now())
227228

228-
return s.Service.GetAddresses(id)
229+
return s.Service.GetAddresses(ctx, id)
229230
}
230231

231-
func (s *instrumentingService) PostCard(card users.Card, id string) (string, error) {
232+
func (s *instrumentingService) PostCard(ctx context.Context, card users.Card, id string) (string, error) {
232233
defer func(begin time.Time) {
233234
s.requestCount.With("method", "postCard").Add(1)
234235
s.requestLatency.With("method", "postCard").Observe(time.Since(begin).Seconds())
235236
}(time.Now())
236237

237-
return s.Service.PostCard(card, id)
238+
return s.Service.PostCard(ctx, card, id)
238239
}
239240

240-
func (s *instrumentingService) GetCards(id string) ([]users.Card, error) {
241+
func (s *instrumentingService) GetCards(ctx context.Context, id string) ([]users.Card, error) {
241242
defer func(begin time.Time) {
242243
s.requestCount.With("method", "getCards").Add(1)
243244
s.requestLatency.With("method", "getCards").Observe(time.Since(begin).Seconds())
244245
}(time.Now())
245246

246-
return s.Service.GetCards(id)
247+
return s.Service.GetCards(ctx, id)
247248
}
248249

249-
func (s *instrumentingService) Delete(entity, id string) error {
250+
func (s *instrumentingService) Delete(ctx context.Context, entity, id string) error {
250251
defer func(begin time.Time) {
251252
s.requestCount.With("method", "delete").Add(1)
252253
s.requestLatency.With("method", "delete").Observe(time.Since(begin).Seconds())
253254
}(time.Now())
254255

255-
return s.Service.Delete(entity, id)
256+
return s.Service.Delete(ctx, entity, id)
256257
}
257258

258259
func (s *instrumentingService) Health() []Health {

0 commit comments

Comments
 (0)