diff --git a/example/dice/rolldice.go b/example/dice/rolldice.go index bdb0ae288e01..6206db9bee0e 100644 --- a/example/dice/rolldice.go +++ b/example/dice/rolldice.go @@ -4,15 +4,8 @@ package main import ( - "fmt" - "io" - "math/rand" - "net/http" - "strconv" - "go.opentelemetry.io/contrib/bridges/otelslog" "go.opentelemetry.io/otel" - "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/sdk/instrumentation" ) @@ -39,27 +32,3 @@ func init() { panic(err) } } - -func rolldice(w http.ResponseWriter, r *http.Request) { - ctx, span := tracer.Start(r.Context(), "roll") - defer span.End() - - roll := 1 + rand.Intn(6) - - var msg string - if player := r.PathValue("player"); player != "" { - msg = fmt.Sprintf("%s is rolling the dice", player) - } else { - msg = "Anonymous player is rolling the dice" - } - logger.InfoContext(ctx, msg, "result", roll) - - rollValueAttr := attribute.Int("roll.value", roll) - span.SetAttributes(rollValueAttr) - rollCnt.Add(ctx, 1, metric.WithAttributes(rollValueAttr)) - - resp := strconv.Itoa(roll) + "\n" - if _, err := io.WriteString(w, resp); err != nil { - logger.ErrorContext(ctx, "Write failed", "error", err) - } -} diff --git a/example/dice/rolldice_go1.21.go b/example/dice/rolldice_go1.21.go new file mode 100644 index 000000000000..5f3b83f35b46 --- /dev/null +++ b/example/dice/rolldice_go1.21.go @@ -0,0 +1,35 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +//go:build !go1.22 +// +build !go1.22 + +package main + +import ( + "io" + "math/rand" + "net/http" + "strconv" + + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/metric" +) + +func rolldice(w http.ResponseWriter, r *http.Request) { + ctx, span := tracer.Start(r.Context(), "roll") + defer span.End() + + roll := 1 + rand.Intn(6) + + logger.InfoContext(ctx, "Anonymous player is rolling the dice", "result", roll) + + rollValueAttr := attribute.Int("roll.value", roll) + span.SetAttributes(rollValueAttr) + rollCnt.Add(ctx, 1, metric.WithAttributes(rollValueAttr)) + + resp := strconv.Itoa(roll) + "\n" + if _, err := io.WriteString(w, resp); err != nil { + logger.ErrorContext(ctx, "Write failed", "error", err) + } +} diff --git a/example/dice/rolldice_go1.22.go b/example/dice/rolldice_go1.22.go new file mode 100644 index 000000000000..99b249165e3e --- /dev/null +++ b/example/dice/rolldice_go1.22.go @@ -0,0 +1,35 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +//go:build go1.22 +// +build go1.22 + +package main + +import ( + "io" + "math/rand" + "net/http" + "strconv" + + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/metric" +) + +func rolldice(w http.ResponseWriter, r *http.Request) { + ctx, span := tracer.Start(r.Context(), "roll") + defer span.End() + + roll := 1 + rand.Intn(6) + + logger.InfoContext(ctx, "Anonymous player is rolling the dice", "result", roll) + + rollValueAttr := attribute.Int("roll.value", roll) + span.SetAttributes(rollValueAttr) + rollCnt.Add(ctx, 1, metric.WithAttributes(rollValueAttr)) + + resp := strconv.Itoa(roll) + "\n" + if _, err := io.WriteString(w, resp); err != nil { + logger.ErrorContext(ctx, "Write failed", "error", err) + } +}