Jaeger SDK is the code for start tracing the service's operation in distributed system
type JaegerConfig struct {
Host string `mapstructure:"host"`
Environment string `mapstructure:"env"`
ServiceName string `mapstructure:"service-name"`
}
name |
description |
example |
Host |
The host of the Jaeger in format http://hostname:port |
http://localhost:14268 |
Environment |
Environment of current service |
local |
ServiceName |
The name of service |
gateway |
Initialize by calling gosdk.SetupTracer
if err := gosdk.SetupTracer(*JaegerConfig, tracerName){
// handle error
}
name |
description |
example |
JaegerConfig |
Jaeger Configuration |
|
tracerName |
name of the tracer |
gateway |
Start to trace
newCtx, span := gosdk.StartTracer(tracerName, spanName, ctx, opt...)
if span != nil {
defer span.End()
}
name |
description |
example |
tracerName |
name of tracer |
verify-ticket-handler |
spanName |
name of span |
verify-ticket |
ctx |
context to pass to another service with span |
|
opt |
span start option (optional) |
|
name |
description |
example |
newCtx |
context from tracer |
|
span |
interface of span in tracer |
|
Utils function is the function that can be use in a various scenario
the function use for convert bool
to *bool
boolPtr := gosdk.BoolAdr(boolean)
name |
description |
example |
boolean |
the boolean value |
true |
name |
description |
example |
boolPtr |
the boolean pointer |
|
the function use for convert string
to *string
stringPtr := gosdk.StringAdr(string)
name |
description |
example |
string |
the string value |
"hello world" |
name |
description |
example |
stringPtr |
the string pointer |
|
the function use for convert int
to *int
intPtr := gosdk.IntAdr(int)
name |
description |
example |
int |
the int value |
999 |
name |
description |
example |
intPtr |
the int pointer |
|
the function use for convert uuid.UUID
to *uuid.UUID
uuidPtr := gosdk.UUIDAdr(uuid)
name |
description |
example |
uuid |
the uuid value |
|
name |
description |
example |
uuidPtr |
the uuid pointer |
|
the function use to get the current time pointer
currentTimePtr := gosdk.GetCurrentTimePtr()
name |
description |
example |
currentTimePtr |
current time pointer in *time.Time |
|
the function use to get the 2 last digit of current year
year2Digit := gosdk.GetCurrentYear2Digit()
name |
description |
example |
year2Digit |
current year in 2 last digit int |
66 |
the function use to get the current year of student from the student id
year, err := gosdk.CalYearFromID(studentID)
if err != nil{
// handle error
}
name |
description |
example |
studentID |
the student id |
633xxxxx21 |
name |
description |
example |
year |
the year from student id |
3 |
Check is the variable existed in map
if ok := gosdk.IsExisted(map, key); !ok {
// handle error
}
name |
description |
example |
map |
the map structure |
|
key |
the key of map that you want to check |
"hello" |
name |
description |
example |
ok |
boolean is existed |
true |
merge slices of string into one slice
resultSlice := gosdk.MergeStringSlice(slice1, slice2, ...)
name |
description |
example |
slice |
the string slice |
|
name |
description |
example |
resultSlice |
the slice of string that was merged |
true |
Trim the string if existed in list
result := gosdk.TrimInList(word, sep, trimList)
name |
description |
example |
word |
the input word |
/v1/path |
sep |
the separate work |
/ |
trimList |
the list of word that want to trim in map[string]struct |
map[string]struct{}{"v1": {}} |
name |
description |
example |
result |
result string that was trimmed |
/path |