Documentation ¶
Index ¶
- func IntListStats(in []int64) (float64, int64, int64, int64, int64)
- type ChainlinkProfileTestReporter
- type FoundEvent
- type KeeperBenchmarkTestConfig
- type KeeperBenchmarkTestLoad
- type KeeperBenchmarkTestMetrics
- type KeeperBenchmarkTestReport
- type KeeperBenchmarkTestReporter
- type KeeperBenchmarkTestSummary
- type KeeperBlockTimeTestReport
- type KeeperBlockTimeTestReporter
- type OCRRoundState
- type OCRSoakTestReporter
- func (o *OCRSoakTestReporter) RecordEvents(testStates []*OCRRoundState, testIssues []*TestIssue)
- func (o *OCRSoakTestReporter) SendSlackNotification(t *testing.T, slackClient *slack.Client, _ testreporters.GrafanaURLProvider) error
- func (o *OCRSoakTestReporter) SetNamespace(namespace string)
- func (o *OCRSoakTestReporter) WriteReport(folderLocation string) error
- type TestIssue
- type TimeLineEvent
- type VRFLoadTestMetrics
- type VRFV2PlusTestReporter
- type VRFV2TestReporter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ChainlinkProfileTestReporter ¶
type ChainlinkProfileTestReporter struct { Results []*client.ChainlinkProfileResults // contains filtered or unexported fields }
func (*ChainlinkProfileTestReporter) SendSlackNotification ¶
func (c *ChainlinkProfileTestReporter) SendSlackNotification(_ *testing.T, _ *slack.Client, _ testreporters.GrafanaURLProvider) error
SendNotification hasn't been implemented for this test
func (*ChainlinkProfileTestReporter) SetNamespace ¶
func (c *ChainlinkProfileTestReporter) SetNamespace(namespace string)
SetNamespace sets the namespace of the report for clean reports
func (*ChainlinkProfileTestReporter) WriteReport ¶
func (c *ChainlinkProfileTestReporter) WriteReport(folderLocation string) error
WriteReport create the profile files
type FoundEvent ¶
type FoundEvent struct { StartTime time.Time BlockNumber uint64 Address string Answer int64 RoundID uint64 }
FoundEvent is a single round update event
func (*FoundEvent) CSV ¶
func (a *FoundEvent) CSV() [][]string
CSV returns a CSV representation of the event
func (*FoundEvent) Time ¶
func (a *FoundEvent) Time() time.Time
type KeeperBenchmarkTestLoad ¶
type KeeperBenchmarkTestMetrics ¶
type KeeperBenchmarkTestMetrics struct { Delay map[string]interface{} `json:"delay"` PercentWithinSLA float64 `json:"percentWithinSLA"` PercentRevert float64 `json:"percentRevert"` PercentStale float64 `json:"percentStale"` TotalTimesEligible int64 `json:"totalTimesEligible"` TotalTimesPerformed int64 `json:"totalTimesPerformed"` TotalStaleReports int64 `json:"totalStaleReports"` AverageActualPerformsPerBlock float64 `json:"averageActualPerformsPerBlock"` }
type KeeperBenchmarkTestReport ¶
type KeeperBenchmarkTestReport struct { RegistryAddress string `json:"registryAddress"` ContractAddress string `json:"contractAddress"` TotalEligibleCount int64 `json:"totalEligibleCount"` TotalSLAMissedUpkeeps int64 `json:"totalSLAMissedUpkeeps"` TotalPerformedUpkeeps int64 `json:"totalPerformedUpkeeps"` AllCheckDelays []int64 `json:"allCheckDelays"` // List of the delays since checkUpkeep for all performs }
KeeperBenchmarkTestReport holds a report information for a single Upkeep Consumer contract
type KeeperBenchmarkTestReporter ¶
type KeeperBenchmarkTestReporter struct { Reports []KeeperBenchmarkTestReport `json:"reports"` ReportMutex sync.Mutex AttemptedChainlinkTransactions []*client.TransactionsData `json:"attemptedChainlinkTransactions"` NumRevertedUpkeeps int64 NumStaleUpkeepReports int64 Summary KeeperBenchmarkTestSummary `json:"summary"` // contains filtered or unexported fields }
KeeperBenchmarkTestReporter enables reporting on the keeper benchmark test
func (*KeeperBenchmarkTestReporter) SendSlackNotification ¶
func (k *KeeperBenchmarkTestReporter) SendSlackNotification(t *testing.T, slackClient *slack.Client, grafanaUrlProvider testreporters.GrafanaURLProvider) error
SendSlackNotification sends a slack notification on the results of the test
func (*KeeperBenchmarkTestReporter) SetNamespace ¶
func (k *KeeperBenchmarkTestReporter) SetNamespace(namespace string)
func (*KeeperBenchmarkTestReporter) WriteReport ¶
func (k *KeeperBenchmarkTestReporter) WriteReport(folderLocation string) error
type KeeperBenchmarkTestSummary ¶
type KeeperBenchmarkTestSummary struct { Load KeeperBenchmarkTestLoad `json:"load"` Config KeeperBenchmarkTestConfig `json:"config"` Metrics KeeperBenchmarkTestMetrics `json:"metrics"` TestInputs map[string]interface{} `json:"testInputs"` StartTime int64 `json:"startTime"` EndTime int64 `json:"endTime"` }
type KeeperBlockTimeTestReport ¶
type KeeperBlockTimeTestReport struct { ContractAddress string `json:"contractAddress"` TotalExpectedUpkeeps int64 `json:"totalExpectedUpkeeps"` TotalSuccessfulUpkeeps int64 `json:"totalSuccessfulUpkeeps"` AllMissedUpkeeps []int64 `json:"allMissedUpkeeps"` // List of each time an upkeep was missed, represented by how many blocks it was missed by }
KeeperBlockTimeTestReport holds a report information for a single Upkeep Consumer contract
type KeeperBlockTimeTestReporter ¶
type KeeperBlockTimeTestReporter struct { Reports []KeeperBlockTimeTestReport `json:"reports"` ReportMutex sync.Mutex AttemptedChainlinkTransactions []*client.TransactionsData `json:"attemptedChainlinkTransactions"` // contains filtered or unexported fields }
KeeperBlockTimeTestReporter enables reporting on the keeper block time test
func (*KeeperBlockTimeTestReporter) SendSlackNotification ¶
func (k *KeeperBlockTimeTestReporter) SendSlackNotification(t *testing.T, slackClient *slack.Client) error
SendSlackNotification sends a slack notification on the results of the test
func (*KeeperBlockTimeTestReporter) SetNamespace ¶
func (k *KeeperBlockTimeTestReporter) SetNamespace(namespace string)
func (*KeeperBlockTimeTestReporter) WriteReport ¶
func (k *KeeperBlockTimeTestReporter) WriteReport(folderLocation string) error
type OCRRoundState ¶
type OCRRoundState struct { StartTime time.Time `toml:"startTime"` EndTime time.Time `toml:"endTime"` // Time when the round should end, only used for analysis Answer int64 `toml:"answer"` Anomalous bool `toml:"anomalous"` // Whether the round was anomalous FoundEvents map[string][]*FoundEvent `toml:"foundEvents"` // Address -> FoundEvents, possible to have multiple found events per round, and need to call it out TimeLineEvents []TimeLineEvent `toml:"timeLineEvents"` // contains filtered or unexported fields }
OCRRoundState indicates that a round per contract should complete within this time with this answer
func (*OCRRoundState) CSV ¶
func (e *OCRRoundState) CSV() [][]string
CSV returns a CSV representation of the test state and all events
func (*OCRRoundState) Time ¶
func (e *OCRRoundState) Time() time.Time
func (*OCRRoundState) Validate ¶
func (e *OCRRoundState) Validate() bool
Validate checks that 1. There is a FoundEvent for every address 2. There is only one FoundEvent for every address 3. The answer is correct
type OCRSoakTestReporter ¶
type OCRSoakTestReporter struct { StartTime time.Time AnomaliesDetected bool OCRVersion string // contains filtered or unexported fields }
OCRSoakTestReporter collates all OCRAnswerUpdated events into a single report
func (*OCRSoakTestReporter) RecordEvents ¶
func (o *OCRSoakTestReporter) RecordEvents(testStates []*OCRRoundState, testIssues []*TestIssue)
RecordEvents takes in a list of test states and RPC issues, orders them, and records them in the timeline
func (*OCRSoakTestReporter) SendSlackNotification ¶
func (o *OCRSoakTestReporter) SendSlackNotification(t *testing.T, slackClient *slack.Client, _ testreporters.GrafanaURLProvider) error
SendNotification sends a slack message to a slack webhook and uploads test artifacts
func (*OCRSoakTestReporter) SetNamespace ¶
func (o *OCRSoakTestReporter) SetNamespace(namespace string)
SetNamespace sets the namespace of the report for clean reports
func (*OCRSoakTestReporter) WriteReport ¶
func (o *OCRSoakTestReporter) WriteReport(folderLocation string) error
WriteReport writes OCR Soak test report to a CSV file and final report
type TimeLineEvent ¶
TimeLineEvent represents a single event in the timeline
type VRFLoadTestMetrics ¶
type VRFLoadTestMetrics struct { RequestCount *big.Int FulfilmentCount *big.Int AverageFulfillmentInMillions *big.Int SlowestFulfillment *big.Int FastestFulfillment *big.Int P90FulfillmentBlockTime float64 P95FulfillmentBlockTime float64 AverageResponseTimeInSecondsMillions *big.Int SlowestResponseTimeInSeconds *big.Int FastestResponseTimeInSeconds *big.Int }
todo - fix import cycle to avoid struct duplicate
type VRFV2PlusTestReporter ¶
type VRFV2PlusTestReporter struct { TestType string LoadTestMetrics VRFLoadTestMetrics VRFv2PlusTestConfig types.VRFv2PlusTestConfig }
func (*VRFV2PlusTestReporter) SendSlackNotification ¶
func (o *VRFV2PlusTestReporter) SendSlackNotification(t *testing.T, slackClient *slack.Client, vtfv2PlusTestConfig types.VRFv2PlusTestConfig) error
SendSlackNotification sends a slack message to a slack webhook
func (*VRFV2PlusTestReporter) SetReportData ¶
func (o *VRFV2PlusTestReporter) SetReportData( testType string, metrics VRFLoadTestMetrics, testConfig types.VRFv2PlusTestConfig, )
type VRFV2TestReporter ¶
type VRFV2TestReporter struct { TestType string LoadTestMetrics VRFLoadTestMetrics VRFv2TestConfig types.VRFv2TestConfig }
func (*VRFV2TestReporter) SendSlackNotification ¶
SendSlackNotification sends a slack message to a slack webhook
func (*VRFV2TestReporter) SetReportData ¶
func (o *VRFV2TestReporter) SetReportData( testType string, metrics VRFLoadTestMetrics, vrfv2TestConfig types.VRFv2TestConfig, )