Documentation ¶
Index ¶
- Constants
- Variables
- func ExtractFromRequest(r *http.Request) (remoteSpanCtx context.Context, err error)
- func InjectIntoMap(m map[string]string, spanCtx context.Context, span trace.Span) error
- func InjectIntoRequest(r *http.Request, spanCtx context.Context, span trace.Span) error
- func MustSetUp(grpcEndpoint, serviceName string, attributeMap map[string]string, ...)
- func MustSetUpWithHttp(httpEndpoint, serviceName string, attributeMap map[string]string, ...)
- func NewGrpcTracerProvider(endpoint, serviceName string, attributeMap map[string]string, ...) (*trace.TracerProvider, error)
- func NewHttpTracerProvider(endpoint, serviceName string, attributeMap map[string]string, ...) (*trace.TracerProvider, error)deprecated
- func NewNoopTracerProvider() trace.TracerProvider
- func NewOuterGinMiddleware() (gin.HandlerFunc, error)
- func NewRemoteContext(traceIdStr, spanIdStr string) (context.Context, error)
- func NewSecondaryGinMiddleware() (gin.HandlerFunc, error)
- func NewSpan(tracer trace.Tracer, parentCtx context.Context, spanName string, ...) (spanCtx context.Context, span trace.Span, err error)
- func NewTracer(name string, opts ...trace.TracerOption) trace.Tracer
- func SetUp(grpcEndpoint, serviceName string, attributeMap map[string]string, ...) error
- func SetUpWithHttp(httpEndpoint, serviceName string, attributeMap map[string]string, ...) error
- func ShutdownTracerProvider(tp *sdktrace.TracerProvider, timeout time.Duration)
- type JaegerConfig
Constants ¶
const ( // HeaderBaggage 跨服务相关的请求头 HeaderBaggage = "Baggage" KeyTraceId = "trace-id" KeySpanId = "span-id" KeyParentContext = "parent-context" )
Variables ¶
var ( NotOtelRequestError = errorKit.Newf("not otel request") NotSetupError = errorKit.Newf("haven’t been set up correctly") )
var NewAddConfig func(opts []metric.AddOption) metric.AddConfig = metric.NewAddConfig
var NewMeterConfig func(opts ...metric.MeterOption) metric.MeterConfig = metric.NewMeterConfig
Functions ¶
func ExtractFromRequest ¶ added in v3.0.32
ExtractFromRequest
PS: (1) 需要先 set up (2) 适用场景: 跨服务(跨应用通讯) + 接收端 (3) 返回的error != nil的情况下,可以判断是否等于 otelKit.NotOtelRequestError.
func InjectIntoRequest ¶ added in v3.0.34
InjectIntoRequest 使用 baggage 写入 trace id 和 span id(实际上是写到 Header 中).
PS: (1) 需要先 set up; (2) 适用场景: 跨服务(跨应用通讯) + 发送端.
func MustSetUp ¶
func MustSetUp(grpcEndpoint, serviceName string, attributeMap map[string]string, opts ...otlptracegrpc.Option)
MustSetUp
@param opts e.g. otlptracegrpc.WithInsecure(), otlptracegrpc.WithDialOption(grpc.WithBlock())
func MustSetUpWithHttp ¶ added in v3.0.29
func MustSetUpWithHttp(httpEndpoint, serviceName string, attributeMap map[string]string, opts ...otlptracehttp.Option)
func NewGrpcTracerProvider ¶
func NewGrpcTracerProvider(endpoint, serviceName string, attributeMap map[string]string, opts ...otlptracegrpc.Option) (*trace.TracerProvider, error)
NewGrpcTracerProvider
PS: (1) 使用 otlptracegrpc; (2) 此方法第二个返回值为nil的情况下,建议立即调用 otel.SetTracerProvider.
@param endpoint 可以为"",将采用默认值: "localhost:4317" @param serviceName 服务名 @param attributeMap 可以为nil @param opts (1) 额外配置(不要涉及 otlptracegrpc.WithEndpoint,因为在此处配了也没用)
(2) otlptracegrpc.WithInsecure(): (a) 配置的话,将使用非安全协议(http...); (b) 不配置的话,将使用安全协议(https...). (3) 一般情况下,建议使用: otlptracegrpc.WithInsecure(), otlptracegrpc.WithDialOption(grpc.WithBlock())
func NewHttpTracerProvider
deprecated
func NewHttpTracerProvider(endpoint, serviceName string, attributeMap map[string]string, opts ...otlptracehttp.Option) (*trace.TracerProvider, error)
NewHttpTracerProvider
Deprecated: Use NewGrpcTracerProvider instead.
PS: (1) 使用 otlptracehttp; (2) 此方法第二个返回值为nil的情况下,建议立即调用 otel.SetTracerProvider.
@param endpoint 可以为"",将采用默认值: "localhost:4318" @param serviceName 服务名 @param attributeMap 可以为nil @param opts 额外配置(不要涉及 otlptracehttp.WithEndpoint,因为在此处配了也没用) @param opts (1) 额外配置(不要涉及 otlptracegrpc.WithEndpoint,因为在此处配了也没用)
(2) otlptracegrpc.WithInsecure(): (a) 配置的话,将使用非安全协议(http...); (b) 不配置的话,将使用安全协议(https...). (3) 一般情况下,传个 otlptracegrpc.WithInsecure() 就足够了.
func NewNoopTracerProvider ¶ added in v3.0.34
func NewNoopTracerProvider() trace.TracerProvider
NewNoopTracerProvider returns a TracerProvider that does not record any telemetry.
func NewOuterGinMiddleware ¶ added in v3.0.34
func NewOuterGinMiddleware() (gin.HandlerFunc, error)
NewOuterGinMiddleware TODO: 适用于: 外层的服务
PS: 需要先 SetUp || MustSetUp !!!
func NewRemoteContext ¶
NewRemoteContext TODO:
@param traceIdStr 请求头中,"trace-id"对应的值 @param spanIdStr 请求头中,"span-id"对应的值
func NewSecondaryGinMiddleware ¶ added in v3.0.34
func NewSecondaryGinMiddleware() (gin.HandlerFunc, error)
NewSecondaryGinMiddleware TODO: 适用于: 次级的服务
func NewSpan ¶ added in v3.0.34
func NewSpan(tracer trace.Tracer, parentCtx context.Context, spanName string, opts ...trace.SpanStartOption) (spanCtx context.Context, span trace.Span, err error)
NewSpan
@param tracer 不能为nil @param parentCtx 父span的Context(没有的话,可以使用 context.TODO()) @param spanName span的名称(UI页面中的Operation) @param opts e.g. UI页面中的Tags
trace.WithAttributes(attribute.String("222", "222"))
@return err == nil的情况下,spanCtx 可以作为子span的传参parentCtx
func NewTracer ¶
func NewTracer(name string, opts ...trace.TracerOption) trace.Tracer
NewTracer
PS: 需要先 set up.
func SetUpWithHttp ¶ added in v3.0.29
func ShutdownTracerProvider ¶
func ShutdownTracerProvider(tp *sdktrace.TracerProvider, timeout time.Duration)