Documentation
¶
Index ¶
- Variables
- func AssertSoakThresholds(soak SoakProfile, snap *TelemetrySnapshot) error
- func LoadBaseline(path string) (map[string]float64, error)
- func MetricsMap(summary *RunSummary) map[string]float64
- func SaveBaseline(path string, metrics map[string]float64) error
- type ArtifactBundle
- type BenchmarkProfile
- type ConcurrencyProfile
- type Controller
- type DriftReport
- type DriftThresholds
- type Host
- type HostsConfig
- type Regression
- type RunSummary
- type SoakProfile
- type TelemetryCollector
- func (c *TelemetryCollector) RecordContainerBoot(d time.Duration)
- func (c *TelemetryCollector) RecordDriftSample(at time.Time, goroutines int, rssMB float64, fdCount int, errRate float64)
- func (c *TelemetryCollector) RecordRPCCount(n int)
- func (c *TelemetryCollector) RecordRPCError(n int)
- func (c *TelemetryCollector) RecordRPCLatency(d time.Duration)
- func (c *TelemetryCollector) RecordSnapshotDelta(n int64)
- func (c *TelemetryCollector) Snapshot() *TelemetrySnapshot
- type TelemetrySnapshot
- type Workload
- type WorkloadResult
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ProfileSmall = ConcurrencyProfile{ Name: "P-small", Concurrency: 10, Mode2Weight: 4, Mode3Weight: 6, Tier1Share: 0.7, TargetSessionTime: 5 * time.Second, FailureRate: 0.01, } ProfileMedium = ConcurrencyProfile{ Name: "P-medium", Concurrency: 50, Mode2Weight: 4, Mode3Weight: 6, Tier1Share: 0.65, TargetSessionTime: 8 * time.Second, FailureRate: 0.02, } ProfileLarge = ConcurrencyProfile{ Name: "P-large", Concurrency: 200, Mode2Weight: 4, Mode3Weight: 6, Tier1Share: 0.60, TargetSessionTime: 12 * time.Second, FailureRate: 0.03, } )
Functions ¶
func AssertSoakThresholds ¶
func AssertSoakThresholds(soak SoakProfile, snap *TelemetrySnapshot) error
func MetricsMap ¶
func MetricsMap(summary *RunSummary) map[string]float64
Types ¶
type ArtifactBundle ¶
func WriteArtifacts ¶
func WriteArtifacts(dir string, summary *RunSummary) (*ArtifactBundle, error)
type BenchmarkProfile ¶
type ConcurrencyProfile ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
func NewController ¶
func NewController() *Controller
func (*Controller) RunProfile ¶
func (c *Controller) RunProfile(ctx context.Context, profile ConcurrencyProfile, workloads []Workload) (*RunSummary, error)
func (*Controller) Telemetry ¶
func (c *Controller) Telemetry() *TelemetryCollector
type DriftReport ¶
type DriftThresholds ¶
type HostsConfig ¶
func LoadHostsConfig ¶
func LoadHostsConfig(path string) (*HostsConfig, error)
type Regression ¶
func CompareAgainstBaseline ¶
type RunSummary ¶
type RunSummary struct {
Profile ConcurrencyProfile
StartedAt time.Time
FinishedAt time.Time
Results []*WorkloadResult
Mode2Runs int
Mode3Runs int
Errors int
Metrics *TelemetrySnapshot
ContainerBootP95Ms float64
RPCLatencyP95Ms float64
}
type SoakProfile ¶
type SoakProfile struct {
Name string
Duration time.Duration
Warmup time.Duration
Drift DriftThresholds
}
func DefaultSoak12h ¶
func DefaultSoak12h() SoakProfile
func DefaultSoak24h ¶
func DefaultSoak24h() SoakProfile
type TelemetryCollector ¶
type TelemetryCollector struct {
// contains filtered or unexported fields
}
func NewTelemetryCollector ¶
func NewTelemetryCollector() *TelemetryCollector
func (*TelemetryCollector) RecordContainerBoot ¶
func (c *TelemetryCollector) RecordContainerBoot(d time.Duration)
func (*TelemetryCollector) RecordDriftSample ¶
func (*TelemetryCollector) RecordRPCCount ¶
func (c *TelemetryCollector) RecordRPCCount(n int)
func (*TelemetryCollector) RecordRPCError ¶
func (c *TelemetryCollector) RecordRPCError(n int)
func (*TelemetryCollector) RecordRPCLatency ¶
func (c *TelemetryCollector) RecordRPCLatency(d time.Duration)
func (*TelemetryCollector) RecordSnapshotDelta ¶
func (c *TelemetryCollector) RecordSnapshotDelta(n int64)
func (*TelemetryCollector) Snapshot ¶
func (c *TelemetryCollector) Snapshot() *TelemetrySnapshot
type TelemetrySnapshot ¶
Click to show internal directories.
Click to hide internal directories.