mirror of
https://gitee.com/johng/gf.git
synced 2024-12-02 04:07:47 +08:00
92 lines
1.8 KiB
Go
92 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gogf/gf/contrib/trace/jaeger/v2"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/net/gtrace"
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
"github.com/gogf/gf/v2/util/gutil"
|
|
)
|
|
|
|
const (
|
|
ServiceName = "inprocess"
|
|
JaegerUdpEndpoint = "localhost:6831"
|
|
)
|
|
|
|
func main() {
|
|
var ctx = gctx.New()
|
|
tp, err := jaeger.Init(ServiceName, JaegerUdpEndpoint)
|
|
if err != nil {
|
|
g.Log().Fatal(ctx, err)
|
|
}
|
|
defer tp.Shutdown(ctx)
|
|
|
|
ctx, span := gtrace.NewSpan(ctx, "main")
|
|
defer span.End()
|
|
|
|
// Trace 1.
|
|
user1 := GetUser(ctx, 1)
|
|
g.Dump(user1)
|
|
|
|
// Trace 2.
|
|
user100 := GetUser(ctx, 100)
|
|
g.Dump(user100)
|
|
}
|
|
|
|
// GetUser retrieves and returns hard coded user data for demonstration.
|
|
func GetUser(ctx context.Context, id int) g.Map {
|
|
ctx, span := gtrace.NewSpan(ctx, "GetUser")
|
|
defer span.End()
|
|
m := g.Map{}
|
|
gutil.MapMerge(
|
|
m,
|
|
GetInfo(ctx, id),
|
|
GetDetail(ctx, id),
|
|
GetScores(ctx, id),
|
|
)
|
|
return m
|
|
}
|
|
|
|
// GetInfo retrieves and returns hard coded user info for demonstration.
|
|
func GetInfo(ctx context.Context, id int) g.Map {
|
|
ctx, span := gtrace.NewSpan(ctx, "GetInfo")
|
|
defer span.End()
|
|
if id == 100 {
|
|
return g.Map{
|
|
"id": 100,
|
|
"name": "john",
|
|
"gender": 1,
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetDetail retrieves and returns hard coded user detail for demonstration.
|
|
func GetDetail(ctx context.Context, id int) g.Map {
|
|
ctx, span := gtrace.NewSpan(ctx, "GetDetail")
|
|
defer span.End()
|
|
if id == 100 {
|
|
return g.Map{
|
|
"site": "https://goframe.org",
|
|
"email": "john@goframe.org",
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetScores retrieves and returns hard coded user scores for demonstration.
|
|
func GetScores(ctx context.Context, id int) g.Map {
|
|
ctx, span := gtrace.NewSpan(ctx, "GetScores")
|
|
defer span.End()
|
|
if id == 100 {
|
|
return g.Map{
|
|
"math": 100,
|
|
"english": 60,
|
|
"chinese": 50,
|
|
}
|
|
}
|
|
return nil
|
|
}
|