Documentation ¶
Index ¶
- Constants
- Variables
- func Acceptable(err error) bool
- func BreakerInterceptor(ctx context.Context, method string, req, reply interface{}, ...) error
- func GetGrpcClient(address string) (*grpc.ClientConn, error)
- func GetGrpcServe() *grpc.Server
- func InitDevelopment(tracingAgentHostPort []byte)
- func InitMacDocker(tracingAgentHostPort []byte)
- func InitOpentracing()
- func InitProduction(sampleProbability float64, tracingAgentHostPort []byte)
- func InitTracing(serviceName string, tracingAgentHostPort string, opt ...Option) (tracer opentracing.Tracer, reporter jaeger.Reporter, closer io.Closer, ...)
- func InjectTraceID(ctx opentracing.SpanContext, header http.Header)
- func IsTimeOut(c *gin.Context) error
- func StartDBSpanWithParent(parent opentracing.SpanContext, ...) opentracing.Span
- func StartSpan(operationName, method, path string) opentracing.Span
- func StartSpanWithHeader(header *http.Header, operationName, method, path string) opentracing.Span
- func StartSpanWithParent(parent opentracing.SpanContext, operationName, method, path string) opentracing.Span
- type BHOption
- type BaseHandler
- type LogrusAdapter
- type Option
Constants ¶
const ( Timeout = "timeout" CancelFunc = "__cancelFunc" Ctx = "__ctx" Start = "__start_time" )
Variables ¶
var Config jaegercfg.Configuration
Config - the open tracing config singleton
Functions ¶
func Acceptable ¶
func BreakerInterceptor ¶
func BreakerInterceptor(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error
func GetGrpcClient ¶
func GetGrpcClient(address string) (*grpc.ClientConn, error)
func GetGrpcServe ¶
func InitDevelopment ¶
func InitDevelopment(tracingAgentHostPort []byte)
InitDevelopment - DEPRECATED (uses deprecated jaeger client func) init a production tracer environment example: Create the default tracer and schedule its closing when main returns.
func main() { tracing.InitDevelopment() # defaults to "localhost:6831" for tracing agent tracer, closer, _ := tracing.Config.New("passport-gigya-user-access") // the service name is the param to New() defer closer.Close() opentracing.SetGlobalTracer(tracer)
func InitMacDocker ¶
func InitMacDocker(tracingAgentHostPort []byte)
InitMacDocker - DEPRECATED (uses deprecated jaeger client func) init a production tracer environment example: Create the default tracer and schedule its closing when main returns.
func main() { tracing.InitMacDocker() # defaults to "host.docker.internal:6831 for tracing agent tracer, closer, _ := tracing.Config.New("passport-gigya-user-access") // the service name is the param to New() defer closer.Close() opentracing.SetGlobalTracer(tracer)
func InitOpentracing ¶
func InitOpentracing()
func InitProduction ¶
InitProduction - DEPRECATED (uses deprecated jaeger client func) init a production tracer environment example: Create the default tracer and schedule its closing when main returns.
func main() { tracing.InitProduction("jaegeragent.svc.cluster.local:6831") tracer, closer, _ := tracing.Config.New("passport-gigya-user-access") // the service name is the param to New() defer closer.Close() opentracing.SetGlobalTracer(tracer)
func InitTracing ¶
func InitTracing(serviceName string, tracingAgentHostPort string, opt ...Option) ( tracer opentracing.Tracer, reporter jaeger.Reporter, closer io.Closer, err error)
InitTracing - init opentracing with options (WithSampleProbability, WithEnableInfoLog) defaults: constant sampling, no info logging
func InjectTraceID ¶
InjectTraceID injects the span ID into the provided HTTP header object, so that the current span will be propogated downstream to the server responding to an HTTP request. Specifying the span ID in this way will allow the tracing system to connect spans between servers.
Usage: // resty example r := resty.R() injectTraceID(span, r.Header) resp, err := r.Get(fmt.Sprintf("http://localhost:8000/users/%s", bosePersonID)) // galapagos_clients example c := galapagos_clients.GetHTTPClient() req, err := http.NewRequest("GET", fmt.Sprintf("http://localhost:8000/users/%s", bosePersonID)) injectTraceID(span, req.Header) c.Do(req)
func StartDBSpanWithParent ¶
func StartDBSpanWithParent(parent opentracing.SpanContext, operationName, dbInstance, dbType, dbStatement string) opentracing.Span
StartDBSpanWithParent - start a DB operation span
func StartSpan ¶
func StartSpan(operationName, method, path string) opentracing.Span
StartSpan will start a new span with no parent span.
func StartSpanWithHeader ¶
StartSpanWithHeader will look in the headers to look for a parent span before starting the new span. example:
func handleGet(c *gin.Context) { span := StartSpanWithHeader(&c.Request.Header, "api-request", method, path) defer span.Finish() c.Set("tracing-context", span) // add the span to the context so it can be used for the duration of the request. bosePersonID := c.Param("bosePersonID") span.SetTag("bosePersonID", bosePersonID)
func StartSpanWithParent ¶
func StartSpanWithParent(parent opentracing.SpanContext, operationName, method, path string) opentracing.Span
StartSpanWithParent will start a new span with a parent span. example:
span:= StartSpanWithParent(c.Get("tracing-context"),
Types ¶
type BaseHandler ¶
type BaseHandler struct {
// contains filtered or unexported fields
}
func NewBaseHandler ¶
func NewBaseHandler(options ...BHOption) *BaseHandler
func (*BaseHandler) Opentracing ¶
func (b *BaseHandler) Opentracing(c *gin.Context)
func (*BaseHandler) PanicHandler ¶
func (b *BaseHandler) PanicHandler(c *gin.Context)
func (*BaseHandler) TimeOutEndHandler ¶
func (b *BaseHandler) TimeOutEndHandler(c *gin.Context)
func (*BaseHandler) TimeOutHandler ¶
func (b *BaseHandler) TimeOutHandler(c *gin.Context)
func (*BaseHandler) Timeout ¶
func (b *BaseHandler) Timeout() time.Duration
type LogrusAdapter ¶
type LogrusAdapter struct {
InfoLevel bool
}
LogrusAdapter - an adapter to log span info
func (LogrusAdapter) Error ¶
func (l LogrusAdapter) Error(msg string)
Error - logrus adapter for span errors
func (LogrusAdapter) Infof ¶
func (l LogrusAdapter) Infof(msg string, args ...interface{})
Infof - logrus adapter for span info logging
type Option ¶
type Option func(*options)
Option - define options for NewJWTCache()
func WithEnableInfoLog ¶
WithEnableInfoLog - optional: enable Info logging for tracing
func WithSampleProbability ¶
WithSampleProbability - optional sample probability