tracer

package
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2022 License: MIT Imports: 11 Imported by: 6

README

tracer

go.opentelemetry.io/otel基础上封装的链路跟踪库。


使用示例

初始化trace,指定exporter和resource。

func initTrace() {
    // exporter := tracer.NewConsoleExporter() // 输出到终端

    // exporter, f, err := tracer.NewFileExporter("trace.json") // 输出到文件

	// exporter, err := tracer.NewJaegerExporter("http://localhost:14268/api/traces") // 输出到jaeger,使用collector http
	exporter, err := tracer.NewJaegerAgentExporter("192.168.3.37", "6831") // 输出到jaeger,使用agent udp

	resource := tracer.NewResource(
		tracer.WithServiceName("your-service-name"),
		tracer.WithEnvironment("dev"),
		tracer.WithServiceVersion("demo"),
	)

	tracer.Init(exporter, resource) // 默认采集全部
	// tracer.Init(exporter, resource, 0.5) // 采集一半
}

在程序中创建一个span,ctx来源于上一个parent span。

	_, span := otel.Tracer(serviceName).Start(
		ctx,
		spanName,
		trace.WithAttributes(attribute.String("foo", "bar")), // 自定义属性
	)
	defer span.End()

	// ......

documents https://opentelemetry.io/docs/instrumentation/go/

support OpenTelemetry in other libraries https://opentelemetry.io/registry/?language=go&component=instrumentation

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Close

func Close(ctx context.Context) error

Close 停止

func Init

func Init(exporter trace.SpanExporter, res *resource.Resource, fractions ...float64)

Init 初始化链路跟踪,fraction为分数,默认为1.0,值>=1.0表示全部链路都采样, 值<=0表示全部都不采样,0<值<1只采样百分比

func InitWithConfig added in v1.4.0

func InitWithConfig(appName string, appEnv string, appVersion string,
	jaegerAgentHost string, jaegerAgentPort string, jaegerSamplingRate float64)

InitWithConfig 根据配置初始化链路跟踪,fraction为分数,默认为1.0,值>=1.0表示全部链路都采样, 值<=0表示全部都不采样,0<值<1只采样百分比

func NewConsoleExporter

func NewConsoleExporter() (sdkTrace.SpanExporter, error)

NewConsoleExporter 输出到控台

func NewFileExporter

func NewFileExporter(filename string) (sdkTrace.SpanExporter, *os.File, error)

NewFileExporter 输出到文件,程序结束前要关闭文件句柄

func NewJaegerAgentExporter

func NewJaegerAgentExporter(host string, port string) (sdkTrace.SpanExporter, error)

NewJaegerAgentExporter use jaeger agent as exporter, e.g. host=localhost port=6831

func NewJaegerExporter

func NewJaegerExporter(url string, opts ...JaegerOption) (sdkTrace.SpanExporter, error)

NewJaegerExporter use jaeger collector as exporter, e.g. default url=http://localhost:14268/api/traces

func NewResource

func NewResource(opts ...ResourceOption) *resource.Resource

NewResource returns a resource describing this application.

Types

type JaegerOption

type JaegerOption func(*jaegerOptions)

JaegerOption set fields

func WithPassword

func WithPassword(password string) JaegerOption

WithPassword set password

func WithUsername

func WithUsername(username string) JaegerOption

WithUsername set username

type ResourceOption

type ResourceOption interface {
	// contains filtered or unexported methods
}

ResourceOption modifying struct field values by means of an interface

func WithAttributes

func WithAttributes(attributes map[string]string) ResourceOption

WithAttributes set service attributes

func WithEnvironment

func WithEnvironment(environment string) ResourceOption

WithEnvironment set service environment

func WithServiceName

func WithServiceName(name string) ResourceOption

WithServiceName set service name

func WithServiceVersion

func WithServiceVersion(version string) ResourceOption

WithServiceVersion set service version

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL