Added the files for this package.
This commit is contained in:
parent
4424b06532
commit
d56374a8f7
32 changed files with 2179 additions and 0 deletions
examples/multi-services/back-svc
13
examples/multi-services/back-svc/Dockerfile
Normal file
13
examples/multi-services/back-svc/Dockerfile
Normal file
|
@ -0,0 +1,13 @@
|
|||
FROM golang:1.22-alpine3.20
|
||||
WORKDIR /go/src/toastielab.dev/toastie-stuff/otelchi
|
||||
|
||||
RUN apk --no-cache add curl
|
||||
COPY . .
|
||||
|
||||
WORKDIR /go/src/toastielab.dev/toastie-stuff/otelchi/examples/multi-services
|
||||
RUN go mod download -x
|
||||
|
||||
WORKDIR /go/src/toastielab.dev/toastie-stuff/otelchi/examples/multi-services/back-svc
|
||||
RUN go build -o server
|
||||
|
||||
ENTRYPOINT ["./server"]
|
54
examples/multi-services/back-svc/main.go
Normal file
54
examples/multi-services/back-svc/main.go
Normal file
|
@ -0,0 +1,54 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"math/rand"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
|
||||
"toastielab.dev/toastie-stuff/otelchi"
|
||||
"toastielab.dev/toastie-stuff/otelchi/examples/multi-services/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
addr = ":8091"
|
||||
serviceName = "back-svc"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// init tracer provider
|
||||
tracer, err := utils.NewTracer(serviceName)
|
||||
if err != nil {
|
||||
log.Fatalf("unable to initialize tracer provider due: %v", err)
|
||||
}
|
||||
|
||||
if err = utils.NewMeter(serviceName); err != nil {
|
||||
log.Fatalf("unable to initialize meter provider due: %v", err)
|
||||
}
|
||||
|
||||
// define router
|
||||
r := chi.NewRouter()
|
||||
r.Use(otelchi.Middleware(serviceName, otelchi.WithChiRoutes(r)))
|
||||
r.Get("/", utils.HealthCheckHandler)
|
||||
r.Get("/name", func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Write([]byte(generateName(r.Context(), tracer)))
|
||||
})
|
||||
log.Printf("back service is listening on %v", addr)
|
||||
err = http.ListenAndServe(addr, r)
|
||||
if err != nil {
|
||||
log.Fatalf("unable to execute server due: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func generateName(ctx context.Context, tracer trace.Tracer) string {
|
||||
_, span := tracer.Start(ctx, "generateName")
|
||||
defer span.End()
|
||||
|
||||
rndNum := rand.New(rand.NewSource(time.Now().UnixNano())).Intn(100000)
|
||||
return fmt.Sprintf("user_%v", rndNum)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue