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 |