Categorygithub.com/isyscore/isc-tracer
modulepackage
1.2.1-hotfix
Repository: https://github.com/isyscore/isc-tracer.git
Documentation: pkg.go.dev

# README

isc-tracer

该框架是基于isc-gobase之上开发的用于链路搜集的sdk。目前支持以下协议的埋点,客户端全部都要是基于isc-gobase提供的客户端才行,其他一些协议请自行埋点

  • http
  • orm
    • gorm
    • xorm
  • redis
    • go-redis
  • etcd
    • go-etcd

相关isc-gobase的客户端接入请见这里 isc-gobase/extend

下载

go get github.com/isyscore/isc-tracer

配置

base:
  application:
    # 服务名:用于埋点的服务名使用,如果不配置,则为默认:isc-tracer-default-name
    name: isc-biz-xxx
  
tracer:
  # 采集总开关;默认开启;注意:关闭后可能会造成链路不连续
  enable: true
  # 数据库相关配置
  database:
    # 是否启用(只有tracer.enable开启情况下才有效);默认开启
    enable: true
  # redis相关配置    
  redis:
    # 是否启用(只有tracer.enable开启情况下才有效);默认开启
    enable: true
  # etcd相关配置  
  etcd:
    # 是否启用(只有tracer.enable开启情况下才有效);默认开启
    
    enable: true
  # 动态调试功能
  debug:
    # 是否启用,默认开启
    enable: true
    # 账号获取地址,默认:http://isc-core-back-service:31300
    account: http://isc-core-back-service:31300
  # 不采集的http的url配置
  http:
    excludes-url:
      - /api/xxx/xxx/xxxx
      - /api/xxx/xxx/xxxx
  # 链路的服务端地址
  server:
    # 服务端的通用地址
    admin-url: http://isc-pivot-platform:31107
    # 链路的服务端接收地址,这里采用grpc,这里默认如下
    url: isc-pivot-platform:31108

代码使用

请在main.go方法这里引入如下的包

import _ "github.com/isyscore/isc-tracer"

自定义埋点

包trace提供如下的方法

import "github.com/isyscore/isc-tracer/trace"

// 发起方埋点:start
func ClientStartTrace(traceType _const2.TraceTypeEnum, traceName string) *Tracer {}

// 发起方埋点:start
func ClientStartTraceWithRequest(req *http.Request) *Tracer {}

// 接收方埋点:start
func ServerStartTrace(traceType _const2.TraceTypeEnum, traceName string) *Tracer {}

// 接收方埋点:start
func ServerStartTraceWithRequest(traceType _const2.TraceTypeEnum, traceName string, request *http.Request) *Tracer {}


// 发起方/接收方埋点:start
func StartTrace(traceType _const2.TraceTypeEnum, endPoint _const2.EndpointEnum, traceName string, request *http.Request) *Tracer {}

// 发起方/接收方埋点:end
func EndTrace(tracer *Tracer, status _const2.TraceStatusEnum, message string, responseSize int) {}
func EndTraceOk(tracer *Tracer, message string, responseSize int) {}
func EndTraceTimeout(tracer *Tracer, message string, responseSize int) {}
func EndTraceWarn(tracer *Tracer, message string, responseSize int) {}
func EndTraceError(tracer *Tracer, message string, responseSize int) {}

发起方(服务端)埋点示例:

// 执行前
tracerClient := trace.ClientStartTrace(xxxx, "xxx-name")

// 业务执行
// ......

// 执行后
tracer.EndTrace(tracerClient, 0, xxxx, "xxxx")

接收方(服务端)埋点示例:

// 执行前埋点
tracerServer := trace.ServerStartTrace(_const.HTTP, "xxx")

// 业务执行
// ......

// 业务执行完后埋点
trace.EndTrace(tracerServer, size, status, "xxx")

项目开发者阅读

安装

记住以下两个必须都安装

go install google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc

grpc代码生成

项目主目录

protoc --go_out=. --go-grpc_out=. ./protobuf/pivot.proto

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author