Skip to content

Commit 6e15951

Browse files
committed
update backend4
Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>
1 parent 8580941 commit 6e15951

3 files changed

Lines changed: 24 additions & 16 deletions

File tree

app/backend4/go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,21 @@ require (
88
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0
99
go.opentelemetry.io/otel/sdk v1.24.0
1010
go.opentelemetry.io/otel/trace v1.24.0
11-
google.golang.org/grpc v1.62.1
1211
)
1312

1413
require (
1514
github.com/beorn7/perks v1.0.1 // indirect
1615
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
1716
github.com/cespare/xxhash/v2 v2.2.0 // indirect
17+
github.com/felixge/httpsnoop v1.0.4 // indirect
1818
github.com/go-logr/logr v1.4.1 // indirect
1919
github.com/go-logr/stdr v1.2.2 // indirect
2020
github.com/golang/protobuf v1.5.3 // indirect
2121
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect
2222
github.com/prometheus/client_model v0.5.0 // indirect
2323
github.com/prometheus/common v0.48.0 // indirect
2424
github.com/prometheus/procfs v0.12.0 // indirect
25+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
2526
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect
2627
go.opentelemetry.io/otel/metric v1.24.0 // indirect
2728
go.opentelemetry.io/proto/otlp v1.1.0 // indirect
@@ -30,5 +31,6 @@ require (
3031
golang.org/x/text v0.14.0 // indirect
3132
google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect
3233
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
34+
google.golang.org/grpc v1.62.1 // indirect
3335
google.golang.org/protobuf v1.32.0 // indirect
3436
)

app/backend4/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj
66
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
77
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
88
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9+
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
10+
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
911
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
1012
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
1113
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
@@ -31,6 +33,8 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k
3133
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
3234
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
3335
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
36+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk=
37+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw=
3438
go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
3539
go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
3640
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8=

app/backend4/main.go

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import (
1212

1313
"github.com/prometheus/client_golang/prometheus"
1414
"github.com/prometheus/client_golang/prometheus/promhttp"
15+
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
1516
"go.opentelemetry.io/otel"
17+
"go.opentelemetry.io/otel/attribute"
1618
"go.opentelemetry.io/otel/codes"
1719
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
1820
sdktrace "go.opentelemetry.io/otel/sdk/trace"
@@ -71,23 +73,24 @@ func main() {
7173
}
7274

7375
mux := http.NewServeMux()
74-
mux.HandleFunc("GET /rolldice", func(w http.ResponseWriter, r *http.Request) {
75-
var span trace.Span
76-
ctx, span := tracer.Start(r.Context(), "rolldice")
77-
defer span.End()
76+
77+
const path = "GET /rolldice"
78+
mux.Handle(path, otelhttp.NewMiddleware(path)(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
7879
player := "Anonymous player"
7980
if p := r.URL.Query().Get("player"); p != "" {
8081
player = p
8182
}
83+
84+
trace.SpanFromContext(r.Context()).AddEvent("determine player", trace.WithAttributes(attribute.String("player.name", player)))
8285
max := 8
8386
if fmt.Sprintf("%x", sha256.Sum256([]byte(player))) == "f4b7c19317c929d2a34297d6229defe5262fa556ef654b600fc98f02c6d87fdc" {
8487
max = 8
8588
} else {
8689
max = 6
8790
}
88-
result := doRoll(ctx, max)
89-
causeDelay(ctx, rateDelay)
90-
if err := causeError(ctx, rateError); err != nil {
91+
result := doRoll(r.Context(), max)
92+
causeDelay(r.Context(), rateDelay)
93+
if err := causeError(r.Context(), rateError); err != nil {
9194
w.WriteHeader(http.StatusInternalServerError)
9295
return
9396
}
@@ -98,7 +101,8 @@ func main() {
98101
w.WriteHeader(http.StatusInternalServerError)
99102
}
100103

101-
})
104+
})))
105+
102106
mux.HandleFunc("GET /metrics", promhttp.Handler().ServeHTTP)
103107
srv := &http.Server{
104108
Addr: "0.0.0.0:5165",
@@ -111,14 +115,13 @@ func main() {
111115
}
112116

113117
func causeError(ctx context.Context, rate int) error {
114-
var span trace.Span
115-
_, span = tracer.Start(ctx, "causeError")
118+
_, span := tracer.Start(ctx, "causeError")
116119
defer span.End()
117120

118121
randomNumber := rand.Intn(100)
119-
span.AddEvent(fmt.Sprintf("random nr: %d", randomNumber))
122+
span.AddEvent("roll", trace.WithAttributes(attribute.Int("number", randomNumber)))
120123
if randomNumber < rate {
121-
err := fmt.Errorf("internal server error")
124+
err := fmt.Errorf("number(%d)) < rate(%d)", randomNumber, rate)
122125
span.RecordError(err)
123126
span.SetStatus(codes.Error, "some error occured")
124127
return err
@@ -127,11 +130,10 @@ func causeError(ctx context.Context, rate int) error {
127130
}
128131

129132
func causeDelay(ctx context.Context, rate int) {
130-
var span trace.Span
131-
_, span = tracer.Start(ctx, "causeDelay")
133+
_, span := tracer.Start(ctx, "causeDelay")
132134
defer span.End()
133135
randomNumber := rand.Intn(100)
134-
span.AddEvent(fmt.Sprintf("random nr: %d", randomNumber))
136+
span.AddEvent("roll", trace.WithAttributes(attribute.Int("number", randomNumber)))
135137
if randomNumber < rate {
136138
time.Sleep(time.Duration(2+rand.Intn(3)) * time.Second)
137139
}

0 commit comments

Comments
 (0)