package main import ( "github.com/gogf/gf/contrib/trace/otlphttp/v2" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/net/gtrace" "github.com/gogf/gf/v2/os/gctx" ) const ( serviceName = "otlp-http-server" endpoint = "tracing-analysis-dc-hz.aliyuncs.com" path = "adapt_******_******/api/otlp/traces" ) func main() { var ctx = gctx.New() tp, err := otlphttp.Init(serviceName, endpoint, path) if err != nil { g.Log().Fatal(ctx, err) } defer tp.Shutdown(ctx) s := g.Server() s.Group("/", func(group *ghttp.RouterGroup) { group.GET("/hello", HelloHandler) }) s.SetPort(8199) s.Run() } // HelloHandler is a demo handler for tracing. func HelloHandler(r *ghttp.Request) { ctx, span := gtrace.NewSpan(r.Context(), "HelloHandler") defer span.End() value := gtrace.GetBaggageVar(ctx, "name").String() r.Response.Write("hello:", value) }