Documentation
¶
Index ¶
- func PromSingleValueResponse(val string) *f.PrometheusQueryResponse
- func WithCPUQuery(q string) func(*CLNodesLeakDetector)
- func WithMemoryQuery(q string) func(*CLNodesLeakDetector)
- func WithPrometheusBaseURL(url string) func(*ResourceLeakChecker)
- func WithQueryClient(c PromQuerier) func(*ResourceLeakChecker)
- type CLNodesCheck
- type CLNodesLeakDetector
- type CheckConfig
- type FakeQueryClient
- type PromQuerier
- type ResourceLeakChecker
- type ResourceLeakCheckerConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PromSingleValueResponse ¶
func PromSingleValueResponse(val string) *f.PrometheusQueryResponse
func WithCPUQuery ¶
func WithCPUQuery(q string) func(*CLNodesLeakDetector)
WithCPUQuery allows to override CPU leak query (Prometheus)
func WithMemoryQuery ¶
func WithMemoryQuery(q string) func(*CLNodesLeakDetector)
WithCPUQuery allows to override Memory leak query (Prometheus)
func WithPrometheusBaseURL ¶
func WithPrometheusBaseURL(url string) func(*ResourceLeakChecker)
WithPrometheusBaseURL sets Prometheus base URL, example http://localhost:9099
func WithQueryClient ¶
func WithQueryClient(c PromQuerier) func(*ResourceLeakChecker)
WithQueryClient sets Prometheus query client
Types ¶
type CLNodesCheck ¶
type CLNodesCheck struct {
NumNodes int
Start time.Time
End time.Time
WarmUpDuration time.Duration
CPUThreshold float64
MemoryThreshold float64
}
ClNodesCheck contains thresholds which can be verified for each Chainlink node it is recommended to set some WarmUpDuration, 20% of overall test time to have more stable results
type CLNodesLeakDetector ¶
type CLNodesLeakDetector struct {
Mode string
CPUQuery, MemoryQuery string
// contains filtered or unexported fields
}
CLNodesLeakDetector is Chainlink node specific resource leak detector can be used with both local and remote Chainlink node sets (DONs)
func NewCLNodesLeakDetector ¶
func NewCLNodesLeakDetector(c *ResourceLeakChecker, opts ...func(*CLNodesLeakDetector)) (*CLNodesLeakDetector, error)
NewCLNodesLeakDetector create new Chainlink node specific resource leak detector with Prometheus client
func (*CLNodesLeakDetector) Check ¶
func (cd *CLNodesLeakDetector) Check(t *CLNodesCheck) error
Check runs all resource leak checks and returns errors if threshold reached for any of them
type CheckConfig ¶
CheckConfig describes leak check configuration
type FakeQueryClient ¶
type FakeQueryClient struct {
// contains filtered or unexported fields
}
func NewFakeQueryClient ¶
func NewFakeQueryClient() *FakeQueryClient
func (*FakeQueryClient) Query ¶
func (qc *FakeQueryClient) Query(query string, timestamp time.Time) (*f.PrometheusQueryResponse, error)
func (*FakeQueryClient) SetResponses ¶
func (qc *FakeQueryClient) SetResponses(sr *f.PrometheusQueryResponse, er *f.PrometheusQueryResponse)
type PromQuerier ¶
type PromQuerier interface {
Query(query string, timestamp time.Time) (*f.PrometheusQueryResponse, error)
}
PromQueries is an interface for querying Prometheus containing only methods we need for detecting resource leaks
type ResourceLeakChecker ¶
type ResourceLeakChecker struct {
PrometheusURL string
// contains filtered or unexported fields
}
ResourceLeakChecker is resource leak cheker instance
func NewResourceLeakChecker ¶
func NewResourceLeakChecker(opts ...func(*ResourceLeakChecker)) *ResourceLeakChecker
NewResourceLeakChecker creates a new resource leak checker
func (*ResourceLeakChecker) MeasureLeak ¶
func (rc *ResourceLeakChecker) MeasureLeak( c *CheckConfig, ) (float64, error)
MeasureLeak measures resource leak between start and end timestamps WarmUpDuration is used to ignore warm up interval results for more stable comparison
type ResourceLeakCheckerConfig ¶
type ResourceLeakCheckerConfig struct {
PrometheusBaseURL string
}
ResourceLeakCheckerConfig is resource leak checker config with Prometheus base URL