kitworker

package
v0.0.0-...-17fbf12 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2017 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateProxyURL

func CreateProxyURL(instance, endpoint string) *url.URL

CreateProxyURL creates an URL as proxy URL

func DefaultMiddlewares

func DefaultMiddlewares(method string, requestCount metrics.Counter, requestLatency metrics.Histogram, logger log.Logger) endpoint.Middleware

DefaultMiddlewares provides bare bones for default middlewares with requestLatency, requestCount and requestLogging

func RequestCountMiddleware

func RequestCountMiddleware(method string, requestCount metrics.Counter) endpoint.Middleware

RequestCountMiddleware prepares a request counter endpoint.Middleware for package wide usage

func RequestLatencyMiddleware

func RequestLatencyMiddleware(method string, requestLatency metrics.Histogram) endpoint.Middleware

RequestLatencyMiddleware prepares a request latency calculator endpoint.Middleware for package wide usage

func RequestLoggingMiddleware

func RequestLoggingMiddleware(method string, logger log.Logger) endpoint.Middleware

RequestLoggingMiddleware prepares a request logger endpoint.Middleware for package wide usage

Types

type ClientOption

type ClientOption struct {
	// Host holds the host's name
	Host string

	// ZipkinCollector holds the collector for zipkin tracing
	Tracer stdopentracing.Tracer

	// DisableCircuitBreaker disables circuit breaking functionality
	DisableCircuitBreaker bool

	// CircuitBreaker holds the custom circuit breaker, if not set a default one
	// will be created with default settings
	CircuitBreaker *gobreaker.CircuitBreaker

	// DisableRateLimiter disables rate limiting functionality
	DisableRateLimiter bool

	// QPS holds the configration parameter for rate limiting outgoing requests
	// to remote client. Must be set othervise all requests will be blocked
	// unless rate limiting is disabled
	QPS int

	// RateLimiter holds the custom rate limiter, if not set a default one will be created automatically
	RateLimiter *jujuratelimit.Bucket

	// TransportOpts holds custom httptransport.ClientOption array will be
	// appended to the end of the autogenerated ClientOptions
	TransportOpts []httptransport.ClientOption

	// Middlewares holds custom endpoint.Middleware array will be appended to
	// the end of the autogenerated Middlewares
	Middlewares []endpoint.Middleware

	// LoadBalancerCreator creates the loadbalancing strategy after getting the factory
	LoadBalancerCreator LoadBalancerF
}

ClientOption holds the required parameters for configuring a client

func (ClientOption) Configure

func (c ClientOption) Configure(moduleName, funcName string) ([]endpoint.Middleware, []httptransport.ClientOption)

Configure prepares middlewares and clientOptions from the client options

If required:

Adds circuitbreaker from "github.com/sony/gobreaker"
Adds ratelimiting from  "github.com/juju/ratelimit"
Adds request tracing from "github.com/go-kit/kit/tracing/zipkin"

type LoadBalancerF

type LoadBalancerF func(factory sd.Factory) lb.Balancer

LoadBalancerF

type ServerOption

type ServerOption struct {
	// Host holds the host's name
	Host string

	// Tracer holds the collector for zipkin tracing
	Tracer stdopentracing.Tracer

	// LogErrors configures whether server should log error responses or not
	LogErrors bool

	// LogRequests configures if the server should log incoming requests or not
	LogRequests bool

	// Latency holds the metric metric for request latency metric collection, if
	// not set Latency metrics will not be collected
	Latency metrics.Histogram

	// Counter holds the metrics.Counter metric for request count metric
	// collection, if not set RequestCountMetrics will not be collected
	Counter metrics.Counter

	// ServerOptions holds custom httptransport.ServerOption array, will be
	// appended to the end of the autogenerated
	ServerOptions []httptransport.ServerOption

	// Middlewares holds custom endpoint.Middleware array will be appended to
	// the end of the autogenerated Middlewares
	Middlewares []endpoint.Middleware
}

ServerOption holds the required parameters for configuring a server

func (ServerOption) Configure

func (s ServerOption) Configure(moduleName, funcName string, logger log.Logger) ([]endpoint.Middleware, []httptransport.ServerOption)

Configure prepares middlewares and serverOptions from the client options

If required:

Adds RequestLatencyMiddleware
Adds RequestCountMiddleware
Adds RequestLoggingMiddleware
Adds Zipkin Tracing
Adds httptransport.ServerErrorLogger

Jump to

Keyboard shortcuts

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