leak

package
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

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

type CheckConfig struct {
	Query          string
	Start          time.Time
	End            time.Time
	WarmUpDuration time.Duration
}

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

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

Jump to

Keyboard shortcuts

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