Documentation ¶
Index ¶
- Constants
- Variables
- func GetAddrFormat(addr string) string
- func GetAddrNextFormat(addr string) string
- func PrintVersion() bool
- func StartMetricsPush(runner *task.Runner, cfg *MetricCfg)
- type Analysis
- func (a *Analysis) AddTarget(key uint64, interval time.Duration)
- func (a *Analysis) Failure(key uint64)
- func (a *Analysis) GetContinuousFailureCount(server uint64) int
- func (a *Analysis) GetQPS(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyAvg(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyMax(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyMin(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyRejectCount(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyRequestCount(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyRequestFailureCount(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyRequestFailureRate(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyRequestSuccessedCount(server uint64, interval time.Duration) int
- func (a *Analysis) GetRecentlyRequestSuccessedRate(server uint64, interval time.Duration) int
- func (a *Analysis) Reject(key uint64)
- func (a *Analysis) RemoveTarget(key uint64)
- func (a *Analysis) Request(key uint64)
- func (a *Analysis) Response(key uint64, cost int64)
- type Cache
- type FastHTTPClient
- type HTTPOption
- type Key
- type MetricCfg
- type RateBarrier
- type Recently
Constants ¶
const ( // MinAddrFormat min addr format MinAddrFormat = "000000000000000000000" // MaxAddrFormat max addr format MaxAddrFormat = "255.255.255.255:99999" )
Variables ¶
var ( GitCommit = "" BuildTime = "" GoVersion = "" )
set on build time
Functions ¶
func GetAddrFormat ¶
GetAddrFormat returns addr format for sort, padding left by 0
func GetAddrNextFormat ¶
GetAddrNextFormat returns next addr format for sort, padding left by 0
func StartMetricsPush ¶
StartMetricsPush start a push client
Types ¶
type Analysis ¶
Analysis analysis struct
func NewAnalysis ¶
func NewAnalysis(tw *goetty.TimeoutWheel) *Analysis
NewAnalysis returns a Analysis
func (*Analysis) GetContinuousFailureCount ¶
GetContinuousFailureCount return Continuous failure request count in spec secs
func (*Analysis) GetRecentlyAvg ¶
GetRecentlyAvg return avg latency in spec secs
func (*Analysis) GetRecentlyMax ¶
GetRecentlyMax return max latency in spec secs
func (*Analysis) GetRecentlyMin ¶
GetRecentlyMin return min latency in spec duration
func (*Analysis) GetRecentlyRejectCount ¶
GetRecentlyRejectCount return reject count in spec duration
func (*Analysis) GetRecentlyRequestCount ¶
GetRecentlyRequestCount return the server request count in spec duration
func (*Analysis) GetRecentlyRequestFailureCount ¶
GetRecentlyRequestFailureCount return failure request count in spec duration
func (*Analysis) GetRecentlyRequestFailureRate ¶
GetRecentlyRequestFailureRate return failure rate in spec secs
func (*Analysis) GetRecentlyRequestSuccessedCount ¶
GetRecentlyRequestSuccessedCount return successed request count in spec secs
func (*Analysis) GetRecentlyRequestSuccessedRate ¶
GetRecentlyRequestSuccessedRate return successed rate in spec secs
func (*Analysis) RemoveTarget ¶
RemoveTarget remove analysis point on a key
type Cache ¶
type Cache struct { sync.RWMutex // MaxBytes is the maximum bytes of cache entries before // an item is evicted. Zero means no limit. MaxBytes uint64 // OnEvicted optionally specificies a callback function to be // executed when an entry is purged from the cache. OnEvicted func(key Key, value interface{}) // contains filtered or unexported fields }
Cache is an LRU cache. It is not safe for concurrent access.
func NewLRUCache ¶
NewLRUCache creates a new Cache. If maxBytes is zero, the cache has no limit and it's assumed that eviction is done by the caller.
type FastHTTPClient ¶
FastHTTPClient fast http client
func NewFastHTTPClient ¶
func NewFastHTTPClient() *FastHTTPClient
NewFastHTTPClient create FastHTTPClient instance
func NewFastHTTPClientOption ¶
func NewFastHTTPClientOption(defaultOption *HTTPOption) *FastHTTPClient
NewFastHTTPClientOption create FastHTTPClient instance with default option
func (*FastHTTPClient) Do ¶
func (c *FastHTTPClient) Do(req *fasthttp.Request, addr string, option *HTTPOption) (*fasthttp.Response, error)
Do do a http request
type HTTPOption ¶
type HTTPOption struct { // Maximum number of connections which may be established to server MaxConns int // MaxConnDuration Keep-alive connections are closed after this duration. MaxConnDuration time.Duration // MaxIdleConnDuration Idle keep-alive connections are closed after this duration. MaxIdleConnDuration time.Duration // ReadBufferSize Per-connection buffer size for responses' reading. ReadBufferSize int // WriteBufferSize Per-connection buffer size for requests' writing. WriteBufferSize int // ReadTimeout Maximum duration for full response reading (including body). ReadTimeout time.Duration // WriteTimeout Maximum duration for full request writing (including body). WriteTimeout time.Duration // MaxResponseBodySize Maximum response body size. MaxResponseBodySize int }
HTTPOption http client option
func DefaultHTTPOption ¶
func DefaultHTTPOption() *HTTPOption
DefaultHTTPOption returns a HTTP Option
type Key ¶
type Key interface{}
A Key may be any value that is comparable. See http://golang.org/ref/spec#Comparison_operators
type RateBarrier ¶
type RateBarrier struct {
// contains filtered or unexported fields
}
RateBarrier rand barrier
func NewRateBarrier ¶
func NewRateBarrier(rate int) *RateBarrier
NewRateBarrier returns a barrier based by 100
func NewRateBarrierBase ¶
func NewRateBarrierBase(rate, base int) *RateBarrier
NewRateBarrierBase returns a barrier with base