middleware

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2021 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Timeout    = "timeout"
	CancelFunc = "__cancelFunc"
	Ctx        = "__ctx"
	Start      = "__start_time"
)

Variables

Config - the open tracing config singleton

Functions

func Acceptable

func Acceptable(err error) bool

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 GetGrpcServe() *grpc.Server

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

func InitProduction(sampleProbability float64, tracingAgentHostPort []byte)

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

func InjectTraceID(ctx opentracing.SpanContext, header http.Header)

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 IsTimeOut

func IsTimeOut(c *gin.Context) error

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

func StartSpanWithHeader(header *http.Header, operationName, method, path string) opentracing.Span

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 BHOption

type BHOption func(*BaseHandler)

func BHOpenTracingPrefix

func BHOpenTracingPrefix(prifix []byte) BHOption

func BHTimeout

func BHTimeout(timeout time.Duration) BHOption

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

func WithEnableInfoLog(enable bool) Option

WithEnableInfoLog - optional: enable Info logging for tracing

func WithSampleProbability

func WithSampleProbability(sampleProbability float64) Option

WithSampleProbability - optional sample probability

Jump to

Keyboard shortcuts

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