Documentation
¶
Index ¶
- Variables
- func ClearComment()
- func GetComment() string
- func GetTraceId() string
- func SetComment(cmt ...string)
- type ConsumerContext
- type EmptyManager
- func (*EmptyManager) EntryEventConsumer(server, eventName, subscribeName string) *TraceContext
- func (*EmptyManager) EntryFSchedule(taskGroupName string, taskId int64, data map[string]string) *TraceContext
- func (*EmptyManager) EntryMqConsumer(parentTraceId, parentAppName, server string, queueName string, ...) *TraceContext
- func (*EmptyManager) EntryQueueConsumer(queueName, subscribeName string) *TraceContext
- func (*EmptyManager) EntryTask(taskName string) *TraceContext
- func (*EmptyManager) EntryTaskGroup(taskName string, taskGroupName string, taskId int64) *TraceContext
- func (*EmptyManager) EntryWatchKey(key string) *TraceContext
- func (*EmptyManager) EntryWebApi(domain string, path string, method string, contentType string, ...) *TraceContext
- func (*EmptyManager) EntryWebSocket(domain string, path string, header map[string]string, requestIp string) *TraceContext
- func (*EmptyManager) GetCurTrace() *TraceContext
- func (*EmptyManager) GetTraceId() string
- func (*EmptyManager) Push(traceContext *TraceContext, err error)
- func (*EmptyManager) TraceDatabase() *TraceDetail
- func (*EmptyManager) TraceDatabaseOpen(dbName string, connectString string) *TraceDetail
- func (*EmptyManager) TraceElasticsearch(method string, IndexName string, AliasesName string) *TraceDetail
- func (*EmptyManager) TraceEtcd(method string, key string, leaseID int64) *TraceDetail
- func (*EmptyManager) TraceEventPublish(eventName string) *TraceDetail
- func (*EmptyManager) TraceHand(name string) *TraceDetail
- func (*EmptyManager) TraceHttp(method string, url string) *TraceDetail
- func (*EmptyManager) TraceMq(method string, server string, exchange string) *TraceDetail
- func (*EmptyManager) TraceMqSend(method string, server string, exchange string, routingKey string) *TraceDetail
- func (*EmptyManager) TraceRedis(method string, key string, field string) *TraceDetail
- type ExceptionStack
- type ExceptionStackDetail
- type IManager
- type TaskContext
- type TraceContext
- func (receiver *TraceContext) AddDetail(traceDetail *TraceDetail)
- func (receiver *TraceContext) Error(err error)
- func (receiver *TraceContext) GetAppInfo() (string, string, string, string, string)
- func (receiver *TraceContext) Ignore()
- func (receiver *TraceContext) IgnoreDetail(f func())
- func (receiver *TraceContext) IsIgnore() bool
- func (receiver *TraceContext) SetBody(requestBody string, statusCode int, responseBody string)
- func (receiver *TraceContext) SetResponseBody(responseBody string)
- type TraceDetail
- type TraceDetailDatabase
- type TraceDetailEs
- type TraceDetailEtcd
- type TraceDetailEvent
- type TraceDetailGrpc
- type TraceDetailHand
- type TraceDetailHttp
- type TraceDetailMq
- type TraceDetailRedis
- type WatchKeyContext
- type WebContext
Constants ¶
This section is empty.
Variables ¶
View Source
var ComNames = []string{"/farseer-go/async/", "/farseer-go/cache/", "/farseer-go/cacheMemory/", "/farseer-go/collections/", "/farseer-go/data/", "/farseer-go/elasticSearch/", "/farseer-go/etcd/", "/farseer-go/eventBus/", "/farseer-go/fs/", "/farseer-go/fSchedule/", "/farseer-go/linkTrace/", "/farseer-go/mapper/", "/farseer-go/queue/", "/farseer-go/rabbit/", "/farseer-go/redis/", "/farseer-go/redisStream/", "/farseer-go/tasks/", "/farseer-go/utils/", "/farseer-go/webapi/", "/src/reflect/", "/usr/local/go/src/", "gorm.io/"}
View Source
var CurTraceContext = asyncLocal.New[*TraceContext]()
CurTraceContext 当前请求的Trace上下文
View Source
var ScopeLevel = asyncLocal.New[[]*TraceDetail]()
ScopeLevel 层级列表
Functions ¶
func GetTraceId ¶ added in v0.16.0
func GetTraceId() string
Types ¶
type ConsumerContext ¶ added in v0.16.0
type ConsumerContext struct {
ConsumerServer string `json:"cs"` // MQ服务器
ConsumerQueueName string `json:"cq"` // 队列名称
ConsumerRoutingKey string `json:"cr"` // 路由KEY
}
func (ConsumerContext) IsNil ¶ added in v0.16.0
func (receiver ConsumerContext) IsNil() bool
type EmptyManager ¶
type EmptyManager struct {
}
func (*EmptyManager) EntryEventConsumer ¶ added in v0.13.0
func (*EmptyManager) EntryEventConsumer(server, eventName, subscribeName string) *TraceContext
func (*EmptyManager) EntryFSchedule ¶
func (*EmptyManager) EntryFSchedule(taskGroupName string, taskId int64, data map[string]string) *TraceContext
func (*EmptyManager) EntryMqConsumer ¶
func (*EmptyManager) EntryMqConsumer(parentTraceId, parentAppName, server string, queueName string, routingKey string) *TraceContext
func (*EmptyManager) EntryQueueConsumer ¶
func (*EmptyManager) EntryQueueConsumer(queueName, subscribeName string) *TraceContext
func (*EmptyManager) EntryTask ¶
func (*EmptyManager) EntryTask(taskName string) *TraceContext
func (*EmptyManager) EntryTaskGroup ¶ added in v0.12.0
func (*EmptyManager) EntryTaskGroup(taskName string, taskGroupName string, taskId int64) *TraceContext
func (*EmptyManager) EntryWatchKey ¶
func (*EmptyManager) EntryWatchKey(key string) *TraceContext
func (*EmptyManager) EntryWebApi ¶
func (*EmptyManager) EntryWebApi(domain string, path string, method string, contentType string, header map[string]string, requestIp string) *TraceContext
func (*EmptyManager) EntryWebSocket ¶ added in v0.15.0
func (*EmptyManager) EntryWebSocket(domain string, path string, header map[string]string, requestIp string) *TraceContext
func (*EmptyManager) GetCurTrace ¶
func (*EmptyManager) GetCurTrace() *TraceContext
func (*EmptyManager) GetTraceId ¶ added in v0.14.0
func (*EmptyManager) GetTraceId() string
func (*EmptyManager) Push ¶ added in v0.16.0
func (*EmptyManager) Push(traceContext *TraceContext, err error)
func (*EmptyManager) TraceDatabase ¶
func (*EmptyManager) TraceDatabase() *TraceDetail
func (*EmptyManager) TraceDatabaseOpen ¶
func (*EmptyManager) TraceDatabaseOpen(dbName string, connectString string) *TraceDetail
func (*EmptyManager) TraceElasticsearch ¶
func (*EmptyManager) TraceElasticsearch(method string, IndexName string, AliasesName string) *TraceDetail
func (*EmptyManager) TraceEtcd ¶
func (*EmptyManager) TraceEtcd(method string, key string, leaseID int64) *TraceDetail
func (*EmptyManager) TraceEventPublish ¶ added in v0.13.0
func (*EmptyManager) TraceEventPublish(eventName string) *TraceDetail
func (*EmptyManager) TraceHand ¶
func (*EmptyManager) TraceHand(name string) *TraceDetail
func (*EmptyManager) TraceHttp ¶
func (*EmptyManager) TraceHttp(method string, url string) *TraceDetail
func (*EmptyManager) TraceMq ¶
func (*EmptyManager) TraceMq(method string, server string, exchange string) *TraceDetail
func (*EmptyManager) TraceMqSend ¶
func (*EmptyManager) TraceMqSend(method string, server string, exchange string, routingKey string) *TraceDetail
func (*EmptyManager) TraceRedis ¶
func (*EmptyManager) TraceRedis(method string, key string, field string) *TraceDetail
type ExceptionStack ¶
type ExceptionStack struct {
ExceptionIsException bool // 是否执行异常
ExceptionMessage string // 异常信息
ExceptionDetails []ExceptionStackDetail // 异常详情
}
func (ExceptionStack) IsNil ¶ added in v0.11.0
func (receiver ExceptionStack) IsNil() bool
type ExceptionStackDetail ¶ added in v0.16.2
type ExceptionStackDetail struct {
ExceptionCallFile string // 调用者文件路径
ExceptionCallLine int // 调用者行号
ExceptionCallFuncName string // 调用者函数名称
}
func GetCallerInfo ¶
func GetCallerInfo() []ExceptionStackDetail
type IManager ¶
type IManager interface {
// EntryWebApi 创建webapi的链路追踪入口
EntryWebApi(domain string, path string, method string, contentType string, headerDictionary map[string]string, requestIp string) *TraceContext
// EntryWebSocket 创建WebSocket的链路追踪入口
EntryWebSocket(domain string, path string, headerDictionary map[string]string, requestIp string) *TraceContext
// EntryMqConsumer 创建MQ消费入口
EntryMqConsumer(parentTraceId, parentAppName, server string, queueName string, routingKey string) *TraceContext
// EntryQueueConsumer 创建Queue消费入口
EntryQueueConsumer(queueName, subscribeName string) *TraceContext
// EntryEventConsumer 创建Event消费入口
EntryEventConsumer(server, eventName, subscribeName string) *TraceContext
// EntryTask 创建本地任务入口
EntryTask(taskName string) *TraceContext
// EntryTaskGroup 创建本地任务入口(调度中心专用)
EntryTaskGroup(taskName string, taskGroupName string, taskId int64) *TraceContext
// EntryFSchedule 创建调度中心入口
EntryFSchedule(taskGroupName string, taskId int64, data map[string]string) *TraceContext
// EntryWatchKey 创建etcd入口
EntryWatchKey(key string) *TraceContext
// TraceDatabaseOpen 数据库埋点
TraceDatabaseOpen(dbName string, connectString string) *TraceDetail
// TraceDatabase 数据库埋点
TraceDatabase() *TraceDetail
// TraceElasticsearch Elasticsearch埋点
TraceElasticsearch(method string, IndexName string, AliasesName string) *TraceDetail
// TraceEtcd etcd埋点
TraceEtcd(method string, key string, leaseID int64) *TraceDetail
// TraceHand 手动埋点
TraceHand(name string) *TraceDetail
// TraceEventPublish 事件发布
TraceEventPublish(eventName string) *TraceDetail
// TraceMqSend send埋点
TraceMqSend(method string, server string, exchange string, routingKey string) *TraceDetail
// TraceMq open、create埋点
TraceMq(method string, server string, exchange string) *TraceDetail
// TraceRedis Redis埋点
TraceRedis(method string, key string, field string) *TraceDetail
// TraceHttp http埋点
TraceHttp(method string, url string) *TraceDetail
// 推送到队列
Push(traceContext *TraceContext, err error)
}
IManager 链路追踪管理
type TaskContext ¶ added in v0.16.0
type TaskContext struct {
TaskName string `json:"tn"` // 任务名称
TaskGroupName string `json:"tgn"` // 任务组ID
TaskId int64 `json:"tid"` // 任务ID
TaskData map[string]string `json:"td"` // 任务数据
}
func (TaskContext) IsNil ¶ added in v0.16.0
func (receiver TaskContext) IsNil() bool
type TraceContext ¶ added in v0.16.0
type TraceContext struct {
TraceId string `json:"tid"` // 上下文ID
AppId string `json:"aid"` // 应用ID
AppName string `json:"an"` // 应用名称
AppIp string `json:"aip"` // 应用IP
ParentAppName string `json:"pn"` // 上游应用
TraceLevel int `json:"tl"` // 逐层递增(显示上下游顺序)
StartTs int64 `json:"st"` // 调用开始时间戳(微秒)
EndTs int64 `json:"et"` // 调用结束时间戳(微秒)
UseTs time.Duration `json:"ut"` // 总共使用时间(微秒)
UseDesc string `json:"ud"` // 总共使用时间(描述)
TraceType eumTraceType.Enum `json:"tt"` // 状态码
List []*TraceDetail `json:"l"` // 调用的上下文trace.TraceDetail
TraceCount int `json:"tc"` // 追踪明细数量
Exception *ExceptionStack `json:"e"` // 异常信息
WebContext
ConsumerContext
TaskContext
WatchKeyContext
CreateAt dateTime.DateTime `json:"ca"` // 请求时间
// contains filtered or unexported fields
}
func NewTraceContext ¶ added in v0.16.0
func NewTraceContext() *TraceContext
func (*TraceContext) AddDetail ¶ added in v0.16.0
func (receiver *TraceContext) AddDetail(traceDetail *TraceDetail)
AddDetail 添加链路明细
func (*TraceContext) Error ¶ added in v0.16.0
func (receiver *TraceContext) Error(err error)
func (*TraceContext) GetAppInfo ¶ added in v0.16.0
func (*TraceContext) Ignore ¶ added in v0.16.0
func (receiver *TraceContext) Ignore()
func (*TraceContext) IgnoreDetail ¶ added in v0.16.0
func (receiver *TraceContext) IgnoreDetail(f func())
func (*TraceContext) IsIgnore ¶ added in v0.16.0
func (receiver *TraceContext) IsIgnore() bool
func (*TraceContext) SetBody ¶ added in v0.16.0
func (receiver *TraceContext) SetBody(requestBody string, statusCode int, responseBody string)
func (*TraceContext) SetResponseBody ¶ added in v0.16.0
func (receiver *TraceContext) SetResponseBody(responseBody string)
type TraceDetail ¶ added in v0.16.0
type TraceDetail struct {
// TraceId string // 上下文ID
// AppId string // 应用ID
// AppName string // 应用名称
// AppIp string // 应用IP
// ParentAppName string // 上游应用
TraceLevel int // 逐层递增(显示上下游顺序)
DetailId string // 明细ID
ParentDetailId string // 父级明细ID
Level int // 当前层级(入口为0层)
Comment string // 调用注释
MethodName string // 调用方法
CallType eumCallType.Enum // 调用类型
Timeline time.Duration // 从入口开始统计(微秒)
UnTraceTs time.Duration // 上一次结束到现在开始之间未Trace的时间(微秒)
StartTs int64 // 调用开始时间戳(微秒)
EndTs int64 // 调用停止时间戳(微秒)
Exception *ExceptionStack // 异常信息
CreateAt dateTime.DateTime // 请求时间
TraceDetailHand
TraceDetailDatabase
TraceDetailEs
TraceDetailEtcd
TraceDetailEvent
TraceDetailGrpc
TraceDetailHttp
TraceDetailMq
TraceDetailRedis
// contains filtered or unexported fields
}
TraceDetail 埋点明细(基类)
func NewTraceDetail ¶ added in v0.16.0
func NewTraceDetail(callType eumCallType.Enum, methodName string) *TraceDetail
func (*TraceDetail) End ¶ added in v0.16.0
func (receiver *TraceDetail) End(err error)
End 链路明细执行完后,统计用时
func (*TraceDetail) Ignore ¶ added in v0.16.0
func (receiver *TraceDetail) Ignore()
func (*TraceDetail) IsIgnore ¶ added in v0.16.0
func (receiver *TraceDetail) IsIgnore() bool
func (*TraceDetail) Join ¶ added in v0.16.0
func (receiver *TraceDetail) Join()
func (*TraceDetail) Run ¶ added in v0.16.0
func (receiver *TraceDetail) Run(fn func())
func (*TraceDetail) ToString ¶ added in v0.16.0
func (receiver *TraceDetail) ToString() string
type TraceDetailDatabase ¶ added in v0.16.0
type TraceDetailEs ¶ added in v0.16.0
type TraceDetailEtcd ¶ added in v0.16.0
type TraceDetailEvent ¶ added in v0.16.0
type TraceDetailEvent struct {
EventName string
}
TraceDetailEvent 事件埋点
type TraceDetailGrpc ¶ added in v0.16.0
type TraceDetailHand ¶ added in v0.16.0
type TraceDetailHand struct {
HandName string
}
TraceDetailHand 手动埋点
func (*TraceDetailHand) SetName ¶ added in v0.16.0
func (receiver *TraceDetailHand) SetName(name string)
type TraceDetailHttp ¶ added in v0.16.0
type TraceDetailMq ¶ added in v0.16.0
type TraceDetailRedis ¶ added in v0.16.0
type TraceDetailRedis struct {
RedisKey string // redis key
RedisField string // hash field
RedisRowsAffected int // 影响行数
}
func (*TraceDetailRedis) SetRows ¶ added in v0.16.0
func (receiver *TraceDetailRedis) SetRows(rows int)
type WatchKeyContext ¶ added in v0.16.0
type WatchKeyContext struct {
WatchKey string `json:"wk"` // KEY
}
func (WatchKeyContext) IsNil ¶ added in v0.16.0
func (receiver WatchKeyContext) IsNil() bool
type WebContext ¶ added in v0.16.0
type WebContext struct {
WebDomain string `json:"wd"` // 请求域名
WebPath string `json:"wp"` // 请求地址
WebMethod string `json:"wm"` // 请求方式
WebContentType string `json:"wct"` // 请求内容类型
WebStatusCode int `json:"wsc"` // 状态码
WebHeaders map[string]string `json:"wh"` // 请求头部
WebRequestBody string `json:"wrb"` // 请求参数
WebResponseBody string `json:"wpb"` // 输出参数
WebRequestIp string `json:"wip"` // 客户端IP
}
func (WebContext) IsNil ¶ added in v0.16.0
func (receiver WebContext) IsNil() bool
Source Files
¶
Click to show internal directories.
Click to hide internal directories.