Documentation
¶
Index ¶
- func GenerateCorrelationID() string
- func GenerateShortID(length int) string
- func GenerateSpanID() string
- func GenerateTraceID() string
- func MiddlewareChain(middlewares ...func(http.Handler) http.Handler) func(http.Handler) http.Handler
- type LoggerInterface
- type RequestContext
- type RequestCorrelation
- type RequestIDConfig
- type RequestIDEnricher
- type RequestIDExtractor
- type RequestIDGenerator
- type RequestIDGeneratorFactory
- type RequestIDManager
- type RequestIDMiddleware
- type RequestIDValidator
- type RequestLogger
- type RequestThrottler
- type RequestTracer
- type RequestValidator
- type TracerInterface
- type ValidatorInterface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateCorrelationID ¶
func GenerateCorrelationID() string
GenerateCorrelationID generates a correlation ID
func GenerateShortID ¶
GenerateShortID generates a short unique ID
Types ¶
type LoggerInterface ¶
type LoggerInterface interface {
Info(msg string, fields ...interface{})
Debug(msg string, fields ...interface{})
Error(msg string, fields ...interface{})
WithField(key string, value interface{}) interface{}
}
LoggerInterface defines the interface for logging
type RequestContext ¶
type RequestContext struct {
RequestID string
TraceID string
SpanID string
CorrelationID string
UserID string
TenantID string
IPAddress string
UserAgent string
Method string
Path string
Timestamp time.Time
Metadata map[string]string
}
RequestContext represents the request context with tracing information
func FromContext ¶
func FromContext(ctx context.Context) *RequestContext
FromContext extracts request context from context.Context
func FromHTTPRequest ¶
func FromHTTPRequest(r *http.Request) *RequestContext
FromHTTPRequest extracts request context from HTTP request
func NewRequestContext ¶
func NewRequestContext() *RequestContext
NewRequestContext creates a new request context
func (*RequestContext) String ¶
func (rc *RequestContext) String() string
String returns a string representation of the request context
func (*RequestContext) ToContext ¶
func (rc *RequestContext) ToContext() context.Context
ToContext converts request context to context.Context
func (*RequestContext) ToHeaders ¶
func (rc *RequestContext) ToHeaders() http.Header
ToHeaders converts request context to HTTP headers
type RequestCorrelation ¶
type RequestCorrelation struct {
// contains filtered or unexported fields
}
RequestCorrelation correlates requests across services
func NewRequestCorrelation ¶
func NewRequestCorrelation(enabled bool) *RequestCorrelation
NewRequestCorrelation creates a new request correlator
type RequestIDConfig ¶
RequestIDConfig represents the configuration for request ID generation
func DefaultRequestIDConfig ¶
func DefaultRequestIDConfig() RequestIDConfig
DefaultRequestIDConfig creates a default configuration
type RequestIDEnricher ¶
type RequestIDEnricher struct {
// contains filtered or unexported fields
}
RequestIDEnricher enriches request context with additional information
func DefaultRequestIDEnricher ¶
func DefaultRequestIDEnricher() *RequestIDEnricher
DefaultRequestIDEnricher creates a default enricher
func NewRequestIDEnricher ¶
func NewRequestIDEnricher() *RequestIDEnricher
NewRequestIDEnricher creates a new enricher
func (*RequestIDEnricher) AddField ¶
func (e *RequestIDEnricher) AddField(name string, extractor func(*http.Request) string)
AddField adds a field to be enriched
func (*RequestIDEnricher) Enrich ¶
func (e *RequestIDEnricher) Enrich(rc *RequestContext, r *http.Request)
Enrich enriches a request context
type RequestIDExtractor ¶
type RequestIDExtractor struct {
// contains filtered or unexported fields
}
RequestIDExtractor extracts request IDs from various sources
func NewRequestIDExtractor ¶
func NewRequestIDExtractor(sources ...string) *RequestIDExtractor
NewRequestIDExtractor creates a new extractor
type RequestIDGenerator ¶
type RequestIDGenerator struct {
// contains filtered or unexported fields
}
RequestIDGenerator generates unique request IDs
func NewRequestIDGenerator ¶
func NewRequestIDGenerator(prefix string) *RequestIDGenerator
NewRequestIDGenerator creates a new request ID generator
func (*RequestIDGenerator) Generate ¶
func (g *RequestIDGenerator) Generate() string
Generate generates a unique request ID
type RequestIDGeneratorFactory ¶
type RequestIDGeneratorFactory struct {
// contains filtered or unexported fields
}
RequestIDGeneratorFactory creates request ID generators
func NewRequestIDGeneratorFactory ¶
func NewRequestIDGeneratorFactory() *RequestIDGeneratorFactory
NewRequestIDGeneratorFactory creates a new factory
func (*RequestIDGeneratorFactory) GetGenerator ¶
func (f *RequestIDGeneratorFactory) GetGenerator(prefix string) *RequestIDGenerator
GetGenerator gets or creates a generator
type RequestIDManager ¶
type RequestIDManager struct {
// contains filtered or unexported fields
}
RequestIDManager manages request ID generation and tracking
func NewRequestIDManager ¶
func NewRequestIDManager(config RequestIDConfig) *RequestIDManager
NewRequestIDManager creates a new request ID manager
func (*RequestIDManager) Generate ¶
func (m *RequestIDManager) Generate() string
Generate generates a new request ID
func (*RequestIDManager) GenerateWithTrace ¶
func (m *RequestIDManager) GenerateWithTrace() (requestID, traceID, spanID string)
GenerateWithTrace generates a request ID with trace information
type RequestIDMiddleware ¶
type RequestIDMiddleware struct {
// contains filtered or unexported fields
}
RequestIDMiddleware adds request ID to all incoming requests
func NewRequestIDMiddleware ¶
func NewRequestIDMiddleware(prefix string) *RequestIDMiddleware
NewRequestIDMiddleware creates a new request ID middleware
func (*RequestIDMiddleware) Middleware ¶
func (m *RequestIDMiddleware) Middleware(next http.Handler) http.Handler
Middleware wraps an HTTP handler with request ID generation
type RequestIDValidator ¶
type RequestIDValidator struct {
// contains filtered or unexported fields
}
RequestIDValidator validates request IDs
func NewRequestIDValidator ¶
func NewRequestIDValidator(pattern string) *RequestIDValidator
NewRequestIDValidator creates a new request ID validator
func (*RequestIDValidator) Validate ¶
func (v *RequestIDValidator) Validate(requestID string) bool
Validate validates a request ID
type RequestLogger ¶
type RequestLogger struct {
// contains filtered or unexported fields
}
RequestLogger logs request information
func NewRequestLogger ¶
func NewRequestLogger(logger LoggerInterface) *RequestLogger
NewRequestLogger creates a new request logger
func (*RequestLogger) Middleware ¶
func (l *RequestLogger) Middleware(next http.Handler) http.Handler
Middleware wraps an HTTP handler with request logging
type RequestThrottler ¶
type RequestThrottler struct {
// contains filtered or unexported fields
}
RequestThrottler throttles requests
func NewRequestThrottler ¶
func NewRequestThrottler(limit int, window time.Duration) *RequestThrottler
NewRequestThrottler creates a new request throttler
func (*RequestThrottler) Allow ¶
func (t *RequestThrottler) Allow(key string) bool
Allow checks if a request is allowed
func (*RequestThrottler) GetRemaining ¶
func (t *RequestThrottler) GetRemaining(key string) int
GetRemaining gets remaining requests
type RequestTracer ¶
type RequestTracer struct {
// contains filtered or unexported fields
}
RequestTracer traces requests
func NewRequestTracer ¶
func NewRequestTracer(tracer TracerInterface) *RequestTracer
NewRequestTracer creates a new request tracer
func (*RequestTracer) Middleware ¶
func (t *RequestTracer) Middleware(next http.Handler) http.Handler
Middleware wraps an HTTP handler with request tracing
type RequestValidator ¶
type RequestValidator struct {
// contains filtered or unexported fields
}
RequestValidator validates requests
func NewRequestValidator ¶
func NewRequestValidator(validator ValidatorInterface) *RequestValidator
NewRequestValidator creates a new request validator
func (*RequestValidator) Validate ¶
func (v *RequestValidator) Validate(body interface{}) error
Validate validates a request body
type TracerInterface ¶
type TracerInterface interface {
Start(ctx context.Context, name string, opts ...interface{}) (context.Context, interface{})
End(span interface{}, err error)
SetAttributes(span interface{}, attrs map[string]interface{})
}
TracerInterface defines the interface for tracing
type ValidatorInterface ¶
type ValidatorInterface interface {
ValidateStruct(interface{}) error
}
ValidatorInterface defines the interface for validation