import("context""log""trpc.group/trpc-go/trpc-agent-go/telemetry/langfuse")funcmain(){// Start trace with Langfuse integration using environment variablesclean,err:=langfuse.Start(context.Background())iferr!=nil{log.Fatalf("Failed to start trace telemetry: %v",err)}deferfunc(){iferr:=clean(context.Background());err!=nil{log.Printf("Failed to clean up trace telemetry: %v",err)}}()
packagemainimport("context""fmt""time"ametric"trpc.group/trpc-go/trpc-agent-go/telemetry/metric"atrace"trpc.group/trpc-go/trpc-agent-go/telemetry/trace""trpc.group/trpc-go/trpc-agent-go/log""go.opentelemetry.io/otel/attribute""go.opentelemetry.io/otel/metric""go.opentelemetry.io/otel/trace")funcmain(){// 启动指标收集mp,err:=ametric.NewMeterProvider(context.Background(),ametric.WithEndpoint("localhost:4318"),ametric.WithProtocol("http"),)iferr!=nil{log.Fatalf("Failed to create meter provider: %v",err)}defermp.Shutdown(context.Background())ametric.InitMeterProvider(mp)meter:=mp.Meter("trpc_agent_go.app")iferr:=processAgentRequest(context.Background(),meter);err!=nil{log.Errorf("processAgentRequest failed: %v",err)}}funcprocessAgentRequest(ctxcontext.Context,metermetric.Meter)error{// 创建追踪 spanctx,span:=atrace.Tracer.Start(ctx,"process-agent-request",trace.WithAttributes(attribute.String("agent.type","chat"),attribute.String("user.id","user123"),),)deferspan.End()// 创建指标计数器requestCounter,err:=meter.Int64Counter("agent.requests.total",metric.WithDescription("Total number of agent requests"),)iferr!=nil{returnerr}// 记录请求requestCounter.Add(ctx,1,metric.WithAttributes(attribute.String("agent.type","chat"),attribute.String("status","success"),))// 模拟处理过程time.Sleep(100*time.Millisecond)returnnil}