Documentation
¶
Index ¶
- Variables
- func ClearComment()
- func GetCallerInfo() (string, string, int)
- func GetComment() string
- func SetComment(cmt ...string)
- type BaseTraceDetail
- func (receiver *BaseTraceDetail) End(err error)
- func (receiver *BaseTraceDetail) GetLevel() int
- func (receiver *BaseTraceDetail) Ignore()
- func (receiver *BaseTraceDetail) IsIgnore() bool
- func (receiver *BaseTraceDetail) Run(fn func())
- func (receiver *BaseTraceDetail) SetHttpRequest(url string, reqHead map[string]any, rspHead map[string]string, ...)
- func (receiver *BaseTraceDetail) SetRows(rows int)
- func (receiver *BaseTraceDetail) SetSql(connectionString string, dbName string, tableName string, sql string, ...)
- type EmptyManager
- func (*EmptyManager) EntryEventConsumer(server, eventName, subscribeName string) ITraceContext
- func (*EmptyManager) EntryFSchedule(taskGroupName string, taskId int64, data map[string]string) ITraceContext
- func (*EmptyManager) EntryMqConsumer(parentTraceId, parentAppName, server string, queueName string, ...) ITraceContext
- func (*EmptyManager) EntryQueueConsumer(queueName, subscribeName string) ITraceContext
- func (*EmptyManager) EntryTask(taskName string) ITraceContext
- func (*EmptyManager) EntryTaskGroup(taskName string, taskGroupName string, taskId int64) ITraceContext
- func (*EmptyManager) EntryWatchKey(key string) ITraceContext
- func (*EmptyManager) EntryWebApi(domain string, path string, method string, contentType string, ...) ITraceContext
- func (*EmptyManager) EntryWebSocket(domain string, path string, header map[string]string, requestIp string) ITraceContext
- func (*EmptyManager) GetCurTrace() ITraceContext
- func (*EmptyManager) GetTraceId() string
- func (*EmptyManager) TraceDatabase() ITraceDetail
- func (*EmptyManager) TraceDatabaseOpen(dbName string, connectString string) ITraceDetail
- func (*EmptyManager) TraceElasticsearch(method string, IndexName string, AliasesName string) ITraceDetail
- func (*EmptyManager) TraceEtcd(method string, key string, leaseID int64) ITraceDetail
- func (*EmptyManager) TraceEventPublish(eventName string) ITraceDetail
- func (*EmptyManager) TraceHand(name string) ITraceDetail
- func (*EmptyManager) TraceHttp(method string, url string) ITraceDetail
- func (*EmptyManager) TraceMq(method string, server string, exchange string) ITraceDetail
- func (*EmptyManager) TraceMqSend(method string, server string, exchange string, routingKey string) ITraceDetail
- func (*EmptyManager) TraceRedis(method string, key string, field string) ITraceDetail
- type ExceptionStack
- type IManager
- type ITraceContext
- type ITraceDetail
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[ITraceContext]()
CurTraceContext 当前请求的Trace上下文
View Source
var ScopeLevel = asyncLocal.New[[]BaseTraceDetail]()
ScopeLevel 层级列表
Functions ¶
func GetCallerInfo ¶
Types ¶
type BaseTraceDetail ¶
type BaseTraceDetail struct { TraceId string // 上下文ID TraceLevel int // 逐层递增(显示上下游顺序) AppId string // 应用ID AppName string // 应用名称 AppIp string // 应用IP ParentAppName string // 上游应用 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 // 调用停止时间戳(微秒) UseTs time.Duration // 总共使用时间微秒 UseDesc string // 总共使用时间(描述) Exception *ExceptionStack // 异常信息 CreateAt dateTime.DateTime // 请求时间 // contains filtered or unexported fields }
BaseTraceDetail 埋点明细(基类)
func (*BaseTraceDetail) GetLevel ¶
func (receiver *BaseTraceDetail) GetLevel() int
func (*BaseTraceDetail) Ignore ¶
func (receiver *BaseTraceDetail) Ignore()
func (*BaseTraceDetail) IsIgnore ¶
func (receiver *BaseTraceDetail) IsIgnore() bool
func (*BaseTraceDetail) Run ¶ added in v0.15.0
func (receiver *BaseTraceDetail) Run(fn func())
func (*BaseTraceDetail) SetHttpRequest ¶ added in v0.12.0
func (*BaseTraceDetail) SetRows ¶ added in v0.15.0
func (receiver *BaseTraceDetail) SetRows(rows int)
type EmptyManager ¶
type EmptyManager struct { }
func (*EmptyManager) EntryEventConsumer ¶ added in v0.13.0
func (*EmptyManager) EntryEventConsumer(server, eventName, subscribeName string) ITraceContext
func (*EmptyManager) EntryFSchedule ¶
func (*EmptyManager) EntryFSchedule(taskGroupName string, taskId int64, data map[string]string) ITraceContext
func (*EmptyManager) EntryMqConsumer ¶
func (*EmptyManager) EntryMqConsumer(parentTraceId, parentAppName, server string, queueName string, routingKey string) ITraceContext
func (*EmptyManager) EntryQueueConsumer ¶
func (*EmptyManager) EntryQueueConsumer(queueName, subscribeName string) ITraceContext
func (*EmptyManager) EntryTask ¶
func (*EmptyManager) EntryTask(taskName string) ITraceContext
func (*EmptyManager) EntryTaskGroup ¶ added in v0.12.0
func (*EmptyManager) EntryTaskGroup(taskName string, taskGroupName string, taskId int64) ITraceContext
func (*EmptyManager) EntryWatchKey ¶
func (*EmptyManager) EntryWatchKey(key string) ITraceContext
func (*EmptyManager) EntryWebApi ¶
func (*EmptyManager) EntryWebApi(domain string, path string, method string, contentType string, header map[string]string, requestIp string) ITraceContext
func (*EmptyManager) EntryWebSocket ¶ added in v0.15.0
func (*EmptyManager) EntryWebSocket(domain string, path string, header map[string]string, requestIp string) ITraceContext
func (*EmptyManager) GetCurTrace ¶
func (*EmptyManager) GetCurTrace() ITraceContext
func (*EmptyManager) GetTraceId ¶ added in v0.14.0
func (*EmptyManager) GetTraceId() string
func (*EmptyManager) TraceDatabase ¶
func (*EmptyManager) TraceDatabase() ITraceDetail
func (*EmptyManager) TraceDatabaseOpen ¶
func (*EmptyManager) TraceDatabaseOpen(dbName string, connectString string) ITraceDetail
func (*EmptyManager) TraceElasticsearch ¶
func (*EmptyManager) TraceElasticsearch(method string, IndexName string, AliasesName string) ITraceDetail
func (*EmptyManager) TraceEtcd ¶
func (*EmptyManager) TraceEtcd(method string, key string, leaseID int64) ITraceDetail
func (*EmptyManager) TraceEventPublish ¶ added in v0.13.0
func (*EmptyManager) TraceEventPublish(eventName string) ITraceDetail
func (*EmptyManager) TraceHand ¶
func (*EmptyManager) TraceHand(name string) ITraceDetail
func (*EmptyManager) TraceHttp ¶
func (*EmptyManager) TraceHttp(method string, url string) ITraceDetail
func (*EmptyManager) TraceMq ¶
func (*EmptyManager) TraceMq(method string, server string, exchange string) ITraceDetail
func (*EmptyManager) TraceMqSend ¶
func (*EmptyManager) TraceMqSend(method string, server string, exchange string, routingKey string) ITraceDetail
func (*EmptyManager) TraceRedis ¶
func (*EmptyManager) TraceRedis(method string, key string, field string) ITraceDetail
type ExceptionStack ¶
type ExceptionStack struct { ExceptionCallFile string // 调用者文件路径 ExceptionCallLine int // 调用者行号 ExceptionCallFuncName string // 调用者函数名称 ExceptionIsException bool // 是否执行异常 ExceptionMessage string // 异常信息 }
func (ExceptionStack) IsNil ¶ added in v0.11.0
func (receiver ExceptionStack) IsNil() bool
type IManager ¶
type IManager interface { GetCurTrace() ITraceContext // GetTraceId 获取当前TraceId GetTraceId() string // EntryWebApi 创建webapi的链路追踪入口 EntryWebApi(domain string, path string, method string, contentType string, headerDictionary map[string]string, requestIp string) ITraceContext // EntryWebSocket 创建WebSocket的链路追踪入口 EntryWebSocket(domain string, path string, headerDictionary map[string]string, requestIp string) ITraceContext // EntryMqConsumer 创建MQ消费入口 EntryMqConsumer(parentTraceId, parentAppName, server string, queueName string, routingKey string) ITraceContext // EntryQueueConsumer 创建Queue消费入口 EntryQueueConsumer(queueName, subscribeName string) ITraceContext // EntryEventConsumer 创建Event消费入口 EntryEventConsumer(server, eventName, subscribeName string) ITraceContext // EntryTask 创建本地任务入口 EntryTask(taskName string) ITraceContext // EntryTaskGroup 创建本地任务入口(调度中心专用) EntryTaskGroup(taskName string, taskGroupName string, taskId int64) ITraceContext // EntryFSchedule 创建调度中心入口 EntryFSchedule(taskGroupName string, taskId int64, data map[string]string) ITraceContext // EntryWatchKey 创建etcd入口 EntryWatchKey(key string) ITraceContext // TraceDatabaseOpen 数据库埋点 TraceDatabaseOpen(dbName string, connectString string) ITraceDetail // TraceDatabase 数据库埋点 TraceDatabase() ITraceDetail // TraceElasticsearch Elasticsearch埋点 TraceElasticsearch(method string, IndexName string, AliasesName string) ITraceDetail // TraceEtcd etcd埋点 TraceEtcd(method string, key string, leaseID int64) ITraceDetail // TraceHand 手动埋点 TraceHand(name string) ITraceDetail // TraceEventPublish 事件发布 TraceEventPublish(eventName string) ITraceDetail // TraceMqSend send埋点 TraceMqSend(method string, server string, exchange string, routingKey string) ITraceDetail // TraceMq open、create埋点 TraceMq(method string, server string, exchange string) ITraceDetail // TraceRedis Redis埋点 TraceRedis(method string, key string, field string) ITraceDetail // TraceHttp http埋点 TraceHttp(method string, url string) ITraceDetail }
IManager 链路追踪管理
type ITraceContext ¶
type ITraceContext interface { // End 结束 End(err error) // SetBody 设置webapi的响应报文 SetBody(requestBody string, statusCode int, responseBody string) // SetResponseBody 设置webapi的响应报文 SetResponseBody(responseBody string) // GetTraceId 获取traceId GetTraceId() string // GetStartTs 获取链路开启时间 GetStartTs() int64 // GetList 获取链路明细 GetList() []any // AddDetail 添加链路明细 AddDetail(detail ITraceDetail) // Error 异常信息 Error(err error) // Ignore 忽略这次的链路追踪 Ignore() // GetAppInfo 获取应用信息 GetAppInfo() (string, string, string, string, string) // GetTraceLevel 得到当前链路层 GetTraceLevel() int }
type ITraceDetail ¶
type ITraceDetail interface { // Run 运行完后调用End Run(fn func()) ToString() string GetTraceDetail() *BaseTraceDetail End(err error) SetSql(connectionString string, DbName string, tableName string, sql string, rowsAffected int64) // Ignore 忽略这次的链路追踪 Ignore() // IsIgnore 是否忽略 IsIgnore() bool // GetLevel 获取层级 GetLevel() int // SetHttpRequest 设置Http请求出入参 SetHttpRequest(url string, reqHead map[string]any, rspHead map[string]string, requestBody string, responseBody string, statusCode int) // 设置得到的数据量 SetRows(rows int) }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.