sync
This commit is contained in:
97
example/main.go
Normal file
97
example/main.go
Normal file
@ -0,0 +1,97 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"maal/tracer/pkg/level"
|
||||
"maal/tracer/pkg/tracer"
|
||||
"os"
|
||||
"os/signal"
|
||||
"time"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
|
||||
type AttributesX struct {
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
main := fiber.New(fiber.Config{
|
||||
StreamRequestBody: true,
|
||||
})
|
||||
|
||||
main.Use(tracer.NewTracer(tracer.Config{
|
||||
AppName: "test",
|
||||
JaegerUrl: "http://localhost:4318/v1/traces",
|
||||
GelfUrl: "192.168.220.30:12201",
|
||||
Version: "1",
|
||||
}))
|
||||
defer tracer.ShutdownTracer()
|
||||
|
||||
main.Get("/", func(c *fiber.Ctx) error {
|
||||
ctx, span := tracer.Handler(c)
|
||||
defer span.End()
|
||||
|
||||
span.AddEvent(
|
||||
"smthing is happening",
|
||||
trace.WithAttributes(
|
||||
tracer.LongMessage("smthing is happening - long"),
|
||||
tracer.JsonAttr("smth", map[string]interface{}{
|
||||
"xd": 1,
|
||||
}),
|
||||
tracer.Level(level.ALERT),
|
||||
),
|
||||
)
|
||||
|
||||
err := Serv(ctx)
|
||||
if err != nil {
|
||||
return tracer.RecordError(span, err)
|
||||
}
|
||||
|
||||
return c.SendString("xd")
|
||||
})
|
||||
|
||||
// handle interrupts (shutdown)
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, os.Interrupt)
|
||||
go func() {
|
||||
oscall := <-c
|
||||
log.Printf("system call: %+v", oscall)
|
||||
main.Shutdown()
|
||||
}()
|
||||
if err := main.Listen(fmt.Sprintf(":%d", 3344)); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
fmt.Println("Shutting down...")
|
||||
|
||||
}
|
||||
|
||||
func Serv(ctx context.Context) *fiber.Error {
|
||||
ctx, span := tracer.Service(ctx, "serv", "name of the span")
|
||||
defer span.End()
|
||||
|
||||
for range []int{1, 2, 3} {
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
}
|
||||
|
||||
err := Repo(ctx)
|
||||
if err != nil {
|
||||
return fiber.NewError(500, "xd")
|
||||
}
|
||||
|
||||
return fiber.NewError(500, "x")
|
||||
}
|
||||
|
||||
func Repo(ctx context.Context) error {
|
||||
ctx, span := tracer.Repository(ctx, "serv", "name of the span")
|
||||
defer span.End()
|
||||
|
||||
for range []int{1, 2, 3} {
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user